67.6. 自定义 LVM 报告


LVM 提供了广泛的配置和命令行选项来生成自定义报告。您可以对输出进行排序,指定单元、使用选择条件,并更新 lvm.conf 文件以自定义 LVM 报告。

67.6.1. 控制 LVM 显示的格式

当您使用没有附加选项的 pvslvsvgs 命令时,您会看到以默认排序顺序显示的默认字段集合。pvs 命令的默认字段包括以下信息,按物理卷名称排序:

# pvs
  PV         VG               Fmt     Attr   PSize    PFree
  /dev/vdb1  VolumeGroupName  lvm2    a--    17.14G   17.14G
  /dev/vdb2  VolumeGroupName  lvm2    a--    17.14G   17.09G
  /dev/vdb3  VolumeGroupName  lvm2    a--    17.14G   17.14G
Copy to Clipboard Toggle word wrap
PV
物理卷名称。
VG
卷组名称。
Fmt
物理卷的元数据格式: lvm2lvm1
Attr
物理卷的状态:(a)- 可分配或(x)- 导出。
PSize
物理卷的大小。
PFree
物理卷中剩余的可用空间。
显示自定义字段

要显示与默认字段不同的字段,请使用 -o 选项。下面的例子只显示物理卷的名称、大小和可用空间:

# pvs -o pv_name,pv_size,pv_free
  PV         PSize  PFree
  /dev/vdb1  17.14G 17.14G
  /dev/vdb2  17.14G 17.09G
  /dev/vdb3  17.14G 17.14G
Copy to Clipboard Toggle word wrap
对 LVM 显示进行排序

要根据特定条件对结果进行排序,请使用 -O 选项。以下示例按其物理卷的空闲空间以升序排序条目:

# pvs -o pv_name,pv_size,pv_free -O pv_free
  PV         PSize  PFree
  /dev/vdb2  17.14G 17.09G
  /dev/vdb1  17.14G 17.14G
  /dev/vdb3  17.14G 17.14G
Copy to Clipboard Toggle word wrap

要按降序排列结果,请使用 -O 选项和 - 字符:

# pvs -o pv_name,pv_size,pv_free -O -pv_free
  PV         PSize  PFree
  /dev/vdb1  17.14G 17.14G
  /dev/vdb3  17.14G 17.14G
  /dev/vdb2  17.14G 17.09G
Copy to Clipboard Toggle word wrap

67.6.2. 为 LVM 显示指定单位

您可以通过指定 LVM 显示命令的 --units 参数,以 2 或 10 为基数查看 LVM 设备的大小。请查看下表以了解所有参数:

Expand
单元类型描述可用选项default

基数 2 单位

单位以 2 的幂(1024 的倍数)显示。

b :Bytes.
s:Sectors, 512 bytes each.
k:Kibibytes.
m:Mebibytes.
g:Gibibytes.
t:Tebibytes.
p:Pebibytes.
e:Exbibytes.
h:使用人类可读的、最合适的单位。
r :带有舍入指示符的人类可读的单位,其工作方式类似于带有舍入前缀 <>h,以指示 LVM 如何将显示的大小舍入到最接近的单位。

r (当未指定 --units 时)。您可以通过在 /etc/lvm/lvm.conf 文件的全局部分中设置 units 参数来覆盖默认设置。

基数 10 单位

以 1000 的倍数显示的单位。

B :Bytes.
S:Sectors, 512 bytes each.
K:Kilobytes.
M:Megabytes.
G:Gigabytes.
T:Terabytes.
P:Petabytes.
E:Exabytes.
H:使用人类可读的、最合适的单位。
R :带有舍入指示符的人类可读的单位,其工作方式与带有舍入前缀 <>H 类似,以指示 LVM 如何将显示的大小舍入到最接近的单位。

N/A

自定义单位

数量与 2 或 10 基数单位的组合。例如,若要以 4MB 为单位显示结果,可使用 4m

N/A

