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 — первый контроллер, 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-предупреждениях заказывайте замену и держите запасной диск под рукой.
Отличная статья, именно так и нужно объяснять этот процесс. Добавлю только что перед rebuild желательно сделать снапшот или бэкап — деградированный RAID это уже один шаг до потери данных.