Red Hat Training

A Red Hat training course is available for RHEL 8

7.4. 定义 LVM 选择标准

选择标准是 <field> <operator> <value> 形式的一组语句,它使用比较运算符来定义特定字段的值。然后,处理或显示与选择条件匹配的对象。语句通过逻辑和分组运算符进行组合。要定义选择标准,请使用 -S--select 选项,后跟一个或多个语句。

有些 LVM 命令支持 -S 选项,以根据某些属性选择要处理哪些对象。这些对象可以是物理卷(PV)、卷组(VG)或逻辑卷(LV)。

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

使用 lvs -S help 命令查看字段和可能的操作符的完整集合。使用任何报告或处理命令替换 lvs,以查看该命令的详情。

使用带有 LVM 报告和处理命令的选择标准,来仅显示或处理满足所选标准的对象:

  • 报告命令包括 pvs,vgs,lvs,pvdisplay,vgdisplay,lvdisplaydmsetup info -c
  • 处理命令包括 pvchange,vgchange,lvchange,vgimport,vgexport,vgremovelvremove

流程

  • 使用 pvs 命令的选择标准的示例:

    # pvs
      PV           VG   Fmt  Attr PSize    PFree
      /dev/nvme2n1       lvm2 ---     1.00g   1.00g
      /dev/vdb1     myvg lvm2 a--  1020.00m 396.00m
      /dev/vdb2     myvg lvm2 a--  1020.00m 896.00m
    # pvs -S name=~nvme
      PV           Fmt  Attr PSize PFree
      /dev/nvme2n1 lvm2 ---  1.00g 1.00g
    # 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
      LV    VG   Attr       LSize   Cpy%Sync
      mylv  myvg -wi-a----- 200.00m
      lvol0 myvg -wi-a----- 100.00m
      lvol1 myvg -wi-a----- 100.00m
      lvol2 myvg -wi------- 100.00m
      rr    myvg rwi-a-r--- 120.00m 100.00
    # lvs -S 'size > 100m && size < 200m'
      LV   VG   Attr       LSize   Cpy%Sync
      rr   myvg rwi-a-r--- 120.00m 100.00
    # lvs -S name=~lvol[02]
      LV    VG   Attr       LSize
      lvol0 myvg -wi-a----- 100.00m
      lvol2 myvg -wi------- 100.00m
    # lvs -S segtype=raid1
      LV   VG   Attr       LSize   Cpy%Sync
      rr   myvg rwi-a-r--- 120.00m 100.00
  • 更高级的示例:

    # 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 -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 --setactivationskip n -S 'role=thinsnapshot && origin=thin1'
      Logical volume myvg/thin1s changed.
    # lvs -a -S 'name=~_tmeta && role=metadata && size <= 4m'
      LV         VG      Attr       LSize
      [tp_tmeta] myvg   ewi-ao---- 4.00m

其他资源

  • lvmreport (7) 手册页