N/A

  • 如果您没有指定单位的值,则默认使用人类可读的格式(r)。以下 vgs 命令以人类可读的格式显示 VG 的大小。使用最合适的单位,并且舍入指示符 < 显示实际大小是一个大概值,其小于 931 gibibytes。

    # vgs myvg
      VG   #PV #LV #SN Attr VSize    VFree
      myvg   1   1   0 wz-n <931.00g <930.00g
    Copy to Clipboard Toggle word wrap
  • 以下 pvs 命令以基数 2 gibibyte 单位显示 /dev/vdb 物理卷的输出:

    # pvs --units g /dev/vdb
      PV        VG    Fmt  Attr PSize   PFree
      /dev/vdb  myvg  lvm2 a--  931.00g 930.00g
    Copy to Clipboard Toggle word wrap
  • 以下 pvs 命令以基数 10GB 单位显示 /dev/vdb 物理卷的输出:

    # pvs --units G /dev/vdb
      PV        VG   Fmt  Attr  PSize   PFree
      /dev/vdb  myvg lvm2 a--   999.65G 998.58G
    Copy to Clipboard Toggle word wrap
  • 以下 pvs 命令以 512 字节扇区显示输出:

    # pvs --units s
      PV         VG     Fmt  Attr PSize       PFree
      /dev/vdb   myvg   lvm2 a--  1952440320S 1950343168S
    Copy to Clipboard Toggle word wrap
  • 您可以为 LVM 显示命令指定自定义单位。下面的例子以 4MB 为单位显示 pvs 命令的输出:

    # pvs --units 4m
      PV         VG     Fmt  Attr PSize      PFree
      /dev/vdb   myvg   lvm2 a--  238335.00U 238079.00U
    Copy to Clipboard Toggle word wrap

67.6.3. 自定义 LVM 配置文件

您可以通过编辑 lvm.conf 文件,根据具体的存储和系统要求自定义 LVM 配置。例如,您可以编辑 lvm.conf 文件来修改过滤设置、配置卷组自动激活、管理精简池或自动扩展快照。

流程

  1. 在您选择的编辑器中打开 lvm.conf 文件。
  2. 通过取消要修改默认显示值的设置的注释并进行修改来自定义 lvm.conf 文件。

    • 要自定义您在 lvs 输出中看到的字段,请取消 lvs_cols 参数的注释并进行修改:

        lvs_cols="lv_name,vg_name,lv_attr"
      Copy to Clipboard Toggle word wrap
    • 要隐藏 pvsvgslvs 命令的空字段,请取消 compact_output=1 设置的注释:

        compact_output = 1
      Copy to Clipboard Toggle word wrap
    • 要将 gigabytes 设置为 pvsvgslvs 命令的默认单位,请将 units = "r" 设置替换为 units = "G"

        units = "G"
      Copy to Clipboard Toggle word wrap
  3. 确保已取消了 lvm.conf 文件的相应部分的注释。例如,要修改 lvs_cols 参数,必须取消 report 部分的注释:

      report {
    ...
    }
    Copy to Clipboard Toggle word wrap

验证

  • 修改 lvm.conf 文件后查看更改的值:

    # lvmconfig --typeconfig diff
    Copy to Clipboard Toggle word wrap

67.6.4. 定义 LVM 选择标准

选择标准是 <field> <operator> <value> 形式的一组语句,它使用比较运算符来定义特定字段的值。然后,处理或显示与选择条件匹配的对象。对象可以是物理卷(PV)、卷组(VG)或逻辑卷(LV)。语句通过逻辑和分组运算符进行组合。

要定义选择标准,请使用 -S--select 选项,后跟一个或多个语句。

-S 选项的工作原理是通过描述要处理的对象,而不是命名每个对象。这在处理许多对象时很有用,当搜索有复杂特征集合的对象时,很难查找和单独命名每个对象。也可以使用 -S 选项作为一种快捷方式,来避免输入许多名称。

要查看字段和可能的运算符的完整集合,请使用 lvs -S help 命令。使用任何报告或处理命令替换 lvs 来查看该命令的详情:

  • 报告命令包括 pvs,vgs,lvs,pvdisplay,vgdisplay,lvdisplaydmsetup info -c
  • 处理命令包括 pvchange,vgchange,lvchange,vgimport,vgexport,vgremovelvremove
