Гид по технологиям

Тестирование и замена сбойного диска в RAID1

4 min read Системное администрирование Обновлено 30 Sep 2025
Замена сбойного диска в RAID1 — тест и восстановление
Замена сбойного диска в 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, хранящиеся на разделах массива.

Ссылки

Важно: выполняйте эти операции с привилегиями root и заранее имейте проверенные резервные копии данных.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

NFC в iPhone: как включить, платить и настраивать автоматизации
Мобильные устройства

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

Как ускорить iPhone — практическое руководство
Мобильные устройства

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

Как заблокировать приложения на iPhone
Мобильные устройства

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

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

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

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

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

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

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