lvs命令最直接查看lvm快照状态和使用率,执行lvs -o +snapshot_percent,origin,lv_attrs可显示cow空间使用百分比、原始lv路径及lv_attr中i标志(表示已失效)。

怎么用 lvs 查快照状态和使用率
lvs 是最直接、最常用的查看 LVM 快照状态的命令,它能同时显示快照是否有效、空间占用比例、所属原始 LV 等关键信息。
执行:lvs -o +snapshot_percent,origin,lv_attr
-
snap_percent列显示 COW 空间使用百分比:达到100.00表示已写满 -
origin列显示该快照对应的原始逻辑卷路径(如lv_mysql) -
lv_attr中若含I(大写 i),说明快照已 invalid —— 这是失效的明确标志,不是“可能失效” - 如果快照已失效,
snap_percent可能不显示数值,或显示为-,此时重点看lv_attr的I
lvdisplay 能否看出快照是否还能用
lvdisplay 输出更详细,但对“是否可用”的判断不如 lvs 直观,需人工解读。
运行:lvdisplay /dev/vg00/mysql_snap
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 关注
LV Status字段:若显示NOT available或invalid,说明快照不可读 - 检查
Allocated to snapshot行:若为空或显示0.00%,大概率已失效(尤其配合lv_attr含I时) - 注意:即使
lvdisplay不报错,只要lvs显示I,就别尝试挂载或读取——会失败或返回乱码
为什么 dmsetup info 有时显示快照但状态不准
dmsetup info -c 查的是底层 device-mapper 层设备状态,它能看到快照设备存在,但无法反映 LVM 层的逻辑有效性。
- 快照写满后,LVM 层主动将其标记为 invalid,但 device-mapper 设备节点(如
vg00-mysql_snap)仍存在于/dev/mapper/下 -
dmsetup info可能仍显示active,但这只是设备映射器层面的状态,不代表快照数据可读 - 依赖
dmsetup判断快照是否可用,容易误判——必须以lvs的lv_attr和snap_percent为准
内核日志里找快照失效证据
当怀疑快照突然不可用,又没及时查 lvs,dmesg 是最后的确认依据。
执行:dmesg | tail -20 | grep snapshot
- 典型输出:
snapshot: Invalidating snapshot mysql_snap due to overflow - 该日志出现即代表快照已被内核强制置为 invalid,原始 LV 数据未受影响,但快照内容已不可恢复
- 注意时间戳:日志中的时间(比如 2026-01-20)说明失效发生已久,当前看到的无效状态是结果,不是瞬时故障
lvs 输出里的 I 和 100.00;其他命令要么辅助验证,要么容易误导。一旦 lv_attr 出现 I,这个快照就彻底作废了,删掉重建是唯一选择。










