Linux命令-vgdisplay(显示卷组详细属性)

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 4MB
  • Alloc 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%

⚠️ 注意

vgs vs vgdisplay :日常巡检用 vgs(快速列表),深入分析用 vgdisplay(完整详情)。两者的信息源一致,但呈现方式不同。vgs -o + 可以自定义追加列,某种程度上比 vgdisplay 更灵活。
PE Size 的意义:PE 是 LVM 分配的最小单元。PE 越小,空间利用率越高但元数据开销越大;PE 越大,支持的最大卷组越大但可能浪费空间。默认 4MiB 适合大多数场景。
Free PE / Size = 0 时的操作 :如果 Free PE 为 0,表示卷组已满,无法扩展任何逻辑卷或创建新逻辑卷。此时需要:

  1. vgextend 添加新的 PV
  2. lvreduce 收缩某些逻辑卷释放空间
  3. lvremove 删除不再需要的逻辑卷
    Open LV 不匹配 :如果 Cur LV > Open LV,说明有逻辑卷未激活。检查是否有人为停用(lvchange -a n)或存在冲突:
bash 复制代码
vgchange -a y 卷组名    # 激活所有 LV

📚 相关命令

命令 关系
vgs 简洁列表查看卷组
vgscan 扫描并发现卷组
pvdisplay 查看 PV 详细信息
lvdisplay 查看 LV 详细信息
vgchange 修改卷组属性(激活/停用)
vgextend 扩展卷组容量

📝 总结

vgdisplay 是 LVM 管理员深入理解卷组状态的窗口 。它提供的 PE 级别空间统计是容量规划的基础数据。记住关键字段 Free PE / Size------它是判断卷组是否还能容纳新数据的唯一指标。日常用 vgs 快速看一眼,深入分析时用 vgdisplay -v 获取 PV 和 LV 的完整树状视图。

💡 提示 :使用 vgdisplay --helpman vgdisplay 获取最新文档。vgdisplay -v 输出量大,建议配合 less 使用或重定向到文件。

相关推荐
小鱼仙官1 小时前
Ubuntu C++ NTP校时程序
linux·c++·ubuntu
深念Y1 小时前
RIO-UL00(EMUI 4.1 / Android 6.0.1 / arm64)开机自启动 sshd
android·linux·华为·安卓·chroot·sshd·emui
爱和冰阔落1 小时前
【MySQL 慢查询排查实战】列表接口逐渐变慢时,怎样从请求链路定位原因
android·数据库·mysql
Escalating_xu1 小时前
【Linux线程】线程控制全解析:终止、join/detach、cancel、线程栈与 NPTL(下篇)
java·linux·运维
JacksonMx2 小时前
企业级 JPA 与数据库架构落地指南
数据库·数据库架构
Dxy12393102162 小时前
MySQL有哪些锁?InnoDB锁体系完整梳理博客
数据库·mysql
老当益壮梁奶奶2 小时前
Linux软件编程学习笔记(二)Linux文件IO编程入门:从fopen到fgetc
linux·c语言·c++·笔记·学习
sunoo-2292 小时前
C 语言文件 IO 全攻略:从基础函数到实战踩坑(BMP 读取 + 词典查询)
linux·c语言·前端·笔记·vscode·学习
白猫不黑2 小时前
从运维到网络安全:转行优势、路径与薪资前景全解析
运维·网络·web安全·网络安全·信息安全·渗透测试