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

Настройка загрузочного мультиустройства (RAID 1) с помощью Linux Software RAID

Я пытаюсь настроить загрузочный программный RAID, который будет содержать корневую файловую систему и загружать Linux Mint Qiana. Он будет использоваться для запуска нескольких графических приложений мониторинга в небольшом центре обработки данных, а также в качестве простого терминала для доступа к другим узлам локальной сети.

У меня два диска SATA по 500 ГБ (/dev/sda и /dev/sdb), который я буду использовать для создания массива RAID 1. Кажется, есть много способов сделать это, но мне немного непонятно, как создать md0 устройство, которое является загрузочным.

Мой первый подход заключался в загрузке с установочного компакт-диска Live Linux Mint. Затем я бы переключился на приглашение bash и вручную разделил /dev/sda с помощью sfdisk. Я создал простую таблицу разделов, которая включала в себя один первичный раздел и раздел подкачки. Затем я просто клонировал таблицу разделов из /dev/sda к /dev/sdb:

sfdisk -d /dev/sda | sfdisk /dev/sdb

Итак, теперь у меня есть два диска, готовых к сборке в массив RAID. я первый Создайте массив, сказав:

mdadm --create --verbose --metadata=0.90 /dev/md0 --level=mirror 
   --raid-devices=2 /dev/sda /dev/sdb

Примерно через час синхронизация массива завершена.

Теперь я могу инициализировать /dev/md0 предоставив ему файловую систему:

mke2fs -t ext4 /dev/md0

Хорошо, теперь вроде все хорошо. Итак, я снова переключаюсь на установку Live CD и устанавливаю Linux на /dev/md0. Все работает, пока установщик не попытается запустить grub-install, после чего получает фатальную ошибку.

Итак, я исследовал, пытаясь понять причину. Я не совсем уверен, почему это происходит, но я понимаю, что это как-то связано с тем фактом, что «нельзя просто загружаться с /dev/md0". Похоже, что для создания загрузочного массива RAID 1 из нескольких устройств нужно либо создать отдельный не-RAID /boot раздел или используйте initramfs.

К сожалению, я не совсем понимаю, что это влечет за собой. Во-первых, я не хотеть создать отдельный не-RAID /boot раздел, потому что вся загрузка с md0 для резервирования. Во-вторых, я понимаю, что initramfs подход необходимо загрузить mdadm в rootfs во время загрузки. Но когда я загружаюсь с Live CD и создаю свой RAID-массив, mdadm уже загружен в память, поэтому я не понимаю, почему установщик всегда выдает фатальную ошибку при запуске grub-install.

Может ли кто-нибудь объяснить, какие шаги мне здесь не хватает, или дать схему того, как настроить монтирование нескольких устройств, которое может загружаться?

Для загрузки с программным RAID почти всегда требуется отдельный раздел / boot, особенно в старых версиях GRUB. Также необходимо указать "--metadata = 0.90" при создании раздела RAID-1 для / boot.

/ boot должен быть первым разделом и иметь небольшой размер. В основном по причинам загрузки устаревшего BIOS. Другая причина, по которой / boot должен быть отдельным разделом, заключается в том, что он обычно должен монтироваться в режиме только для чтения в / etc / fstab. Вы должны только повторно смонтировать его как чтение-запись перед обновлением ядра.

Типичная конфигурация привода, которую я использую:

/dev/sda1 + /dev/sdb1 = /dev/md0 Software RAID-1 with metadata 0.90
/dev/sda2 + /dev/sdb2 = /dev/md### Software RAID-1 with LVM on top

Я всегда использую / dev / md0 для раздела / boot. Для области LVM я использую случайное число ниже 125 для устройства mdadm #, в основном для предотвращения поломки, если этот диск когда-либо подключается к другому серверу при загрузке (то есть через USB во время восстановления).

После настройки RAID-1 на / boot вам необходимо установить GRUB на каждый диск в массиве RAID-1.

Как загрузиться после сбоя RAID (программный RAID)?

В этом конкретном примере показано, как настроить 3-стороннее зеркало RAID-1, чтобы все три диска были загрузочными с GRUB.

# grub
grub> find /grub/stage1
 (hd0,0)
 (hd1,0)
 (hd2,0)
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> setup (hd0)
grub> device (hd0) /dev/sdc
grub> root (hd0,0)
grub> setup (hd0)
grub> quit