导读

传统LVM扩容方法需要增加PV磁盘,扩容多次后,服务器的磁盘数量会越来越多,容易增加日后维护存储和磁盘布局的难度。当服务器是虚拟机,或者使用SAN/NAS存储的物理机时,由于分配给服务器磁盘空间可以直接扩容,只需增加原本正在使用中的PV磁盘空间即可完成扩容,这样分配给服务器的磁盘数量较少,磁盘布局结构较简单。

LVM扩容方法介绍

传统的LVM扩容方法,是通过添加新的磁盘或者磁盘分区来建立新的PV,再将PV加入到VG中,从而扩大VG空间,再对相关的LV进行扩容,最后增加文件系统空间完成整个扩容工作。这种方法比较适合使用本地存储的物理机,因为磁盘空间都是固定的,只能通过增加硬盘来增加磁盘空间,这种方法可以在线完成,无需停机重启。但扩容多次后,VG中会存在多个PV,磁盘逻辑结构变得复杂,容易增加日后维护存储和磁盘分区布局的难度。

当服务器是虚拟机,或者使用SAN/NAS存储的物理机时,由于分配给服务器的磁盘空间可以直接扩容,只需增加原本正在使用中的磁盘空间即可,无需再添加额外磁盘作为PV,这样分配给服务器的磁盘数量较少,磁盘布局结构较简单。

扩容PV步骤

一、虚拟机初始硬件

我们以运行在ESXi虚拟机上的Centos/RHEL 7版本Linux为例,该虚拟机分配了一块100G的硬盘,

 

lvresize 所有可用空间 lvm扩展空间_centos

1、 查看系统的磁盘分区结构布局:

 

lvresize 所有可用空间 lvm扩展空间_lvresize 所有可用空间_02

可以看到sda2为LVM VG中的PV,LVM中有一个VG(centos),VG的大小为99G,该VG由两个LV,root(91G)和swap(8G)组成

2、 增大虚拟机的硬盘大小

 

lvresize 所有可用空间 lvm扩展空间_文件系统_03

可以键入以下命令系统能够马上识别新增空间:

echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan 

又或者直接重启系统,让内核识别新增空间。

运行parted,键入print all free,发现磁盘大小已经增加,而且在磁盘/dev/sda尾部有53.7GB未分配空间

 

lvresize 所有可用空间 lvm扩展空间_服务器_04

二、使用GParted分区软件进行扩容PV步骤 (方法一)

可以访问 https://gparted.org/ 下载最新版GParted Live CD,文档编辑时最新镜像文件是 gparted-live-1.5.0-1-amd64.iso  下载地址:  64位  32位  。

将该ISO文件上传到ESX主机的数据存储中,然后挂载到虚拟机的光驱中,接着调整启动顺序用该CD引导并启动该虚拟机。

 

lvresize 所有可用空间 lvm扩展空间_服务器_05

lvresize 所有可用空间 lvm扩展空间_服务器_06

 启动后能开到该机器硬盘的分区结构和未分配空间。

 

lvresize 所有可用空间 lvm扩展空间_centos_07

鼠标右键点击/dev/sda2分区,调整大小/移动,然后用鼠标点击右边的三角符号,拉动鼠标将分区扩容50GB,点击“调整大小/移动”,最后点击工具栏上的“Apply”应用更改。

 

lvresize 所有可用空间 lvm扩展空间_lvresize 所有可用空间_08

卸载光盘,重启虚拟机进入本地系统,键入pvs、vgs确认扩容后的空间:

 

lvresize 所有可用空间 lvm扩展空间_centos_09

可以看到两个PV和VG中都有可分配的剩余空间了,通过软件扩容PV完毕。

三、通过命令扩容PV步骤(方法二)

启动 parted 工具 

lvresize 所有可用空间 lvm扩展空间_centos_10

查看当前的分区表,此时分区大小106G 

lvresize 所有可用空间 lvm扩展空间_lvresize 所有可用空间_11

重新定义分区大小,分区大小扩到160G

 

lvresize 所有可用空间 lvm扩展空间_lvresize 所有可用空间_12

退出 parted

更新LVM分区 

lvresize 所有可用空间 lvm扩展空间_lvresize 所有可用空间_13

更新LVM分区后键入pvs、vgs确认扩容后的空间:

 

lvresize 所有可用空间 lvm扩展空间_centos_09

可以看到两个PV和VG中都有可分配的剩余空间了,通过命令扩容PV完毕

 

lvresize 所有可用空间 lvm扩展空间_文件系统_15

四、LV及文件系统扩容

1、 扩容LV

查看原来LV空间情况。

 

lvresize 所有可用空间 lvm扩展空间_centos_16

将LV swap的空间增加2GB:

 [root@centos ~]# lvextend -L +2g /dev/centos/swap

 

lvresize 所有可用空间 lvm扩展空间_文件系统_17

将LV剩余空间全给root

 [root@centos ~]# lvextend -l +100%FREE /dev/centos/root

 

lvresize 所有可用空间 lvm扩展空间_文件系统_18

两个LV已经扩容成功

 

lvresize 所有可用空间 lvm扩展空间_文件系统_19

2、 扩容根文件系统

LV扩容后需文件系统还没有扩容,使用命令对跟分区文件系统进行在线扩容 (xfs文件系统命令为 xfs_growfs  其它 resize2fs)

[root@centos ~]# xfs_growfs /dev/centos/root

 

lvresize 所有可用空间 lvm扩展空间_文件系统_20

3、 扩容SWAP分区

Swap分区不能直接扩容,需先将其删除再重建

分别使用free –m和swapon –s命令查看swap分区大小。可以看到这时候swap分区大小还是8GB

 [root@centos ~]# free -mh 

lvresize 所有可用空间 lvm扩展空间_服务器_21

[root@centos ~]# swapon -s 

lvresize 所有可用空间 lvm扩展空间_文件系统_22

停止swap分区:

[root@centos ~]# swapoff -v /dev/centos/swap

 

lvresize 所有可用空间 lvm扩展空间_服务器_23

重新建立swap分区:

[root@centos ~]# mkswap /dev/centos/swap

 

lvresize 所有可用空间 lvm扩展空间_文件系统_24

启用Swap分区:

[root@centos ~]# swapon -v /dev/centos/swap 

lvresize 所有可用空间 lvm扩展空间_lvresize 所有可用空间_25

[root@centos ~]# free -m 

lvresize 所有可用空间 lvm扩展空间_centos_26