逻辑卷管理(LVM)是管理 Linux 系统存储的强大工具,其灵活性让它在生产环境中广泛应用。然而,在使用过程中,我们难免会遇到卷组无法激活、逻辑卷挂载失败、空间调整异常等各种问题。
掌握一套清晰的排查思路和命令,能让你在面对 LVM 相关故障时不再手忙脚乱。下面,我们将在 RHEL 系统环境中,逐一拆解 14 个典型的 LVM 故障场景及其对应的故障排除步骤。
场景 57:卷组未激活
故障现象:系统启动后,依赖 LVM 逻辑卷的服务或应用无法正常工作,使用 vgdisplay 发现卷组处于 “inactive” 状态。
故障排除步骤:
首先,需要检查系统中所有卷组的状态。
vgdisplay
如果发现目标卷组显示为 VG Status 为 inactive,则需要手动激活它。
vgchange -ay <VG_NAME>
参数 -a y 表示激活所有符合条件的卷组。
场景 58:物理卷不可用
故障现象:硬盘损坏、连接线松动或被移除后,物理卷(PV)丢失,导致其所在的卷组(VG)和逻辑卷(LV)无法访问。
故障排除步骤:
使用 pvdisplay 命令查看物理卷的状态。
pvdisplay
这个命令会列出所有物理卷的详细信息。对于状态异常的 PV,你需要根据实际情况处理:
- 若是物理连接问题,检查并恢复硬盘连接。
- 若是磁盘故障,请更换磁盘。如果物理卷是 RAID 阵列的一部分,你可能需要先重建 RAID 阵列。
场景 59:逻辑卷无法挂载
故障现象:在 /etc/fstab 中配置了自动挂载,但系统启动时挂载失败,或手动执行 mount 命令时提示错误。
故障排除步骤:
首先,确认逻辑卷本身状态正常。
lvdisplay
然后,尝试手动挂载,这能帮你判断是 LVM 本身的问题还是挂载点、文件系统的问题。
mount /dev/<VG_NAME>/<LV_NAME> /mnt
如果手动挂载成功,问题大概率出在 /etc/fstab 文件的配置上。检查其中对应条目的设备名、文件系统类型和挂载选项是否正确。这类存储相关的故障诊断经验,可以在专业的 运维/DevOps/SRE 社区中进行深入交流。
场景 60:逻辑卷大小不正确
故障现象:你对逻辑卷进行了扩展或收缩操作后,发现文件系统可用空间并未相应变化。
故障排除步骤:
这通常是因为只调整了逻辑卷的“物理边界”,而没有同步调整其内部的“文件系统边界”。先用 lvdisplay 确认 LV 当前的大小。
lvdisplay
然后,调整逻辑卷的大小。例如,为 LV 增加 2GB 空间。
lvresize -L +2G /dev/<VG_NAME>/<LV_NAME>
关键一步:调整文件系统大小以占用新的空间。对于 ext 系列文件系统,使用 resize2fs。
resize2fs /dev/<VG_NAME>/<LV_NAME>
注意:收缩操作风险较高,务必先备份数据并确保文件系统支持收缩。
场景 61:文件系统损坏
故障现象:系统非正常关机、断电或磁盘错误后,挂载文件系统时提示“结构需要清理”等错误。
故障排除步骤:
首先,必须卸载该文件系统。
umount /dev/<VG_NAME>/<LV_NAME>
然后,使用 e2fsck 工具强制检查和修复 ext 系列文件系统。
e2fsck -f /dev/<VG_NAME>/<LV_NAME>
参数 -f 表示即使文件系统看起来完好也强制检查。根据命令提示,确认修复检测到的错误。
场景 62:文件系统已满
故障现象:应用无法写入文件,df -h 命令显示对应挂载点使用率达到 100%。
故障排除步骤:
进入该文件系统的挂载目录,查找占用空间过大的文件或子目录。
du -sh *
这个命令会列出当前目录下所有文件和文件夹的大小。根据结果,清理不必要的日志、临时文件或归档旧数据。治本之策是结合场景 60 的逻辑卷扩容,并建立运维 & 测试监控机制,对磁盘空间进行定期检查和预警。
场景 63:快照空间不足
故障现象:LVM 快照创建后,随着原始卷的数据变动,快照空间被迅速耗尽,导致快照不可用。
故障排除步骤:
查看快照逻辑卷的当前使用情况。
lvdisplay
关注输出中快照卷的 Allocated to snapshot 百分比。
如果空间即将耗尽,可以扩展快照卷的大小。
lvextend -L +1G /dev/<VG_NAME>/<SNAP_LV_NAME>
场景 64:快照损坏
故障现象:快照无法正常使用或访问。
故障排除步骤:
如果快照已经损坏,最直接的方法是将其删除。
lvremove /dev/<VG_NAME>/<SNAP_LV_NAME>
如果需要,再基于一个稳定状态的原始逻辑卷创建新的快照。
lvcreate -s -L 1G -n <SNAP_LV_NAME> /dev/<VG_NAME>/<LV_NAME>
场景 65:RAID 阵列中的磁盘故障
故障现象:作为 LVM 物理卷的 RAID 阵列出现磁盘故障,/proc/mdstat 显示降级状态。
故障排除步骤:
首先,查看 RAID 阵列状态。
cat /proc/mdstat
根据状态信息识别故障盘,进行物理更换。将新盘加入 RAID 阵列并等待重建完成。重建后,如果 LVM 卷组和逻辑卷没有自动激活,手动激活它们。
场景 66:磁盘丢失
故障现象:物理磁盘(非RAID成员盘)被移除或断开连接,导致 LVM 配置中标记为丢失。
故障排除步骤:
使用 pvs 命令可以简洁地查看所有物理卷的状态,其中可能显示为 unknown device。
pvs
恢复磁盘连接或更换新磁盘后,重新激活相关的卷组。
vgchange -ay <VG_NAME>
场景 67:无法调整逻辑卷大小
故障现象:执行 lvresize 命令时失败,提示空间不足或其他错误。
故障排除步骤:
首先确认卷组中是否有足够的空闲空间。
vgdisplay
查看 Free PE / Size 字段。
如果有空间,则执行扩容。
lvresize -L +2G /dev/<VG_NAME>/<LV_NAME>
最后,别忘了调整文件系统大小。
resize2fs /dev/<VG_NAME>/<LV_NAME>
场景 68:无法扩展卷组
故障现象:想将新磁盘加入卷组时,vgextend 命令执行失败。
故障排除步骤:
检查新磁盘是否已成功初始化为 LVM 物理卷。
pvdisplay /dev/<NEW_DISK>
确认物理卷状态正常后,将其扩展到目标卷组。
vgextend <VG_NAME> /dev/<NEW_DISK>
场景 69:多路径未正常工作
故障现象:存储通过多路径(DM-Multipath)接入,但路径状态异常或服务未运行。
故障排除步骤:
检查多路径的当前状态和路径信息。
multipath -ll
如果配置有误,检查并修正 /etc/multipath.conf 文件。之后,重启多路径服务使配置生效。
systemctl restart multipathd
场景 70:多路径设置中的路径失败
故障现象:多路径配置中的某条具体路径(如某块 HBA 卡或某条光纤)出现故障。
故障排除步骤:
通过详细列表找出失败的路径。
multipath -ll
在更换故障的 HBA 卡、光纤线或修复交换机端口后,如果需要手动从多路径映射中移除一条失败的路径,可以执行:
multipath -f <failed-path>
场景 71:重启后逻辑卷未挂载
故障现象:系统重启后,配置在 /etc/fstab 中的逻辑卷没有自动挂载。
故障排除步骤:
这是最常见的问题之一。首先检查 /etc/fstab 中的条目,确保设备名(如 /dev/mapper/vg0-lv_data 或 /dev/vg0/lv_data)、文件系统类型和挂载选项正确无误。
尝试手动挂载以验证配置。
mount /dev/<VG_NAME>/<LV_NAME> /mnt
同时,查看系统日志(如 journalctl -xe 或 /var/log/messages),寻找启动过程中的挂载错误信息。
场景 72:无法卸载逻辑卷
故障现象:执行 umount 命令时,提示“设备正忙”。
故障排除步骤:
使用 lsof 命令找出哪些进程正在访问目标逻辑卷上的文件。
lsof | grep <VG_NAME>/<LV_NAME>
根据 lsof 的输出,定位到相关进程。可以正常关闭这些进程(如相关的数据库、Web 服务),或在紧急情况下使用 kill 命令终止它们。解除占用后,再次尝试卸载。
场景 73:无法创建快照
故障现象:执行 lvcreate -s 创建快照时失败。
故障排除步骤:
快照创建需要卷组中有足够的空闲空间。首先确认这一点。
vgdisplay
如果空间充足,则执行快照创建命令。
lvcreate -s -L 1G -n <SNAP_LV_NAME> /dev/<VG_NAME>/<LV_NAME>
参数 -s 表示创建快照,-L 指定快照卷大小,-n 指定快照卷名称。
写在最后
以上就是 RHEL/Linux 系统中与 LVM 相关的 14 个常见故障场景及排查步骤。LVM 的管理涉及物理层、逻辑层和文件系统层,排错时需要一层层分析。请记住,在对任何生产环境,尤其是存储配置执行关键操作前,务必进行备份和充分的测试。希望这份指南能帮助你更从容地应对日常的系统网络/系统运维挑战。如果你在实践中遇到了更棘手的问题,也欢迎在云栈社区的技术论坛与更多同行交流探讨。