CentOS Stream 9中的LVM会忽略现有的pv

开场白

最近我终于将CentOS8服务器替换为CentOS Stream 9,并正式开始使用。

RockyLinux和AlmaLinux都是从CentOS8迁移过来的,这一点非常感激。但是如果考虑直接升级到CentOS9,问题就有点棘手了,所以我想选择属于正统方向的CentOS Stream 9。最坏的情况下,似乎也可以迁移到AlmaLinux9之类的系统。

CentOS Stream 9和RHEL9的克隆版本与Ubuntu 22.04几乎采用了相同版本的内核,体验上更加舒适。是因为它针对x86_64-v2进行优化或有更深层次的原因,还是仅仅是控制台显示更快,或者仅仅是像穿上新内裤时的心情一样愉悦,尚不清楚。而且在所有方面都不一定都更快。

x86_64-v2(日本語) https://rheb.hatenablog.com/entry/x86-64-v2

(アプリケーションサーバーではなく)インフラ基盤としては良さそうなパフォーマンス(英語)
https://www.phoronix.com/review/centos-stream-9

然而,当我尝试使用它时,我注意到它无法识别我之前在旧操作系统上使用的LVM磁盘。

lv、vg和pv都没有出现。

我本以为再次启动或更新等等都会在某个时机出现,可事实上一直没有出现,也没有任何错误提示,无论是lvs、vgs、pvs还是pvscan都没有显示。

使用devices选项,强制指定PV位置,就可以勉强出现。所以,假设/dev/sdc是该设备,以这种状态强制激活。

vgchange -ay Old_VG --devices /dev/sdc

如果这样做,甚至可以进行mount,但即使在已经mount的状态下,也无法看到pv、vg和lv。这真让人困扰。

此外,如果使用新的pvcreate命令,通常会出现这种情况。从这里看,就好像在升级后,新旧的LVM不再兼容一样,所以不要惊讶地重新创建。

由于的原因

由于这个原因。虽然不是官方的说法,但根据这里的信息,从RHEL9开始,pv的搜索使用/etc/lvm/devices/system.devices文件列表。

在与公式非常接近的地方,唯一找到的是Bugzilla。
https://bugzilla.redhat.com/show_bug.cgi?id=2012830

无论如何,解决方案如下。

解决方案

选项1:恢复以前的行为方式

在维护机器上,当希望能动态地识别并添加或移除各种磁盘时,我们希望它能像过去一样工作。

为了让系统以与过去相同的方式工作而不使用/etc/lvm/devices/system.devices,可以在lvm.conf中设置use_devicesfile=0。在CentOS Stream9的lvm.conf中,这个选项是被注释掉的,所以只需取消注释即可。

# Configuration option devices/use_devicesfile.
# Enable or disable the use of a devices file.
# When enabled, lvm will only use devices that
# are lised in the devices file. A devices file will
# be used, regardless of this setting, when the --devicesfile
# option is set to a specific file name.
# This configuration option has an automatic default value.
# use_devicesfile = 0

另外,CentOS8和Ubuntu22.04的lvm.conf中本来就没有条目。Ubuntu似乎也没有相应的命令,所以可能不支持。据上述的Bugzilla所述,从CentOS8.5开始提供支持(默认情况下在CentOS8中关闭)。

尝试正确的使用方法

新的方法自然会有正确的使用方式。这种方法似乎可以期待更好的结果。虽然过于新的方法可能会增加遇到错误的可能性…

在/etc/lvm/devices/system.devices中添加条目的命令如下:

假设/dev/sdc是该设备

lvmdevices --adddev /dev/sdc

只需一种选择:可以不指定设备来执行。

vgimportdevices -a

由于vgimportdevices中写道,使用lvmdevices –adddev可以针对指定(或所有)vg进行操作,因此只要不涉及无关的内容,无论使用哪种方法都应该得到相同的结果。详见:https://man7.org/linux/man-pages/man8/lvmdevices.8.html 和 https://man7.org/linux/man-pages/man8/vgimportdevices.8.html

平时似乎只需在更新后执行这个就可以了。

心得

由于缺乏足够的信息,我认为 RHEL9 兼容的发行版并且手动操作并且裸金属操作(即非虚拟化环境)非常稀缺。在云环境中几乎不使用逻辑卷管理(LVM)。

广告
将在 10 秒后关闭
bannerAds