为什么两个不同的 NFS 文件系统上的两个相同文件的块数相差 16.7%?

为什么两个不同的 NFS 文件系统上的两个相同文件的块数相差 16.7%?

我有两个相同的文件,位于两个不同的 NFS 文件系统上。根据ls -ldu -b,它们的大小相同,但与du -k或 的差异ls -s为 114072 个块,即 16.7%。什么可能导致如此大的差异?

$ du -k /path/to/nfs1/somefile.dat /path/to/nfs2/somefile.dat
786432  /path/to/nfs1/somefile.dat
672360  /path/to/nfs2/somefile.dat
$ cmp /path/to/nfs1/somefile.dat /path/to/nfs2/somefile.dat
$

答案1

可能是因为文件稀疏。如果文件包含尚未写入的块(它们仍为 0),则可能会发生这种情况。系统内部不会分配所有空间,直到整个文件至少被写入一次。

如果文件系统支持,则默认情况下 Linux 会自动进行优化。大多数文件系统都支持。但要考虑到这些文件最终可能会增长到其声明的大小。

有关更多信息和使用“dd”命令重现它的方法(打开文件,寻找远处,只写一点点): http://en.wikipedia.org/wiki/Sparse_file

相关内容