TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #4193 11.1K
Несмотря на то, что mdadm хоронят уже много лет, например, те же разработчики Proxmox, я успешно и повсеместно его использую. Он меня полностью устраивает в плане надёжности и предсказуемости. Берёшь любой бюджетный сервер на 2 или 4 SSD или NVME диска и собираешь RAID1 или RAID10, ставишь на все диски загрузчик и больше не переживаешь за выход из строя одного из дисков.

Я уже десятки раз заменял вышедшие из строя диски и никогда не имел с mdadm проблем (постучал по дереву). Буквально вчера утром получил уведомление с одного из серверов о выходе из строя диска (картинка с ошибкой и данными из мониторинга внизу) и вечером заказал замену у техподдержки дедика. В этот раз собрал практически все возможные проблемы, так что оформлю в короткую шпаргалку.

Вышел из строя диск /dev/sda , который входит в состав RAID1 из двух дисков. Это первый диск, с которого грузился загрузчик. Перед заменой обязательно проверяем, что есть загрузчик на втором диске:

# dpkg-reconfigure grub-pc

Я получил ошибку:

grub-pc: Running grub-install ...
Installing for i386-pc platform.
grub-install.real: error: disk `mduuid/fe51668460b267542c1d5c1adb4e7680' not found.
 grub-install failure for /dev/sdb

В данном случае в тексте ошибки присутствует uuid одного из разделов оставшегося диска /dev/sdb, который входит в массив mdadm, который из-за выхода из строя диска /dev/sda находится в состоянии Degraded. Я точно знал, что ранее на /dev/sdb уже ставил загрузчик, но решил перестраховаться.

Чтобы исправить ошибку выше, надо вывести из состава массивов разделы диска /dev/sda:

# mdadm /dev/md126 --fail /dev/sda1
# mdadm /dev/md126 --remove /dev/sda1

Так для всех массивов. В моём случае их было 3: /, /boot и swap. Я swap никогда в раздел не выношу, храню в файле, но это был шаблон от хостера. Там такая разбивка по умолчанию.

Теперь команда dpkg-reconfigure grub-pc отработала без ошибок, поставила загрузчик на /dev/sdb.

После этого сервер можно выключить и написать в техподдержку, чтобы выполнили замену. Внимательно укажите серийный номер сбойного диска. У меня он всегда в Zabbix остаётся. Отдельно не веду каталог дисков. Просто настраиваю мониторинг. Обычно этого достаточно.

После того, как поддержка заменит диск и включит сервер, можно добавлять новый диск в массив. Проверяем его:

# smartctl -i /dev/sda
# fdisk -l | grep /dev/sda

Убеждаемся, что диск подходящего размера и он чистый, без разметки. У меня на подобных серверах обычно mbr разметка, так как SSD диски не очень большие. Разделы с работающего диска на новый копирую так:

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

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

# fdisk -l

Теперь добавляем разделы нового диска в массив:

# mdadm --add /dev/md126 /dev/sda1

Наблюдаем синхронизацию в режиме реального времени:

# watch cat /proc/mdstat

Один из массивов у меня был остановлен:

md127 : inactive sdb3[1](S)

Не получалось к нему добавить недостающий раздел. Перед этим его пришлось запустить:

# mdadm --run /dev/md127
mdadm: started array /dev/md/installrescue:43

После этого благополучно добавил недостающий раздел:

# mdadm --add /dev/md127 /dev/sda3
mdadm: added /dev/sda3

Не знаю, с чем связано то, что иногда массивы останавливаются. Хорошо, что в данном случае это был не корневой или загрузочный раздел. Как-то раз у меня остановился корневой раздел. Пришлюсь грузиться с livecd, запускать массив и добавлять в него раздел. После этого нормально загрузилась система. Случается такое редко. Добавляет некоторую нервозность ко всему процессу замены диска. Всегда есть шанс, что понадобится livecd или доступ к консоли сервера.

После замены диска не забываем установить загрузчик на новый диск /dev/sda:

# dpkg-reconfigure grub-pc

Обязательно убедитесь, что ошибок нет. Если есть, сразу их решайте, не откладывайте на потом.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#mdadm
  • 👍 291
  • 👎 4
More from @srv_admin
  1. Oct 12, 2026Вот мы и вступили в новую реальность, когда стали пропадать датацентры целиком, что повлек…
  2. Oct 12, 2026💻Практический вебинар «СТРАТЕГИЯ РЕЗЕРВНОГО КОПИРОВАНИЯ» 📹 15 октября в 11:00 Мск за 90…
  3. Oct 10, 2026Когда я работал в одной небедной компании, там регулярно обновляли парк оборудования, а ст…
  4. Oct 9, 2026▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересны…
  5. Oct 9, 2026Астра Мониторинг впустил ИИ-агентов в системы мониторинга заказчика И приглашает вас увиде…
  6. Oct 9, 2026В пятницу расскажу про один сервис, который не имеет отношения к теме канала, но который м…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →