Гид по технологиям

Переход на RAID1 — создание и настройка (шаги 4–6)

6 min read Системное администрирование Обновлено 13 Oct 2025
Переход на RAID1: создание и настройка
Переход на RAID1: создание и настройка

Кратко: в этом руководстве показано, как создать три массива RAID1, создать на них файловые системы, адаптировать систему (fstab, mtab, GRUB), скопировать содержимое разделов и установить загрузчик на второй диск. Приведены команды, проверки и рекомендации по откату и безопасности.

Содержание

  • Создание массивов RAID (/dev/md0, /dev/md1, /dev/md2)
  • Создание файловых систем и запись /etc/mdadm.conf
  • Подключение массивов и обновление /etc/fstab и /etc/mtab
  • Настройка GRUB и initrd
  • Критерии приёмки, чек-листы, инцидентный план и матрица рисков

4 Создание RAID-массивов

Теперь создадим наши RAID-массивы /dev/md0, /dev/md1 и /dev/md2. В этой конфигурации /dev/sdb1 добавляется в /dev/md0, /dev/sdb2 в /dev/md1 и /dev/sdb3 в /dev/md2. /dev/sda1, /dev/sda2 и /dev/sda3 пока нельзя добавить (система загружена с них), поэтому в командах используем заглушку missing:

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3

После создания запустить проверку статуса массивов можно командой:

cat /proc/mdstat

Ожидаемый вывод должен показывать три деградированных массива (символы [U] или [U] означают, что один из дисков отсутствует, а [UU] — массив целый):

