我有 28 个 2TB 磁盘池(56T),分为 4 个 7 磁盘阵列。由于是 raidz1(~RAID5),我预计每个阵列中 1 个磁盘用于奇偶校验,因此最终卷应该是 2TB*4*(7-1)=48TB,对吗?
现在,我在系统上看到的内容:
$ zpool list volume
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
volume 50.5T 308K 50.5T 0% 1.00x ONLINE -
$ zfs list volume
NAME USED AVAIL REFER MOUNTPOINT
volume 2.00T 40.3T 75.8K /volume
$ df -h /volume
Filesystem Size Used Available Capacity Mounted on
volume 42T 75K 40T 1% /volume
那么,实际只有 42T,而不是 48T。缺失的 6TB 在哪里?50.5T 这个数字又从何而来?
答案1
2TB 磁盘的大小并不是 2 TiBi - 它只有 2*10^12 / 2^30 ~ 1862 GiBi。
4 个阵列,每个阵列包含 6 个有效磁盘,则为 24 * 1862 = 44703 GiBI,或者43.6 钛合金真实可用的存储空间。
我认为它有一些你没有考虑到的额外开销 - IIRC RAIDZ 还会进行快照和清理,这会占用额外的空间。
答案2
为了澄清命令之间输出的差异:
该zpool
命令将用于冗余的磁盘计入空间,而该zfs
命令不计入;因此,50.5 TB 的数字是原始磁盘大小,而 42T 是在取出 4 个磁盘用于冗余之后的数字。
答案3
硬盘制造商以十进制来测量磁盘大小。计算机以二进制来测量字节。
应该说 42TiB 阐明 tera- 前缀的 SI 用法。