传输大量的小文件

我必须将两台具有较大SAN附件的服务器迁移到新的VMWare环境中。

编辑:我必须提供一些额外的情报,因为我有关于VMWare解决scheme的好答案。

那么,由于服务器上存在一些技术限制,我无法在新系统上附加以前的EMC LUN。

我无法使用VMWare Converter在我的新VM上克隆缺less的卷,因为VMWare Converter无法看到EMC PowerPath伪设备,而且以前的pipe理员使用这些伪设备来构buildLVM2和/或ASM卷。

这两台物理服务器连接到一台旧的EMC²CX-340 SAN,并处理5TB的数据。

这些5TB的数据是小型的PDF,我需要通过我们的1Gbit / s LAN将它们传输到新机器上。

我已经尝试使用rsync ,但它真的很慢,对RAM和CPU性能有很强的影响。

我尝试在TAR上使用NC,但传输速率非常慢,因为在1Gbit / s链路上的平均吞吐量约为50MB / s,stream量几乎为零。

你可以给我一些build议或经验,这种迁移的经验,你如何设法在合理的时间内正确完成?

如果您确实需要快速传输文件的方法,并且这两个系统都是基于Linux的,则可以尝试使用UDR 。

这实际上是一种rsync-over-UDPforms(使用开源UDT框架 ),特别适用于移动大量文件或通过高带宽或高延迟链接进行传输。 另外,默认情况下encryption是禁用的,所以RAM / CPU命中率低于传统的rsync。 SSH也没有涉及。

我可以很容易地通过1Gbps 的线速传输 ,在目录树中有1000万个小的TIFF文件。

您的语法将从rsync稍微修改。 所有rsync标志都需要出现在源/目标规范之前:

 udr rsync -avP --stats --delete /data/ server2:/data/ 

容易build立…你需要g++openssl-devel

 git clone https://github.com/LabAdvComp/UDR.git cd UDR/ make cp src/udr /usr/local/bin/ 

在源和目的地上做到这一点。


请参阅: 优化SSHstream量的可能性

如果在没有encryption的守护进程模式下使用,rsync可以高效地传输大量的小文件。 再次尝试在守护进程模式下使用它。

你有没有想过将SAN LUN直接暴露给新的虚拟机 – 这通常工作得很好,可以比将文件复制到VMDK更快 – 尽pipe它可以将虚拟机“locking”到其初始主机上。 但是你可以使用它来完成这些工作,然后按照自己的步调将文件迁移到VMDK中 – 使用rsync – 然后将链接切割到原始LUN。

如果目标虚拟机尚未构build,则可尝试使用免费的VMware Converter来复制数据。

实际上,即使它们被构build,您也可以将磁盘克隆到虚拟VM,然后在克隆完成后将它们附加到现有VM上。

在任何情况下,转换器都使用两种方法将文件从源文件复制到目标文件,完整的细节可以在这里find。

如果目标磁盘configuration为小于源,则会将单个文件克隆到新的VM中。

但是,如果目标磁盘设置为相等或更大 ,则会克隆块。 这将使磁盘上的文件数量非常不相关,并且应该运行得相对较快。

我怀疑你会填充1Gbps的pipe道,但你应该得到超过50Mbps。

只要记住,你仍然想要移动5TB,所以这需要一些时间。