rsync:传输的文件大小是原始文件的两倍

rsync:传输的文件大小是原始文件的两倍

rsync我已经通过桥接器将文件从客户端传输到远程主机ssh,现在远程主机上的生成文件比客户端上的原始文件大两倍多。

9.1GB -> 20GB

我已经用 检查了大小du -sh。看起来不对。鉴于这些文件位于两个不同的位置,而且它们很大,我该如何检查出了什么问题?

客户端和远程主机是 Linux 的两种不同风格

ls -ls <file>两个位置的输出为:

客户

 9528947 -rw-r--r-- 1 user1 group1 20420948104 Nov  2 13:45 filename.hdf5

远程主机

 19942340 -rw-r--r--. 1 user2 group2 20420948104 Nov  2 14:45 filename.hdf5

编辑

看起来可能是精简配置

https://fedoramagazine.org/copying-large-files-with-rsync-and-some-misconceptions/


编辑2

跑步

 rsync -avz -S <origin> <dest>

并不能解决问题。


编辑3

远程主机上的文件系统是:

df -Th->nfs4

答案1

导致此类问题的最常见原因是源文件是 稀疏文件

稀疏文件是一种计算机文件,当文件本身部分为空时,它会尝试更有效地利用文件系统空间。这是通过将表示空块的简要信息(元数据)写入磁盘而不是构成块的实际“空”空间来实现的,从而占用较少的磁盘空间。仅当块包含“真实”(非空)数据时,才会将完整块大小作为实际大小写入磁盘。

您需要参数-S–sparse来告诉 rsync 有效地处理稀疏文件。如果没有它,目标上仍会分配不存在的块,从而使文件膨胀。


根据维基百科,稀疏文件仅被添加在 NFS 版本 4.2 (RFC 7862)

由于您的 NFS 版本为 4.1,因此很可能不支持稀疏文件。您需要将 NFS 服务器升级到所需的级别。

相关内容