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
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
对 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

要按降序排列结果,请使用 -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

其它资源

67.6.2. 为 LVM 显示指定单元

您可以通过指定 LVM display 命令的- units 参数来查看基础 2 或基本 10 单位的 LVM 设备的大小。请查看下表以了解所有参数:

单元类型描述可用选项Default(默认)

基数 2 单位

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

B :bytes.
s:sector, 512 字节.
k :kibibytes.
m:mebibytes.
g:gibibytes.
t:tebibytes.
p:Pebibytes.
e:Exbibytes.
h:使用最合适的单元。
r :带有舍入指示符的人类可读,使用 rounding prefix & lt; 或 & gt; 的作用类似,以指示 LVM 如何将显示的大小舍入到最接近的单位。

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

基数 10 单位

以 1000 的倍数显示单位。

B:bytes.
S:每个扇区,512 字节。
K :KB。
M:megabytes.
G:gigabytes.
T:TB.
P:PB。
E:exabytes。
H:使用最合适的单元。
R :带有舍入指示符的人类可读,与带有舍入前缀 < 或 & gt ;H 类似,以指示 LVM 如何将显示的大小舍入到最接近的单位。

N/A

自定义单元

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

N/A

N/A

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

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

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

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

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

    # pvs --units 4m
      PV         VG     Fmt  Attr PSize      PFree
      /dev/vdb   myvg   lvm2 a--  238335.00U 238079.00U

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"
    • 要隐藏 pvsvgslvs 命令的空字段,取消注释 compact_output=1 设置:

        compact_output = 1
    • 要将 gigabytes 设置为 pvsvgslvs 命令的默认单元,请将 units = "r" 设置替换为 units = "G"

        units = "G"
  3. 确保已取消注释 lvm.conf 文件的对应部分。例如,要修改 lvs_cols 参数,必须取消注释 report 部分:

      report {
    ...
    }

验证

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

    # lvmconfig --typeconfig diff

其它资源

  • 在您的系统中的 lvm.conf (5) 手册页

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
  • 以下 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
使用 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
  • 以下 lvs 命令示例只显示名为 lvol 的逻辑卷,以及 0 到 2 之间的任何数字:

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

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

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

  • 以下 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.
  • 以下 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
  • 下面的 lvchange 命令示例标记了在正常激活命令中跳过 role=thinsnapshotorigin=thin1 的逻辑卷:

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

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

其它资源

  • 系统中 lvmreport (7) 手册页
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.