67.6. 自定义 LVM 报告
LVM 提供了广泛的配置和命令行选项来生成自定义报告。您可以对输出进行排序,指定单元、使用选择条件,并更新 lvm.conf
文件以自定义 LVM 报告。
67.6.1. 控制 LVM 显示的格式
当您使用没有附加选项的 pvs
、lvs
或 vgs
命令时,您会看到以默认排序顺序显示的默认字段集合。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
-
物理卷的元数据格式:
lvm2
或lvm1
。 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
其它资源
-
lvmreport (7)
,lvs (8)
,vgs (8)
, 和pvs (8)
man page - 为 LVM 显示指定单元
- 自定义 LVM 配置文件
67.6.2. 为 LVM 显示指定单元
您可以通过指定 LVM display 命令的- units
参数来查看基础 2 或基本 10 单位的 LVM 设备的大小。请查看下表以了解所有参数:
单元类型 | 描述 | 可用选项 | Default(默认) |
---|---|---|---|
基数 2 单位 | 以 2 的指数显示单位(1024 的倍数)。 |
|
|
基数 10 单位 | 以 1000 的倍数显示单位。 |
| N/A |
自定义单元 |
将数量与基本 2 或基础 10 单元相结合。例如,若要以 4MB 为单位显示结果,可使用 | 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
文件来修改过滤设置、配置卷组自动激活、管理精简池或自动扩展快照。
流程
-
在您选择的编辑器中打开
lvm.conf
文件。 通过取消注释和修改要修改默认显示值的设置来自定义
lvm.conf
文件。要自定义您在
lvs
输出中看到的字段,取消注释lvs_cols
参数并修改它:lvs_cols="lv_name,vg_name,lv_attr"
要隐藏
pvs
、vgs
和lvs
命令的空字段,取消注释compact_output=1
设置:compact_output = 1
要将 gigabytes 设置为
pvs
、vgs
和lvs
命令的默认单元,请将units = "r"
设置替换为units = "G"
:units = "G"
确保已取消注释
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
,lvdisplay
和dmsetup info -c
。 -
处理命令包括
pvchange
,vgchange
,lvchange
,vgimport
,vgexport
,vgremove
和lvremove
。
使用 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=thinsnapshot
和origin=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)
手册页