Ошибка SparesMissing в mdadm на Proxmox: причины и решение

    Если вы получили письмо от mdadm с темой SparesMissing на сервере Proxmox (pve), это означает, что в вашем программном RAID-массиве отсутствуют или недоступны запасные (spare) диски. Такое событие не указывает на немедленный сбой, но сигнализирует о снижении отказоустойчивости. Разберём, что делать.

    Что такое SparesMissing в mdadm?

    Событие SparesMissing генерируется демоном mdadm, когда в конфигурации RAID-массива указано количество запасных дисков, но фактически они не обнаружены. В вашем логе из /proc/mdstat видно, что на устройстве md1 (размер 1984 блоков) есть spare-диск sdc1[2](S), но система считает его недостающим - возможно, из-за несоответствия метаданных или временной недоступности.

    Типичные причины:

    • Нехватка запасных дисков - в массиве меньше spare, чем ожидалось по настройкам.
    • Временное отключение диска - диск помечен как spare, но не активен (например, после перезагрузки).
    • Ошибка конфигурации - в файле /etc/mdadm/mdadm.conf указано неверное количество spare.

    Как проверить состояние RAID-массива?

    Выполните команду cat /proc/mdstat - вы увидите все активные массивы. В вашем выводе все диски помечены как [UU] (работают), но spare-диски ((S)) присутствуют только на md1 (sdc1) и md3 (sdd3, sdc3). Для md4 spare нет, хотя он использует RAID5 - это нормально, если не настроено.

    Для детальной диагностики используйте:

    mdadm --detail /dev/md1
    mdadm --examine /dev/sdc1

    Это покажет метаданные и статус каждого диска.

    Добавление запасного диска вручную

    Если spare-диск физически подключён, но не распознан, добавьте его командой:

    mdadm /dev/md1 --add /dev/sdc1

    После этого проверьте статус: cat /proc/mdstat - диск должен отображаться как (S).

    Настройка автоматического добавления spare

    Чтобы избежать повторных предупреждений, отредактируйте /etc/mdadm/mdadm.conf. Укажите количество запасных дисков для каждого массива. Например, для md1:

    ARRAY /dev/md1 metadata=1.2 spares=1

    Затем обновите конфигурацию:

    update-initramfs -u
    systemctl restart mdadm

    После этого проверьте, что письма перестали приходить.

    Профилактика и мониторинг

    Регулярно проверяйте логи:

    • journalctl -u mdadm - события демона.
    • smartctl -a /dev/sdX - состояние дисков (S.M.A.R.T.).

    Настройте уведомления только о критических событиях (например, сбой диска), чтобы не пропустить важные предупреждения.

    Часто задаваемые вопросы