Переход на RAID1 — создание и настройка (шаги 4–6)
Кратко: в этом руководстве показано, как создать три массива 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
.
Инцидентный план и откат
Если система не загружается после перезагрузки:
- Войдите в режим восстановления (rescue) с LiveCD или установочного носителя.
- Смонтируйте старые разделы (/dev/sda3 и /dev/sda1) в /mnt и проверьте содержимое /boot и /.
- Восстановите /etc/mtab и /etc/fstab в исходное состояние (замените /dev/md* обратно на старые устройства или LABEL).
- Установите GRUB в MBR только на диск, с которого хотите загружаться (например, /dev/sda):
grub
root (hd0,0)
setup (hd0)
quit
- Перезагрузите и проверьте загрузку со старого диска; затем исследуйте логи и ошибки (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.
Важно: не удаляйте старые разделы до полной уверенности в успешности миграции и наличии работающих резервов.
Похожие материалы

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

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

Скрытые сообщения Facebook: как найти и проверить
Установка Ubuntu 8.04 с программным RAID1
Переход на RAID1: создание и настройка
