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