Назад | Перейти на главную страницу

ZFS, raidz1: Почему размер тома (42T) намного меньше размера пула (50T)?

У меня есть пул из 28 2TB-дисков (56T) в 4 массивах по 7 дисков. Поскольку это raidz1 (~ RAID5), я бы ожидал, что для контроля четности в каждом массиве будет использоваться 1 диск, поэтому итоговый объем должен быть 2 ТБ * 4 * (7-1) = 48 ТБ, верно?

Итак, что я вижу в своей системе:

$ 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

Итак, вместо 48 зубьев всего 42 зуба. Где пропавшие 6 ТБ? А откуда цифра 50,5Т?

Диск емкостью 2 ТБ - это не 2 ТиБи - это всего 2 * 10 ^ 12/2 ^ 30 ~ 1862 ГиБи.

4 массива по 6 эффективных дисков в каждом будут 24 * 1862 = 44703 ГиБи, или 43,6 ТиБи реальной полезной памяти.

Я считаю, что это связано с некоторыми дополнительными накладными расходами, которые вы не учитываете - IIRC RAIDZ также выполняет снимки и очистку, которые занимают дополнительное место.

Чтобы прояснить несоответствие вывода между командами:

В zpool команда считает диски, которые используются для резервирования, как пространство, в то время как zfs команда не работает; таким образом, число 50,5 ТБ - это ваш необработанный размер диска, а 42T - это после удаления 4 дисков для резервирования.

Производители жестких дисков измеряют размер диска в Base 10. Компьютеры измеряют байты в Base 2.
Должно быть сказано 42 TiB, чтобы уточнить использование в СИ префикса тера-.