FreeBSD:如何知道打开压缩后的 zfs 上文件的实际大小?

FreeBSD:如何知道打开压缩后的 zfs 上文件的实际大小?

我在我的FreeBSD 9.0 x64并且对此非常满意,但我发现很难计算目录的实际大小(非压缩大小)。

当然,我可以遍历目录并使用 ls 计算每个文件的大小,但我希望 du 能为此提供一些额外的键。

所以,如何知道放置在 zfs 上并开启压缩的目录大小

提前感谢您的建议,我根本记不清有没有这样一种“简单”的方法,没有“find ./ -type d -exec ls -l '{}' \; | awk ...”!

答案1

使用du带有其-A标志的:

root@pg78:/usr/local/pgsql/data/base/218204 # du -A -h 221350.219
1.0G    221350.219
root@pg78:/usr/local/pgsql/data/base/218204 # du -h 221350.219
501M    221350.219

非常方便。它甚至可以用于-d递归:

root@pg78:/usr/local/pgsql/data/base # du -h -c -d0 .
387G    .
387G    total
root@pg78:/usr/local/pgsql/data/base # du  -A -h -c -d0 .
518G    .
518G    total

答案2

您可以安装 GNU 版本的du(1)

cd /usr/ports/sysutils/coreutils && make install clean

然后你可以使用该--apparent-size标志:

/space# zfs create space/comptest
/space# zfs set compression=on space/comptest
/space# dd if=/dev/zero of=/space/comptest/zerofile bs=1M count=40
/space/comptest# gdu
2K      .
/space/comptest# gdu --apparent-size
40961K  .

答案3

尝试使用 zpool 命令:

zpool list
NAME      SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
storage  8.93T  6.59T  2.34T         -    60%    73%  2.13x  ONLINE  -

但 df -sh 显示结果(未删除重复的大小)

df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
storage        zfs        16T   14T  1.9T  89% /storage

相关内容