我有一台 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 跳过的原因。
- lvm.conf 过滤器包含指向设备的符号链接,如 /dev/disk/by-id/lvm-pv-uuid-xyz 条目。
- 要将设备与 lvm 一起使用,请使用命令 lvmdevices --adddev 将其添加到设备文件中,要防止 lvm 查看或使用设备,请使用 lvmdevices --deldev 将其从设备文件中移除。vgimportdevices 命令将 VG 中的所有 PV 添加到设备文件中,并更新 VG 元数据以包含 PV 的设备 ID。可能已经有人尝试过 -deldev。
- 可能在 lvm.conf 中启用了一些跳过选项
工作lvmdevices --adddev
证明明确添加了 pv 的工作,这意味着由于某种原因(有意或无意)它被跳过了。您需要仔细检查 lvm.conf。
我不确定这是否有帮助,但请随意添加您的发现。
答案2
这可能是由于 /etc/lvm/devices/system.devices 的存在。如果该文件存在,LVM 将使用其内容作为设备列表。如果不存在,那么我相信行为将恢复到以前的工作方式。
还请检查 /etc/lvm.conf 中的 use_devicesfile - 可能值得设置它以便根本不使用它。