我们在日常维护中,随着业务使用,磁盘空间会不够用,新加硬盘后,需要将新硬盘容量扩容到原有的业务挂载点,增加业务系统可用容量,通常我们在部署时会LVM进行分区挂载,方便以后扩容。本文介绍如何在LVM分区模式下,将新加硬盘扩容到原有分区中。

★ 首先了解下LVM的三层逻辑结构:PV、VG、LV

PV:就是我们的硬盘,每一块硬盘在LVM中就是一个PV

VG:相当于一个逻辑上的PV池,多个PV可以组成一个逻辑卷组,可以看做是一个由多个硬盘合成的一个大的虚拟硬盘

LV:就是从这个大的PV池中分配到每个挂载点的逻辑卷,也就是我们在系统使用过程中直接用到的所谓分区

扩容其实就是使用新磁盘去扩充PV、然后PV去扩充VG、VG再去扩充LV,LV再去挂载到目录,最后达到效果。


下来介绍如何将新加的一块磁盘扩容到我们需要的逻辑卷(LV),提高逻辑卷的容量。

1、首选我们使用“lsblk”命令查看当前系统磁盘分区情况,确定我们最终要挂载的挂载点是不是LVM类型,如果不是,就不能进行扩容。如下图,我们需要将新加的磁盘vdb使用lvm方式扩容到系统的跟目录,实现根目录的扩容。


2、用新加的磁盘,也就是这里的vdb,创建物理卷pv。

[root@centos7 ~]# pvcreate /dev/vdb


3、查看当前系统物理卷信息,确定需要将新创建的pv加入哪一个vg里面。注意:有些系统中可能有多个vg,注意区分,确定好自己要扩容的分区属于哪一个vg。这里演示的系统只有一个vg,我们需要将新加的pv加入这个vg中。图中圈出的就是vg的名字,后面需要用到。

[root@centos7 ~]# pvs


4、将新加磁盘vdb扩展至刚才查到的vg中。

[root@centos7 ~]# vgextend centos_centos7 /dev/vdb


5、查看vg信息,看到刚才的15G容量已经加入该vg,整体vg容量已经增加。

[root@centos7 ~]# vgdisplay


6、使用“df -Th”查看确认需要增加的分区(也就是逻辑卷LV),使用命令lvextend进行扩展该逻辑卷容量,下面命令的意思就是将此LV卷所在VG中所有剩余容量扩展到这个逻辑卷,也可以指定需要增加的大小,具体参数可以百度这个命令的使用方法。可以看到,逻辑卷大小已经变更。

[root@centos7 ~]# df -Th

[root@centos7 ~]# lvextend -l +100%FREE /dev/mapper/centos_centos7-root



7、经过上一步扩容后,目标逻辑卷容量虽然增加,但文件系统中还没有生效。这里需要依照命令“df -Th”的输出结果,确定逻辑卷使用的分区格式,对它进行格式化生效。如果分区格式是ext,用“resize2fs”扩容;如果分区格式是xfs,用“xfs_growfs”扩容。

可以看到,我们需要扩容的分区采用xfs分区格式,因此我们使用“xfs_growfs”对该分区进行扩容。命令执行后,看到数据块已经发生变更,表示扩容生效。


8、再次使用“df -Th”查看,我们本次需要扩容的目标分区容量已经扩容成功。