我无法在 lvm 命令(如 pvs、vgs 等)输出中列出 root_disk LVM。 lvm.conf 文件确实有 global_filter ,如下所示 -
global_filter = [ "a|^/dev/mapper/96005076307ffc6a60000000000001501.*|", "r/.*/" ]
96005076307ffc6a60000000000001501 恰好是我的 root_disk 并且只有 1 个磁盘。尝试过在 global_filter 中使用其他选项,例如在 root_disk 末尾添加“$”符号(例如 /dev/mapper/96005076307ffc6a60000000000001501p2)也没有帮助。
lvm.conf 中的 Preferred_names 条目如下 -
preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
如果我将“/dev/dm-0”包含到全局过滤器中,则 root_lvm 会被检测到,例如在“pvs”命令输出中。但是,不鼓励使用“/dev/dm-N”,因为名称不是恒定的并且由操作系统内部使用。
如果以预期方式检测到了 global_filter 的一部分,则仅 root_lvm 和其他磁盘会发生这种情况。
不确定原因。我需要在“pvs”命令输出中获取 root_disk 的 /dev/mapper 条目。
答案1
您正在使用设备映射器多路径吗?
请注意,设备名称/dev/mapper/<WWID>
不在. (RedHat默认使用in 。)preferred_names
lvm.conf
user_friendly_names yes
/etc/multipath.conf
如果将 Preferred_names 更改为这样的内容会发生什么?
preferred_names = [ "^/dev/mpath/", "^/dev/mapper/[0-9][0-9a-fp]*", "^/dev/mapper/mpath", "/dev/[hs]d" ]
您还应该确保 initramfs 配置为在激活包含根文件系统的 LVM 卷组之前启动多路径。在 RHEL 5 或更早版本中,如果您的根文件系统位于多路径磁盘上,请确保其中包含/etc/sysconfig/mkinitrd/multipath
该文件。MULTIPATH=yes
如果您需要修复此问题,RHEL 5 及更早版本中的步骤如下:
- 添加
MULTIPATH=yes
/etc/sysconfig/mkinitrd/multipath
- 更新你的 initramfs
- 如果
/boot
是一个单独的文件系统,暂时将其注释掉/etc/fstab
- 重启
- 确认 LVM 现在正在通过多路径设备访问根 VG
- 取消 /etc/fstab 中的注释
/boot
,安装它并确保它现在也使用多路径设备安装。
当多路径设备打开时,多路径子系统会对该多路径设备的组件设备应用独占锁,这应该足以使 LVM 避开该组件设备。但是,如果多路径子系统无法获得该锁定,则意味着其他组件已经在使用其中一个组件设备:这通常意味着多路径子系统在系统启动序列中启动得太晚。结果通常与您所经历的类似。
如果我猜错了,那么 的输出vgscan -vvvv
可能有助于弄清楚。