为什么 pvscan 跳过了我的设备?

为什么 pvscan 跳过了我的设备?

我有一台 CentOS 7 服务器,配置了一个跨 5 个外部硬盘的卷组。我将操作系统升级到 Rocky 9,现在 Rocky 9 看不到物理卷、卷组或逻辑卷。

我的物理卷(外部驱动器)是/dev/sda/dev/sdb/dev/sdc/dev/sdd/dev/sde

当我运行时pvscan -vvv &| grep "/dev/sd[abcde]",我得到了这个:

  Found dev 8:0 /dev/sda - new alias.
  Found dev 8:16 /dev/sdb - new alias.
  Found dev 8:32 /dev/sdc - new alias.
  Found dev 8:48 /dev/sdd - new alias.
  Found dev 8:64 /dev/sde - new alias.
  /dev/sda: Skipping (deviceid)
  /dev/sdb: Skipping (deviceid)
  /dev/sdc: Skipping (deviceid)
  /dev/sdd: Skipping (deviceid)
  /dev/sde: Skipping (deviceid)

为什么 pvscan 跳过了我的设备?

我可以扫描物理设备的唯一方法是执行以下操作:sudo pvscan --devices /dev/sda,/dev/sdb,/dev/sdc,/dev/sdd,/dev/sde,这将为我提供:

  PV /dev/sda   VG WD_VG           lvm2 [<5.46 TiB / 0    free]
  PV /dev/sdc   VG WD_VG           lvm2 [232.88 GiB / 0    free]
  PV /dev/sdb   VG WD_VG           lvm2 [<5.46 TiB / 0    free]
  PV /dev/sdd   VG WD_VG           lvm2 [<5.46 TiB / 0    free]
  PV /dev/sde   VG WD_VG           lvm2 [<5.46 TiB / 0    free]
  Total: 5 [<22.06 TiB] / in use: 5 [<22.06 TiB] / in no VG: 0 [0   ]

但此后,设备仍然没有出现在输出中pvdisplay

更新:运行这些命令似乎修复了这个问题:

sudo lvmdevices --adddev /dev/sda
sudo lvmdevices --adddev /dev/sdb
sudo lvmdevices --adddev /dev/sdc
sudo lvmdevices --adddev /dev/sdd
sudo lvmdevices --adddev /dev/sde

为什么这是必要的?我以为 lvm 每次都会扫描所有块设备?为什么它要保留要扫描的设备列表?

答案1

列出所有可能导致 pvscan 跳过的原因。

  1. lvm.conf 过滤器包含指向设备的符号链接,如 /dev/disk/by-id/lvm-pv-uuid-xyz 条目。
  2. 要将设备与 lvm 一起使用,请使用命令 lvmdevices --adddev 将其添加到设备文件中,要防止 lvm 查看或使用设备,请使用 lvmdevices --deldev 将其从设备文件中移除。vgimportdevices 命令将 VG 中的所有 PV 添加到设备文件中,并更新 VG 元数据以包含 PV 的设备 ID。可能已经有人尝试过 -deldev。
  3. 可能在 lvm.conf 中启用了一些跳过选项

工作lvmdevices --adddev证明明确添加了 pv 的工作,这意味着由于某种原因(有意或无意)它被跳过了。您需要仔细检查 lvm.conf。

我不确定这是否有帮助,但请随意添加您的发现。

答案2

这可能是由于 /etc/lvm/devices/system.devices 的存在。如果该文件存在,LVM 将使用其内容作为设备列表。如果不存在,那么我相信行为将恢复到以前的工作方式。

还请检查 /etc/lvm.conf 中的 use_devicesfile - 可能值得设置它以便根本不使用它。

相关内容