Я переустановил сервер Linux с CentOS 6 на 7. Сервер имеет 3 диска - системный SSD-диск (на нем размещено все, кроме /home
) и два 4-ТБ жестких диска на этом хосте /home
. Все использует LVM. Два накопителя емкостью 4 ТБ зеркально отражены (с помощью параметра raid в самом LVM) и полностью заполнены разделом / home.
Проблема в том, что хотя диски 4 ТБ распознаются нормально, и LVM видит объем без проблем, он не активирует его автоматически. Все остальное активируется автоматически. Я могу активировать его вручную, и он работает.
У меня есть образ старого системного диска в / home. Это также содержит тома LVM. Если я подключу его kpartx
, LVM поднимет их и активирует. Но я не вижу разницы между этими томами и неактивными.
Корневая файловая система тоже LVM, и это прекрасно активируется.
Хотя я вижу странную вещь: выполнение lvchange -aay
говорит мне, что мне нужно указать, какие диски я хочу активировать. Это также не делает это автоматически. Если я укажу lvchange -ay lv_home
- это работает.
Я не могу найти ничего, что могло бы быть ответственным за это поведение.
Добавлено: я заметил, что старая система (которая использовала init) была vgchange -aay --sysinit
в своих сценариях запуска. Новый использует systemd, и я не вижу vgchange
вызова в его скриптах. Но я также не знаю, где это поставить.
Добавлено 2: Начинаем разбираться в systemd. Я нашел, где находятся сценарии, и начал понимать, как они называются. Также обнаружил, что я мог видеть выполненные сценарии с systemctl -al
. Это показывает мне, что после запуска lvmetad
он вызывает pvscan
каждое известное блочное устройство udev. Однако на данный момент есть только одно зарегистрированное блочное устройство udev, и это один из распознанных томов lvm. Жесткие диски тоже есть, но под разными путями и гораздо более длинными именами. Распознанное блочное устройство что-то вроде 8:3
, а жесткие диски похожи /device/something/
. Я больше не на сервере, поэтому не могу написать точно (это исправлю позже).
Я думаю, что это как-то связано с udev и обнаружением / отображением устройств. Я продолжу вечером и буду учиться удеву.
Если pvscan
ничего не помогает, я нашел скрипт, который вызывает, и проверил, могу ли я изменить его, чтобы сканировать все устройства все время. Это решает проблему, но выглядит довольно уродливо, поэтому я попытаюсь выяснить истинную причину.
Добавлено 3 : ОК, я до сих пор не знаю, почему это происходит, но, по крайней мере, я сделал довольно сносный обходной путь. Я сделал еще один сервис systemd, который вызывает pvscan
один раз, сразу после запуска lvmetad
. Другой вызов для конкретного устройства все еще там, и я думаю, что это действительно udev
вызывает его (это единственное место, где я нашел ссылку на него). Почему это не называется для других жестких дисков - я понятия не имею.
lvmetad
я не заметил).