Архив

Публикации с меткой ‘mdadm’

Mdadm полезные команды

28 Июнь 2012

Стащил с http://linux.mkrovlya.ru/book/%D0%BA%D0%BE%D1%80%D0%BE%D1%82%D0%BA%D0%BE-%D0%BE-soft-raid

Подборка заметок о Soft RAID с opennet.ru [1].

Добавление программного 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

admin Linux, Без рубрики