关于文件系统大小的 ZFS 列表的奇怪输出

关于文件系统大小的 ZFS 列表的奇怪输出

我使用以下选项创建了一些 zfs 数据集:

zfs create ...

data/media -o reserv=1TB
data/audiostudio -o reserv=600GB
data/database -o reserv=20GB
data/Git-Backup -o reserv=20GB
data/PC-Backup-Linux -o reserv=300GB
data/PC-Backup-Windows -o reserv=300GB
data/docker-images -o reserv=100GB
data/logs -o reserv=20GB

然而, 的输出zfs list就像

NAME                     USED  AVAIL     REFER  MOUNTPOINT
data                    2.33T  1.18T      352K  /data
data/Git-Backup          192K  1.20T      192K  /data/Git-Backup
data/PC-Backup-Linux     192K  1.48T      192K  /data/PC-Backup-Linux
data/PC-Backup-Windows   192K  1.48T      192K  /data/PC-Backup-Windows
data/audiostudio         192K  1.77T      192K  /data/audiostudio
data/database            192K  1.20T      192K  /data/database
data/docker-images       192K  1.28T      192K  /data/docker-images
data/logs                192K  1.20T      192K  /data/logs
data/media               192K  2.18T      192K  /data/media

它如何计算可用空间?我预计所有这些数据大约为 4TB(总池大小,所有数据集仍然为空)。

答案1

我们看到总空间是2.33TB + 1.18TB = 3.48TB

保留概念被视为USED输出zfs list。因为通过保留,ZFS 保证指定数量的磁盘空间可供文件系统使用,因此保留的数量被视为已使用/data(它不再可用于其他文件系统,因此就像已使用的空间)

所以这里的USED空间/data是预留量的总和。

2.33T = 1TB + 600GB + 20GB + 20GB + 300GB + 300GB + 100GB + 20GB

1.18GB来自这AVAIL意味着任何超过保留量的数据集都/data可以使用它,例如/data/media1.18TB AVAIL + 1TB RESERVED = 2.18TB available for this dataset

对于/data/logs1.18TB + 20GB = 1.20TB和...

我们不能期望3.48TB每个数据集都可用,因为通过预留,每个数据集已经拥有/data且仅拥有预留量毫无保留的空间可用于所有数据集。

相关内容