自从从 Ubuntu 14.04 升级到 14.10 后,我的一个 VG 在系统启动时没有上线,不幸的是,这个 VG 有我的根 FS,因此我被放到了 initrd BusyBox 提示符下。
以前我遇到过 VG 在启动时需要更多时间才能上线的问题,因此我将其添加rootdelay=300
到内核参数列表中,尽管启动过程挂起了一段时间,但 VG 最终还是上线了。但是在版本升级之后,我的 VG 从未启动过。在 BusyBox 提示中,lvm lvscan
告诉我它们处于非活动状态。我可以手动激活它们并继续启动过程,但由于它是一台服务器,需要人工交互才能正确启动,这真的很糟糕。
我怀疑新内核有问题vmlinuz-3.16.0-23-generic
。当我使用版本升级之前的旧内核(vmlinuz-3.13.0-37-generic
)启动时,它运行正常。
我的系统上有 2 个 VG:
root@vmhost:~# vgs
VG #PV #LV #SN Attr VSize VFree
vmdata-vg 1 21 3 wz--n- 903.57g 7.34g
vmhost-vg 2 2 0 wz--n- 52.09g 7.34g
第一个只有 1 个 PV,它会立即启动。第二个有 2 个 PV,有我的根 LV,并且包含镜像 LV。我不明白为什么它vmhost-vg
在启动时没有激活。
我已经尝试添加以下行/etc/lvm/lvm.conf
:
auto_activation_volume_list = [ "vmhost-vg", "vmdata-vg" ]
但不幸的是,它没有任何效果。(是的,我运行update-initramfs -u
它来将其传播到 initrd 中。)
我已经在互联网上找到了其他相关问题和解决方案,但它们并不适用于我——其他人似乎使用带有 mdadm 的软件 RAID,他们提出的解决方案通常涉及对其 RAID 配置进行一些调整。但这对我来说并不适用,因为我不使用任何类型的 RAID。我的 PV 位于普通/dev/sd*
分区上。
答案1
我看到了类似的问题,并偶然发现了这一点:
如果启用了 lvmetad(8),lvm2-activation-generator 将立即退出,而不会生成任何 systemd 单元,并且 LVM2 完全依赖基于事件的激活来激活 LVM2 卷
--https://manpages.ubuntu.com/manpages/bionic/man8/lvm2-activation-generator.8.html
确实,设置use_lvmetad=0
帮lvm.conf
我解决了这个问题。
我没有调查为什么 udev 方法不起作用。