[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[1]
        9759360 blocks [2/1] [_U]

md1 : active raid1 sdb2[1]
        522048 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
        200704 blocks [2/1] [_U]

unused devices: 
[root@server1 ~]#

Важно: деградированный массив нормально работает, но содержит только один активный диск. Не удаляйте или не форматируйте исходные разделы до завершения миграции и установки загрузчика.

5 Создание файловых систем и фиксация конфигурации mdadm

Создадим файловые системы: ext3 для /dev/md0 и /dev/md2, и swap для /dev/md1:

mkfs.ext3 /dev/md0
mkswap /dev/md1
mkfs.ext3 /dev/md2

Затем генерируем конфигурацию mdadm, чтобы при загрузке ядро могло собрать массивы автоматически:

mdadm --examine --scan > /etc/mdadm.conf

Проверим содержимое файла:

cat /etc/mdadm.conf

В файле должны появиться записи с UUID ваших массивов, например:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=78d582f0:940fabb5:f1c1092a:04a55452
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=8db8f7e1:f2a64674:d22afece:4a539aa7
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=1baf282d:17c58efd:a8de6947:b0af9792

Сохранение этих записей обязательно для автоматической сборки при следующей загрузке.

6 Подключение массивов и правка fstab/mtab

Создаём точки монтирования и монтируем массивы (swap не монтируется):

mkdir /mnt/md0
mkdir /mnt/md2

mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2

Проверка: в выводе mount вы должны увидеть подключённые /dev/md0 и /dev/md2:

[root@server1 ~]# mount
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/md0 on /mnt/md0 type ext3 (rw)
/dev/md2 on /mnt/md2 type ext3 (rw)
[root@server1 ~]#

Далее правим /etc/fstab: замените примечания LABEL=/boot на /dev/md0, LABEL=SWAP-sda2 на /dev/md1 и LABEL=/ на /dev/md2. Пример содержимого файла:

/dev/md2                 /                       ext3    defaults        1 1
/dev/md0                 /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/md1                swap                    swap    defaults        0 0

Затем обновите /etc/mtab (или перезапустите систему, чтобы /etc/mtab обновился автоматически). Пример /etc/mtab после правок:

/dev/md2 / ext3 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/md0 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

Примечание: в современных дистрибутивах /etc/mtab обычно является символьной ссылкой на /proc/self/mounts, поэтому ручная правка может быть не нужна.

Настройка GRUB и initrd

Откроем конфигурацию GRUB (в данном примере /boot/grub/menu.lst или /boot/grub/grub.conf) и добавим fallback=1 сразу после default=0:

default=0
fallback=1

Это гарантирует, что при ошибке загрузки с первого варианта будет выбран запасной (индексация ядер начинается с 0, поэтому fallback=1 переключит на второй пункт). Далее скопируйте stanza ядра и измените параметры так, чтобы первый пункт указывал на root=/dev/md2 и root (hd1,0):

title CentOS (2.6.18-128.el5)
        root (hd1,0)
        kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2
        initrd /initrd-2.6.18-128.el5.img

title CentOS (2.6.18-128.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/
        initrd /initrd-2.6.18-128.el5.img

Пояснение: root (hd1,0) указывает на /dev/sdb (вторая физическая плата). Мы добавляем загрузку с RAID-дисков, но сохраняем запасной пункт для загрузки со старого диска (sda).

Обновим initrd, чтобы в ранний initrd были включены модули md и распознавание массивов:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

Теперь копируем содержимое корневого раздела и /boot на новые массивы (они монтированы в /mnt/md2 и /mnt/md0):

cp -dpRx / /mnt/md2

cd /boot
cp -dpRx . /mnt/md0

Флаги -dpRx сохраняют права, символические ссылки, устройства и рекурсивно копируют, не следуя NFS-атрибутам и не пересоздавая точки монтирования.

6 Подготовка GRUB (часть 1): установка загрузчика на второй диск

Теперь устанавливаем GRUB в MBR второго диска /dev/sdb. Запускаем grub-интерфейс и выполняем команды:

grub

В GRUB shell вводим сначала root для первого диска (в выводе это (hd0,0) — ранее он был /dev/sda1):

root (hd0,0)

Пример взаимодействия и ожидаемый ответ:

grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)

Команда setup установит stage1/stage2 в MBR и корректные сектора для embedded-стадий. Затем повторяем для второго диска (/dev/sdb), который в GRUB обозначается как (hd1,0):

grub> root (hd1,0)
grub> setup (hd1)
grub> quit

Если команды вернули succeeded, установка прошла успешно.

Наконец, перезагрузите систему и проверьте загрузку с RAID:

reboot

Если загрузка не удалась с основного пункта, GRUB должен автоматически загрузить запасной (fallback).


Критерии приёмки

  • Система успешно загружается с /dev/md2 как корневого раздела (root=/dev/md2).
  • /boot монтируется с /dev/md0 и swap с /dev/md1.
  • /etc/mdadm.conf содержит корректные ARRAY-записи с UUID.
  • GRUB установлен в MBR обоих дисков; при отключении одного диска система загружается с другого.
  • Проверка cat /proc/mdstat показывает состояние массивов; повторные проверки после добавления отсутствующих разделов показывают [UU].

Роль-ориентированные чек-листы

Администратор перед миграцией:

  • Сделать полную резервную копию важных данных и конфигураций.
  • Проверить наличие свободного места на /dev/sdb.
  • Убедиться, что в системе установлены mdadm и grub.

Во время миграции:

  • Выполнять команды по порядку и фиксировать вывод ошибок в лог.
  • Не форматировать исходные разделы до успешной загрузки с RAID.

После миграции:

  • Проверить /etc/mdadm.conf и запустить mdadm --assemble --scan при необходимости.
  • Вставить отсутствующие разделы в массивы: mdadm --add /dev/mdX /dev/sdaX.
  • Проверить синхронизацию: watch cat /proc/mdstat.

Инцидентный план и откат

Если система не загружается после перезагрузки:

  1. Войдите в режим восстановления (rescue) с LiveCD или установочного носителя.
  2. Смонтируйте старые разделы (/dev/sda3 и /dev/sda1) в /mnt и проверьте содержимое /boot и /.
  3. Восстановите /etc/mtab и /etc/fstab в исходное состояние (замените /dev/md* обратно на старые устройства или LABEL).
  4. Установите GRUB в MBR только на диск, с которого хотите загружаться (например, /dev/sda):
grub
root (hd0,0)
setup (hd0)
quit
  1. Перезагрузите и проверьте загрузку со старого диска; затем исследуйте логи и ошибки (dmesg, /var/log/messages).

Матрица рисков и смягчения

  • Риск: потеря данных при копировании или форматировании. Смягчение: полная резервная копия до операций.
  • Риск: неправильные записи в /etc/fstab приводят к отказу загрузки. Смягчение: сохранить резервную копию fstab и /etc/mtab, иметь LiveCD.
  • Риск: GRUB не установлен на втором диске. Смягчение: установить GRUB на оба диска и проверить корректность команд setup.
  • Риск: initrd не содержит модулей md. Смягчение: переконструировать initrd и проверить наличие md-модулей.

Безопасность и рекомендации

  • Убедитесь, что ваши RAID-массивы защищены от несанкционированного доступа: права на /etc/mdadm.conf и /boot минимальны.
  • Если используется шифрование LVM/RAID, убедитесь, что initrd содержит поддержку расшифровки.
  • Планируйте проверку целостности и SMART-статусов дисков регулярно (smartctl).

Советы и особенности миграции

  • На сервере с UEFI вместо legacy GRUB процесс установки отличается; используйте соответствующие инструменты (grub2-install, efibootmgr).
  • Для больших систем или критичных сервисов выполняйте миграцию в окне обслуживания и проверьте взаимодействие с кластерными решениями.
  • После добавления отсутствующих разделов выполните mdadm --add /dev/mdX /dev/sdaX и дождитесь завершения синхронизации.

Однострочный глоссарий

  • RAID1 — зеркалирование: данные дублируются на двух дисках; при отказе одного диск остается резервным.
  • mdadm — утилита для управления программными RAID на Linux.
  • initrd/mkinitrd — начальная RAM-дисковая среда, загружаемая ядром до монтирования корня.
  • GRUB — загрузчик, устанавливаемый в MBR/EFI для запуска ядра.

Краткое резюме

  • Создали три деградированных массива RAID1, сформировали на них файловые системы и записали конфигурацию mdadm.
  • Подключили массивы, обновили /etc/fstab и /etc/mtab, скопировали данные и /boot.
  • Установили GRUB на оба диска и перестроили initrd; перезагрузили систему и проверили загрузку с RAID.

Важно: не удаляйте старые разделы до полной уверенности в успешности миграции и наличии работающих резервов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Потеря пакетов в FFXI — как уменьшить
Сетевые проблемы

Потеря пакетов в FFXI — как уменьшить

Резервное копирование почты Office 365 — руководство
Резервное копирование

Резервное копирование почты Office 365 — руководство

Скрытые сообщения Facebook: как найти и проверить
Социальные сети

Скрытые сообщения Facebook: как найти и проверить

Установка Ubuntu 8.04 с программным RAID1
Системное администрирование

Установка Ubuntu 8.04 с программным RAID1

Переход на RAID1: создание и настройка
Системное администрирование

Переход на RAID1: создание и настройка

Beeftext: сниппеты текста в Windows
Продуктивность

Beeftext: сниппеты текста в Windows