Замена сбойного диска в программном RAID массиве

Исходные данные:

В программном рейде поврежден один из дисков. С помощью mdadm собран программный RAID1(зеркало) /dev/md2. Данный раздел рейда собран из 2-х разделов

  • /dev/sdс1 
  • /dev/sdd1

Задача данного проекта : заменить сбойный диск /dev/sdс.

Решение

Прежде всего, смотрим диагностику:

​root@unix:/# cat /proc/mdstat

или

​root@unix:/# mdadm --detail /dev/md0

Если вместо [UU] видим [U_], то дело плохо, целостность одного из дисков нарушена - нужно менять диск.

Для автоматического слежения и мониторинга дисков и массивов можно и нужно использовать возможности пакетов mdadm (monitor mode) и smartmontools (технология S.M.A.R.T.).

1. Помечаем раздел как сбойный

root@unix:/# mdadm --manage /dev/md0 --fail /dev/sdc1

2. Отключаем раздел (удаляем из RAID1)

root@unix:/# mdadm --manage /dev/md0 --remove /dev/sdc1

3. Выключаем машину, меняем диск.
4. Создаем через cfdisk или fdisk идентичные разделы, или c помощью sfdisk автоматически копируем структуру разделов первого диска /dev/sda

root@unix:/# sfdisk -d /dev/sdd | sfdisk /dev/sdc

Этим способом можно пользоваться, поскольку в нашем примере «зеркальный» RAID1. При других уровнях (raid level), нужно разбить диск на раздел(ы) и пометить его(их) типом ФС «Linux raid autodetect».

5. Добавляем раздел в RAID1 массив

root@unix:/# mdadm --manage /dev/md0 --add /dev/sdc1

6. Ждем синхронизации массива

root@unix:/# mdadm --manage /dev/md0 --add /dev/sdc1
root@unix:/# mdadm --wait /dev/md0