vgextend --restoremissing 是恢复临时离线后重新上线的物理卷的关键命令,它利用LVM元数据将设备认领回原卷组,但需配合状态确认、设备就绪检查、vgchange -ay激活及文件系统修复才能完整恢复逻辑卷可用性。

vgextend --restoremissing 不是“一键”命令,也不能单独完成全部恢复。它只负责把重新上线但被LVM丢失识别的物理卷(PV)认领回原卷组(VG),属于在线恢复流程中的关键一步,但必须配合状态确认、设备就绪检查和后续激活操作才能真正让逻辑卷可用。
确认是否适用该场景
硬件多路径闪断后磁盘重连,常见表现为:
-
vgdisplay -v显示 “There are X physical volumes missing” -
pvs中部分 PV 状态为unknown device或直接不显示 -
lsblk或fdisk -l能看到对应磁盘(如/dev/sdb1)存在且分区正常 -
pvscan -v提示 “orphan PV found”,说明设备已扫描到,但无法匹配现有 VG
满足以上,才适合用 --restoremissing。
执行 vgextend --restoremissing 恢复
确保目标物理卷就绪(未挂载、无进程占用、无 LVM 冲突):
- 运行
lsof /dev/sdb1和fuser -v /dev/sdb1确认无占用 - 若有残留映射,可先执行
dmsetup remove_all(谨慎,仅当确定无活跃 LV 时)
执行恢复命令:
vgextend --restoremissing <vgname></vgname>
例如:
vgextend --restoremissing VolGroup
成功时输出类似:Restored missing PV /dev/sdb1 to volume group VolGroup
立即验证:
-
pvs应显示所有 PV 正常列出,状态为a-(active) -
vgs中#PV数量恢复,VSize和VFree正确,且无missing提示 -
vgdisplay不再报 missing 警告
激活逻辑卷并验证可用性
PV 回归后,VG 结构完整,但 LV 默认仍为 inactive:
-
激活整个卷组:
vgchange -ay <vgname></vgname>
-
检查 LV 状态:
lvscan | grep ACTIVE
所有 LV 应显示
ACTIVE -
尝试挂载测试(以 ext4 为例):
mount /dev/<vgname>/<lvname> /mnt/test</lvname></vgname>
若提示文件系统错误(如 journal 不一致),需修复:
- ext4:
e2fsck -f /dev// - xfs:
xfs_repair /dev/(注意:xfs_repair 前建议先/ xfs_info确认一致性)
- ext4:
预防再次发生
多路径闪断引发 missing,本质是设备名不稳定或 udev 未固化路径:
- 所有 LVM 相关配置(
/etc/lvm/cache、/etc/fstab、/etc/lvm/archive/引用)统一改用持久路径:-
/dev/disk/by-id/wwn-0x5000c500a3d7b8e1-part1 -
/dev/disk/by-uuid/xxxx-xxxx
-
- 配置 multipathd 并启用
find_multipaths yes,避免路径抖动 - 定期运行
vgcfgbackup,确保/etc/lvm/backup/有最新元数据快照
不复杂但容易忽略。











