lvs 命令详解

一、命令概述

lvs 是 LVM(逻辑卷管理)工具集中用于显示逻辑卷(LV)信息 的核心命令,输出格式紧凑且高度可配置,支持自定义显示字段、筛选、排序等操作,是查询LV状态的首选工具(替代较繁琐的 lvdisplay)。其核心功能是快速展示LV的关键属性(如大小、状态、所属卷组、类型等),适用于日常存储监控、脚本化管理及故障排查场景。

二、语法格式

lvs [选项]... [VG|LV|Tag...]
  • 参数说明:
    • 选项:控制输出内容(如字段选择、筛选条件)、格式(如单位、分隔符)等。
    • VG|LV|Tag...(可选):指定要查询的卷组(VG)、逻辑卷(LV,格式 VG/LV)或标签(Tag),不指定则默认显示所有可见LV。

三、核心功能

lvs 的核心功能是灵活查询逻辑卷的属性,具体包括:

  1. 多维度信息展示:支持显示LV的名称、大小、所属卷组、激活状态、类型(如线性、RAID、快照)、健康状态等。
  2. 自定义输出:通过 --options 选择需显示的字段(如仅显示名称和大小),按需精简或扩展信息。
  3. 筛选与排序:通过 --select 按条件筛选LV(如仅显示激活状态的LV),通过 --sort 按指定字段排序(如按大小降序)。
  4. 特殊LV显示:支持显示内部LV(如镜像卷的组件)、历史LV(已删除但保留记录的LV)等。

四、选项详解

1. 输出内容控制
选项长选项说明
-a--all显示内部LV(如镜像卷的 _mimage、_mlog 组件),这些LV不可独立访问(无法挂载)。
-H--history包含历史LV(已删除但保留记录的LV),需 lvm.conf 中 metadata/record_lvs_history 启用才有效。
--segments-按段(segment) 展示LV的组成(如条带段、镜像段),适合分析LV的存储布局。
2. 字段选择与格式
选项长选项说明
-o String--options String指定要显示的字段(逗号分隔),如 lv_name,vg_name,size,status。使用 -o help 查看所有支持的字段,-o lv_all 显示所有LV相关字段。
--noheadings-不显示表头(列标题),适合脚本处理(如通过 grep 筛选结果)。
--nameprefixes-为输出字段添加 LVM2_ 前缀(如 LVM2_lv_name=data_lv),配合 --noheadings 可生成环境变量格式的键值对。
--separator String-自定义列分隔符(如 --separator "," 用逗号分隔列,默认空格)。
3. 筛选与排序
选项长选项说明
-S String--select String按条件筛选LV,语法为 字段=条件(如 lv_name=~"data.*" 筛选名称以 data 开头的LV,status=active 筛选激活状态的LV)。
-O String--sort String按指定字段排序,前缀 - 表示降序(如 -O size 按大小升序,-O -size 按大小降序)。
4. 单位与数据格式
选项长选项说明
--units 单位-指定大小单位:
- 小写字母(如 k、m、g):基础2进制单位(1k=1024字节);
- 大写字母(如 K、M、G):十进制单位(1K=1000字节);
- h:人类可读格式(自动选择单位);
例如 --units G 以GiB显示大小。
--nosuffix-不显示单位后缀(需与 --units 配合,如 --units M --nosuffix 仅显示数字)。
--binary-用二进制值(0/1)表示二值属性(如激活状态:1 表示active,0 表示inactive)。
5. 特殊场景选项
选项长选项说明
--foreign-显示外部VG中的LV(通常是其他系统的VG,默认跳过)。
--shared-显示共享VG中的LV(需配合 lvmlockd,默认跳过未启用共享的VG)。
--readonly-以只读模式运行,不获取锁(用于查看虚拟机镜像或集群VG的元数据,无法判断LV是否正在使用)。

五、LV属性字符串(lv_attr)解析

lvs 输出中的 LV Attribute 字段(简写 Attr)是一个由10位字符组成的字符串,每一位代表LV的特定属性,具体含义如下:

位置含义常见值说明
1卷类型l:线性卷;s:快照;m:镜像;r:RAID;t:瘦卷;T:瘦池。
2权限w:可读写;r:只读。
3分配策略n:正常;c:连续;a:任意。
4固定次设备号m:固定;无标识:不固定。
5状态a:激活;s:暂停;h:历史;p:部分可用(PV缺失)。
6设备打开状态o:已打开(如挂载);无标识:未打开。
7目标类型m:镜像;r:RAID;s:快照;t:瘦卷。
8零初始化z:新块自动清零;无标识:不清零。
9健康状态p:部分可用(PV缺失);m:RAID数据不一致;F:瘦池故障。
10激活跳过k:标记为激活时跳过;无标识:正常激活。

六、使用示例

1. 显示所有LV的基本信息(默认格式)
lvs  # 输出示例:
#   LV      VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
#   data_lv vg00 -wi-ao---- 100.00g
#   snap_lv vg00 sri-aor---  20.00g      data_lv 0.00
2. 自定义显示字段(名称、卷组、大小、状态)
lvs -o lv_name,vg_name,size,lv_status  # 仅显示指定字段
3. 筛选激活状态的LV并按大小降序排序
lvs -S "lv_status=active" -O -size  # 激活的LV按大小从大到小排列
4. 以GiB为单位显示,不显示表头和单位后缀
lvs --units G --noheadings --nosuffix -o lv_name,size  # 适合脚本解析
5. 显示所有内部LV(如镜像卷组件)
lvs -a  # 包含镜像的_mimage、_mlog等内部LV

七、注意事项

  1. 与lvdisplay的区别:lvs 输出更简洁,支持灵活配置字段和筛选,适合快速查询和脚本处理;lvdisplay 输出更详细但格式固定,适合深入分析单个LV。
  2. 权限要求:需root权限才能查看所有LV信息(普通用户可能只能看到部分可访问的LV)。
  3. 属性解析:lv_attr 字符串是理解LV状态的关键,需结合上述解析表解读(如 wi-ao---- 表示可读写、激活、线性卷)。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