Тестирование и замена сбойного диска в RAID1
1. Цель и краткое описание
Этот раздел описывает, как корректно протестировать поведение массива RAID1 при отказе диска и как заменить сбойный диск на рабочем сервере. Подход применим к mdadm на Linux. Определения: RAID1 — зеркалирование данных между двумя дисками; mdadm — утилита управления программным RAID.
2. Симуляция отказа диска
Неважно, какой диск пометить как упавший — /dev/sda или /dev/sdb. В примере предполагается отказ /dev/sdb.
Чтобы симулировать отказ, можно либо физически выключить систему и удалить диск, либо (мягко) пометить разделы как упавшие:
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
Затем удаляем их из массива:
mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
И выключаем систему, если вы делали физическую замену:
shutdown -h now
Если вы физически меняете устройства, вставьте новый HDD как /dev/sdb (или переместите устройства так, чтобы новый диск занял место вышедшего из строя) и загрузите систему. Система должна стартовать в деградированном состоянии.
3. Проверка состояния массива
После загрузки проверьте статус массива:
cat /proc/mdstat
Пример вывода:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0]
200704 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
5036288 blocks [2/1] [U_]
unused devices:
[root@server1 ~]#
Этот вывод показывает, что один из дисков отсутствует и массив деградирован ([U_]).
Также полезно посмотреть таблицу разделов:
fdisk -l
(В примере будет видно, что /dev/sdb не содержит таблицы разделов.)
4. Копирование таблицы разделов на новый диск
Скопируйте таблицу разделов с рабочего диска (/dev/sda) на новый (/dev/sdb):
sfdisk -d /dev/sda | sfdisk /dev/sdb
Если появится ошибка про подпись MS-DOS, можно попробовать с опцией –force:
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Пример успешного результата показывает, что таблица разделов записана и устройство готово.
Важное примечание: команды работают с таблицами разделов; убедитесь, что у вас есть резервные копии важной информации перед изменением таблиц.
5. Очистка старых суперблоков и добавление в массив
Перед добавлением нового раздела в RAID очистите метаданные предыдущего массива:
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
Затем добавьте разделы в соответствующие md устройства:
mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
После этого снова проверьте статус:
cat /proc/mdstat
Вы увидите, что один из массивов может быть в процессе восстановления (recovery) с индикатором прогресса. Пример:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
200704 blocks [2/2] [UU]
md1 : active raid1 sdb2[2] sda2[0]
5036288 blocks [2/1] [U_]
[=====>...............] recovery = 29.8% (1502656/5036288) finish=18.8min speed=3116K/sec
unused devices:
[root@server1 ~]#
6. Ожидание завершения синхронизации
Дождитесь, пока восстановление полностью закончится. Проверяйте прогресс командой:
cat /proc/mdstat
Когда оба массива покажут [UU], зеркалирование восстановлено.
7. Установка загрузчика на оба диска
Чтобы обеспечить возможность загрузки при выходе одного из дисков, установите GRUB на оба физических диска. В интерактивной оболочке grub выполните:
grub
Далее внутри GRUB (команды в примере):
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
После этого сервер будет загружаться с любого из дисков.
8. Итог
Вы успешно заменили сбойный диск в RAID1: смоделировали отказ, перенесли таблицу разделов, очистили старые метаданные, добавили новый диск в массив и дождались синхронизации. Установка GRUB на оба диска завершает процесс восстановления загрузоспособности.
Критерии приёмки
- Массив показывает состояние [UU] для всех md устройств.
- Команда mount / проверяет, что файловая система доступна и целостна.
- GRUB установлен на обоих физических дисках; тест загрузки с каждого диска возможен.
Чек-лист оператора
- Сделать резервную копию важных данных перед началом.
- Отметить, какой диск считается «рабочим» и какой «новым».
- Симулировать отказ и подтвердить деградацию через /proc/mdstat.
- Скопировать таблицу разделов sfdisk.
- Запустить mdadm –zero-superblock на новых разделах.
- Добавить разделы в массив и дождаться синхронизации.
- Установить GRUB на оба диска.
- Тест загрузки (по возможности).
Когда этот метод не подходит
- Если массив состоит из >2 дисков и используется другая топология (RAID5/6) — сценарий восстановления отличается.
- Если диски имеют различную разметку или размер — копирование sfdisk может привести к несоответствиям.
- При аппаратных RAID-контроллерах операции выполняются через firmware/контроллер, а не через mdadm.
Альтернативные подходы
- Горячая замена (hot-swap) физического диска без остановки сервера, если корпус и контроллер это поддерживают.
- Использование образов и резервных копий для восстановления данных на новом диске вместо зеркалирования.
- Восстановление с помощью lvm snapshot + восстановление на новый диск, если применимо.
Полезные советы и подводные камни
- Не удаляйте и не перезаписывайте разделы без проверки: sfdisk с –force изменяет таблицу.
- Убедитесь, что партиции помечены как Linux raid autodetect (id fd) для совместимости.
- GRUB может требовать дополнительных действий на разных дистрибутивах (grub-install вместо setup).
- Проверяйте скорость восстановления и нагрузку на диск в часы низкой нагрузки, если это возможно.
Глоссарий (одно предложение)
- mdadm — утилита для управления программными RAID в Linux.
- RAID1 — зеркалирование данных между двумя дисками для отказоустойчивости.
- sfdisk — инструмент для работы с таблицами разделов.
- superblock mdadm — метаданные RAID, хранящиеся на разделах массива.
Ссылки
- The Software-RAID Howto: http://tldp.org/HOWTO/Software-RAID-HOWTO.html
- Fedora: http://fedoraproject.org
Важно: выполняйте эти операции с привилегиями root и заранее имейте проверенные резервные копии данных.
Похожие материалы

NFC в iPhone: как включить, платить и настраивать автоматизации

Как ускорить iPhone — практическое руководство

Как заблокировать приложения на iPhone

Как посмотреть понравившиеся публикации в Instagram

Как выбрать мини‑ПК: руководство по ключевым критериям
