传输大量小文件

传输大量小文件

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

编辑:我必须提供一些额外的信息,因为我对 VMWare 解决方案有很好的答案。

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

我无法使用 VMWare Converter 在我的新 VM 上克隆丢失的卷,因为 VMWare Converter 看不到 EMC PowerPath 伪设备,并且之前的管理员使用这些伪设备在其上构建了 LVM2 和/或 ASM 卷。

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

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

我尝试过使用rsync,但它确实太慢并且对 RAM 和 CPU 性能产生严重影响。

我尝试使用带有 TAR 的 NC,但传输速率相当慢,因为在 1Gbit/s 链路上,平均吞吐量约为 50MB/s,流量几乎没有。

您能否给我一些有关此类迁移的建议或经验,以及您如何在合理的时间内正确完成它?

答案1

如果你确实需要一种快速传输文件的方法,并且两个系统都是基于Linux的,你可以尝试优德

这实际上是一种 rsync-over-UDP 形式(使用开源UDT 框架),尤其适用于移动大量文件或通过高带宽或高延迟链路进行传输。此外,默认情况下禁用加密,因此 RAM/CPU 占用率低于传统 rsync。也不涉及 SSH。

我可以轻松得到线速传输目录树中包含 1000 万个小型 TIFF 文件,速度超过 1Gbps。

您的语法将与 rsync 略有不同。所有 rsync 标志都需要出现在源/目标规范之前:

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

易于构建...您g++需要openssl-devel

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

在源和目标上执行此操作。


看:SSH 流量的 WAN 优化可能性

答案2

如果在守护进程模式下使用且不加密,rsync 可以高效传输大量小文件。请再尝试在守护进程模式下使用它。

答案3

您是否考虑过将 SAN LUN 直接暴露给新虚拟机 - 这通常效果很好,而且比将文件复制到 VMDK 中更快 - 尽管它可以将虚拟机“锁定”到其初始主机上。但您可以使用它来启动,然后按照自己的节奏将文件迁移到 VMDK - 使用 rsync - 然后切断与原始 LUN 的链接。

答案4

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

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

无论如何,转换器使用两种方法将文件从源克隆到目标,其完整详细信息可以找到这里

如果目标磁盘配置为更小与源相比,它会将单个文件克隆到新的 VM 中。

但是,如果目标磁盘设置为等于或大于,它会克隆块。这样一来,磁盘上的文件数量就变得无关紧要了,而且运行速度应该相对较快。

我怀疑您是否会填满 1Gbps 的管道,但您应该能够获得超过 50Mbps 的速度。

请记住,您仍需要移动 5TB,因此这需要一些时间。

相关内容