在我们规模较小的公司中,我们使用 Vmware。我们使用 Veeam 备份虚拟机。生成的文件大小约为每台虚拟机 200-300 GB,总共 1/1.2 TB 的数据。我使用 robocopy 将备份的虚拟机文件复制到外部硬盘驱动器。我想知道 Robocopy 是否使用类似 rsync 的东西来仅复制更改的数据“块”,而不是整个文件。谢谢
答案1
Robocopy 不使用任何方法来传输仅更改的数据块。
如果您必须通过慢速网络传输文件,只需使用 rsync。
如果您必须通过“合理速度”网络传输文件,则没有算法可以加速该过程,因为 rsync(例如)必须在客户端和服务器上读取整个文件才能找到重复的内容。因此,如果您的网络是千兆位的,或者您进行本地复制,则只需复制文件即可。您无法获得更好的东西,除非文件系统支持(ala ZFS,但只能在同一个分区上工作)。
答案2
@Gregory MOUSSAT:
没有算法可以加速这个过程,因为 rsync(例如)必须读取客户端和服务器上的整个文件来查找重复的内容。
...我认为这只影响转移,只是一个 rsync可以工作,例如在共享和本地磁盘之间进行复制。在这里,唯一的 rsync 当然需要从共享“获取”整个文件到客户端以进行比较/复制。
但是如果你使用两个不同的 rsync在源机器和目标机器上,您实际上会获得巨大的速度提升!两个独立的 rsync 都在本地构建相关文件的校验和(无需传输任何内容!),通过网络比较这些校验和,然后然后决定要传输大文件的哪些部分(已更改的部分)。
可以通过在文件服务器上使用 rsync 守护程序(记得在防火墙中打开其 rsyncd 端口)或使用 ssh 作为两台机器之间的传输介质来实现。后者当然要求您具有远程机器的本地登录权限。
干杯