我有两个来自不同厂商的大型存储阵列,每个都有大约10 of /S的带宽可供读/写。我需要把多个TB的文件从一个移到另一个。每个人都讲NFS和CIFS。目前使用cp或scp或rsync,中间主机的GbE接口成为瓶颈,因为我必须从一个数组读取并写入另一个数组。在这两个数组中都没有我可以登录的主机来删除中间人。我有一堆可以提供额外带宽的主机,如果我可以这样做的话:
rsync [src] [dest] --parallel-hosts=host1,host2,host3,host4
有一个直接的解决办法吗?
发布于 2010-08-19 01:09:36
我用于并行化类似事情的一个技巧是在两次传递中完成它--首先生成要传输的文件列表,然后拆分该列表,然后将工作外包给多台机器。
您可以使用rsync这样的方法来完成这一任务:
这极大地帮助了网络文件系统(NFS、Lustre等),在这些系统中,您通常无法从单个rsync进程/机器获得足够的性能。
对文件系统进行拖网比较仍然需要一段时间,但实际的数据移动可能非常快。此外,像cpio和cp这样的东西在原始数据移动方面往往优于rsync。
我经常使用的另一个选项是执行一个简单的find -type f /src
,然后拆分该文件列表并在多个主机上将其提供给cpio。
我很想知道一个更简单/更快的方法.
发布于 2010-08-18 19:04:26
如果两个存储阵列不直接对话,最好的选择是构建一台具有高带宽连接的专用机器。即使是具有一对10 the的相对便宜的新工作站,如果支持网络和存储阵列能够占用它,也可以输出大量的带宽。
发布于 2010-08-18 21:45:41
您应该与您的存储供应商交谈,以确定控制器是否可以直接相互交谈。如果不构建或租用高带宽的中间节点。我的猜测是,有一种方法可以让两个数组发挥良好,并在控制器上运行完整的克隆。
https://serverfault.com/questions/172015
复制相似问题