Возникла вполне рядовая ситуация – на сервере под управлением CentOS вылетел один из жестких дисков, образующих массив RAID-1.
Решил задокументировать порядок действий после вставки физической замены в сервер.
Исходное состояние:
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb2[1] 1052160 blocks [2/1] [_U] md2 : active raid1 sdb3[1] 237898432 blocks [2/1] [_U] md1 : active raid1 sdb1[1] 5245120 blocks [2/1] [_U] unused devices:
Т.е. sdb – целый, sda-замена для вылетевшего.
Копируем таблицу разделов:
# sfdisk -d /dev/sdb | sfdisk /dev/sda Проверяется, чтобы сейчас никто не использовал этот диск... ОК Диск /dev/sda: 30401 цилиндров, 255 головок, 63 секторов/дорожку Старая ситуация: Единицы = цилиндры по 8225280 байт, блоки по 1024 байт, начиная с 0 Устр-во Загр Нач Конец #цил #блоки Id Система /dev/sda1 * 0+ 30400 30401- 244196001 a5 FreeBSD /dev/sda2 0 - 0 0 0 Пустой /dev/sda3 0 - 0 0 0 Пустой /dev/sda4 0 - 0 0 0 Пустой /dev/sda5 130+ 30400 30271- 243147425 /dev/sda6 0+ 130- 131- 1048576 Новая ситуация: Единицы = секторы по 512 байт, начиная с 0 Устр-во Загр Начало Конец #секторы Id Система /dev/sda1 * 63 10490444 10490382 fd Автоопределение Linux raid /dev/sda2 10490445 12594959 2104515 fd Автоопределение Linux raid /dev/sda3 12594960 488392064 475797105 fd Автоопределение Linux raid /dev/sda4 0 - 0 0 Пустой Новая таблица разделов успешно записана Перечитывается таблица разделов... Если вы создали или изменили раздел DOS, скажем, /dev/foo7, используйте затем dd(1), чтобы обнулить первые 512 байт: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (См. fdisk(8).)
Пока не забыли, ставим загрузчик:
# grub-install /dev/sda Installation finished. No error reported. This is the contents of the device map /boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. # this device map was generated by anaconda (hd0) /dev/sda (hd1) /dev/sdb
Добавляем разделы к массиву:
# mdadm /dev/md0 -a /dev/sda2 mdadm: added /dev/sda2 # mdadm /dev/md1 -a /dev/sda1 mdadm: added /dev/sda1 # mdadm /dev/md2 -a /dev/sda3 mdadm: added /dev/sda3
Смотрим на пересборку массива:
# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sda2[0] sdb2[1] 1052160 blocks [2/2] [UU] md2 : active raid1 sda3[2] sdb3[1] 237898432 blocks [2/1] [_U] resync=DELAYED md1 : active raid1 sda1[2] sdb1[1] 5245120 blocks [2/1] [_U] [=================>...] recovery = 87.2% (4576768/5245120) finish=0.2min speed=48689K/sec unused devices: