Я переустановил сервер 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я не заметил).