lvs和vgs自定义输出是对接自动化看板的关键,需用-o指定字段、--noheadings去标题、--separator设分隔符、--units g与--nosuffix统一数值格式,确保结构化、无干扰、易解析。

LVM 的 lvs 和 vgs 命令支持高度可定制的字段输出,这正是对接企业自动化资产看板(如 Prometheus + Grafana、Ansible Inventory、CMDB 同步脚本或自研运维平台)的关键能力。核心不在于“显示什么”,而在于“稳定输出结构化、无干扰、易解析的数据”。
lvs 和 vgs 自定义输出的核心价值
看板系统通常依赖机器可读格式(如 CSV、TSV 或 JSON),而非人类友好的表格。默认输出含标题行、对齐空格、单位缩写(如 g/m)、甚至颜色控制字符,这些都会破坏解析稳定性。自定义格式化能彻底规避这些问题。
用 -o 指定关键字段,确保语义明确
只输出看板真正需要的字段,避免冗余和歧义。常见资产维度包括:
-
逻辑卷唯一标识:
lv_name、vg_name(组合即/dev/vg_name/lv_name) -
容量与使用状态:
lv_size(原始大小)、data_percent(如为 thin pool)、stripes(是否条带化) -
挂载与用途线索:
lv_attr(属性字符串,首字符表示激活状态a/A,第4位表示是否快照s,第5位表示是否精简t) -
元数据标识:
lv_uuid(全局唯一,适合 CMDB 关联)
示例命令:
lvs -o lv_name,vg_name,lv_size,lv_attr,lv_uuid --noheadings --separator '|' --units g
输出形如:
lv_root|centos|13.10|wi-ao---|QxYz9A-2BcD-3EfG-4HiJ-5KlM-6NoP-7QrS lv_swap|centos|1.91|wi-ao---|RyZa0B-1CdE-2FgH-3IjK-4LmN-5OpQ-6RsT
vgs 输出卷组级聚合指标,支撑容量规划看板
看板常需展示“每个 VG 总空间、已用、剩余、PV 数量、LV 数量”,用于容量预警或资源池健康度评估。
推荐字段组合:
-
vg_name,vg_size,vg_free,vg_extent_count,vg_free_count,pv_count,lv_count - 加
--units g统一为 GB,避免m/g混用 - 用
--nosuffix去掉单位字母,便于数值计算(如18.50而非18.50g)
示例:
vgs -o vg_name,vg_size,vg_free,pv_count,lv_count --noheadings --separator ',' --units g --nosuffix
输出:
centos,18.50,2.81,2,3 data_vg,100.00,15.20,4,12
避免解析陷阱的实操要点
-
永远加
--noheadings:标题行会破坏 CSV/TSV 解析器的行数预期; -
固定分隔符用
--separator '|'或,:避免空格被误判为字段分隔(默认空格对齐不可靠); -
慎用
-v(verbose):它插入扫描日志(如Scanning for physical volume names),污染标准输出; -
单位统一用
--units g+--nosuffix:输出纯数字13.10,而非13.10g,下游无需正则清洗; -
批量采集时加
--config 'log{level=0}':关闭 LVM 内部日志,防止 stderr 干扰 stdout。
对接看板的典型流程
- 在资产采集节点(如 Salt Minion、Ansible target)部署定时脚本,执行上述
lvs/vgs命令; - 输出重定向到本地文件或直接通过 HTTP POST 推送至 API 网关;
- 后端服务按字段名映射入库(如
vg_name → storage_pool_name,vg_free → available_gb); - Grafana 中用 Prometheus 查询或直接连数据库,绘制“VG 剩余率趋势”“LV 数量 TOP10”等看板。
不复杂但容易忽略











