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

Рекомендуемый подход для загрузки с программного RAID-массива Linux для обеспечения избыточности

Я ищу рекомендуемый подход к настройке программного RAID (с использованием mdadm) на Centos 8 для обеспечения избыточности.

В моей настройке у меня есть 4 идентичных диска, но я предполагаю, что ответ также должен иметь отношение к настройкам 2 дисков.

Главное требование здесь - избыточность и нет требование ручного вмешательства для загрузки системы в случае выхода из строя одного из дисков.

Короче - ищу самое простое и надежное решение.

Вопросы:

  1. Какой тип таблицы разделов рекомендуется (при условии, что только Linux, без двойной загрузки)
  2. Загрузка UEFI против загрузки BIOS (UEFI кажется излишне сложным, и, похоже, с ним все еще есть много проблем)
  3. Команды fdisk / mdadm / lvm для настройки тома / boot и LVM, которые будут содержать разделы root и swap
  4. Можно ли все это сделать из графического интерфейса установки Anaconda?

У меня были некоторые проблемы с загрузкой систем EFI / GPT, поэтому я не уверен в преимуществах (похоже, что при использовании GPT требуются дополнительные разделы, некоторые из которых не представляется возможным использовать программный RAID). Так что также ищу причины, чтобы пойти по маршруту EFI / GPT, если это действительно рекомендуемый подход.

В итоге я выбрал таблицу разделов GPT, но придерживался старой загрузки Bios.

Отчасти это было связано с некоторыми сложностями, связанными с использованием RAID для загрузочного раздела EFI - https://unix.stackexchange.com/questions/265368/why-is-uefi-firmware-unable-to-access-a-software-raid-1-boot-efi-partition и частично из-за того, что я восстанавливался из незагружаемой системы, которая использовала EFI (до сих пор не знаю, почему, но после попытки исправить в течение дня было просто проще перестроить. Это именно то, чего я не хочу)

В любом случае, похоже, это можно установить и настроить с помощью установщика Centos8 anaconda. Для этого сделайте следующее:

  1. Настройте BIOS для загрузки установочного носителя (и жестких дисков) с использованием устаревшей загрузки
  2. Загрузите установщик
  3. Разделите свои жесткие диски вручную - я использовал следующее:
    1. 1 раздел MiB Biosboot, настроенный в рейде 1
    2. 1 ГиБ / загрузочный раздел настроен в raid 1
    3. Остальная часть места на жестком диске настроена в массиве LVM raid (10 в моем случае) с разделом / и разделом подкачки (и всем, что вы хотите)

Я проверил это, вытащив каждый жесткий диск, убедившись, что сервер может загрузиться, а затем повторно добавив «отказавший» диск обратно в массивы MD. Все работает как положено.

Ниже приведены соответствующие части для конфигурации кикстарта, созданной на основе моей установки:

#version=RHEL8
ignoredisk --only-use=sda,sdb,sdc,sdd
# Partition clearing information
clearpart --all --initlabel --drives=sda,sdb,sdc,sdd

# Disk partitioning information
part raid.903 --fstype="mdmember" --ondisk=sda --size=2
part raid.1340 --fstype="mdmember" --ondisk=sdd --size=1025
part raid.2107 --fstype="mdmember" --ondisk=sdc --size=475912
part raid.910 --fstype="mdmember" --ondisk=sdb --size=2
part raid.1319 --fstype="mdmember" --ondisk=sda --size=1025
part raid.2114 --fstype="mdmember" --ondisk=sdd --size=475912
part raid.2100 --fstype="mdmember" --ondisk=sdb --size=475912
part raid.2093 --fstype="mdmember" --ondisk=sda --size=475912
part raid.1326 --fstype="mdmember" --ondisk=sdb --size=1025
part raid.1333 --fstype="mdmember" --ondisk=sdc --size=1025
part raid.917 --fstype="mdmember" --ondisk=sdc --size=2
part raid.924 --fstype="mdmember" --ondisk=sdd --size=2
raid biosboot --device=biosboot --fstype="biosboot" --level=RAID1 raid.903 raid.910 raid.917 raid.924
raid pv.2121 --device=pv00 --fstype="lvmpv" --level=RAID10 --chunksize=512 raid.2093 raid.2100 raid.2107 raid.2114
raid /boot --device=boot --fstype="ext4" --level=RAID1 raid.1319 raid.1326 raid.1333 raid.1340
volgroup cl_host01 --pesize=4096 pv.2121
logvol / --fstype="ext4" --size=51200 --name=root --vgname=cl_host01
logvol swap --fstype="swap" --size=4096 --name=swap --vgname=cl_host01