精简快照无传统origin字段,其原始卷必为同thin pool内的另一thin lv;需结合lv_layout确认类型、pool_lv定位池、lv_creation_time与命名推断源卷,或通过dmsetup查thin id精确匹配。

lvs -o +origin 对精简快照(thin snapshot)无法显示有效原始卷名称,这不是命令用错,而是 LVM 设计使然:精简快照没有传统意义上的 Origin 字段。
它的“原始数据来源”不是独立 LV,而是同一 thin pool 内的另一个 thin LV——这个 thin LV 可能是基础卷,也可能是上一级快照。所以不能靠 origin 列直接读取,需结合其他方式定位。
确认目标卷是否为 thin snapshot
运行:
lvs -o +lv_layout,pool_lv,origin,lv_attr vg_name/lv_name
关注三列:
-
lv_layout:应为thin snapshot -
pool_lv:显示它所属的 thin pool(如vg01/pool01) -
origin:通常为空或-→ 这是正常现象,不代表出错
如果 lv_layout 不是 thin snapshot,那它根本不是精简快照,无需走后续流程。
查看同一池内所有 thin 卷,人工比对源关系
精简快照的“源”只能从池内找。列出该 pool 下全部 thin 类型卷:
lvs -S 'pool_lv=vg01/pool01' -o lv_name,lv_layout,lv_creation_time --sort=lv_creation_time vg01
你会看到类似:
lv_name lv_layout lv_creation_time lv_app_base thin 2026-05-10 09:22 lv_app_snap1 thin snapshot 2026-05-10 10:15 lv_app_snap2 thin snapshot 2026-05-11 14:30
→ lv_app_snap1 的原始卷极大概率就是 lv_app_base(创建时间最早、命名一致、同属一 pool)
✅ 小技巧:创建时若用
lvconvert --snapshot --name snap1 vg01/lv_app_base,LVM 不强制记录关联,但命名和时间是最可靠线索。
用 lvs --segments 辅助验证(部分版本支持 originator)
执行:
lvs --segments -o lv_name,segtype,originator,lv_layout vg01/lv_app_snap1
-
segtype应为thin -
originator字段在较新 LVM2(≥2.03.15)中可能显示父 thin LV 名(如lv_app_base),但不保证总有值 - 若为空,仍需回归上一步的命名+时间判断
终极确认:通过 device-mapper 查 thin ID 映射
当命名模糊或需 100% 确认时,进入底层:
-
查快照对应 dm 表项:
dmsetup table vg01-lv_app_snap1 # 输出如:0 2097152 thin 253:2 23 # 其中 23 是该快照在 pool 中的 thin ID
-
查 pool 名称(从设备号
253:2反推):dmsetup info -c | awk -F';' '$5 == "253:2" {print $1}' # 得到类似:vg01-pool01 -
查询 thin ID 23 对应哪个 thin LV:
dmsetup message /dev/mapper/vg01-pool01 0 "show_thin_id 23" # 输出如:lv_app_base (thin_id=23)
这一步能精确锁定原始 thin LV 名称,不受命名习惯影响。
不依赖 origin 字段,靠 pool 范围 + 命名逻辑 + thin ID 映射,就能准确定位精简快照的数据源。











