这是当我创建一个新目录并立即对其运行 du 时发生的情况。该目录中没有任何内容。
me@mybox[~]$ mkdir /scratch/test2
me@mybox[~]$ du -sh /scratch/test2
4.0K /scratch/test2
好的,所以,/scratch 中的新目录(这是运行 RHEL 6.6 的 sda 上的 LV)占用了 4.0K 的空间。
me@mybox[~]$ mkdir /home/me/test
me@mybox[~]$ du -sh /home/me/test
512 test
我的主目录中的新目录(这是通过 Solaris 服务器上的 NFS 托管的 ZFS 目录)占用 512 字节。现在,如果我等一分钟左右,然后再次 du /home/me/test:
me@mybox[~]$ du -sh /home/me/test
1.5K test
尽管目录仍然是空的,但所占用的空间量跃升至 1.5K(据我所知ls -la
)
我想了解这些差异的技术原因。一般来说,就像在 512 字节和 1.5K 目录之间的短时间内发生了什么?那个额外的空间意味着什么?为什么512字节和1.5K都比本地磁盘目录所需的4.0K小很多?
答案1
您没有说明文件系统类型的用途/scratch
;我希望它是 ext4。 ext4 使用 4k 块进行分配,因此这是文件系统对象可以使用的最小空间量(当然不包括零大小的文件)。
ZFS 是一个非常特殊的文件系统,显然使用 512 字节块来分配空间。也许在您访问该目录后,一些扩展属性被附加到该目录,从而增加了该目录使用的空间。由于它是一个挂载 NFS 的文件系统,因此可能会有一些属性缓冲,也许如果您查看 NFS 服务器端的数据,那么您可能看不到大小的变化。