Вопрос или проблема
Ubuntu 22.04.1 здесь. У меня есть группа томов под названием system
, созданная во время установки. В этой группе три логических тома.
--- Логический том ---
Путь к томам /dev/system/swap
Имя тома swap
Имя группы томов system
UUID тома qeGYCG-PseM-IzIW-rpit-0zwI-lbKs-q0jL8D
Доступ к записи чтение/запись
Хост создания, время ubuntu-server, 2022-12-02 19:20:46 +0000
Статус тома НЕДОСТУПЕН
Размер тома 1,00 GiB
Текущий LE 256
Сегменты 1
Выделение наследование
Секторы предчтения авто
--- Логический том ---
Путь к томам /dev/system/root
Имя тома root
Имя группы томов system
UUID тома qx6W1r-e20x-VfwG-1Sdg-uGE3-rRW9-89k24O
Доступ к записи чтение/запись
Хост создания, время ubuntu-server, 2022-12-02 19:20:47 +0000
Статус тома доступен
# открыто 1
Размер тома 10,00 GiB
Текущий LE 2560
Сегменты 1
Выделение наследование
Секторы предчтения авто
- в настоящее время установлено 256
Блочное устройство 253:0
--- Логический том ---
Путь к томам /dev/system/drbd
Имя тома drbd
Имя группы томов system
UUID тома rQxv3f-pJds-JU1z-9Hqd-hi81-3kAt-zlcVbh
Доступ к записи чтение/запись
Хост создания, время ubuntu-server, 2022-12-02 19:20:49 +0000
Статус тома НЕДОСТУПЕН
Размер тома <21,00 GiB
Текущий LE 5375
Сегменты 1
Выделение наследование
Секторы предчтения авто
Это вывод команды lvdisplay
сразу после перезагрузки. При каждой перезагрузке логические тома swap
и drbd
не активируются. Мне нужно использовать команду vgchange -ay
, чтобы активировать их вручную. Только логический том root
доступен, на этом томе установлена система. Добавление имен томов в auto_activation_volume_list
в /etc/lvm/lvm.conf
не помогает.
Почему это происходит?
Обновление #1
Я попытался воссоздать логический том. Сначала я удалил том swap, затем воссоздал его с другим именем. Всё равно та же проблема после перезагрузки. Том не активируется до vgchange -ay
.
Так что не уверен, поможет ли это кому-то в будущем (или настоящем), но я наткнулся на это, пытаясь исправить эту конкретную проблему. Я не смог определить коренную причину того, почему логические тома не активируются при загрузке, но подозреваю, что это связано с использованием lvm raid
.
Я решил проблему, создав файл юнита systemd согласно следующему.
Создайте файл юнита systemd следующим образом:
nano /etc/systemd/system/lvm2-activate.service
Добавьте следующее содержание:
[Unit]
Description=Активировать все LV VG0
Requires=dm-event.socket
After=lvm2-monitor.service
Before=local-fs-pre.target shutdown.target
DefaultDependencies=no
[Service]
Type=oneshot
Environment=LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES=1
ExecStart=/usr/sbin/lvchange -ay vg0
RemainAfterExit=yes
[Install]
WantedBy=sysinit.target
Сохраните и активируйте новый файл юнита:
systemctl daemon-reload
systemctl enable lvm2-activate
Перезагрузите систему, и это должно активировать логические тома в подходящее время в процессе загрузки (т.е. перед тем, как файловая система монтируется из fstab
, что в противном случае могло бы зависнуть систему на очень долгое время)
Ответ или решение
Проблема активации логических томов при загрузке в Ubuntu 22.04.1
Ваша проблема заключается в том, что логические тома (ЛТ) swap
и drbd
не активируются автоматически при загрузке системы, в то время как логический том root
работает корректно. Это может быть связано с особенностями конфигурации вашей системы или с используемыми вами технологиями, такими как LVM RAID.
Возможные причины проблемы
-
Настройки LVM:
Дефолтные параметры конфигурации LVM могут не обеспечивать активацию всех логических томов при загрузке. Вы правильно заметили, что добавление имен томов вauto_activation_volume_list
в/etc/lvm/lvm.conf
не решило проблему. -
Состояние логических томов:
Если логические томаswap
иdrbd
по какой-то причине не доступны (статус NOT available), это может быть связано с тем, что они не были созданы или инициализированы должным образом в процессе установки или настройки. -
Отсутствие нужных сервисов:
Если ваш сервер используетlvm raid
, это может препятствовать автоматической активации томов, так как может потребоваться ожидание инициализации всех RAID-устройств.
Решение проблемы
Как вы уже выяснили, создание unit-файла для systemd — это рабочее решение. Следуя этому подходу, вы можете обеспечить активацию логических томов в нужное время загрузки, избегая зависаний системы при монтировании файловых систем. Давайте подробнее рассмотрим этот процесс.
Создание и настройка unit-файла
-
Создание unit-файла:
Используйте текстовый редактор для создания файла:sudo nano /etc/systemd/system/lvm2-activate.service
-
Добавление содержимого:
Вставьте следующий код:[Unit] Description=Activate all the VG0 LVs Requires=dm-event.socket After=lvm2-monitor.service Before=local-fs-pre.target shutdown.target DefaultDependencies=no [Service] Type=oneshot Environment=LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES=1 ExecStart=/usr/sbin/lvchange -ay vg0 RemainAfterExit=yes [Install] WantedBy=sysinit.target
-
Сохранение и активация unit-файла:
После внесения изменений сохраните файл и активируйте его:sudo systemctl daemon-reload sudo systemctl enable lvm2-activate
-
Перезагрузка системы:
Теперь можно перезагрузить систему, чтобы проверить, решена ли проблема:sudo reboot
Заключение
Использование systemd для автоматизации активации логических томов на этапе загрузки является эффективным решением для вашей ситуации. Такой подход позволяет избежать ручных операций и обеспечивает стабильность и надежность вашей серверной инфраструктуры.
Если после выполнения этих шагов проблема сохраняется, возможно, стоит обратить внимание на более глубокую диагностику конфигурации LVM и состояния RAID, используемого в вашей системе. Убедитесь, что все аппаратные и программные компоненты функционируют корректно, чтобы исключить потенциальные сбои в работе.