我知道 ZFS 为写时复制保留了 1.6% 的磁盘空间。但是,我损失的不止这些。我有一台安装了原生 ubuntu-zfs 的 ubuntu 服务器。该服务器有 45 个驱动器,每个 3TB。我正在制作三个 raidz2 阵列,每个阵列有 15 个驱动器:
#zpool create data raidz2 /dev/sd[b-p] raidz2 /dev/sd[q-z] /dev/sda[a-e] raidz2 /dev/sda[f-t]
# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
data 122T 1.52M 122T 0% 1.00x ONLINE -
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
data 1.25M 98.7T 335K /data
3000000000000 bytes * 15 * 3 = 122.78 TB
。所以zpool list
输出是正确的。
3000000000000 bytes * (15 - 2) * 3 = 106.41 TB
。
106.41 TB * (1 - 0.016) = 104.70 TB.
可用磁盘空间应为(1 - 0.016) * ((3000000000000 bytes * (15-2)) * 3) = 104.7 TB
。
为什么 ZFS 只显示 98.7T?
答案1
zfs 报告的是实际可用空间,即不包括冗余开销所需的磁盘空间(参见http://docs.oracle.com/cd/E26502_01/html/E29007/gbbti.html)。
用于跟踪可用空间的其他内部元数据(如元空间图)也可能是缺失空间的一部分。
最后,扇区大小(512b 对 4kB)也会影响可用磁盘空间。