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

Как создать RAID1 на существующей системе CentOS/RedHat 6.0

5 min read Linux Обновлено 24 Sep 2025
RAID1 на CentOS/RedHat 6 — настройка на месте
RAID1 на CentOS/RedHat 6 — настройка на месте

TL;DR

Кратко: сделайте полный бэкап, создайте на второй диске такие же разделы, соберите degraded RAID1 с помощью mdadm, отобразите конфигурацию в /etc/mdadm.conf, пересоздайте initramfs, смонтируйте md-устройства и скопируйте данные. Установите загрузчик на оба диска и обновите /etc/fstab и /boot/grub/menu.lst. Тестируйте загрузку с отключённого диска перед вводом в эксплуатацию.

Автор: Maurice Hilarius — Hard Data Ltd. — 12 октября 2011

Короткое определение: RAID1 — зеркалирование блоков между дисками для отказоустойчивости и чтения с двух источников.

О чём эта инструкция

Пошаговое руководство по превращению одно-дисковой системы CentOS/RedHat 6 в зеркальный массив RAID1 без переустановки ОС. Пояснения для GRUB 0.97 (стандартный для CentOS 6) и использования mdadm/dracut.

Важно: все команды выполняйте под root.

su - (введите пароль root)

Исходная конфигурация (пример)

В примере у нас исходно был диск /dev/sdb с ОС («оригинал»). Мы добавляем новый диск /dev/sda («целевой»).

Таблица разделов (пример):

Device Mountpoint Size

/dev/sdb ~1002GB
/dev/sdb1 /boot 256MB
/dev/sdb2 / 24GB
/dev/sdb3 swap 4GB
/dev/sdb5 /var 4GB
/dev/sdb6 /home ~900GB

Мы будем копировать данные на зеркальные md-устройства, затем установить загрузчик и переключить систему на RAID.

Требования и подготовка

  • Полный бэкап — сохраните данные вне машины.
  • Убедитесь в работоспособности бэкапа.
  • Второй физический диск должен быть как минимум такого же размера или больше.

Important: без резервной копии вы рискуете потерять данные при ошибке.

Шаги

1) Создание идентичных разделов на целевом диске

Снимите схему разделов с текущего диска и примените её к новому:

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

Это создаст на /dev/sda такие же разделы, как на /dev/sdb. Проверьте fdisk -l или lsblk после команды.

2) Подгрузка модулей ядра (чтобы не перезагружать систему)

modprobe linear
modprobe raid0
modprobe raid1

Проверьте:

cat /proc/mdstat

Ожидаемый пример:

Personalities : [linear] [multipath] [raid0] [raid1]
unused devices: 

Это значит, что модули доступны, но массивов ещё нет.

3) Создание degraded RAID1 (второй диск помечен как missing)

Создайте md-устройства для каждого раздела, где один участник отсутствует (мы собираем зеркала, ожидая второй диск):

mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 missing
mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 missing
mdadm --create /dev/md2 --level=1 --raid-disks=2 /dev/sda5 missing
mdadm --create /dev/md3 --level=1 --raid-disks=2 /dev/sda6 missing

Примечание по GRUB 0.97: если вы используете GRUB legacy (стандарт в CentOS 6), указывайте метаданные 0.90, иначе GRUB может не распознать раздел при установке. Пример:

mdadm --create /dev/md0 --metadata=0.90 --level=1 --raid-devices=2 /dev/sda1 missing

4) Проверка статуса md

cat /proc/mdstat

Пример вывода (degraded, т.е. массивы созданы, но один участник missing):

Personalities : [raid1]
md1 : active raid1 sdb2[1]
473792 blocks [2/2] [U_]

md2 : active raid1 sdb5[1]
4980032 blocks [2/2] [U_]

md3 : active raid1 sdb6[1]
3349440 blocks [2/2] [U_]

md0 : active raid1 sdb1[1]
80192 blocks [2/2] [U_]

unused devices: 

Буква U в статусе означает «включён», подчёркнутое место — отсутствующий (missing) диск.

5) Сохранение конфигурации mdadm

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

Проверьте содержимое:

cat /etc/mdadm.conf

Внизу файла должны быть строки с UUID ваших md-устройств. Это необходимо, чтобы initramfs знал о RAID при загрузке.

6) Пересборка initramfs с учётом mdadm.conf

Переименуйте старый initramfs и создайте новый, включающий конфигурацию mdadm:

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
dracut --mdadmconf --force /boot/initramfs-$(uname -r).img $(uname -r)

Это сделает образ, который умеет собирать массивы во время ранней загрузки.

7) Создание файловых систем на md-устройствах

mkfs.ext2 /dev/md0    # для /boot ext2 / ext2 совместим с GRUB
mkfs.ext4 /dev/md1    # для /  (root)
mkfs.ext4 /dev/md2    # для /var или /home (пример)
mkfs.ext4 /dev/md3
mkswap -c /dev/sda2   # проверка и создание swap на целевом диске

Примечание: mkswap на /dev/sda2 создаёт swap на целевом диске; аналогично настройте swap на втором участнике массива при необходимости.

8) Копирование данных на md-устройства

Создайте точку монтирования и копируйте содержимое по разделам.

/boot:

mkdir /mnt/raid
mount /dev/md0 /mnt/raid
cd /boot; find . -depth | cpio -pmd /mnt/raid

Если используется SELinux, создайте автопересборку меток:

touch /mnt/raid/.autorelabel

Затем:

sync
umount /mnt/raid

root (/):

mount /dev/md1 /mnt/raid
cd / ; find . -depth -xdev | grep -v '^\./tmp/' | cpio -pmd /mnt/raid
sync
umount /mnt/raid

Важно: не копируйте временные файлы из /tmp и /var/tmp. Команда выше исключает /tmp.

/var и /home:

mount /dev/md2 /mnt/raid
cd /var; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid

mount /dev/md3 /mnt/raid
cd /home; find . -depth | cpio -pmd /mnt/raid
sync
umount /mnt/raid

9) Обновление /etc/fstab и /boot/grub/menu.lst

  • В /etc/fstab замените старые /dev/sdbX на /dev/mdX или, предпочтительнее, на UUID ваших md-устройств. Для поиска UUID используйте blkid или ls -l /dev/disk/by-uuid.
  • В /boot/grub/menu.lst (GRUB legacy) убедитесь, что в kernel line указан root=/dev/md1 (или UUID). Также скопируйте актуальный /boot/grub/menu.lst на новый /dev/md0.

Пример строки для /etc/fstab:

/dev/md1    /       ext4    defaults    1 1
/dev/md2    /var    ext4    defaults    1 2
/dev/md3    /home   ext4    defaults    1 2
/dev/md0    /boot   ext2    defaults    1 2

Проверяйте и корректируйте в соответствии с вашей разметкой и требованиями.

10) Установка загрузчика на оба диска

Чтобы загрузка работала при отказе одного диска, установите GRUB на оба физических диска:

grub-install /dev/sda
grub-install /dev/sdb

Если команда не найдена или поведение отличается, используйте интерактивный grub (legacy):

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

где (hd1,0) соответствует разделу /boot на втором диске. Точная нумерация зависит от вашей системы. Всегда проверяйте man grub-install и существующую конфигурацию GRUB.

11) Добавление второго диска в массив (если ещё не добавлен)

Когда вы готовы, добавьте оригинальные разделы (с /dev/sdbX) в массивы, чтобы началась синхронизация:

mdadm --add /dev/md0 /dev/sdb1
mdadm --add /dev/md1 /dev/sdb2
mdadm --add /dev/md2 /dev/sdb5
mdadm --add /dev/md3 /dev/sdb6

Проверьте статус синхронизации:

cat /proc/mdstat

Синхронизация может занять длительное время — зависит от объёма данных и скорости дисков.

12) Тестирование загрузки

  1. Перезагрузите систему нормально и убедитесь в успешной загрузке.
  2. Из BIOS выберите в качестве первичного устройства второй диск и перезагрузите.
  3. Если возможно, оторвите физически один из дисков (в безопасной среде) и проверьте, что система продолжает загружаться.

Important: выполняйте тесты в контролируемой среде, чтобы избежать простоя в продакшне.

Устранение проблем и советы

  • GRUB говорит «Filesystem type unknown, partition type 0xfd» — используйте –metadata=0.90 при создании mdmd для совместимости с GRUB legacy.
  • Initramfs не видит md-устройства — убедитесь, что /etc/mdadm.conf содержит актуальные UUID и пересоберите initramfs (dracut –mdadmconf –force).
  • Если копирование файлов нарушило права или SELinux метки, создайте /mnt/raid/.autorelabel и перезагрузите для автоматического восстановления меток.

Когда это не сработает:

  • Если диск-источник имеет нестандартную разметку (LVM поверх разделов, нестандартные RAID/кеширующие контроллеры), процедура требует адаптации.
  • Аппаратные RAID-контроллеры с прозрачностью предоставляют свои средства; описанный метод предназначен для программного mdadm RAID.

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

  • Все целевые md-устройства присутствуют и синхронизированы (cat /proc/mdstat показывает [UU]).
  • /etc/fstab и /boot/grub/menu.lst указывают на md-устройства или UUID.
  • GRUB установлен на обоих физических дисках.
  • Система успешно загружается при отключении любого из дисков.

Плейбук: краткий чеклист для администратора

  1. Резервная копия — выполнена и проверена.
  2. Клонирование разделов sfdisk.
  3. Подгрузка модулей raid.
  4. Создание degraded md-устройств (mdadm).
  5. Сохранение /etc/mdadm.conf и пересборка initramfs.
  6. Создание файловых систем и копирование данных.
  7. Обновление /etc/fstab и /boot/grub/menu.lst.
  8. Установка GRUB на оба диска.
  9. Добавление второго участника и ожидание синхронизации.
  10. Полное тестирование загрузки.

Краткое окружное руководство по откату

  • Если что-то пошло не так, восстановите /boot и корень с бэкапа.
  • Если initramfs повреждён, верните старый файл /boot/initramfs-$(uname -r).img.old и перезагрузитесь.
  • Если GRUB не загружается, используйте Live-образ для восстановления GRUB и копирования /boot.

Итог

Преобразование одно-дисковой CentOS/RedHat 6 в RAID1 возможно без переустановки. Ключевые шаги — идентичная разметка, создание degraded массивов, сохранение mdadm.conf, пересборка initramfs, копирование данных и установка загрузчика на оба диска. Всегда имейте актуальные бэкапы и тестируйте отказоустойчивость перед вводом в продуктив.

Notes: пример команд и разметки основан на типичных системах CentOS/RedHat 6. В сложных конфигурациях (LVM, шифрование, аппаратные контроллеры) потребуются дополнительные шаги.

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

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

Как работать на iPhone в дороге
Продуктивность

Как работать на iPhone в дороге

Аннотирование PDF бесплатно без водяных знаков
PDF

Аннотирование PDF бесплатно без водяных знаков

Как поставить своё фото профиля в Netflix
How-to

Как поставить своё фото профиля в Netflix

Удаление аккаунта eBay — инструкция
Помощь

Удаление аккаунта eBay — инструкция

Не могу войти в Yahoo Mail — полное руководство
Техподдержка

Не могу войти в Yahoo Mail — полное руководство

RAID1 на CentOS/RedHat 6 — настройка на месте
Linux

RAID1 на CentOS/RedHat 6 — настройка на месте