Я хочу создать zfs raidz2 с 4 дисками. Я знаю, что это «потратит впустую» не менее 50% пространства, но я стремлюсь к высокой устойчивости к сбоям дисков. Использование 5 дисков для raidz2 не рекомендуется, а 6 дисков слишком дорого и не нужно для меня. У меня будет 3 ТБ (или, может быть, 4 ТБ) дисков, все из которых имеют сектора 4k с эмуляцией 512 байт.
Я много читал о zfs и raidz2 и начинаю путаться.
Нужно ли разбивать диски на разделы? Я читал, что создание разделов — это хорошая идея, чтобы дать ОС знать, что диск не пустой. Разбиение на разделы также может помочь выровнять по секторам 4k.
GPT или MBR?Насколько я понял, GPT обязателен для дисков объемом 3 ТБ (и больше).
Как создать раздел?Даст ли это мне правильно выровненные разделы?
sudo parted --align optimal /dev/sdX mklabel gpt mkpart primary 1 0% 3TB
Бонусный вопрос: насколько большим будет раздел, созданный с помощью mkpart primary 1 0% 3TB
? Будет ли он 3*10^12 - 4096 byte
?
Я намерен не использовать весь объем диска, а ограничиться 3 ТБ, чтобы иметь возможность заменить вышедший из строя диск другой моделью.
Нужно ashift=12
ли мне выровнять разделы?Это бесполезно? Это как-то мне вредит?
А как насчет размера полоски?Нужно ли мне его модифицировать? Что делать, если я использую 5 дисков вместо 4?
Есть ли что-то еще, что мне следует учесть?
решение1
Вам необходимо вручную установить ashift, если ваш диск сообщает неверные значения, что имеет место для всех дисков в переходный период (4K внутренне, 512 логически) - более ранние диски сообщают правильные 512, более поздние диски сообщают правильные 4k. Конечно, вы всегда можете указать это, это просто перезапишет то, что сам диск сообщил/предложил системе.
Если вы не уверены, вы также можете создать пул, записать полезный размер, затем уничтожить его, установить ashift на всех дисках на 12, создать его снова и сравнить размеры. Если они равны, ваши диски честны относительно своего содержимого.
Разбиение дисков на разделы необходимо только в том случае, если ваши диски распознаются неправильно или если вы хотите иметь меньшие размеры, чем возможно.
решение2
ZFS на Linux автоматически разбивает диски на разделы. Раньше этого не было. Выглядеть это будет так:
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 2E55AB8A-8B22-494E-A971-B6D639BA14B1
Device Start End Sectors Size Type
/dev/sdb1 2048 1953507327 1953505280 931.5G Solaris /usr & Apple ZFS
/dev/sdb9 1953507328 1953523711 16384 8M Solaris reserved 1
Также, вероятно, он будет использовать правильное ashift
значение автоматически. У моего SSD 13, у вышеуказанного HDD 12, как и ожидалось.
Просто сделайте следующее:
zpool create tank raidz2 sda sdb sdc sdd
Затем проверьте, zdb
что ashift
кажется правильным.