可使用 pvs
、lvs
和 vgs
命令生成简洁且可自定义的 LVM 对象报告。这些命令生成的报告包括每行一个对象的输出结果。每行包含与该对象有关的属性字段顺序列表。有五种方法可用来选择要报告的对象:即根据物理卷、卷组、逻辑卷、物理卷片段及逻辑卷片段报告。
以下小节提供:
用来控制所生成报告格式的命令参数概述。
可为每个 LVM 对象选择的字段列表。
可用来对生成的报告进行排序的命令参数概述。
指定报告输出结果单位简介。
是否使用 pvs
、lvs
或者 vgs
命令可决定显示字段的默认设置及排序顺序。可使用下面的参数控制这些命令的输出结果:
可使用 -o
参数将显示的字段改为默认值以外的内容。例如:下面的输出结果是 pvs
命令的默认显示内容(即显示物理卷信息)。
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G
下面的命令只显示物理卷名称和大小。
# pvs -o pv_name,pv_size
PV PSize
/dev/sdb1 17.14G
/dev/sdc1 17.14G
/dev/sdd1 17.14G
可将加号(+)于 -o 参数合用,在输出结果中附加一个字段。
下面的示例除显示默认字段外还显示该物理卷的 UUID。
# pvs -o +pv_uuid
PV VG Fmt Attr PSize PFree PV UUID
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G Joqlch-yWSj-kuEn-IdwM-01S9-X08M-mcpsVe
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-UqkCS
在命令中添加 -v
参数可显示额外的字段。例如:pvs -v
命令会在默认字段外显示 DevSize
和 PV UUID
字段。
# pvs -v
Scanning for physical volume names
PV VG Fmt Attr PSize PFree DevSize PV UUID
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G 17.14G Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-tUqkCS
--noheadings
参数会取消标题行。这在编写脚本时有用。
下面的示例将 --noheadings
参数与 pv_name
参数联合使用生成所有物理卷的列表:
# pvs --noheadings -o pv_name
/dev/sdb1
/dev/sdc1
/dev/sdd1
--separator separator
参数使用 separator 分离各个字段。
下面的示例使用等号(=)分离 pvs
命令的默认输出字段。
# pvs --separator =
PV=VG=Fmt=Attr=PSize=PFree
/dev/sdb1=new_vg=lvm2=a-=17.14G=17.14G
/dev/sdc1=new_vg=lvm2=a-=17.14G=17.09G
/dev/sdd1=new_vg=lvm2=a-=17.14G=17.14G
要在使用 separator
参数时保持字段对齐,请将 separator
参数与 --aligned
参数配合使用。
# pvs --separator = --aligned
PV =VG =Fmt =Attr=PSize =PFree
/dev/sdb1 =new_vg=lvm2=a- =17.14G=17.14G
/dev/sdc1 =new_vg=lvm2=a- =17.14G=17.09G
/dev/sdd1 =new_vg=lvm2=a- =17.14G=17.14G
可使用 lvs
或者 vgs
命令的 -P
参数显示有关失败卷的信息,否则该信息不会出现在输出结果中。有关这个参数字段的输出结果详情,请查看 第 6.2 节 “在失败的设备中显示信息。”。
有关完整显示参数列表,请查看 pvs
(8)、vgs
(8) 和 lvs
(8) man page。
卷组字段可与物理卷(和物理卷片段)字段或者逻辑卷(和逻辑卷片段)字段混合,但物理卷和逻辑卷字段不能混合。例如:下面的命令会每行显示一个物理卷的输出结果。
# vgs -o +pv_name
VG #PV #LV #SN Attr VSize VFree PV
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdc1
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdd1
new_vg 3 1 0 wz--n- 51.42G 51.37G /dev/sdb1
本小节提供可用来使用 pvs
、vgs
和 lvs
命令显示 LVM 对象信息的表格。
为方便起见,如果字段名称前缀与该命令的默认匹配,则可将其去掉。例如:在 pvs
命令中,name
的含义是 pv_name
,但在 vgs
命令中,会将 name
解读为 vg_name
。
执行下面的命令与执行 pvs -o pv_free
等同。
# pvs -o free
PFree
17.14G
17.09G
17.14G
注意
在之后的发行本中,pvs
、vgs
和 lvs
输出结果中 attribute 字段中的字符数可能会增加。现有字符字段不会更改位置,但可在结尾处添加新字段。为具体属性字符编写脚本时应考虑这个因素,并根据字符与该字段起始位置的相对位置搜索字符,而不是根据其与该字段的截止位置的相对位置进行搜索。例如:要在 lv_attr
字段的第九个字节搜索字符 p
,可搜索字符串 "^/........p/",但不应搜索字符串 "/*p$/"。
pvs 命令
表 4.2 “pvs Display 字段” 列出 pvs
目录的显示参数以及在标头显示中出现的字段名称及该字段的描述。
表 4.2. pvs Display 字段
参数 | 标头 | 描述 |
---|---|---|
dev_size |
DevSize | 该物理卷所在底层设备的大小 |
pe_start |
1st PE | 底层设备中的第一个物理扩展偏差 |
pv_attr |
Attr | 物理卷状态:(a)可分配;或者(x)导出。 |
pv_fmt |
Fmt | 物理卷元数据格式(lvm2 或者 lvm1 ) |
pv_free |
PFree | 物理卷中的剩余空间 |
pv_name |
PV | 物理卷名称 |
pv_pe_alloc_count |
Alloc | 已使用物理扩展数 |
pv_pe_count |
PE | 物理扩展数 |
pvseg_size |
SSize | 物理卷的片段大小 |
pvseg_start |
起始 | 物理卷片段的起始物理扩展 |
pv_size |
PSize | 物理卷大小 |
pv_tags |
PV 标签 | 附加到物理卷的 LVM 标签 |
pv_used |
已使用 | 该物理卷中目前已使用的空间数量 |
pv_uuid |
PV UUID | 该物理卷的 UUID |
pvs
命令默认显示以下字段:pv_name
, vg_name
, pv_fmt
, pv_attr
, pv_size
, pv_free
。该显示结果按 pv_name
排序。
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd1 new_vg lvm2 a- 17.14G 17.13G
使用 pvs
命令的 -v
参数值默认显示中添加以下字段:dev_size
,pv_uuid
。
# pvs -v
Scanning for physical volume names
PV VG Fmt Attr PSize PFree DevSize PV UUID
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G 17.14G onFF2w-1fLC-ughJ-D9eB-M7iv-6XqA-dqGeXY
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G 17.14G Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe
/dev/sdd1 new_vg lvm2 a- 17.14G 17.13G 17.14G yvfvZK-Cf31-j75k-dECm-0RZ3-0dGW-tUqkCS
可使用 pvs
命令的 --segments
参数显示每个物理卷片段的信息。一个片段就是一个扩展组。如果要了解逻辑卷是否碎片化,查看片段视图很有帮助。
pvs --segments
命令默认显示以下字段:pv_name
, vg_name
, pv_fmt
, pv_attr
, pv_size
, pv_free
, pvseg_start
, pvseg_size
。结果根据物理卷中的 pv_name
和 pvseg_size
排序。
# pvs --segments
PV VG Fmt Attr PSize PFree Start SSize
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 0 1172
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 1172 16
/dev/hda2 VolGroup00 lvm2 a- 37.16G 32.00M 1188 1
/dev/sda1 vg lvm2 a- 17.14G 16.75G 0 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 26 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 50 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 76 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 100 26
/dev/sda1 vg lvm2 a- 17.14G 16.75G 126 24
/dev/sda1 vg lvm2 a- 17.14G 16.75G 150 22
/dev/sda1 vg lvm2 a- 17.14G 16.75G 172 4217
/dev/sdb1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdc1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdd1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sde1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdf1 vg lvm2 a- 17.14G 17.14G 0 4389
/dev/sdg1 vg lvm2 a- 17.14G 17.14G 0 4389
可使用 pvs -a
命令查看已被 LVM 探测到但尚未初始化为 LVM 物理卷的设备。
# pvs -a
PV VG Fmt Attr PSize PFree
/dev/VolGroup00/LogVol01 -- 0 0
/dev/new_vg/lvol0 -- 0 0
/dev/ram -- 0 0
/dev/ram0 -- 0 0
/dev/ram2 -- 0 0
/dev/ram3 -- 0 0
/dev/ram4 -- 0 0
/dev/ram5 -- 0 0
/dev/ram6 -- 0 0
/dev/root -- 0 0
/dev/sda -- 0 0
/dev/sdb -- 0 0
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc -- 0 0
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd -- 0 0
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G
vgs 命令
表 4.3 “vgs Display 字段” 列出 vgs
命令的显示参数以及在标头显示中出现的字段名称及该字段的描述。
表 4.3. vgs Display 字段
参数 | 标头 | 描述 |
---|---|---|
lv_count |
#LV | 卷组所包含逻辑卷数 |
max_lv |
MaxLV | 卷组允许的最大逻辑卷数(0 表示无限大) |
max_pv |
MaxPV | 卷组允许的最大物理卷数(0 表示无限) |
pv_count |
#PV | 定义该卷组的物理卷数 |
snap_count |
#SN | 卷组包含的快照数 |
vg_attr |
Attr | 卷组状态:(w)可写入;(r)只读;(z)可重新定义大小;(x)可导出;(p)部分;以及(c)集群。 |
vg_extent_count |
#Ext | 卷组中的物理扩展数 |
vg_extent_size |
Ext | 卷组中的物理扩展大小 |
vg_fmt |
Fmt | 卷组的元数据格式(lvm2 或者 lvm1 ) |
vg_free |
VFree | 卷组中剩余的可用空间大小 |
vg_free_count |
可用 | 卷组中的可用物理扩展数 |
vg_name |
VG | 卷组名称 |
vg_seqno |
Seq | 代表卷组修改的次数 |
vg_size |
VSize | 卷组大小 |
vg_sysid |
SYS ID | LVM1 System ID |
vg_tags |
VG 标签 | 附加到卷组的 LVM 标签 |
vg_uuid |
VG UUID | 卷组的 UUID |
vgs
命令默认显示以下字段:vg_name
, pv_count
, lv_count
, snap_count
, vg_attr
, vg_size
, vg_free
. The display is sorted by vg_name
。
# vgs
VG #PV #LV #SN Attr VSize VFree
new_vg 3 1 1 wz--n- 51.42G 51.36G
使用 vgs
命令的 -v
参数值默认显示着添加以下字段:vg_extent_size
,vg_uuid
。
# vgs -v
Finding all volume groups
Finding volume group "new_vg"
VG Attr Ext #PV #LV #SN VSize VFree VG UUID
new_vg wz--n- 4.00M 3 1 1 51.42G 51.36G jxQJ0a-ZKk0-OpMO-0118-nlwO-wwqd-fD5D32
lvs 命令
表 4.4 “lvs 显示字段” 列出了 lvs
命令的显示参数以及在标头显示中的字段名称以及该字段的描述。
表 4.4. lvs 显示字段
参数 | 标头 | 描述 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
区块 | 快照卷的单位大小 | ||||||||||
copy_percent |
Copy% | 镜像逻辑卷的同步百分比;也可在使用 pv_move 命令移动物理扩展时使用。 |
||||||||||
devices |
设备 | 组成逻辑卷的底层设备:即物理卷、逻辑卷及起始物理扩展和逻辑扩展 | ||||||||||
lv_attr |
Attr | 逻辑卷状态。逻辑卷的属性字节如下:
|
||||||||||
lv_kernel_major |
KMaj | 逻辑卷的实际主要设备数(若未激活则为 -1) | ||||||||||
lv_kernel_minor |
KMIN | 逻辑卷的实际次要设备数(若未激活则为 -1) | ||||||||||
lv_major |
Maj | 逻辑卷的持久主要设备数(若未指定则为 -1) | ||||||||||
lv_minor |
Min | 逻辑卷的持久次要设备数(若未指定则为 -1) | ||||||||||
lv_name |
LV | 逻辑卷名称 | ||||||||||
lv_size |
LSize | 逻辑卷大小 | ||||||||||
lv_tags |
LV 标签 | 附加到逻辑卷的 LVM 标签 | ||||||||||
lv_uuid |
LV UUID | 逻辑卷的 UUID | ||||||||||
mirror_log |
Log | 镜像日志所在设备 | ||||||||||
modules |
模块 | 需要使用这个逻辑卷的对应内核设备映射器目标 | ||||||||||
move_pv |
移动 | 使用 pvmove 命令创建的临时逻辑卷之源物理卷 |
||||||||||
origin |
Origin | 快照卷的原始设备 | ||||||||||
|
区域 | 镜像逻辑卷的单元大小 | ||||||||||
seg_count |
#Seg | 逻辑卷中的片段数 | ||||||||||
seg_size |
SSize | 逻辑卷的片段大小 | ||||||||||
seg_start |
起始 | 逻辑卷中的片段偏移 | ||||||||||
seg_tags |
Seg 标签 | 附加到逻辑卷片段的 LVM 标签 | ||||||||||
segtype |
类型 | 逻辑卷的片段类型(例如:镜像、条带、线性) | ||||||||||
snap_percent |
Snap% | 目前使用的快照卷百分比 | ||||||||||
stripes |
#Str | 逻辑卷中的条状卷或镜像卷数 | ||||||||||
|
条带 | 条带逻辑卷的单元大小 |
lvs
命令默认显示下面的字段:lv_name
、vg_name
、lv_attr
、lv_size
、origin
、snap_percent
、move_pv
、mirror_log
、copy_percent
、convert_lv
。默认根据卷组中的 vg_name
和 lv_name
排序。
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lvol0 new_vg owi-a- 52.00M
newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
使用 lvs
命令的 -v
参数将下面的字段添加到默认显示中:seg_count
、lv_major
、lv_minor
、lv_kernel_major
、lv_kernel_minor
、lv_uuid
。
# lvs -v
Finding all logical volumes
LV VG #Seg Attr LSize Maj Min KMaj KMin Origin Snap% Move Copy% Log Convert LV UUID
lvol0 new_vg 1 owi-a- 52.00M -1 -1 253 3 LBy1Tz-sr23-OjsI-LT03-nHLC-y8XW-EhCl78
newvgsnap1 new_vg 1 swi-a- 8.00M -1 -1 253 5 lvol0 0.20 1ye1OU-1cIu-o79k-20h2-ZGF0-qCJm-CfbsIx
可使用 lvs
命令的 --segments
参数显示默认栏信息,并强调片段信息。使用 segments
参数后,seg
前缀为自选项。lvs --segments
命令默认显示下面的字段:lv_name
、vg_name
、lv_attr
、stripes
、segtype
、seg_size
。默认显示是根据卷组的 vg_name
和 lv_name
,以及该逻辑卷的 seg_start
排序。如果逻辑卷碎片化,这个命令的输出结果会体现此状态。
# lvs --segments
LV VG Attr #Str Type SSize
LogVol00 VolGroup00 -wi-ao 1 linear 36.62G
LogVol01 VolGroup00 -wi-ao 1 linear 512.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 104.00M
lv vg -wi-a- 1 linear 88.00M
使用 lvs --segments
命令的 -v
参数在默认显示着添加以下字段:seg_start
、stripesize
、chunksize
。
# lvs -v --segments
Finding all logical volumes
LV VG Attr Start SSize #Str Type Stripe Chunk
lvol0 new_vg owi-a- 0 52.00M 1 linear 0 0
newvgsnap1 new_vg swi-a- 0 8.00M 1 linear 0 8.00K
下面的示例演示了在已配置逻辑卷的系统中运行 lvs
命令的输出结果,以及运行附加 segments
参数的 lvs
命令的输出结果。
#lvs
LV VG Attr LSize Origin Snap% Move Log Copy% lvol0 new_vg -wi-a- 52.00M #lvs --segments
LV VG Attr #Str Type SSize lvol0 new_vg -wi-a- 1 linear 52.00M
通常必须生成 lvs
、vgs
或者 pvs
命令的整个输出结果,并在可将其排序并正确对齐前保存。可指定 --unbuffered
参数在生成后即刻显示未排序的输出结果。
要制定可替换的列排序顺序,请使用任意报告命令的 -O
参数。不一定要在输出结果中包含这些字段。
以下示例显示 pvs
命令的输出结果,其中显示内容包括物理卷名称、大小及可用空间。
# pvs -o pv_name,pv_size,pv_free
PV PSize PFree
/dev/sdb1 17.14G 17.14G
/dev/sdc1 17.14G 17.09G
/dev/sdd1 17.14G 17.14G
以下示例显示同样的输出结果,但根据可用空间字段排序。
# pvs -o pv_name,pv_size,pv_free -O pv_free
PV PSize PFree
/dev/sdc1 17.14G 17.09G
/dev/sdd1 17.14G 17.14G
/dev/sdb1 17.14G 17.14G
以下示例表示不需要显示用来排序的字段内容。
# pvs -o pv_name,pv_size -O pv_free
PV PSize
/dev/sdc1 17.14G
/dev/sdd1 17.14G
/dev/sdb1 17.14G
要显示反向排序,请在 -O
参数前指定 的字段前添加 -
字符。
# pvs -o pv_name,pv_size,pv_free -O -pv_free
PV PSize PFree
/dev/sdd1 17.14G 17.14G
/dev/sdb1 17.14G 17.14G
/dev/sdc1 17.14G 17.09G
要指定 LVM 报告显示的单位,请使用该报告命令的 --units
参数。可指定 (b)、(k)、(m)、(g)、(t)、(e)xabytes、(p) 和 (h)。默认显示为 human-readable(用户可读)。可在 lvm.conf
文件的 global
部分设置 units
参数覆盖默认值。
以下示例采用 MB 指定 pvs
命令的输出结果,而不是默认的 GB。
# pvs --units m
PV VG Fmt Attr PSize PFree
/dev/sda1 lvm2 -- 17555.40M 17555.40M
/dev/sdb1 new_vg lvm2 a- 17552.00M 17552.00M
/dev/sdc1 new_vg lvm2 a- 17552.00M 17500.00M
/dev/sdd1 new_vg lvm2 a- 17552.00M 17552.00M
默认情况是以 2 的次方数(1024 的倍数)显示单位。可使用大写单位(B、K、M、G、T、H)以 1000 的倍数显示单位。
下面的命令采用 1024 的倍数(即默认行为)显示命令输出结果。
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 17.14G 17.14G
/dev/sdc1 new_vg lvm2 a- 17.14G 17.09G
/dev/sdd1 new_vg lvm2 a- 17.14G 17.14G
下面的命令采用 1000 的倍数显示命令输出结果。
# pvs --units G
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 18.40G 18.40G
/dev/sdc1 new_vg lvm2 a- 18.40G 18.35G
/dev/sdd1 new_vg lvm2 a- 18.40G 18.40G
还可以指定 (s) 扇区(默认为 512 字节)或自定义单位。
下面的示例以扇区数显示 pvs
命令的输出结果。
# pvs --units s
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 35946496S 35946496S
/dev/sdc1 new_vg lvm2 a- 35946496S 35840000S
/dev/sdd1 new_vg lvm2 a- 35946496S 35946496S
下面的示例以 4MB 为单位显示 pvs
命令的输出结果。
# pvs --units 4m
PV VG Fmt Attr PSize PFree
/dev/sdb1 new_vg lvm2 a- 4388.00U 4388.00U
/dev/sdc1 new_vg lvm2 a- 4388.00U 4375.00U
/dev/sdd1 new_vg lvm2 a- 4388.00U 4388.00U
参考:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/custom_report