Серверное оборудование для бизнеса — надёжные решения для любых задач Подробнее →
Статья

Hot-swap дисков в Linux: mdadm и MegaRAID

Hot-swap дисков в Linux: mdadm и MegaRAID

Умение заменить диск в RAID-массиве без остановки сервера — один из ключевых навыков системного администратора. Паника перед мигающим жёлтым индикатором на диске уходит после первой успешной замены. Разберём процесс детально для двух наиболее распространённых сценариев: программный RAID через mdadm и аппаратный контроллер LSI MegaRAID.

Программный RAID: mdadm без даунтайма

Предположим, у нас RAID 5 из трёх дисков (/dev/sda, /dev/sdb, /dev/sdc), и sdb начал сыпать ошибками. Действуем по шагам.

Шаг 1. Проверяем состояние массива:

cat /proc/mdstat
mdadm --detail /dev/md0

Вывод покажет статус каждого диска. Если диск помечен как faulty — уже можно двигаться дальше.

Шаг 2. Помечаем диск как неисправный (если не помечен автоматически):

mdadm /dev/md0 --fail /dev/sdb

Шаг 3. Удаляем диск из массива:

mdadm /dev/md0 --remove /dev/sdb

Теперь диск можно физически извлечь из сервера — массив продолжает работать в деградированном режиме.

Шаг 4. Вставляем новый диск. Убедитесь, что система его обнаружила:

lsblk
dmesg | tail -20

Шаг 5. Добавляем новый диск в массив:

mdadm /dev/md0 --add /dev/sdb

Начнётся автоматический rebuild. Следите за прогрессом:

watch -n 5 cat /proc/mdstat

Время rebuild и влияние на производительность

Rebuild — нагрузочная операция. На большом диске (4–8 TB) он может занять несколько часов. Ограничьте скорость, чтобы не перегружать систему:

echo 50000 > /proc/sys/dev/raid/speed_limit_max

Значение в КБ/с. 50 000 = ~50 МБ/с — разумный баланс.

MegaRAID: работа через storcli

Аппаратные контроллеры LSI/Broadcom MegaRAID управляются утилитой storcli. Скачайте её с сайта Broadcom и установите.

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

storcli /c0 show
storcli /c0 /eall /sall show

Здесь c0 — первый контроллер, ##bc_22## — enclosure (корзина), s — slot (слот).

Состояние виртуального диска (RAID-тома):

storcli /c0 /v0 show

Обратите внимание на поле State: Optl — оптимальный, Dgrd — деградированный, Rbld — rebuild.

Замена диска через storcli:

После физической замены диска в hot-swap слоте контроллер обычно обнаруживает его автоматически и начинает rebuild. Если этого не произошло:

storcli /c0 /e252 /s1 set good
storcli /c0 /v0 start rebuild

Мониторинг rebuild:

storcli /c0 /v0 show rebuild

Проверка здоровья дисков через smartctl

Перед заменой и после неё проверяйте SMART-данные:

smartctl -a /dev/sdb
smartctl -t short /dev/sdb
smartctl -l selftest /dev/sdb

Ключевые атрибуты: Reallocated_Sector_Ct, Current_Pending_Sector, Offline_Uncorrectable. Ненулевые значения — сигнал к замене.

Мониторинг RAID

Настройте уведомления, чтобы не ловить проблему постфактум:

# /etc/mdadm/mdadm.conf
MAILADDR admin@example.com

Для MegaRAID используйте MSM (MegaRAID Storage Manager) или настройте SNMP-трапы на систему мониторинга. В Zabbix есть готовые шаблоны для MegaRAID.

Главное правило: не ждите, пока диск умрёт окончательно. При первых SMART-предупреждениях заказывайте замену и держите запасной диск под рукой.

2 Ответа

  1. Отличная статья, именно так и нужно объяснять этот процесс. Добавлю только что перед rebuild желательно сделать снапшот или бэкап — деградированный RAID это уже один шаг до потери данных.

  1. По MegaRAID: storcli иногда капризничает с правами, запускайте строго под root. И версию утилиты лучше брать ту, что рекомендована для вашей версии прошивки контроллера.