Загрузка случайно изменяет узлы устройств HDD, проблема с munin

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

У меня есть сервер Ubuntu, работающий на 12.10 с внутренним (материнской платы) SATA контроллером и дополнительным PCIe SATA контроллером, а также внешними USB HDD.

Моя проблема заключается в том, что ссылки на устройства (/dev/sda/sdb/sdc/sdd/sde/…) меняются случайным образом. Я также использую munin для мониторинга системы Ubuntu 12.10… когда sda становится sde, все диаграммы будут бесполезны, потому что munin полагается на то, что эти имена узлов не меняются и мониторит /dev/sda, /dev/sdb …

Кто-нибудь имеет идею, как это решить?

Спасибо и с наилучшими пожеланиями, Йенс

Вы захотите использовать правила udev:

https://wiki.archlinux.org/title/Persistent_block_device_naming

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

Проблема, с которой вы столкнулись, связана с изменением узлов устройств (/dev/sda, /dev/sdb и т.д.) на вашем сервере Ubuntu, что негативно сказывается на работе системы мониторинга Munin. Это частая ситуация для систем, использующих несколько контроллеров SATA, а также внешние USB-накопители. В данной статье мы рассмотрим, как решить эту проблему.

Понимание проблемы

При загрузке системы Linux устройства назначаются динамически, основываясь на порядке их обнаружения ядром. Это означает, что при каждой перезагрузке узлы могут изменять свое имя, если подключаются/отключаются другие устройства или меняется порядок загрузки контроллеров. В результате, если Munin отслеживает конкретные узлы (например, /dev/sda), любые изменения приведут к потере данных в мониторе, так как он не сможет корректно идентифицировать устройство.

Решение через udev

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

Шаги по настройке udev:

  1. Определите уникальные идентификаторы для ваших дисков.
    Выполните команду:

    ls -l /dev/disk/by-id

    Это покажет ссылки на устройства, которые связаны с уникальными идентификаторами, такими как «usb-…» для USB-накопителей или «ata-…» для внутренних дисков.

  2. Создайте правила udev.
    Откройте файл правил udev:

    sudo nano /etc/udev/rules.d/99-persistent-storage.rules

    Добавьте строки в файл, используя уникальные идентификаторы, найденные на предыдущем шаге. Например:

    SUBSYSTEM=="block", KERNEL=="sd*[!0-9]", ENV{ID_SERIAL}=="ваш_идентификатор_диска", NAME="disk1"

    Замените ваш_идентификатор_диска на соответствующий идентификатор вашего устройства. Вы можете имитировать такие правила для всех ваших HDD и внешних дисков, создавая методы для назначения постоянных имен.

  3. Проверьте правила.
    После внесения изменений, запустите следующие команды для применения:

    sudo udevadm control --reload-rules
    sudo udevadm trigger
  4. Обновите конфигурацию Munin.
    Теперь, когда у вас есть постоянные имена устройств (например, /dev/disk1), обновите конфигурацию Munin, чтобы использовать эти имена вместо /dev/sda, /dev/sdb и т.д. Это можно сделать в конфигурационных файлах плагинов Munin для дисковых устройств.

Заключение

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

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

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

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