Программный (Soft RAID) RAID 1 на LINUX

Добавление программного RAID 1 раздела на Linux сервер.

Имеем два дополнительных диска:
/dev/hdb (/dev/hdb1 — 40 GB)
/dev/hdc (/dev/hdc1 — 40 GB)

Создаем RAID 1:
mdadm —create /dev/md0 —level=1 —raid-devices=2 /dev/hdb1 /dev/hdc1

Смотрим статус:
cat /proc/mdstat

Создаем файловую систему на RAID разделе:
mkfs.ext3 /dev/md0

Настраиваем монтирование при загрузке (в /etc/fstab):
/dev/md0 /data2 ext3 defaults 0 0
Как заменить сбойный диск в программном RAID1 в Linux
Программный RAID1 /dev/md0 включает в себя разделы /dev/sda1 и /dev/sdb1.
Задача заменить диск /dev/sdb.

Диагностику смотрим через (если вместо [UU] видим [U_], то целостность одного из дисков нарушена):
cat /proc/mdstat

Помечаем раздел как сбойный:
mdadm —manage /dev/md0 —fail /dev/sdb1

Отключаем раздел (удаляем из RAID1)
mdadm —manage /dev/md0 —remove /dev/sdb1

Выключаем машину, меняем диск.

Создаем через fdisk идентичные разделы, или копируем структуру первого диска /dev/sda:
sfdisk -d /dev/sda | sfdisk /dev/sdb

Добавляем раздел в RAID1 массив:
mdadm —manage /dev/md0 —add /dev/sdb1
Как перенеси существующую Linux систему на RAID1 добавив второй диск

/dev/sda — диск с установленной ОС
/dev/sdb — новый диск для зеркала

Клонируем информацию о разделах на новый диск:
sfdisk -d /dev/sda | sfdisk /dev/sdb

Создаем RAID1, но первый диск пока не трогаем, пометив его отсутствующим:
mdadm —create /dev/md0 —level 1 —raid-devices=2 missing /dev/sdb1
mdadm —create /dev/md1 —level 1 —raid-devices=2 missing /dev/sdb2
и т.д. для всех существующих разделов.

Создаем ФС:
mkfs.ext3 /dev/md0
mkfs.ext3 /dev/md1

Монтируем и копируем данные в RAID:
mount /dev/md0 /mnt
cp -dpRx / /mnt
mount /dev/md1 /mnt/var
cp -dpRx /var /mnt

Меняем устройство для загрузки, для Grub в /mnt/boot/grub/menu.lst:
title Custom Kernel 2.6.11.7
root (hd0,0)
kernel /boot/vmlinuz-2.6.11.7 root=/dev/md0 md=0,/dev/sda1,/dev/sdb1 ro
boot

title Custom Kernel 2.6.11.7 (RAID Recovery)
root (hd1,0)
kernel /boot/vmlinuz-2.6.11.7 root=/dev/md0 md=0,/dev/sdb1 ro
boot

Устанавливаем Grub на второй диск:
grub-install /dev/sda

Если при установке выдается ошибка:
/dev/sda does not have any corresponding BIOS drive.

Нужно выполнить
grub-install —recheck /dev/sda

Или установить вручную:
grub
grub: device (hd0) /dev/sdb
grub: root (hd0,0)
grub: setup (hd0)
grub: quit

cp -dp /mnt/etc/fstab /etc/fstab
cp -dp /mnt/boot/grub/menu.lst /boot/grub

Перезагружаемся (второй диск) и проверяем все ли работает, если да — подключаем старый диск в RAID:

mdadm —add /dev/md0 /dev/sda1
mdadm —add /dev/md1 /dev/sda2

cat /proc/mdstat
Мониторинг и восстановление программного RAID в Linux

Управление программными RAID1-массивами в RHEL

Мониторинг состояния

Информация о всех RAID-массивах:
# more /proc/mdstat
или
# cat /proc/mdstat
или
# watch -n .1 cat /proc/mdstat

Информация о конкретном дисковом разделе:
# mdadm -E /dev/sd<1-10>
например:
# mdadm -E /dev/sdb2

Восстановление функционирования

Восстановление функционирования (rebuild) разделов диска по одному после
однократного «несмертельного» сбоя:
# mdadm -a /dev/md<0-6> /dev/sd<1-10>
например:
# mdadm -a /dev/md0 /dev/sdb1
Нужно быть аккуратным с номерами разделов
В случае ошибки, удалить компонент из RAID командой:
# mdadm -r /dev/md0 /dev/sdb1
получается не всегда — устройство может быть занято.

Замена диска

1. Выключить компьютер и заменить диск

2. Включить компьютер и определить имеющиеся на обоих дисках разделы:
# fdisk /dev/sd -l

3. С помощью fdisk создать на новом диске разделы, идентичные оригиналу
Необходимо пометить нужный раздел нового диска (sda1 или sdb1) как загрузочный
до включения в зеркало.
Swap-разделы не подлежат зеркалированию в программном RAID

4. Выполнить Мониторинг состояния и Восстановление функционирования

Настройка оповещения

Мониторинг выполняется с помощью crond ежечасно.
В папку /etc/cron.haurly помещен файл mdRAIDmon, содержащий команду:
# mdadm —monitor —scan -1 —mail=postmaster@domain.name.ru

Для проверки рассылки сообщения добавляется ключ —test:
# mdadm —monitor —scan -1 —mail=postmaster@domain.name.ru —test

Помещая файл задания в папку, необходимо установить права доступа на выполнение
Если нужно чаще, самое простое, добавьте в /etc/crontab строку, используя нотацию с «/», например:
*/5 * * * * root run-parts /etc/cron.my5min

Конечно, можно попробовать и другие варианты планирования заданий с atd или batch.

Создайте папку /etc/cron.my5min и поместите туда файл mdRAIDmon
C имитацией отказа диска мне было проще — сервер SR1425BK1 — с корзиной HotSwap


Понравилась статья? Поделись с остальными.

Комментарии закрыты.