Настройка RAID1 и установка GRUB на Debian
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 сейчас нельзя добавить (система загружается с них), поэтому в командах используется placeholder 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] — что массив исправен:
server1:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb3[1]
4594496 blocks [2/1] [_U]
md1 : active raid1 sdb2[1]
497920 blocks [2/1] [_U]
md0 : active raid1 sdb1[1]
144448 blocks [2/1] [_U]
unused devices:
server1:~# Коротко: массивы созданы, но один из дисков отсутствует — поэтому массивы пока в состоянии degraded. После добавления второго раздела каждый массив должен перейти в состояние [UU].
Создание файловых систем и swap
Создаём файловые системы ext3 на /dev/md0 и /dev/md2 и активируем swap на /dev/md1:
mkfs.ext3 /dev/md0
mkswap /dev/md1
mkfs.ext3 /dev/md2Обновление /etc/mdadm/mdadm.conf
Сохраните оригинал конфигурации и добавьте автоопределённые массивы в конфиг:
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.confПосмотрите содержимое файла:
cat /etc/mdadm/mdadm.confВ конце файла вы увидите записи для трёх RAID-массивов. Например:
| # mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. # # by default, scan all partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local system HOMEHOST |
(Содержимое конфигурации оставлено как есть — это автоматическая запись mdadm.)
5 Настройка системы под RAID1
Смонтируем новые массивы (swap не монтируем):
mkdir /mnt/md0
mkdir /mnt/md2mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2Проверьте список монтированных томов:
mountПример вывода:
server1:~# mount
/dev/sda3 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
/dev/md0 on /mnt/md0 type ext3 (rw)
/dev/md2 on /mnt/md2 type ext3 (rw)
server1:~#Обновление /etc/fstab
Замените в /etc/fstab ссылки на физические разделы на RAID-устройства: /dev/sda1 → /dev/md0, /dev/sda2 → /dev/md1, /dev/sda3 → /dev/md2. Откройте файл редактором:
vi /etc/fstabОжидаемое содержимое:
| # /etc/fstab: static file system information. # # |
Обновление /etc/mtab
Аналогично замените /dev/sda1 → /dev/md0 и /dev/sda3 → /dev/md2 в /etc/mtab:
vi /etc/mtabПример содержимого после правки:
| /dev/md2 / ext3 rw,errors=remount-ro 0 0 tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0 proc /proc proc rw,noexec,nosuid,nodev 0 0 sysfs /sys sysfs rw,noexec,nosuid,nodev 0 0 udev /dev tmpfs rw,mode=0755 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0 /dev/md0 /boot ext3 rw 0 0 |
Подготовка GRUB: fallback и дублирование stanza
Откройте /boot/grub/menu.lst и добавьте строку fallback 1 сразу после default 0:
vi /boot/grub/menu.lstПример:
default 0
fallback 1Это означает: если загрузка первого (нулевого) ядра не удастся, загрузится запасной вариант (fallback 1).
Далее найдите блоки с описанием ядер. Скопируйте первый stanza и вставьте перед ним, изменив root=/dev/sda3 на root=/dev/md2 и root (hd0,0) на root (hd1,0):
| [...] ## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.18-4-486 RAID (hd1) root (hd1,0) kernel /vmlinuz-2.6.18-4-486 root=/dev/md2 ro initrd /initrd.img-2.6.18-4-486 savedefault title Debian GNU/Linux, kernel 2.6.18-4-486 root (hd0,0) kernel /vmlinuz-2.6.18-4-486 root=/dev/sda3 ro initrd /initrd.img-2.6.18-4-486 savedefault title Debian GNU/Linux, kernel 2.6.18-4-486 (single-user mode) root (hd0,0) kernel /vmlinuz-2.6.18-4-486 root=/dev/sda3 ro single initrd /initrd.img-2.6.18-4-486 savedefault ### END DEBIAN AUTOMAGIC KERNELS LIST |
root (hd1,0) ссылается на /dev/sdb, который уже является частью RAID. После перезагрузки система попытается загрузиться с RAID; при неудаче — откатится к /dev/sda.
Обновление initramfs и копирование данных
Обновите initramfs, чтобы в него попали новые настройки и модули для RAID:
update-initramfs -uСкопируйте корень и /boot на соответствующие RAID-разделы (смонтированы в /mnt/md2 и /mnt/md0):
cp -dpRx / /mnt/md2cd /boot
cp -dpRx . /mnt/md0Флаги cp: -d сохраняет ссылки, -p сохраняет права/времена, -R рекурсивно, -x не переходить на другие файловые системы.
6 Подготовка GRUB (часть 1)
Установим загрузчик GRUB на второй HDD (/dev/sdb). Запустите grub-взаимодействие:
grubВ оболочке GRUB выполните последовательность команд (пример работы ниже):
root (hd0,0)Вы увидите сообщение о типе файловой системы:
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83Далее выполните установку на первый диск (в данном примере hd0):
setup (hd0)Пример вывода:
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/menu.lst"... succeeded
Done.
grub>Повторите для второго диска (hd1):
root (hd1,0)
setup (hd1)Завершите и выйдите:
quitПосле этого перезагрузите систему:
rebootЕсли всё настроено верно, система загрузится с RAID; если нет — сработает fallback и загрузка пройдёт с исходного диска.
Чек-лист перед перезагрузкой
- Убедитесь, что /etc/mdadm/mdadm.conf содержит записи ARRAY для всех md-устройств.
- /etc/fstab и /etc/mtab обновлены и ссылаются на /dev/mdX.
- Файлы скопированы: корневая файловая система на /mnt/md2, /boot на /mnt/md0.
- Выполнен update-initramfs -u.
- GRUB установлен на обоих дисках (hd0 и hd1), добавлен fallback.
- Есть доступ к консоли/серийному порту на случай проблем с загрузкой.
Критерии приёмки
- После перезагрузки система успешно загружается в обычном режиме.
- В выводе cat /proc/mdstat массивы находятся в состоянии [UU] (после синхронизации) либо хотя бы не сломаны.
- /boot и / корневой раздел смонтированы с устройств /dev/md0 и /dev/md2 соответственно.
- swap активен на /dev/md1.
План отката и действия при ошибке
- Если система не загружается, воспользоваться fallback в GRUB (он загрузит старую запись с /dev/sda).
- Через live/резервный носитель или режим восстановления смонтируйте оригинальные разделы и восстановите /etc/fstab и /boot/menu.lst из резервной копии.
- Если требуется вернуть прежнее состояние загрузчика, повторно выполните установку GRUB на /dev/sda и восстановите оригинальные записи.
Быстрые проверки после загрузки
- cat /proc/mdstat — проверить состояние md.
- mount | grep md — проверить, что / и /boot смонтированы с /dev/md2 и /dev/md0.
- swapon -s — проверить активный swap на /dev/md1.
- dmesg | grep md — посмотреть сообщения ядра по RAID.
Итог
Вы создали три RAID1-массива, подготовили файловые системы и swap, обновили конфигурации mdadm/fstab/mtab, скопировали систему на новые массивы, установили GRUB на оба диска и подготовили систему к загрузке с RAID. Если следовать чек-листу и критериям приёмки, риск простоев минимален.
Важно: не удаляйте исходные данные, пока не убедитесь, что загрузка и работа системы стабильны. Всегда имейте резервную копию и доступ к консоли на случай проблем с загрузкой.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента