Как предотвратить автоматическое сканирование ‘mdadm’ при запуске?

Вопрос или проблема

Debian 10 VM не имеет программной конфигурации RAID, и нет намерения создавать программный (mdadm) массив RAID.

mdadm установлен исключительно как зависимость для cockpit-storaged

Служба mdadm отключена.

Служба mdadm-waitidle отключена.

С помощью ‘dpkg-reconfigure mdadm‘ ‘демон мониторинга MD‘ отключен.

Тем не менее, при перезагрузках сообщение “mdadm: no arrays found in config file or automatically” значительно задерживает процесс загрузки.

Удаление файла конфигурации mdadm /etc/mdadm/mdadm.conf не влияет.

Указание ‘DEVICE = /dev/xvda1‘ и/или ‘ARRAY = ‘ с последующим ‘update-initramfs -u‘ не влияет.

Удаление mdadm решает проблему, но нарушает работу сервисов хранения cockpit.

Как же тогда прекратить автоматическое сканирование mdadm при запуске системы?

Автоматическая сборка MD массива выполняется через правила udev, поэтому это происходит при загрузке, а также при горячем добавлении устройств в систему. К сожалению, об этом никогда не упоминается в man-страницах, но вы должны быть в состоянии отредактировать /etc/mdadm.conf так, чтобы он содержал следующее:

AUTO -all

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

Ответ или решение

Чтобы остановить автоматическое сканирование mdadm при запуске без удаления программного обеспечения, которое зависит от него, необходимо понять, как это программное обеспечение интегрируется в процесс загрузки системы и что именно вызывает сканирование. Действия, описанные в вашем вопросе, уже включают шаги по отключению различных служб mdadm, таких как mdadm и mdadm-waitidle. Однако, учитывая, что проблема сохраняется, вероятно, существует глубокая интеграция с другими компонентами системы, такими как правила udev или initramfs, которые обрабатывают сканирование автоматически.

Теория

mdadm – инструмент управления программными RAID-массивами на системах Linux. Он автоматически сканирует устройства при запуске, чтобы обнаружить и собрать RAID-массивы. Это стандартное поведение в системах, где RAID используется для управления дисковыми ресурсами. На системы без активных программных RAID это может оказывать влияние на время загрузки, что и происходило в вашем конкретном случае.

cockpit-storaged требует наличия mdadm, так как обеспечивает управление массивами RAID через веб-интерфейс Cockpit. Cockpit представляет собой мощный инструмент для управления серверами, который может предлагать возможности мониторинга и управления дисками через браузер.

Пример

У вас есть виртуальная машина на Debian 10, где mdadm не нужен для работы с RAID, но он установлен для обеспечения совместимости с зависимостями cockpit-storaged. Вы отключили соответствующие службы и даже пытались удалить конфигурационный файл /etc/mdadm/mdadm.conf, но проблема задержек при загрузке осталась. Наконец, вы обнаружили, что загрузка замедляется сообщением mdadm: no arrays found in config file or automatically, указывающим на фактическое сканирование дисков.

Применение

  1. Анализ udev-правил:

    Большинство автоматических действий на Linux инициируются через систему udev, которая обрабатывает события на уровне устройства, включая диски. Для mdadm это значит, что при обнаружении нового устройства или при загрузке системы, udev может триггерить его действия. Первое, что стоит сделать, это проанализировать имеющиеся правила udev, связанные с mdadm.

    Файл правил может содержаться в /lib/udev/rules.d/64-md-raid.rules. Попробуйте прокомментировать или изменить строки, относящиеся к автоматической активации RAID:

    # Disable mdadm scan
    ENV{ID_FS_TYPE}=="linux_raid_member", GOTO="md_ignore"
    
    LABEL="md_autorun_done"
    ENV{ID_FS_TYPE}=="linux_raid_member", RUN+="/sbin/mdadm --incremental --run --scan"
    LABEL="md_ignore"

    Не забудьте перезапустить службу udev после изменений:

    sudo systemctl restart udev
  2. Обновление initramfs:

    Если сканирование происходит до монтирования корневой файловой системы, это может быть связано с initramfs. Для этого выполните обновление, как вы уже делали:

    sudo update-initramfs -u
  3. Изменение конфигурации mdadm:

    Настройка AUTO в конфигурации mdadm отключит автоматическую сборку:

    Откройте файл /etc/mdadm/mdadm.conf и добавьте или измените строку на:

    AUTO -all

    После этого выполните обновление initramfs, как было указано ранее.

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

Оцените материал
Добавить комментарий

Капча загружается...