xfs 磁盘使用量比文件大 15-30%

Ole*_*nge 6 disk-usage xfs

xfs 使用的磁盘空间似乎比文件所需的多 15-30%:

# du
0       .
# dd if=/dev/zero of=test bs=1M count=5k
5120+0 records in
5120+0 records out
5368709120 bytes (5,4 GB) copied, 10,527 s, 510 MB/s
# ls -l
total 8388608
-rw-r--r-- 1 root root 5368709120 Oct 19 16:04 test
# du
8388608 .
Run Code Online (Sandbox Code Playgroud)

对于整个文件系统,它似乎在一定程度上做到了这一点。当添加的文件小于文件系统大小的 1% 时,此文件系统报告磁盘已满:

# df
/dev/sdb6  40957913088 35624042728 5333870360  87% /xfs-export
Run Code Online (Sandbox Code Playgroud)

是不是在执行 mkxfs 时有一些花哨的选项(类似于 ext2 中保留的 5%)?

# uname -a
Linux server 2.6.39-bpo.2-amd64 #1 SMP Tue Jul 26 10:35:23 UTC 2011 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

Ole*_*nge 1

我已经很久没有重现这个问题了。我想我现在明白了:

$ ls -l
total 0
$ dd if=/dev/md0 >> a bs=10000k &
$ ls -l
total 9111552
-rw-r--r-- 1 rt rt 5816320000 Jan  7 23:31 a
Run Code Online (Sandbox Code Playgroud)

它会一直保持这个状态直到dd完成(或被杀死) - 即使dd被挂起。之后事情看起来很正常:

$ kill %1; ls -l
total 20120000
-rw-r--r-- 1 rt rt 20602880000 Jan  7 23:33 a
Run Code Online (Sandbox Code Playgroud)

因此,看起来 xfs 似乎正在为文件扩展保留空间。

问题中的内容dd已完成,但可能还有其他一些打开的文件可以证明保留的合理性。