root_LVM 未在 LVM 命令输出中列出

root_LVM 未在 LVM 命令输出中列出

我无法在 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_nameslvm.confuser_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可能有助于弄清楚。

相关内容