Linux命令-vgdisplay(显示卷组详细属性)
-
- [🔰 简介](#🔰 简介)
- [📖 语法](#📖 语法)
- [⚙️ 选项](#⚙️ 选项)
- [💡 示例](#💡 示例)
-
- [示例 1:查看全部卷组详细信息](#示例 1:查看全部卷组详细信息)
- [示例 2:查看特定卷组详细信息和包含的 PV/LV](#示例 2:查看特定卷组详细信息和包含的 PV/LV)
- [示例 3:空间使用分析](#示例 3:空间使用分析)
- [示例 4:脚本化------空间预警](#示例 4:脚本化——空间预警)
- [⚠️ 注意](#⚠️ 注意)
- [📚 相关命令](#📚 相关命令)
- [📝 总结](#📝 总结)
快速参考 :vgdisplay 用于显示 LVM 卷组(Volume Group)的详细信息,包括卷组大小、PE 设置、空间分配情况以及包含的逻辑卷列表。相比 vgs 的简洁输出,vgdisplay 提供完整的卷组元数据视图。
🔰 简介
vgdisplay 是查看卷组最详尽的方式 。它输出卷组的系统标识(名称、UUID、格式)、容量信息(VG Size、PE Size、Total PE、Alloc PE、Free PE)、以及元数据配置(Metadata Areas、Metadata Sequence No)。使用 -v 选项还可递归显示卷组内所有 PV 和 LV 的详细信息。
核心功能:
- 显示卷组完整元数据和容量信息
- 递归展示 PV/LV 关系(
-v选项) - 输出 PE 级别空间统计
- 支持指定单位格式
关键字段解读:
| 字段 | 含义 |
|---|---|
VG Size |
卷组中所有 PV 可用的总空间 |
PE Size |
PE 大小(默认 4MB,影响 LV 分配粒度) |
Total PE |
卷组中 PE 总数 = VG Size / PE Size |
Alloc PE |
已分配给逻辑卷的 PE 数量 |
Free PE |
剩余可分配的 PE 数量 |
Open LV |
当前已激活(打开)的逻辑卷数量 |
Max LV |
最多可创建的逻辑卷数量 |
📖 语法
bash
vgdisplay [选项] [卷组名...]
不指定卷组名时,显示所有卷组的详细信息。指定卷组名则只显示特定卷组。
⚙️ 选项
| 选项 | 说明 |
|---|---|
-v, --verbose |
显示卷组内所有 PV 和 LV 的详细信息 |
-s, --short |
仅显示大小信息 |
-A, --activevolumegroups |
仅显示已激活的卷组 |
-C, --columns |
以表格列格式输出(类似 vgs) |
-c, --colon |
以冒号分隔输出(用于脚本处理) |
--units hHbBsSkKmMgGtTpPeE |
指定大小显示单位 |
--nosuffix |
不显示单位后缀 |
-S, --select |
条件筛选 |
💡 示例
示例 1:查看全部卷组详细信息
获取系统中所有 VG 的完整元数据。
bash
# 查看所有 VG 的详细信息
$ vgdisplay
--- Volume group ---
VG Name ubuntu
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 238.00 GiB
PE Size 4.00 MiB
Total PE 60927
Alloc PE / Size 60927 / 238.00 GiB
Free PE / Size 0 / 0
VG UUID AbCdEf-GhIj-KlMn-OpQr-StUv-WxYz-123456
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 12
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 300.00 GiB
PE Size 4.00 MiB
Total PE 76798
Alloc PE / Size 58878 / 230.00 GiB
Free PE / Size 17920 / 70.00 GiB
VG UUID BcDeFg-HiJk-LmNo-PqRs-TuVw-XyZa-789012
输出解读(以 vg01 为例):
Cur PV = 2:该卷组包含 2 个物理卷Cur LV = 3:已创建 3 个逻辑卷Open LV = 2:其中 2 个被激活/打开VG Size = 300.00 GiB:两个 PV 共提供 300GB 可用空间PE Size = 4.00 MiB:每个 PE 4MBAlloc PE = 58878:已分配约 230GB(58878 × 4MB)Free PE = 17920:剩余约 70GB 可扩展
示例 2:查看特定卷组详细信息和包含的 PV/LV
使用 -v 递归显示卷组内的所有组件。
bash
# 仅查看 vg01 卷组,含所有 PV 和 LV
$ vgdisplay -v vg01
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 12
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 300.00 GiB
PE Size 4.00 MiB
Total PE 76798
Alloc PE / Size 58878 / 230.00 GiB
Free PE / Size 17920 / 70.00 GiB
VG UUID BcDeFg-HiJk-LmNo-PqRs-TuVw-XyZa-789012
--- Physical volumes ---
PV Name /dev/sdb1
PV UUID AbCdEf-...
PV Status allocatable
Total PE / Free PE 25599 / 5120
PV Name /dev/sdc1
PV UUID BcDeFg-...
PV Status allocatable
Total PE / Free PE 51199 / 12800
--- Logical volume ---
LV Path /dev/vg01/data_lv
LV Name data_lv
VG Name vg01
LV UUID CcDdEe-...
LV Size 150.00 GiB
Current LE 38400
Segments 2
Allocation inherit
Read ahead sectors auto
Block device 253:3
--- Logical volume ---
LV Path /dev/vg01/log_lv
LV Name log_lv
VG Name vg01
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Block device 253:4
--- Logical volume ---
LV Path /dev/vg01/backup_lv
LV Name backup_lv
VG Name vg01
LV Size 30.00 GiB
Current LE 7680
Segments 1
Allocation inherit
Block device 253:5
示例 3:空间使用分析
利用 vgdisplay 输出的 PE 数据计算空间利用率。
bash
# 查看卷组空间使用情况
$ vgdisplay vg01 | grep -E 'VG Size|PE Size|Total PE|Alloc PE|Free PE'
VG Size 300.00 GiB
PE Size 4.00 MiB
Total PE 76798
Alloc PE / Size 58878 / 230.00 GiB
Free PE / Size 17920 / 70.00 GiB
# 手工计算空间利用率
$ echo "scale=2; 58878 / 76798 * 100" | bc
76.66
# 已使用 76.66%
# 配合 vgs 对比
$ vgs -o vg_name,vg_size,vg_free,vg_extent_size,vg_extent_count,free_count
VG VSize VFree Ext #Ext Free
vg01 300.00g 70.00g 4.00m 76798 17920
示例 4:脚本化------空间预警
将 vgdisplay 的输出用于脚本自动化。
bash
# 检查所有 VG 的剩余空间,低于 10% 时报警
#!/bin/bash
for vg in $(vgs --noheadings -o vg_name); do
total_pe=$(vgdisplay -c "$vg" | cut -d: -f15)
free_pe=$(vgdisplay -c "$vg" | cut -d: -f16)
if [ "$total_pe" -gt 0 ]; then
used_pct=$(( (total_pe - free_pe) * 100 / total_pe ))
echo "卷组 $vg: 使用率 ${used_pct}%"
if [ "$used_pct" -ge 90 ]; then
echo " ⚠️ 警告: $vg 空间不足!剩余 ${free_pe} PE"
fi
fi
done
输出示例:
卷组 ubuntu: 使用率 100%
⚠️ 警告: ubuntu 空间不足!剩余 0 PE
卷组 vg01: 使用率 76%
⚠️ 注意
vgsvsvgdisplay:日常巡检用vgs(快速列表),深入分析用vgdisplay(完整详情)。两者的信息源一致,但呈现方式不同。vgs -o +可以自定义追加列,某种程度上比vgdisplay更灵活。
PE Size 的意义:PE 是 LVM 分配的最小单元。PE 越小,空间利用率越高但元数据开销越大;PE 越大,支持的最大卷组越大但可能浪费空间。默认 4MiB 适合大多数场景。
Free PE / Size = 0时的操作 :如果 Free PE 为 0,表示卷组已满,无法扩展任何逻辑卷或创建新逻辑卷。此时需要:
vgextend添加新的 PVlvreduce收缩某些逻辑卷释放空间lvremove删除不再需要的逻辑卷
Open LV 不匹配 :如果 Cur LV > Open LV,说明有逻辑卷未激活。检查是否有人为停用(lvchange -a n)或存在冲突:
bashvgchange -a y 卷组名 # 激活所有 LV
📚 相关命令
| 命令 | 关系 |
|---|---|
vgs |
简洁列表查看卷组 |
vgscan |
扫描并发现卷组 |
pvdisplay |
查看 PV 详细信息 |
lvdisplay |
查看 LV 详细信息 |
vgchange |
修改卷组属性(激活/停用) |
vgextend |
扩展卷组容量 |
📝 总结
vgdisplay 是 LVM 管理员深入理解卷组状态的窗口 。它提供的 PE 级别空间统计是容量规划的基础数据。记住关键字段 Free PE / Size------它是判断卷组是否还能容纳新数据的唯一指标。日常用 vgs 快速看一眼,深入分析时用 vgdisplay -v 获取 PV 和 LV 的完整树状视图。
💡 提示 :使用
vgdisplay --help或man vgdisplay获取最新文档。vgdisplay -v输出量大,建议配合less使用或重定向到文件。