Диски в рейдах время от времени выходят из строя, и их конечно же приходится заменять. Короткая инструкция по замене дисков в программном рейде, на примере RAID 1. Допустим что у нас в сервере установлено два диска и на них следующим образом собран рейд:
/dev/sda1 /dev/sdb1 - /dev/md0 /dev/sda2 /dev/sdb2 - /dev/md1
Диск /dev/sdb выходит из строя и мы будем его заменять. Для начала, последовательно удалим из рейда партации проблемного диска:
# mdadm --manage /dev/md0 --fail /dev/sdb1 # mdadm --manage /dev/md0 --remove /dev/sdb1 # mdadm --manage /dev/md1 --fail /dev/sdb2 # mdadm --manage /dev/md1 --remove /dev/sdb2
Заглядываем в /proc/mdstat и убеждаемся что партации извлечены [U_]:
md0 : active raid1 sda1[0] 24418688 blocks [2/1] [U_] md1 : active raid1 sda2[0] 24418688 blocks [2/1] [U_]
Далее, если сервер поддерживает горячую замену — выдёргиваем нужный диск и ставим новый. Если горячей замены сервер не поддерживает, выключаем его, заменяем диск и включаем обратно. При замене не забываем, что по объёму диск должен быть идентичен тому что был установлен ранее. Загрузив сервер, копируем разметку с рабочего диска на наш новый. Сделать это можно с помощью gdisk, либо с помощью sfdisk (использовать нужно что-то одно!):
# sfdisk -d /dev/sda | sfdisk /dev/sdb
Или:
# sgdisk -R /dev/sdb /dev/sda # sgdisk -G /dev/sdb
Убеждаемся что разбивка на старом и новом диске идентична, и добавляем партации нового диска в рейд:
# mdadm --manage /dev/md0 --add /dev/sdb1 # mdadm --manage /dev/md1 --add /dev/sdb2
Проверяем /proc/mdstat, видим что синхронизация данных уже началась:
md0 : active raid1 sda1[0] sdb1[1] 24418688 blocks [2/1] [U_] [=>...................] recovery = 19.9% (9692672/48837376) finish=2.7min speed=197535K/sec md1 : active raid1 sda2[0] sdb2[1] 24418688 blocks [2/1] [U_] [=>...................] recovery = 3.2% (1572096/48837376) finish=1.8min speed=186512K/sec
И отправляемся пить чай, в ожидании завершения процесса. В ходе синхронизации возможно повышение нагрузки на дисковую подсистему, так что лучше всего в это время минимизировать какие-либо ресурсоёмкие операции.
One thought on “Замена диска в RAID 1/10”