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

Ситуация (для примера): с помощью mdadm собран программный RAID1(зеркало) /dev/md0 из 2-х разделов /dev/sda1 и /dev/sdb1.

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

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

cat /proc/mdstat

или

mdadm --detail /dev/md0

Если вместо [UU] видим [U_], то дело плохо, целостность одного из дисков нарушена — нужно менять диск.Для автоматического слежения и мониторинга дисков и массивов можно и нужно использовать возможности пакетов mdadm (monitor mode) и smartmontools (технология S.M.A.R.T.).

-1- Прежде всего, делаем так, чтобы с устройством никто не работал — см. п.1,2 Удаление программного (software) массива RAID.

-2- Помечаем раздел как сбойный:

mdadm --manage /dev/md0 --fail /dev/sdb1

-3- Отключаем раздел (удаляем из RAID1):

mdadm --manage /dev/md0 --remove /dev/sdb1

-4- Выключаем машину, меняем диск.

-5- Создаем через cfdisk или fdisk идентичные разделы, или c помощью sfdisk автоматически копируем структуру разделов первого диска /dev/sda:

sfdisk -d /dev/sda | sfdisk /dev/sdb

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

-6- Добавляем раздел в RAID1 массив:

mdadm --manage /dev/md0 --add /dev/sdb1

-7- Ждем синхронизации массива:

mdadm --wait /dev/md0