在失败的初始rsync数据到glusterfs之后search错误时,我在/var/log/glusterfs/data-nfs.log中find了以下条目:
[MSGID:109066] [dht-rename.c:1410:dht_rename] 0-volume1-dht:renaming / source / .filename.jpg.bWVXS4 (hash = volume1-replicate-0 / cache = volume1-replicate-0)= > /dest/filename.jpg(hash = volume1-replicate-0 / cache =)
没有一个以点开头的文件名,我只是再次检查它。 这个条目是关于什么的? 有成千上万的。
rsync就是这样做的。 它将文件写入临时位置(以点开始),然后当文件完全写入时,将文件重命名为最终位置。 它需要保留原始文件,因为rsync的algorithm是如何工作的 – 它读取原始文件的块,并将它们与通过networking发送的改变的数据交织。
你可以通过使用选项--inplace来避免这种行为,但是如果你依赖于增量同步algorithm(而不是复制新文件),它会对增量同步algorithm造成严重的影响。