在初始 rsync 数据到 glusterfs 失败后搜索错误时,我在 /var/log/glusterfs/data-nfs.log 中找到了以下条目:
[MSGID: 109066] [dht-rename.c:1410:dht_rename] 0-volume1-dht: 重命名 /source/.filename.jpg.bWVXS4 ( hash=volume1-replicate-0/cache=volume1-replicate-0) = > /dest/filename.jpg (hash=volume1-replicate-0/cache=)
肯定没有以点开头的文件名,我只是仔细检查了它。这个条目是关于什么的?有成千上万个。
这就是 rsync 的工作方式。它将文件写入临时位置(以点开头),然后在文件完全写入后,将其重命名为最终位置。它需要保留原始文件,因为 rsync 的算法是如何工作的——它读取原始文件的块并将它们与通过网络发送的更改数据交错。
您可以通过使用 option 来避免这种行为
--inplace
,但如果您依赖它(而不是复制新文件),它会对增量同步算法造成可怕的影响。