Проблемы с LVM при перезагрузке после обновления до 4.2
2. Проблема
При обновлении zVirt с версии 4.0/4.1 до 4.2 в некоторых случаях после обновления и перезагрузки хоста zVirt, он не запускается из-за проблем с LVM.
При этом:
-
Обновление zvirt-update прошло без ошибок.
-
Версия контроллера OVN была обновлена.
-
В веб-интерфейсе у хоста отображается корректная версия zVirt - 4.2.
LVM после перезагрузки находится в следующем состоянии (возможны незначительные отличия):
lvscan
inactive '/dev/znn/pool00' [75.00 GiB] inherit
inactive '/dev/znn/var_log_audit' [2.00 GiB] inherit
inactive '/dev/znn/var_log' [8.00 GiB] inherit
inactive '/dev/znn/var_crash' [10.00 GiB] inherit
inactive '/dev/znn/var' [15.00 GiB] inherit
inactive '/dev/znn/tmp' [1.00 GiB] inherit
inactive '/dev/znn/home' [1.00 GiB] inherit
inactive '/dev/znn/root' [38.00 GiB] inherit
ACTIVE '/dev/znn/swap' [3.97 GiB] inherit
inactive '/dev/znn/zvirt-node-ng-4.1-0.20240228.0' [38.00 GiB] inherit
ACTIVE '/dev/znn/zvirt-node-ng-4.1-0.20240228.0+1' [38.00 GiB] inherit
inactive '/dev/znn/var_tmp' [10.00 GiB] inherit
3. Решение
3.1. Способ 1
Для предотвращения данной ситуации перед обновлением:
-
Уточните корректный wwid основного устройства:
/usr/lib/udev/scsi_id -g -u -d /dev/sda 0QEMU_QEMU_HARDDISK_edf76592-6402-4d56-b917-d89d770db028
-
Проверьте, какой wwid указан в параметре
blacklist
в файле /etc/multipath/conf.d/vdsm_blacklist.conf и при необходимости исправьте на корректный. Например:cat /etc/multipath/conf.d/vdsm_blacklist.conf blacklist { wwid "0QEMU_QEMU_HARDDISK_edf76592-6402-4d56-b917-d89d770db028" (1) }
1 Должен содержать правильный wwid.
В маловероятном случае если это не помогло, следует выполнить следующее:
-
При загрузке в меню grub добавьте опцию
rd.multipath=0
чтобы загрузиться с отключенной службой multipathd. -
Исправьте запись в /etc/multipath/conf.d/vdsm_blacklist.conf.
-
Сгенерируйте новую корневую загрузочную файловую систему для ядра.
dracut -fa
-
Проверьте (по времени доступа/создания) чтобы образ был и в /boot и в /boot/zvirt-node-ng-4.1-0.20240228.0+1/:
ll /boot/init* /boot/zvirt-node-ng-4.1-0.20240228.0+1/init* -rw-------. 1 root root 118151777 Aug 1 16:37 /boot/initramfs-4.18.0-448.el8.x86_64.img -rw-------. 1 root root 40915456 Aug 1 09:34 /boot/initramfs-4.18.0-448.el8.x86_64kdump.img -rw-------. 1 root root 122023029 Aug 1 18:52 /boot/initramfs-4.18.0-552.el8.x86_64.img (1) -rw-------. 1 root root 118151777 Aug 1 16:37 /boot/zvirt-node-ng-4.1-0.20240228.0+1/initramfs-4.18.0-448.el8.x86_64.img -rw-------. 1 root root 40915456 Aug 1 09:34 /boot/zvirt-node-ng-4.1-0.20240228.0+1/initramfs-4.18.0-448.el8.x86_64kdump.img -rw-------. 1 root root 122023029 Aug 1 18:52 /boot/zvirt-node-ng-4.1-0.20240228.0+1/initramfs-4.18.0-552.el8.x86_64.img (1) -rw-------. 1 root root 40552448 Aug 1 18:41 /boot/zvirt-node-ng-4.1-0.20240228.0+1/initramfs-4.18.0-552.el8.x86_64kdump.img
1 Используется один и тот же образ (одинаковое время создания и версия) -
Если в zvirt-node-ng-4.1-0.20240228.0+1 окажется старая по времени версия, стоит заменить её из /boot.
3.2. Способ 2
Это самостоятельное решение. Не применяйте его совместно со способом 1. |
Если обновление уже выполнено и при перезагрузке проявилась описанная проблема:
-
Отключите использование фильтрации с помощью файла устройств, установив параметр
use_devicesfile
в 0 в /etc/lvm/lvm.conf:sed -i 's/^use_devicesfile = 1/use_devicesfile = 0/' /etc/lvm/lvm.conf
-
Настройте фильтр, указав в нем соответствующее устройство в /etc/lvm/lvm.conf после
use_devicesfile = 0
в секцииdevices
. Например:filter = ["a|^/dev/disk/by-id/lvm-pv-uuid-2q94jd-7wgL-owU8-AO3L-AyHd-egnK-73XA3I$|", "r|.*|"