4.8. 自定义 LVM 的报告
LVM 提供了大量的配置和命令行选项来生成自定义报告,并过滤报告的结果。有关 LVM 报告特性和功能的完整描述,请查看 lvmreport(7)手册页。
您可以使用 pvs、lvs 和 vgs 命令生成 LVM 对象的简明且可自定义的报告。这些命令生成的报告包括每行对象的输出结果。每行包含一个与对象相关的属性的字段的有序列表。选择要报告的对象有五种:通过物理卷、卷组、逻辑卷、物理卷段和逻辑卷段来选择。
从 Red Hat Enterprise Linux 7.3 发行版本开始,您可以使用 lvm fullreport 命令一次报告物理卷、卷组、逻辑卷、物理卷片段和逻辑卷片段的信息。有关这个命令及其功能的详情,请查看 lvm-fullreport(8)手册页。
从 Red Hat Enterprise Linux 7.3 发行版开始,LVM 支持日志报告,其包含一个操作日志、信息以及在 LVM 命令执行过程中收集的具有完整对象标识的每个对象状态。有关 LVM 日志报告的示例,请参考 第 4.8.6 节 “命令报告(Red Hat Enterprise Linux 7.3 及更新的版本)”。有关 LVM 日志报告的详情,请查看 lvmreport(7)手册页。
以下小节提供了有关使用 pvs、lvs 和 vgs 命令自定义报告的总结信息:
- 第 4.8.1 节 “格式控制”,它提供一个可用于控制报告格式的命令参数的总结。
- 第 4.8.2 节 “对象显示字段”,它提供了一个您可以为每个 LVM 对象显示的字段的列表。
- 第 4.8.3 节 “LVM 报告排序”,它提供一个可用于对所生成的报告进行排序的命令参数的总结。
- 第 4.8.4 节 “指定单位”,它提供了指定报告输出单元的说明。
- 第 4.8.5 节 “JSON 格式输出(Red Hat Enterprise Linux 7.3 及更新的版本)”它提供了一个指定 JSON 格式输出的示例(Red Hat Enterprise Linux 7.3 及更新版本)。
- 第 4.8.6 节 “命令报告(Red Hat Enterprise Linux 7.3 及更新的版本)”,它提供了一个命令日志的示例。
4.8.1. 格式控制 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您是否使用 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参数使用 分隔符 来分隔各个字段。下例使用等号(=)将 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
有关显示参数的完整列表,请查看 pvs(8)、vgs(8)和 lvs(8)手册页。
可将卷组字段与物理卷(和物理卷段)字段或逻辑卷(和逻辑卷段)字段混合,但不能将物理卷与逻辑卷字段混合。例如:以下命令可显示每行物理卷的输出结果。
# 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
4.8.2. 对象显示字段 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
这部分提供了一系列表,列出您可以使用 pvs、vgs 和 lvs 命令显示的信息。
为方便起见,字段名称前缀如果与命令的默认名称匹配就可以省略。例如,使用 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 输出中属性字段中的字符数可能会在以后的版本中增加。现有字符字段不会改变位置,但可能会在末尾添加新字段。在编写脚本时您应该考虑到这一点,该脚本搜索特定的属性字符,根据其到字段开头的相对位置搜索字符,而不是根据其到字段结尾的相对位置。例如,要在
lv_attr 字段的第 ninth 位中搜索字符 p,您可以搜索字符串 "^/.........p/",但您不应该搜索字符串 "busyboxp$/"。
pvs 命令 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
表 4.3 “pvs 命令显示字段” 列出 pvs 命令的显示参数,以及字段名称,就像其在标头显示和字段描述中显示的那样。
| 参数 | 标头 | 描述 |
|---|---|---|
dev_size | DevSize | 创建物理卷的基本设备的大小 |
pe_start | 第一个 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 | Start | 物理卷片段的起始物理扩展 |
pv_size | PSize | 物理卷的大小 |
pv_tags | PV 标签 | 附加到物理卷的 LVM 标签 |
pv_used | 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
将
-v 参数与 pvs 命令一起使用,将以下字段添加到默认显示中: 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.4 “vgs 显示字段” 列出 vgs 命令的显示参数,以及在标头显示中的字段名称以及字段描述。
| 参数 | 标头 | 描述 |
|---|---|---|
lv_count | #LV | 卷组包含的逻辑卷数 |
max_lv | MaxLV | 卷组中最多允许的逻辑卷数目(如果没有限制就是 0) |
max_pv | MaxPV | 卷组中最多允许的物理卷数目(如果没有限制就是 0) |
pv_count | #PV | 定义卷组的物理卷数目 |
snap_count | #SN | 卷组包含的快照数 |
vg_attr | Attr | 卷组的状态:(w)riteable、(r)eadonly、resi(z)eable、e(x)ported、(p)artial 和(c)lustered。 |
vg_extent_count | #Ext | 卷组中的物理扩展数目 |
vg_extent_size | Ext | 卷组中物理扩展的大小 |
vg_fmt | Fmt | 卷组的元数据格式(lvm2 或 lvm1) |
vg_free | VFree | 卷组中剩余可用空间大小 |
vg_free_count | Free | 卷组中可用物理扩展数目 |
vg_name | VG | 卷组名称 |
vg_seqno | seq | 代表修正卷组的数 |
vg_size | VSize | 卷组大小 |
vg_sysid | SYS ID | LVM1 系统 ID |
vg_tags | VG Tags | 附加到卷组中的 LVM 标签 |
vg_uuid | VG UUID | 卷组的 UUID |
vgs 命令默认显示以下字段:
vg_name,pv_count,lv_count,snap_count,vg_attr,vg_size,vg_free.显示按照 vg_name 进行排序。
# vgs
VG #PV #LV #SN Attr VSize VFree
new_vg 3 1 1 wz--n- 51.42G 51.36G
将
-v 参数与 vgs 命令一起使用,将以下字段添加到默认显示中: 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.5 “LVS 显示字段” 列出 lvs 命令的显示参数,以及在标头显示中的字段名称以及字段描述。
注意
在以后的 Red Hat Enterprise Linux 版本中,lvs 命令的输出可能会有所不同,以及输出中的其他字段。但是,这些字段的顺序将保持不变,所有附加字段也会在显示的末尾出现。
| 参数 | 标头 | 描述 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chunk | 快照卷的单位大小 | ||||||||||
copy_percent | Copy% | 镜像逻辑卷的同步百分比 ; 也在使用 pv_move 命令移动物理扩展时使用 | ||||||||||
devices | Devices | 组成逻辑卷的基本设备:物理卷、逻辑卷以及启动物理扩展和逻辑扩展 | ||||||||||
lv_ancestors | Ancestors | (Red Hat Enterprise Linux 7.2 及更新的版本)对于精简池快照,逻辑卷的敏感度 | ||||||||||
lv_descendants | descendants | (Red Hat Enterprise Linux 7.2 及更新的版本)对于精简池快照,逻辑卷的后代 | ||||||||||
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 Tags | 附加到逻辑卷的 LVM 标签 | ||||||||||
lv_uuid | LV UUID | 逻辑卷的 UUID。 | ||||||||||
mirror_log | Log | 镜像日志所在的设备 | ||||||||||
modules | 模块 | 使用这个逻辑卷需要对应的内核设备映射器目标 | ||||||||||
move_pv | Move | 使用 pvmove 命令创建的临时逻辑卷的源物理卷 | ||||||||||
Origin | Origin | 快照卷的源设备 | ||||||||||
| 区域 | 镜像的逻辑卷的单元大小 | ||||||||||
seg_count | #Seg | 逻辑卷中片段的数 | ||||||||||
seg_size | SSize | 逻辑卷中片段的大小 | ||||||||||
seg_start | Start | 逻辑卷中片段的偏移 | ||||||||||
seg_tags | Seg Tags | 附加到逻辑卷片段的 LVM 标签 | ||||||||||
segtype | 类型 | 逻辑卷的片段类型(例如:镜像、条带、线性) | ||||||||||
snap_percent | Snap% | 已使用的快照卷的比例 | ||||||||||
条带 | #Str | 逻辑卷中条带或者镜像的数目 | ||||||||||
| Stripe | 条带逻辑卷中条带逻辑卷的单元大小 |
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
将
-v 参数与 lvs 命令一起使用,将以下字段添加到默认显示中: 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 参数来显示带有突出显示网段信息的默认列的信息。使用 segment 参数时,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
将
-v 参数与 lvs --segments 命令一起使用,将以下字段添加到默认显示中: 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 命令的默认输出,后跟 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
4.8.3. LVM 报告排序 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
通常,必须在内部生成并存储 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
4.8.4. 指定单位 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要指定 LVM 报告显示的单元,使用 report 命令的
--units 参数。您可以指定(b)ytes、(k)ilobytes、(m)egabytes、(g)igabytes、(e)xabytes、(p)etabytes 和(h)uman- readable。默认显示是人类可读的。您可以通过在 lvm.conf 文件 的全局 部分中设置 units 参数来覆盖默认设置。
以下示例以 MB 为单位指定 pvs 命令的输出,而不是默认的千兆字节。
# 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
默认情况下,显示的单位是 1024 的倍数。您可以使用大写字母代表单位是 1000 的倍数(B、K、M、G、T、H)。
下面的命令以默认单位(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
您也可以指定y (s)ectors(定义为 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
以下示例显示了 pvs 命令的输出,单位为 4 MB。
# 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
4.8.5. JSON 格式输出(Red Hat Enterprise Linux 7.3 及更新的版本) 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
从 Red Hat Enterprise Linux 7.3 开始,您可以使用 LVM 显示命令的
--reportformat 选项以 JSON 格式显示输出。
以下示例显示了以标准默认格式的 lvs 的输出。
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
my_raid my_vg Rwi-a-r--- 12.00m 100.00
root rhel_host-075 -wi-ao---- 6.67g
swap rhel_host-075 -wi-ao---- 820.00m
以下命令显示在指定 JSON 格式时相同的 LVM 配置输出。
# lvs --reportformat json
{
"report": [
{
"lv": [
{"lv_name":"my_raid", "vg_name":"my_vg", "lv_attr":"Rwi-a-r---", "lv_size":"12.00m", "pool_lv":"", "origin":"", "data_percent":"", "metadata_percent":"", "move_pv":"", "mirror_log":"", "copy_percent":"100.00", "convert_lv":""},
{"lv_name":"root", "vg_name":"rhel_host-075", "lv_attr":"-wi-ao----", "lv_size":"6.67g", "pool_lv":"", "origin":"", "data_percent":"", "metadata_percent":"", "move_pv":"", "mirror_log":"", "copy_percent":"", "convert_lv":""},
{"lv_name":"swap", "vg_name":"rhel_host-075", "lv_attr":"-wi-ao----", "lv_size":"820.00m", "pool_lv":"", "origin":"", "data_percent":"", "metadata_percent":"", "move_pv":"", "mirror_log":"", "copy_percent":"", "convert_lv":""}
]
}
]
}
您还可以使用
output_format 设置,将报告格式设置为 /etc/lvm/lvm.conf 文件中的配置选项。但是,命令行的 --reportformat 设置优先于此设置。
4.8.6. 命令报告(Red Hat Enterprise Linux 7.3 及更新的版本) 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
从 Red Hat Enterprise Linux 7.3 开始,如果启用了
log/report_command_log 配置设置,则面向报告的 LVM 命令都可以报告命令日志。您可以确定要显示的一组字段,并为此报告排序。
以下示例将 LVM 配置为为 LVM 命令生成完整日志报告。在这个示例中,您可以看到逻辑卷
lvol0 和 lvol1 已被成功处理,因为 是包含卷的卷组 VG。
# lvmconfig --type full log/command_log_selection
command_log_selection="all"
# lvs
Logical Volume
==============
LV LSize Cpy%Sync
lvol1 4.00m 100.00
lvol0 4.00m
Command Log
===========
Seq LogType Context ObjType ObjName ObjGrp Msg Errno RetCode
1 status processing lv lvol0 vg success 0 1
2 status processing lv lvol1 vg success 0 1
3 status processing vg vg success 0 1
# lvchange -an vg/lvol1
Command Log
===========
Seq LogType Context ObjType ObjName ObjGrp Msg Errno RetCode
1 status processing lv lvol1 vg success 0 1
2 status processing vg vg success 0 1
有关配置 LVM 报告和命令日志的详情,请参考 lvmreport man page。