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

Замена сбойного диска в RAID1 и тестирование восстановления

3 min read Системное администрирование Обновлено 09 Oct 2025
RAID1: замена диска и проверка
RAID1: замена диска и проверка

Кратко

Краткое руководство по симуляции сбоя диска в RAID1, замене диска и проверке восстановления массива. Содержит точные команды, выводы команд и контрольные чек‑пойнты для администратора.

Что делает эта инструкция

  • Показывает, как смоделировать отказ диска (/dev/sda или /dev/sdb).
  • Описывает восстановление: копирование таблицы разделов, очистку меток RAID, добавление нового диска и синхронизацию.
  • Даёт проверки состояния и установку загрузчика GRUB на оба диска.

Важно: выполняйте операции с правами root и убедитесь, что у вас есть резервные копии критичных данных перед тестами.

Шаг 1 — Симуляция сбоя диска

Не важно, какой диск вы пометите как сбойный — /dev/sda или /dev/sdb. В примере предполагается, что отказал /dev/sdb.

Можно физически извлечь диск после выключения системы или мягко пометить его как отказавший:

mdadm --manage /dev/md0 --fail /dev/sdb1  
mdadm --manage /dev/md1 --fail /dev/sdb2  
mdadm --manage /dev/md2 --fail /dev/sdb3

Затем удалите из массива:

mdadm --manage /dev/md0 --remove /dev/sdb1  
mdadm --manage /dev/md1 --remove /dev/sdb2  
mdadm --manage /dev/md2 --remove /dev/sdb3

Выключите систему, если планируете физическую замену диска:

shutdown -h now

После установки нового диска загрузите систему — система должна стартовать нормально.

Шаг 2 — Проверка состояния массива

Проверьте текущее состояние:

cat /proc/mdstat

Ожидаемый пример вывода при деградации:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1] [raid6] [raid5] [raid4]  
md0 : active raid1 sda1[0]  
      104320 blocks [2/1] [U_]  
  
md1 : active raid1 sda2[0]  
      513984 blocks [2/1] [U_]  
  
md2 : active raid1 sda3[0]  
      4618560 blocks [2/1] [U_]  
  
unused devices:   
[root@server1 ~]#

Проверьте таблицы разделов:

fdisk -l

(В исходном примере показаны диски /dev/sda и /dev/sdb, где /dev/sdb ещё не содержит таблицы разделов.)

Шаг 3 — Копирование таблицы разделов

Скопируйте таблицу разделов с рабочего диска на новый диск:

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

Если появится ошибка с сигнатурой, попробуйте принудительный режим:

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

Пример вывода успешной записи таблицы:

[root@server1 ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb  
Checking that no-one is using this disk right now ...  
OK  
  
Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track  
  
sfdisk: ERROR: sector 0 does not have an msdos signature  
 /dev/sdb: unrecognized partition table type  
Old situation:  
No partitions found  
New situation:  
Units = sectors of 512 bytes, counting from 0  
  
   Device Boot    Start       End   #sectors  Id  System  
/dev/sdb1   *        63    208844     208782  fd  Linux raid autodetect  
/dev/sdb2        208845   1237004    1028160  fd  Linux raid autodetect  
/dev/sdb3       1237005  10474379    9237375  fd  Linux raid autodetect  
/dev/sdb4             0         -          0   0  Empty  
Successfully wrote the new partition table  
  
Re-reading the partition table ...  
  
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)  
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1  
(See fdisk(8).)  
[root@server1 ~]#

Шаг 4 — Очистка меток старого RAID и добавление нового диска

Удалите остатки старых superblock’ов на новом диске:

mdadm --zero-superblock /dev/sdb1  
mdadm --zero-superblock /dev/sdb2  
mdadm --zero-superblock /dev/sdb3

Добавьте разделы нового диска в массивы:

mdadm -a /dev/md0 /dev/sdb1  
mdadm -a /dev/md1 /dev/sdb2  
mdadm -a /dev/md2 /dev/sdb3

Проверка статуса восстановления:

cat /proc/mdstat

Ожидаемый вывод во время синхронизации:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1] [raid6] [raid5] [raid4]  
md0 : active raid1 sdb1[1] sda1[0]  
      104320 blocks [2/2] [UU]  
  
md1 : active raid1 sdb2[1] sda2[0]  
      513984 blocks [2/2] [UU]  
  
md2 : active raid1 sdb3[2] sda3[0]  
      4618560 blocks [2/1] [U_]  
      [===>.................]  recovery = 15.4% (715584/4618560) finish=4.9min speed=13222K/sec  
  
unused devices:   
[root@server1 ~]#

Подождите, пока восстановление завершится; затем /proc/mdstat покажет все устройства [UU].

Шаг 5 — Установка загрузчика GRUB на оба диска

Запустите grub и установите загрузчик на оба HDD:

grub

В интерактивной сессии grub выполните:

root (hd0,0)  
setup (hd0)  
root (hd1,0)  
setup (hd1)  
quit

После этого система загрузится с любого диска, если другой выйдет из строя.

Быстрая проверка и отладка

  • Если /proc/mdstat показывает [U_], значит один из членов отсутствует — проверьте sfdisk, udev и dmesg на предмет ошибок.
  • Убедитесь, что partition UUID и метки совпадают, особенно если используются конфигурации с UUID в /etc/fstab.
  • Если sfdisk жалуется на сигнатуру, –force обычно помогает, но внимательно проверьте новую таблицу перед применением.

Чек‑лист для администратора

  • Сделать резервную копию важных данных.
  • Смоделировать отказ (mdadm –fail).
  • Проверить /proc/mdstat и fdisk -l.
  • Копировать таблицу разделов: sfdisk -d /dev/sda | sfdisk /dev/sdb.
  • mdadm –zero-superblock для новых разделов.
  • mdadm -a для добавления в массив.
  • Дождаться завершения синхронизации.
  • Установить GRUB на оба диска.

Критерии приёмки

  • Все md устройства в /proc/mdstat имеют статус [UU].
  • Загрузчик установлен на обоих дисках; при отключении одного диск будет загружать систему.
  • Нет ошибок при чтении таблиц разделов и при добавлении членов массива.

Краткое глоссарий (1‑строчно)

  • mdadm — утилита для управления программными RAID в Linux.
  • sfdisk — утилита для работы с таблицами разделов (скриптовая).
  • superblock — метаданные RAID, хранящиеся в начале раздела.

Когда этот подход не подходит

  • Если используется аппаратный RAID-контроллер — управление делается через контроллер, а не mdadm.
  • Если диски имеют разные размеры/структуры разделов — простая копия sfdisk может привести к проблемам; проверьте совместимость.

Ссылки

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

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

Исправить задержку камеры на Android
Мобильные советы

Исправить задержку камеры на Android

Как сделать удалённые файлы невосстановимыми
Конфиденциальность

Как сделать удалённые файлы невосстановимыми

Настройка MySQL-слейва через SSL
Базы данных

Настройка MySQL-слейва через SSL

Удаление Explorer Patcher в Windows 11
Windows

Удаление Explorer Patcher в Windows 11

Потеря пакетов в Sea of Thieves — как исправить
Сеть

Потеря пакетов в Sea of Thieves — как исправить

Как исправить ошибку Hulu RUNUNK13
Стриминг

Как исправить ошибку Hulu RUNUNK13