Skip to main content

容量与配额

文件和目录大小

JuiceFS 中不能通过 du 命令来统计目录大小,事实上也并不需要,因为目录大小已经是递归统计值,包含了目录中所有文件的大小并实时更新,可以直接在命令行用 ls -alh 或通过 Web 控制台查看。如果对 JuiceFS 目录运行 du,得出的将是一个经过重复统计的错误值。

目录大小自带递归统计,这是一个 JuiceFS 企业版的特色功能,让大规模场景下也能轻松查看目录大小。JuiceFS 社区版无此功能,但可以通过开启「目录用量统计」功能实现类似的效果。

JuiceFS 文件系统的用量统计值是「4KB 对齐」的,不足 4KB 的文件会被视为 4KB 并参与用量统计,不仅如此,所有文件的最终计费大小都是 4KB 的整数倍,可以使用 juicefs summary 命令进行核实:

$ dd if=/dev/zero of=/jfs/outfile bs=5k count=1
$ ls -alh outfile
-rw-r--r-- 1 root root 5.0K Nov 22 10:46 outfile
$ juicefs summary outfile
+------+---------+------+-------+
| PATH | SIZE | DIRS | FILES |
+------+---------+------+-------+
| / | 8.0 KiB | 0 | 1 |
+------+---------+------+-------+

查看文件或目录的详情,也可以使用 juicefs info,比如显示一个目录的统计信息:

$ juicefs info -r /jfs/logs
/jfs/logs:
inodes: 4 # 当前目录包含的 inode 总数
directories: 2 # 其中目录的数量
files: 2 # 其中文件的数量
chunks: 44 # 所有文件包含的 chunk 数量
length: 2.91G # 所有文件的实际大小总和
size: 2.91G # 计费大小,所有文件和目录大小会对齐到 4KB,为最小计费单位

控制台的文件系统页面也能直接查看以上信息,甚至还能进行可视化分析,比如查看多层目录的用量情况,可以点击文件列表右上方的图标,切换到图表形式查看整个文件系统的分布情况:

sunburst-graph-icon

一共统计了 4 层路径,可以一眼看出是哪个路径的容量最大,哪个路径的 inodes 最多。

fs-sunburst-graph

文件系统容量与配额

使用 df -h 可以查看文件系统总容量和使用量,由于碎片回收站的存在,文件系统的使用量可能小于对象存储的使用量。

$ df -h -t fuse.juicefs
Filesystem Size Used Avail Use% Mounted on
JuiceFS:jfs1 80T 10T 70T 13% /jfs1
JuiceFS:jfs2 90T 20T 70T 22% /jfs2

注意,df 显示的总容量(Size),是使用量(Used)与剩余容量(Avail)之和。而剩余容量大小则与你当前所使用的付费方案有关,也就是当前付费计划对应的容量上限,减去名下所有文件系统的已用容量。因此 df 命令中显示的剩余容量对于不同的文件系统来说都是一样的,所有文件系统「共享」剩余的存储空间。

如果你创建了多个文件系统,希望为各个文件系统单独设置容量限制,可以在控制台操作设置配额:

file-system-quota

如上图所示,既可以对文件系统的根目录进行设置(相当于限制该文件系统总容量,相应地,这个容量限制也会在 df -h 的输出中显示),也可以设置在某个子目录上,根据实际需要调整即可。