LVM卷组因物理硬盘拔出进入僵尸状态时,需用vgreduce --removemissing --force强制清理缺失PV;先验证missing_pv和Cur PV异常,停用所有LV,再执行命令并用vgs/vgdisplay确认清理生效。

遇到物理硬盘被突然拔掉,LVM 卷组(VG)变成“僵尸状态”——比如 vgs 显示 missing_pv、vgdisplay 里出现 Missing PV 行、Cur PV 数值比实际在线磁盘多,说明 LVM 还记着那块消失的 PV,但已无法访问。这时不能靠常规删除流程,必须用 vgreduce --removemissing 强制清理。
确认 VG 当前处于 missing 状态
先验证问题是否匹配:运行 vgs -o +missing_pv 或 vgdisplay,重点看两处:
-
Missing PV行非空(如显示/dev/sdb) -
Cur PV数值大于当前真实在线的物理卷数量(可用pvs对照)
若只是设备名变了(比如 /dev/sdb 变成 /dev/sdc),应优先尝试 pvscan --cache 同步,而非直接清理。
确保所有逻辑卷已停用
未停用的 LV 会阻止清理操作。必须让整个 VG 处于非活动状态:
- 停用全部 LV:
vgchange -an <vg_name> - 或逐个停用(适合只想保留部分 LV 的场景):
lvchange -an /dev/<vg_name>/<lv_name>
执行后检查:lvs -o +active 中所有 LV 的 Active 列应为 inactive。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
执行强制清理命令
核心命令只有一行,但 --force 不可省略:
vgreduce --removemissing --force <vg_name>
-
--removemissing告诉 LVM 清理所有标记为 missing 的 PV 记录 -
--force是关键:跳过安全警告(例如“可能丢失数据”),否则命令会中止 - 不加
--force时,系统会提示类似Refusing to remove last PV with extents的拒绝信息
成功后不会输出明显提示,需靠后续验证确认效果。
验证清理是否生效
运行以下两条命令交叉确认:
-
vgs <vg_name>—— 输出中不应再有missing_pv字段,且PV列数值等于当前在线物理卷数 -
vgdisplay <vg_name>——Missing PV行应完全消失,Cur PV和Act PV数值一致
如果仍显示 missing,可能是内核设备缓存未刷新,可尝试 dmsetup remove_all && vgscan --cache 后重试。

