使用 pvs 命令的选择条件的示例
  • 以下 pvs 命令示例只显示名称包含字符串 nvme 的物理卷:

    # pvs -S name=~nvme
      PV           Fmt  Attr PSize PFree
      /dev/nvme2n1 lvm2 ---  1.00g 1.00g
    Copy to Clipboard Toggle word wrap
  • 以下 pvs 命令示例只显示 myvg 卷组中的物理设备:

    # pvs -S vg_name=myvg
      PV         VG   Fmt  Attr PSize    PFree
      /dev/vdb1   myvg lvm2 a--  1020.00m 396.00m
      /dev/vdb2   myvg lvm2 a--  1020.00m 896.00m
    Copy to Clipboard Toggle word wrap
使用 lvs 命令的选择条件的示例
  • 以下 lvs 命令示例只显示大小大于 100m 但小于 200m 的逻辑卷:

    # lvs -S 'size > 100m && size < 200m'
      LV   VG   Attr       LSize   Cpy%Sync
      rr   myvg rwi-a-r--- 120.00m 100.00
    Copy to Clipboard Toggle word wrap
  • 以下 lvs 命令示例只显示名称包含 lvol 和 0 到 2 之间任何数字的逻辑卷:

    # lvs -S name=~lvol[02]
      LV    VG   Attr       LSize
      lvol0 myvg -wi-a----- 100.00m
      lvol2 myvg -wi------- 100.00m
    Copy to Clipboard Toggle word wrap
  • 以下 lvs 命令示例只显示具有 raid1 段类型的逻辑卷:

    # lvs -S segtype=raid1
      LV   VG   Attr       LSize   Cpy%Sync
      rr   myvg rwi-a-r--- 120.00m 100.00
    Copy to Clipboard Toggle word wrap
高级示例

您可以将选择条件与其他选项合并。

  • 以下 lvchange 命令示例只将特定的标签 mytag 添加给活跃的逻辑卷:

    # lvchange --addtag mytag -S active=1
      Logical volume myvg/mylv changed.
      Logical volume myvg/lvol0 changed.
      Logical volume myvg/lvol1 changed.
      Logical volume myvg/rr changed.
    Copy to Clipboard Toggle word wrap
  • 以下 lvs 命令示例显示所有名称与 _pmspare 不匹配的逻辑卷,并将默认标头改为自定义卷:

    # lvs -a -o lv_name,vg_name,attr,size,pool_lv,origin,role -S 'name!~_pmspare'
      LV         VG      Attr       LSize Pool Origin Role
      thin1      example Vwi-a-tz-- 2.00g tp          public,origin,thinorigin
      thin1s     example Vwi---tz-- 2.00g tp   thin1  public,snapshot,thinsnapshot
      thin2      example Vwi-a-tz-- 3.00g tp          public
      tp         example twi-aotz-- 1.00g             private
      [tp_tdata] example Twi-ao---- 1.00g             private,thin,pool,data
      [tp_tmeta] example ewi-ao---- 4.00m             private,thin,pool,metadata
    Copy to Clipboard Toggle word wrap
  • 下面的 lvchange 命令示例使用 role=thinsnapshotorigin=thin1 标记正常激活命令过程要跳过的逻辑卷:

    # lvchange --setactivationskip n -S 'role=thinsnapshot && origin=thin1'
      Logical volume myvg/thin1s changed.
    Copy to Clipboard Toggle word wrap
  • 以下 lvs 命令示例只显示与所有三个条件都匹配的逻辑卷:

    • 名称包含 _tmeta
    • 角色是 metadata
    • 大小小于或等于 4m。
    # lvs -a -S 'name=~_tmeta && role=metadata && size <= 4m'
      LV         VG      Attr       LSize
      [tp_tmeta] myvg   ewi-ao---- 4.00m
    Copy to Clipboard Toggle word wrap

其他资源

  • 您系统上的 lvmreport (7) 手册页
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat