提醒:数据无价,操作前,务必做好备份,以免误操作数据丢失。
创建LVM逻辑卷分区方法:https://blog.tag.gg/showinfo-3-36251-0.html
1、使用以下命令查看ECS实例中已经创建的逻辑卷LV信息
查询结果如下,表示已经创建了/dev/lvm_01/lv01逻辑卷,拥有19 GiB空间lvdisplay
2、使用以下命令扩容物理卷PV(Physical Volume)。[root@blog.tag.gg~]# lvdisplay
--- Logical volume ---
LV Path /dev/lvm_01/lv01
LV Name lv01
VG Name lvm_01
LV UUID Fli6Tf-uv01-6l9Y-CzNc-mgzu-y2Zr-35QotA
LV Write Access read/write
LV Creation host, time blog.tag.gg, 2022-12-04 13:56:33 +0800
LV Status available
# open 0
LV Size 19.00 GiB
Current LE 4864
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 252:0
命令格式:
以下示例为扩容物理卷(/dev/vdc),您需要根据实际情况修改物理卷名称pvresize <物理卷名称>
执行结果如下:pvresize /dev/vdc
使用以下命令查看物理卷(PV)使用情况[root@blog.tag.gg~]# pvresize /dev/vdc
Physical volume "/dev/vdc" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
显示如下:pvs
注意:如果之前对每个磁盘单独做了分区后再创建的逻辑卷则扩容是有区别的,例如之前分了vdb1 、vdc1等,用这个方法是无法扩容成功,请参考最后说明处理。如果没有则忽略这个情况。[root@blog.tag.gg~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdc lvm_01 lvm2 a-- <35.00g <16.00g
3、使用以下命令扩容逻辑卷。
命令格式:
以下示例为扩容逻辑卷容量。lvextend [-L <逻辑卷大小>] <逻辑卷名称>
注意:15G是指这块磁盘新增加的容量,比如原来我磁盘是20G,我将磁盘扩容到了35G,所以35-20=15Glvextend -L +15G /dev/lvm_01/lv01
本示例中变量说明如下,您需要根据实际情况修改。
+15G:增减容量,卷组VG(Volume Group)必须有剩余容量时才可以执行扩容逻辑卷操作。
/dev/lvm_01/lv01:逻辑卷名称。
执行结果如下:
4、使用以下命令扩容逻辑卷文件系统[root@blog.tag.gg~]# lvextend -L +15G /dev/lvm_01/lv01
Size of logical volume lvm_01/lv01 changed from 19.00 GiB (4864 extents) to 34.00 GiB (8704 extents).
Logical volume lvm_01/lv01 successfully resized.
您需要根据逻辑卷的文件系统类型执行不同的扩容命令,以下以ext4和xfs文件系统为例:
说明 如果您不清楚逻辑卷的文件系统类型,可以通过df -Th命令查询。
如果是ext4文件系统,使用以下命令扩容。
如果是xfs文件系统,使用以下命令扩容。resize2fs /dev/lvm_01/lv01
执行结果如下:xfs_growfs /dev/lvm_01/lv01
5、扩容完成后执行命令查看扩容后的信息。[root@blog.tag.gg~]# resize2fs /dev/lvm_01/lv01
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/lvm_01/lv01 is mounted on /media/lv01; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 5
The filesystem on /dev/lvm_01/lv01 is now 8912896 blocks long.
df -Th
[root@blog.tag.gg~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 461M 0 461M 0% /dev
tmpfs 471M 0 471M 0% /dev/shm
tmpfs 471M 564K 471M 1% /run
tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/vda1 40G 2.1G 36G 6% /
tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/lvm_01-lv01 34G 48M 32G 1% /media/lv01
如果之前单独对每个磁盘做了分区,比如分别对磁盘vdb、vdc、vdd做了分区为vdb1 、vdc1、vdd1.则在扩容时参考如下处理
查看是否之前对磁盘做了分区。(磁盘后面有个数字则表示之前单独有做分区)
此时执行命令 pvresize /dev/vde1 提示成功,但实际上执行命令 pvs 无法看到vde1 新增加的容量,例如:<20.00g 1008.00m[root@blog.tag.gg~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 lvm_01 lvm2 a-- <25.00g 0
/dev/vdc1 lvm_01 lvm2 a-- <30.00g 0
/dev/vdd1 lvm_01 lvm2 a-- <55.00g 0
/dev/vde1 lvm_01 lvm2 a-- <20.00g 1008.00m
这种情况,如果我们对 /dev/vde1磁盘做了扩容,从20G扩容到了60G,则参考如下处理。
1、执行如下命令查看原来磁盘分区
vde1是gpt分区则执行如下命令(显示gpt就是gpt分区)[root@blog.tag.gg~]# fdisk -l
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0002b49c
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 83886046 41941999+ 83 Linux
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk /dev/vde: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/vde1 1 41943039 20971519+ ee GPT
Disk /dev/mapper/lvm_01-lv01: 138.5 GB, 138512695296 bytes, 270532608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
显示如下:显示 CHANGED 则说明成功type growpart || yum install -y cloud-utils-growpart
type sgdisk || yum install -y gdisk
LC_ALL=en_US.UTF-8 growpart /dev/vde 1
如果vde1 是mbr分区,执行如下命令:(显示dos或linux就是mbr分区)[root@blog.tag.gg~]# LC_ALL=en_US.UTF-8 growpart /dev/vde 1
CHANGED: partition=1 start=2048 old: size=62910464 end=62912512 new: size=146798558 end=146800606
type growpart || yum install -y cloud-utils-growpart
LC_ALL=en_US.UTF-8 growpart /dev/vde 1
2、此时可以执行如下命令扩容逻辑卷
3、此时执行如下命令可以看到vde1分区可以识别到新增加的40G了,如下。pvresize /dev/vde1
4、执行如下命令增加容量[root@blog.tag.gg~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 lvm_01 lvm2 a-- <25.00g 0
/dev/vdc1 lvm_01 lvm2 a-- <30.00g 0
/dev/vdd1 lvm_01 lvm2 a-- <55.00g 0
/dev/vde1 lvm_01 lvm2 a-- <60.00g 40.98g
显示如下成功:lvextend -L +40G /dev/lvm_01/lv01
5、执行如下命令扩容[root@blog.tag.gg~]# lvextend -L +40G /dev/lvm_01/lv01
Size of logical volume lvm_01/lv01 changed from 129.00 GiB (33024 extents) to 169.00 GiB (43264 extents).
Logical volume lvm_01/lv01 successfully resized.
显示如下成功。resize2fs /dev/lvm_01/lv01
此时,执行命令df -Th可以看到成功了。[root@blog.tag.gg~]# resize2fs /dev/lvm_01/lv01
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/lvm_01/lv01 is mounted on /mnt; on-line resizing required
old_desc_blocks = 17, new_desc_blocks = 22
The filesystem on /dev/lvm_01/lv01 is now 44302336 blocks long.
[root@blog.tag.gg~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 461M 0 461M 0% /dev
tmpfs tmpfs 471M 0 471M 0% /dev/shm
tmpfs tmpfs 471M 568K 471M 1% /run
tmpfs tmpfs 471M 0 471M 0% /sys/fs/cgroup
/dev/vda1 ext4 40G 2.3G 36G 7% /
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/mapper/lvm_01-lv01 ext4 167G 60M 159G 1% /mnt
题外话:
自己本地本地镜像导入到阿里云ECS后发现容量不对,原因是没有扩容。但本地系统也是逻辑卷,应该怎么操作呢,可以参考如下
现象:本地镜像是20G的磁盘容量,ECS是40G容量,导入到ECS后发现df命令只能看到20G,而不是40G。
原因:剩下的容量没扩容,但查看是逻辑分区,应该怎么扩容,可参考如下。
看下现在默认显示: 右上得知,确定是没扩容导致容量不一致,并且是逻辑卷,mbr分区格式,且是xfs文件系统。
扩容步骤:
执行命令 pvs如下,可以看到可增加的容量为0
执行如下命令查看卷名:[root@blog-tag-gg ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 uos lvm2 a-- <19.00g 0
显示如下:lvdisplay
[root@blog-tag-gg ~]# lvdisplay
--- Logical volume ---
LV Path /dev/uos/swap
LV Name swap
VG Name uos
LV UUID J91uIC-mq9o-sWMd-3jKY-b3be-GOUI-KgVvCM
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-12-03 15:39:59 +0800
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/uos/root
LV Name root
VG Name uos
LV UUID pfDJbq-4Qux-xNWC-OF0j-6rt8-GQcv-tFJW6R
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-12-03 15:39:59 +0800
LV Status available
# open 1
LV Size <37.00 GiB
Current LE 9471
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
1、截图看系统盘本身是有分区为vda1和vda2,vda2是系统挂在分区。则需要先针对vda2扩容
安装扩容命令:
显示如下:type growpart || yum install -y cloud-utils-growpart
LC_ALL=en_US.UTF-8 growpart /dev/vda 2
再执行命令扩容物理卷:[root@blog-tag-gg ~]# LC_ALL=en_US.UTF-8 growpart /dev/vda 2
CHANGED: partition=2 start=2099200 old: size=39843840 end=41943040 new: size=81786847 end=83886047
执行如下命令增加容量:pvresize /dev/vda2
显示:Logical volume uos/root successfully resized. 则表示成功。lvextend -L +20G /dev/uos/root
此时执行命令 pvs 可以看到能识别到增加的容量。
扩容文件系统:[root@blog.tag.gg~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 uos lvm2 a-- <39.00g 20.00g
xfs_growfs /dev/uos/root
再执行命令 df -Th 看容量增加到了。
文章评论 本文章有个评论