1、查看lvs信息
bash
[root@ip-172-31-26-146 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.9G 4.0K 3.9G 1% /dev/shm
tmpfs 1.6G 632K 1.6G 1% /run
/dev/nvme0n1p1 40G 11G 30G 26% /
tmpfs 3.9G 0 3.9G 0% /tmp
/dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi
overlay 40G 11G 30G 26% /var/lib/docker/overlay2/84699b7470c48b0c4a1cb8b91b868be21f96c388de173f25df9ac741be7d0d0e/merged
tmpfs 782M 0 782M 0% /run/user/1000
/dev/mapper/vg_data-lv_data 30G 247M 30G 1% /data/lvs
[root@ip-172-31-26-146 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_data vg_data -wi-ao---- <29.99g
[root@ip-172-31-26-146 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg_data/lv_data
LV Name lv_data
VG Name vg_data
LV UUID aoI2fv-LoQS-duKk-t567-JW4f-fF6j-4lyV5x
LV Write Access read/write
LV Creation host, time ip-172-31-26-146.us-east-2.compute.internal, 2025-12-23 03:14:56 +0000
LV Status available
# open 1
LV Size <29.99 GiB
Current LE 7677
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
2、纵向扩充lvs空间(将组成lvs的所有的pv都扩充同等的大小5G)
1)查看现有pv
bash
[root@ip-172-31-26-146 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 40G 0 disk
├─nvme0n1p1 259:1 0 40G 0 part /
├─nvme0n1p127 259:2 0 1M 0 part
└─nvme0n1p128 259:3 0 10M 0 part /boot/efi
nvme1n1 259:4 0 15G 0 disk
└─vg_data-lv_data 253:0 0 30G 0 lvm /data/lvs
nvme2n1 259:5 0 15G 0 disk
└─vg_data-lv_data 253:0 0 30G 0 lvm /data/lvs
nvme3n1 259:6 0 15G 0 disk
└─vg_data-lv_data 253:0 0 30G 0 lvm /data/lvs
2)扩展物理卷pv
bash
[root@ip-172-31-26-146 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg_data lvm2 a-- <10.00g 0
/dev/sdc vg_data lvm2 a-- <10.00g 0
/dev/sdd vg_data lvm2 a-- <10.00g 0
[root@ip-172-31-26-146 ~]# pvresize /dev/sdb
Physical volume "/dev/sdb" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@ip-172-31-26-146 ~]# pvresize /dev/sdc
Physical volume "/dev/sdc" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@ip-172-31-26-146 ~]# pvresize /dev/sdd
Physical volume "/dev/sdd" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@ip-172-31-26-146 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg_data lvm2 a-- <15.00g 5.00g
/dev/sdc vg_data lvm2 a-- <15.00g 5.00g
/dev/sdd vg_data lvm2 a-- <15.00g 5.00g
3)扩展逻辑卷lvs
指定扩充
lvcreate -n lv_data -L 40G vg_data
bash
[root@ip-172-31-26-146 ~]# lvextend -l +100%FREE /dev/vg_data/lv_data
Size of logical volume vg_data/lv_data changed from <29.99 GiB (7677 extents) to <44.99 GiB (11517 extents).
Logical volume vg_data/lv_data successfully resized.
[root@ip-172-31-26-146 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_data vg_data -wi-ao---- <44.99g
[root@ip-172-31-26-146 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.9G 4.0K 3.9G 1% /dev/shm
tmpfs 1.6G 632K 1.6G 1% /run
/dev/nvme0n1p1 40G 11G 30G 26% /
tmpfs 3.9G 0 3.9G 0% /tmp
/dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi
overlay 40G 11G 30G 26% /var/lib/docker/overlay2/84699b7470c48b0c4a1cb8b91b868be21f96c388de173f25df9ac741be7d0d0e/merged
tmpfs 782M 0 782M 0% /run/user/1000
/dev/mapper/vg_data-lv_data 30G 247M 30G 1% /data/lvs
刷新逻辑卷空间大小
ext4格式的刷新命令 resize2fs /dev/vg_data/lv_data
bash
[root@ip-172-31-26-146 ~]# xfs_growfs /data/lvs/
meta-data=/dev/mapper/vg_data-lv_data isize=512 agcount=16, agsize=491328 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=7861248, imaxpct=25
= sunit=1 swidth=1 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 7861248 to 11793408
[root@ip-172-31-26-146 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.9G 4.0K 3.9G 1% /dev/shm
tmpfs 1.6G 632K 1.6G 1% /run
/dev/nvme0n1p1 40G 11G 30G 26% /
tmpfs 3.9G 0 3.9G 0% /tmp
/dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi
overlay 40G 11G 30G 26% /var/lib/docker/overlay2/84699b7470c48b0c4a1cb8b91b868be21f96c388de173f25df9ac741be7d0d0e/merged
tmpfs 782M 0 782M 0% /run/user/1000
/dev/mapper/vg_data-lv_data 45G 355M 45G 1% /data/lvs
3、横向扩充lvs空间(在新增一块同等大小的硬盘15G)
1)查看现有pv的大小,并创建一块同等大小的硬盘
bash
[root@ip-172-31-26-146 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 40G 0 disk
├─nvme0n1p1 259:1 0 40G 0 part /
├─nvme0n1p127 259:2 0 1M 0 part
└─nvme0n1p128 259:3 0 10M 0 part /boot/efi
nvme1n1 259:4 0 15G 0 disk
└─vg_data-lv_data 253:0 0 45G 0 lvm /data/lvs
nvme2n1 259:5 0 15G 0 disk
└─vg_data-lv_data 253:0 0 45G 0 lvm /data/lvs
nvme3n1 259:6 0 15G 0 disk
└─vg_data-lv_data 253:0 0 45G 0 lvm /data/lvs
nvme4n1 259:7 0 15G 0 disk
2)将新增硬盘创建新的pv
bash
[root@ip-172-31-26-146 ~]# pvcreate /dev/nvme4n1
Physical volume "/dev/nvme4n1" successfully created.
[root@ip-172-31-26-146 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb vg_data lvm2 a-- <15.00g 0
/dev/sdc vg_data lvm2 a-- <15.00g 0
/dev/sdd vg_data lvm2 a-- <15.00g 0
/dev/sde lvm2 --- 15.00g 15.00g
3)将新创建的pv扩展到需要扩展的vg
bash
[root@ip-172-31-26-146 ~]# vgextend vg_data /dev/sde
Volume group "vg_data" successfully extended
[root@ip-172-31-26-146 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_data 4 1 0 wz--n- 59.98g <15.00g
3)将vg所有free的大小都扩展到lv
bash
[root@ip-172-31-26-146 ~]# lvextend -l +100%FREE /dev/vg_data/lv_data
Size of logical volume vg_data/lv_data changed from <44.99 GiB (11517 extents) to 59.98 GiB (15356 extents).
Logical volume vg_data/lv_data successfully resized.
[root@ip-172-31-26-146 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_data vg_data -wi-ao---- 59.98g
4)查看现有lvs挂载的空间大小,并刷新盘符大小
bash
[root@ip-172-31-26-146 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
。。。。
/dev/mapper/vg_data-lv_data 45G 355M 45G 1% /data/lvs
[root@ip-172-31-26-146 ~]# xfs_growfs /data/lvs/
meta-data=/dev/mapper/vg_data-lv_data isize=512 agcount=25, agsize=491328 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=11793408, imaxpct=25
= sunit=1 swidth=1 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 11793408 to 15724544
[root@ip-172-31-26-146 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
。。。。
/dev/mapper/vg_data-lv_data 60G 462M 60G 1% /data/lvs