Я пытаюсь настроить загрузочный программный 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