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

Замена отказавшего диска в RAID1 — тестирование и восстановление

• 4 min read • Серверы • Обновлено 23 Nov 2025
RAID1: замена диска и тестирование
RAID1: замена диска и тестирование

Краткое объяснение

RAID1 — зеркальный массив: данные хранятся одновременно на двух дисках. Если один диск выходит из строя, массив остаётся доступным, но деградированным. Цель этой инструкции — безопасно заменить отказавший диск и восстановить зеркалирование.

Важно: команды нужно запускать от root. Термины: mdadm — инструмент для управления программными RAID в Linux; sfdisk — копирование таблиц разделов.

1. Моделирование отказа диска

В примере предполагается, что отказал /dev/sdb. Это несущественно — при необходимости замените диски по именам.

Вы можете физически вынуть диск после выключения, либо «мягко» пометить его как упавший и удалить:

mdadm --manage /dev/md0 --fail /dev/sdb1  
mdadm --manage /dev/md1 --fail /dev/sdb5
mdadm --manage /dev/md0 --remove /dev/sdb1  
mdadm --manage /dev/md1 --remove /dev/sdb5

Если вы выключаете систему для замены, используйте:

shutdown -h now

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

2. Проверка состояния массива

Сразу после загрузки проверьте статус:

cat /proc/mdstat

Ожидаемый пример вывода (деградированный массив):

server1:~# cat /proc/mdstat  
Personalities : [raid1]  
md1 : active raid1 sda5[0]  
      4988032 blocks [2/1] [U_]  
  
md0 : active raid1 sda1[0]  
      248896 blocks [2/1] [U_]  
  
unused devices:   
server1:~#

Также удобно посмотреть таблицу дисков:

fdisk -l

Если новый диск не содержит таблицы разделов, его вывод покажет сообщение вроде “Disk /dev/sdb doesn’t contain a valid partition table”.

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

Скопируйте таблицу разделов с рабочего диска (/dev/sda) на новый (/dev/sdb):

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

Если возникнет ошибка, попробуйте опцию –force:

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

Пример вывода показывает успешную запись новой таблицы разделов и рекомендации по обнулению первых 512 байт для новых логических разделов.

Примечание: сообщение “sector 0 does not have an msdos signature” обычно появляется для пустых дисков и считать его ошибкой необязательно, если в конце виден «Successfully wrote the new partition table».

4. Очистка остатков RAID и добавление диска в массив

Удалите старые суперблоки RAID на новом диске:

mdadm --zero-superblock /dev/sdb1  
mdadm --zero-superblock /dev/sdb5

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

mdadm -a /dev/md0 /dev/sdb1  
mdadm -a /dev/md1 /dev/sdb5

Проверьте прогресс синхронизации:

cat /proc/mdstat

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

server1:~# cat /proc/mdstat  
Personalities : [raid1]  
md1 : active raid1 sdb5[2] sda5[0]  
      4988032 blocks [2/1] [U_]  
      [======>..............]  recovery = 31.1% (1556160/4988032) finish=0.6min speed=81903K/sec  
  
md0 : active raid1 sdb1[1] sda1[0]  
      248896 blocks [2/2] [UU]  
  
unused devices:   
server1:~#

Дождитесь состояния [2/2] и метки [UU]:

cat /proc/mdstat

Вы увидите оба массива полностью синхронизированными.

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

Чтобы система могла загружаться при выходе из строя любого диска, установите GRUB на оба диска. Запустите grub и выполните команды (интерактивно):

grub

Внутри GRUB выполните:

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

Важно: номера hd0/hd1 зависят от порядка загрузки BIOS/UEFI. Проверьте соответствие устройств перед установкой.

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

  • cat /proc/mdstat показывает [UU] для всех RAID1-массивов.
  • Система загружается с любого из дисков после отключения другого.
  • Разделы на новом диске совпадают по размерам и типам с рабочим диском.

Типичные ошибки и способы решения

  • sfdisk: если вы видите ошибку msdos signature, но в конце таблица успешно записана — это нормально для пустого диска.
  • mdadm не добавляет раздел: проверьте, что раздел помечен как Linux raid (Id fd) и используйте –zero-superblock перед добавлением.
  • Синхронизация идёт медленно: проверьте нагрузку дисков, скорость и возможные ошибки I/O в dmesg.

Альтернативные подходы

  • Горячая замена (hot-swap): если сервер и дисковый отсек поддерживают hot-swap, можно физически заменить диск без выключения. Тогда достаточно выполнить mdadm –fail/–remove и вставить новый диск.
  • Использование dd для копирования полного диска: подходит для восстановления точной копии, но требует равных по размеру дисков и занимает больше времени.

Контрольный список ролей

  • Оператор: смоделировать отказ, пометить диск как failed, проверить /proc/mdstat.
  • Системный администратор: заменить диск, скопировать таблицу, очистить суперблоки, добавить в массив, контролировать синхронизацию.
  • Тестировщик: проверить загрузку с каждого диска, проверить целостность данных.

Рекомендации по безопасности и рискам

  • Перед операциями сделайте резервную копию критичных данных.
  • Работайте в консоли с root-доступом; будьте внимательны с командами sfdisk и dd — они перезаписывают таблицы.
  • При установке GRUB убедитесь в правильном выборе дисков, чтобы не потерять загрузчик.

Сводка

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

Полезные ссылки

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро