
Замена нерабочего жесткого диска на RAID 1
В данной теме «Замена нерабочего жесткого диска на RAID 1» поговорим как легко можно заменить полетевший жесткий диск на вашем raid1 массиве (зеркало).
Чтобы посмотреть какой у вас установлен raid и работает ли он вообще, используйте:
# cat /proc/mdstat
У вас должно появится картинка, примерного содержания, я ее приведу ниже.
На рисунке видно что рейд состоит из 4-х разделов ( sdb1,sdb2,sdb3,sdb4) и он полностью рабочий ( работают оба диска- это видно по опции [UU]). У меня всего 4 объединенных массива на которых: md0,md1,md2,md3.
Предположим что у нас вышел из строя диск с меткой /dev/sdb, определить можно это когда мы видим [U_] или [_U] — это собственно означает что наш массив не синхронизирован. Покажу как выглядит нерабочий массив, на наглядном скриншоте у низу все хорошо видно.
Все изменения мы будем вносить в программный raid1 с нашей рабочей ОС ( на живую так сказать). Если вы увидели у себя нечто подобное как на рисунке выше, то пришло время заменять диск.
Убираем нерабочий ХДД из системы, а можно это сделать выполнив команды для каждого раздела по отдельности:
# mdadm /dev/md0 -r /dev/sdb1 # mdadm /dev/md1 -r /dev/sdb2 # mdadm /dev/md2 -r /dev/sdb3 # mdadm /dev/md3 -r /dev/sdb4
Не всегда может выполнить эти команды ( бывают разные случаи), если появились ошибки не расстраивайтесь, выполняйте все как написано!
Чтобы показать все диски у вашем входящем массиве (допустим в md0):
# mdadm --detail /dev/md0
Есть случаи что жёсткий диск бывает повреждённый частично, например, у него показывается статус [U_] и это только у массива /dev/md0, а все остальные массивы имеют статус [UU] — то есть они работают, то выполните команду для этого случая:
# mdadm /dev/md1 -r /dev/sdb2
Нечего не выйдет, т.к устройство /dev/md1 в норме. Исправить можно командой:
# mdadm --manage /dev/md1 --fail /dev/sdb2
Это даст возможность поменять статус RAID-а на [U_]. Сейчас мы подготовим новый жёсткий диск для нашего рейда1 — это нужно сделать для того что 2 HDD в массиве должны содержать одинаковые разбиения, т.к существует 2 основных типа таблиц для раздела(ов) (GPT и MBR), то нужно использовать нужные программы для копирования этих таблиц разделов между собой.
GPT используют для дисков у которых более 2ТБ (для примера, EX4 и EX6).
Если Вы используете HDD с GPT
На HDD хранится пару копий таблиц разделов GUID (GPT), по этому для того чтобы можно отредактировать их есть программы, которые поддерживают GPT, например такие как parted или такие как GPT fdisk. Программа sgdisk из GPT fdisk (она имеется в Rescue-системе и готова к использованию) которая позволяет простым и удобным способом скопировать вашу таблицу разделов на новый подключенный жёсткий диск. Для примера нам нужно скопировать все таблицы разделов с диска sda на диск sdb, то нужно выполнить:
# sgdisk -R /dev/sdb /dev/sda
Далее, ХДД нужно присвоить новый и случайный UUID следующей командой:
# sgdisk -G /dev/sdb
После этого HDD можно добавить в массив, а в завершении необходимо установить на него загрузчик.
Если Вы используете жёсткий ХДД с MBR
Любую таблицу разделов можно просто скопировать на новый диск с помощью утилиты sfdisk:
# sfdisk -d /dev/sda | sfdisk /dev/sdb
собственно /dev/sda — это источник, а /dev/sdb — ХДД (новый) назначения.
(Опционально): если разделы не видны в системе, то таблица разделов должна быть перечитана ядром:
# sfdisk -R /dev/sdb
Конечно же, разделы можно создать вручную с помощью fdisk, cfdisk или других инструментов. Разделы должны иметь тип Linux raid autodetect (ID fd). Сейчас уже можно добавить новый жесткий диск, как только вы удалили повреждённый диск, можно добавлять новый. Проделать это нужно для каждого раздела:
# mdadm /dev/md0 -a /dev/sdb1 # mdadm /dev/md1 -a /dev/sdb2 # mdadm /dev/md2 -a /dev/sdb3 # mdadm /dev/md3 -a /dev/sdb4
Только созданный новый HDD уже часть массива, и теперь массив будет выполнять синхронизацию.Данная процедура займет определенное время ( все зависит от объема ваших дисков). Наблюдать за происходящим можно выполнив команду:
# cat /proc/mdstat
Собственно последним этапом будет установка загрузчика, если вы производите починку на живую ( с под загруженной ОС), то достаточно запустить grub-install на новом жёстком диске, например можно это сделать следующим образом (если юзаете GRUB2,):
# grub-install /dev/sdb
Если используете Grub1 ( это старая версия grub) то нужно выполнить немного больше шагов.
- Нужно будет запустить консоль grub: grub
- Затем нужно будет указать раздел, на котором лежит /boot: root (hd0,1) (/dev/sda2 = (hd0,1)),
- затем нужно будет записать загрузчик в MBR выполнив: setup (hd0)
- Чтобы сохранить загрузчик на втором жёстком диске надо:
- Указать grub чтобы переключиться на sdb: device (hd0) /dev/sdb
- Выполняем потом шаги 2 и 3
- Выходим из консоли grub: quit
Замена нерабочего жесткого диска на RAID 1 завершена! Спасибо что читаете http://linux-notes.org/