Zfs

ZFS、raidz1:為什麼卷大小(42T)比池大小(50T)小很多?

  • February 6, 2016

我在 7 個磁碟的 4 個陣列中有一個 28 個 2TB 磁碟 (56T) 池。由於它是 raidz1 (~RAID5),我希望每個陣列中使用 1 個磁碟進行奇偶校驗,因此生成的捲應該是 2TB4(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這個數字從何而來?

2TB 磁碟的大小不是 2 TiBi - 它只有 2*10^12 / 2^30 ~ 1862 GiBi。

4 個陣列,每個陣列有 6 個有效磁碟,每個陣列將是 24 * 1862 = 44703 GiBI,或43.6 TiBi的實際可用儲存。

我認為它有一些你沒有考慮到的額外成本——IIRC RAIDZ 還可以進行快照和清理,這會佔用額外的空間。

為了澄清命令之間的輸出差異:

zpool命令將用於冗餘的磁碟計為空間,而該zfs命令不計入;因此,50.5 TB 數字是您的原始磁碟大小,而 42T 是在取出 4 個磁碟以實現冗餘之後。

引用自:https://serverfault.com/questions/352001