从 CIFS 安装的 Windows 共享进行 Rsync 很慢。为什么会这样?是否有支持校验和的文件复制替代方案?

从 CIFS 安装的 Windows 共享进行 Rsync 很慢。为什么会这样?是否有支持校验和的文件复制替代方案?

我发现使用 Rsync 从 Widnows 客户端上的 CIFS 挂载共享传输文件非常慢。

我读过 SF 上的几个帖子,以及网络上的其他几个论坛帖子,它们都指出问题与 rsync 验证要传输的数据有关。有人能给我解释一下吗?

此外,如果这不能以我想要的速度运行,如果我想要支持校验和以确保数据完整性,我该怎么做?

目前,当我通过千兆局域网将文件从 CIFS 安装共享同步到物理连接的驱动器时,我的净传输速度约为 25 MB/s。相反,当在 Windows 客户端上使用 Robocopy 时,我的传输速度约为 85 MB/s,这接近 5,900 RPM 驱动器的实际上限。为什么会有如此显著的差异?

答案1

为方便起见,Rsync 支持两个文件都在本地的模式。这是您获得的模式,因为 Rsync 未使用 rsync 协议与远程计算机通信。在此模式下,rsync 的任何优化都无法实现,因为远程端没有程序来执行优化操作。

在本地模式下,Rsync 不会尝试仅发送差异,因为它无法分辨差异是什么。它默认为标准复制,然后进行标准读取以验证数据。如果您希望使用校验和来验证数据完整性,则需要另一端的一些软件在本地执行校验和。您可以使用服务器来实现rsync此目的,因为无论如何您都在使用rsync

答案2

是的,我注意到了同样的事情。

我发现使用齐奏当源(本地硬盘)和目标(CIFS 共享)都安装在同一台机器上时,比使用 rsync 更快,因此只有一个同步程序实例。

是的,unison 旨在通过同一次调用在两个方向上复制文件,但我发现即使仅使用它进行单向推送(因为我从未在目的地编辑任何内容)也比 rsync 更快。

相关内容