在没有 rsyncd 选项的情况下,使用 rsync 而不是 SSHFS 或 CIFS 作为远程存储库是否更好?

在没有 rsyncd 选项的情况下,使用 rsync 而不是 SSHFS 或 CIFS 作为远程存储库是否更好?

我有一个 NAS,它只支持 CIFS、AFS、SSH(没有 rsyncd 功能,没有 NFS)。

我必须备份非常大的文件(虚拟机映像),我通常在备份设备上设置一个 rsync 服务器,然后只rsync --inplace传输大文件的块级增量。这在 rsyncd 中运行良好。

使用 CIFS 时,似乎必须在复制之前读取所有目标文件和本地文件全部结束(整个过程,而不仅仅是增量)..使用 SSHFS 会更好吗?

还有其他方法可以在不使用 rsyncd 的情况下仅移动块增量吗?

答案1

sshfs 对此无济于事;您需要做的是添加选项,-W告诉 rsync 只传输整个文件,而不试图找出具体差异在哪里。您可能还需要删除--inplace(不确定)。

rsync 实际上是为远程操作而设计的,其中每台计算机上都有一个 rsync 实例(或守护进程),每个实例都与其磁盘建立快速链接,但 rsync 实例之间建立慢速链接。就您而言,慢速链接位于“远程”rsync 与其磁盘之间,因此需要一组不同的优化选择。具体来说,rsync 通常默认读取整个源文件和目标文件,以便它能够确定哪些部分需要通过“慢速”中间链接进行传输;就您而言,这比盲目传输整个文件更慢。

另外,请确保您有-t选项(或-a,这意味着-t),并且不是使用-c.-c会使它读取整个文件以查看它是否完全改变了;没有它,它只会查看文件大小和修改时间,然后-t(和-a)保留。

答案2

不,使用 不会更好sshfs。它不可能,因为对于本地安装的远程文件系统,本地rsync进程必须读取文件才能查看需要复制的内容。为此,必须通过网络传输整个文件。

相关内容