среда, 18 сентября 2013 г.

Замена загнувшегося HDD

Очередной косяк с винтами у моего любимого хостера.
Достаю из черновиков старую статью и публикую краткий мануал по действиям в этой ситуации.
Мне повезло и в RAID 1 Массиве загнулся только 1 винт из 2х. Такое случается, не смотря на обильное наличие практик нормальной работы обоих винтов и случаев парной смерти .

Краткий мануал действий на следующий раз.
Что имеем изначально 2 диска по 3Tb, GPT, RAID 1, debian, grub2, остальное вроде не важно.
Что случилось - /dev/sda стал совсем неживым
smartctl --all /dev/sda ругается, что ничего не может прочитать с диска
cat /proc/mdstat показывает что в рейде живых разделов из /dev/sdaX нет

Что нужно делать
1) проверить целостность бекапов на внешнем сервере (если они есть, если нет - задуматься над необходимостью таковых, пока не поздно)
2) отцепить от рейда сбойный диск
на случай если еще не помечен как сбойный:
# mdadm --manage /dev/mdY --fail /dev/sdaX 
собственно отцепляем
# mdadm /dev/mdY -r /dev/sdaX
естественно операция проводится столько раз сколько у нас разделов 
3) определяем серийник умершего или живого диска
smartctl --all /dev/sda |grep Serial
и заполняем заявку в саппорт на замену диска
Я дополнительно попросил проверить возможность загрузки с оставшегося диска и установить порядок загрузки дисков, на что мне любезно ответили согласием и все сделали согласно моей просьбе.
4) после замены диска биос успешно пропустил загрузку с нового диска и прогрузился со старого обозначив его как sda (но это я так понимаю сказывается умность udev'а)
5) клонируем GPT. можно и одной строкой, но я решил немного подстраховаться и сохранить себе ее еще и в файл
# sgdisk --backup=gpttable /dev/sda
# sgdisk --load-backup=gpttable /dev/sdb
получил склонированную таблицу и ее копию в файле
Поменяем UUID новому диску
# sgdisk -G /dev/sdb
Если разделы не увидились, попросим ядро перитать таблицу
# sfdisk -R /dev/sdb
Вернем разделы в рэйд
# mdadm /dev/mdY -a /dev/sdbX
Посмотрим за процессом
#watch cat /proc/mdstat
Дождавшись окончания процесса, принимаемся за загрузчик
Обновим таблицу устройств
# grub-mkdevicemap
попросим груба на новый диск
# grub-install /dev/sdb

На этом все, можно дышать, можно отсыпаться. А можно ребутнуть машину и проверить, что все грузится правильно.