Zfs

關於文件系統大小的 ZFS 列表的奇怪輸出

  • January 10, 2021

我使用以下選項創建了一些 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(總池大小,所有數據集仍然是空的)。

我們看到總空間是2.33TB + 1.18TB = 3.48TB

USEDzfs list輸出中考慮的保留概念。因為通過保留,ZFS 保證指定數量的磁碟空間可用於文件系統,因此保留的數量被視為已使用/data(它不再可用於其他文件系統,因此它就像已使用的空間)

所以這裡USED的空間/data是保留金額的總和。

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

1.18GB``AVAIL來自這意味著任何超過保留數量的數據集都可以使用它/data,例如/data/media``1.18TB AVAIL + 1TB RESERVED = 2.18TB available for this dataset

因為/data/logs1.18TB + 20GB = 1.20TB和…

我們不能期望3.48TB每個數據集都可用,因為通過保留,每個數據集已經擁有保留的數量,/data並且只有未保留的空間可用於所有數據集。

引用自:https://unix.stackexchange.com/questions/628397