Я читаю на эту тему, можно ли использовать ZFS в Linux для корневой файловой системы, и есть интересная статья в вики . Но расположение разделов в примере мне не понятно.
# sgdisk -n1:0:0 -t1:BF01 /dev/disk/by-id/scsi-SATA_disk1
Run this if you need legacy (BIOS) booting:
# sgdisk -a1 -n2:34:2047 -t2:EF02 /dev/disk/by-id/scsi-SATA_disk1
Run this for UEFI booting (for use now or in the future):
# sgdisk -n3:1M:+512M -t3:EF00 /dev/disk/by-id/scsi-SATA_disk1
Run this in all cases:
# sgdisk -n9:-8M:0 -t9:BF07 /dev/disk/by-id/scsi-SATA_disk1
Что я не понимаю в этом примере, так это первый раздел. Читая справочную страницу sgdisk, мне не ясно, имеет ли первый раздел только один размер блока или он охватывает практически все устройство. В последнем случае это будет означать, что все остальные созданные разделы создаются внутри первого? Что меня удивляет, так это следующее предложение на странице руководства:
Начальное или конечное значение 0 указывает значение по умолчанию, которое является началом самого большого доступного блока для начального сектора и концом того же блока для конечного сектора.
"Тот же блок" звучит как один блок физического устройства, например, 512 байт или 4 тыс. Байт данных? Или это означает некоторый непрерывный объем памяти, охватывающий несколько логических / физических блоков в конце?
Для меня важно понять это из-за следующего предложения в вики:
Корневой пул не обязательно должен быть одним диском; он может иметь топологию зеркала или raidz. В этом случае повторите команды разбиения для всех дисков, которые будут частью пула. Затем создайте пул с помощью zpool create ... rpool mirror /dev /disk /by-id /scsi-SATA_disk1-part1 /dev /disk /by-id /scsi-SATA_disk2-part1 (или замените зеркало на raidz, raidz2, или raidz3 и список разделов с дополнительных дисков).
Как вы понимаете, только первый раздел помещается в пул, остальные, созданные выше, вообще не упоминаются. Что я не понимаю, так это то, что другие разделы являются частью part1
и поэтому неявно доступны в пуле или вообще не используются для пула. Например, GRUB установлен в один из других разделов, в этом случае нет ссылки на пул ZFS:
# mkdosfs -F 32 -n EFI /dev/disk/by-id/scsi-SATA_disk1-part3
[...]
# echo PARTUUID=$(blkid -s PARTUUID -o value \
/dev/disk/by-id/scsi-SATA_disk1-part3) \
/boot/efi vfat nofail,x-systemd.device-timeout=1 0 1 >> /etc/fstab
Мне кажется, что part3
не является частью пула ZFS и поэтому используется отдельно. Но как это соответствует размеру part1
? Переборка только один блок , кажется, не имеет особого смысла, а если part3
содержится в part1
каким - то образом, что это будет означать , что является частью пула ZFS, но имя без него, а?
Мне нужно понять, как обеспечивается избыточность для загрузочных разделов в установке с несколькими устройствами и разделами, как в приведенном выше примере. По сравнению с mdadm
, общая цель - настройка RAID10, где всегда отражаются два устройства, а затем разделы этих устройств распределяются по всем зеркалам. В конце, с 6 дисками один будет в 3 раза больше хранилища для загрузочных разделов и корневого пула. ZFS в целом может это сделать, я просто не уверен, что входит в пул и распространяется ли избыточность на загрузочные разделы.
Мое нынешнее ощущение, что это не тот случай, и мне понадобится mdadm
чтобы сделать загрузочные разделы избыточными. Просто потому, что приведенный выше пример GRUB обращается к некоторому конкретному диску и разделу, физическому устройству, а не к некоторому логическому зеркалу, созданному ZFS. Кроме того, этот раздел отформатирован с использованием FAT32 вместо ZFS. Это не означает, что ZFS вообще заботится о любом из этих разделов.
Итак, в конце концов, поддерживает ли ZFS установку RAID10, сопоставимую с возможной для mdadm
включая все загрузочные разделы, root и все такое, правда?