使用 FreeBSD 11.1-STABLE,我有一个配置了 gzip-9 压缩的 ZFS 数据集,以及 8K 的记录大小。(此卷用于小文件的归档,而不是速度。)
zfs get all pool02/redactedStorage显示了 1.4 倍的压缩比,这比我预期的要差,但那里存储着文本文件和压缩文件的混合,所以并不令人担忧。然后我查看了该数据集中存储的一些大型 zip 文件,感到很困惑。
du -h和的输出du -hA不是我对压缩文件的期望。
例如,我预计 40 MB 的零文件几乎不会占用任何磁盘空间:
# dd if=/dev/zero of=testfile bs=4M count=10
# du -h testfile
512B testfile
# du -hA testfile
40M testfile
Run Code Online (Sandbox Code Playgroud)
但我预计 40 MB 的随机文件会消耗约 40 MB 的磁盘空间,因为它是不可压缩的(出于所有实际目的)。但没想到却消耗了近一倍的空间:
# dd if=/dev/random of=testfile.rnd bs=4M count=10
# du -h testfile.rnd
92M testfile.rnd
# du -hA testfile.rnd
40M testfile.rnd
Run Code Online (Sandbox Code Playgroud)
通过研究,它看起来像是间接块消耗了额外的空间。
对于testfile(零):
Dataset pool02/redactedStorage [ZPL], …Run Code Online (Sandbox Code Playgroud)