导读
传统LVM扩容方法需要增加PV磁盘,扩容多次后,服务器的磁盘数量会越来越多,容易增加日后维护存储和磁盘布局的难度。当服务器是虚拟机,或者使用SAN/NAS存储的物理机时,由于分配给服务器磁盘空间可以直接扩容,只需增加原本正在使用中的PV磁盘空间即可完成扩容,这样分配给服务器的磁盘数量较少,磁盘布局结构较简单。
LVM扩容方法介绍
传统的LVM扩容方法,是通过添加新的磁盘或者磁盘分区来建立新的PV,再将PV加入到VG中,从而扩大VG空间,再对相关的LV进行扩容,最后增加文件系统空间完成整个扩容工作。这种方法比较适合使用本地存储的物理机,因为磁盘空间都是固定的,只能通过增加硬盘来增加磁盘空间,这种方法可以在线完成,无需停机重启。但扩容多次后,VG中会存在多个PV,磁盘逻辑结构变得复杂,容易增加日后维护存储和磁盘分区布局的难度。
当服务器是虚拟机,或者使用SAN/NAS存储的物理机时,由于分配给服务器的磁盘空间可以直接扩容,只需增加原本正在使用中的磁盘空间即可,无需再添加额外磁盘作为PV,这样分配给服务器的磁盘数量较少,磁盘布局结构较简单。
扩容PV步骤
一、虚拟机初始硬件
我们以运行在ESXi虚拟机上的Centos/RHEL 7版本Linux为例,该虚拟机分配了一块100G的硬盘,
1、 查看系统的磁盘分区结构布局:
可以看到sda2为LVM VG中的PV,LVM中有一个VG(centos),VG的大小为99G,该VG由两个LV,root(91G)和swap(8G)组成
2、 增大虚拟机的硬盘大小
可以键入以下命令系统能够马上识别新增空间:
echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
又或者直接重启系统,让内核识别新增空间。
运行parted,键入print all free,发现磁盘大小已经增加,而且在磁盘/dev/sda尾部有53.7GB未分配空间
二、使用GParted分区软件进行扩容PV步骤 (方法一)
可以访问 https://gparted.org/ 下载最新版GParted Live CD,文档编辑时最新镜像文件是 gparted-live-1.5.0-1-amd64.iso 下载地址: 64位 32位 。
将该ISO文件上传到ESX主机的数据存储中,然后挂载到虚拟机的光驱中,接着调整启动顺序用该CD引导并启动该虚拟机。
启动后能开到该机器硬盘的分区结构和未分配空间。
鼠标右键点击/dev/sda2分区,调整大小/移动,然后用鼠标点击右边的三角符号,拉动鼠标将分区扩容50GB,点击“调整大小/移动”,最后点击工具栏上的“Apply”应用更改。
卸载光盘,重启虚拟机进入本地系统,键入pvs、vgs确认扩容后的空间:
可以看到两个PV和VG中都有可分配的剩余空间了,通过软件扩容PV完毕。
三、通过命令扩容PV步骤(方法二)
启动 parted 工具
查看当前的分区表,此时分区大小106G
重新定义分区大小,分区大小扩到160G
退出 parted
更新LVM分区
更新LVM分区后键入pvs、vgs确认扩容后的空间:
可以看到两个PV和VG中都有可分配的剩余空间了,通过命令扩容PV完毕
四、LV及文件系统扩容
1、 扩容LV
查看原来LV空间情况。
将LV swap的空间增加2GB:
[root@centos ~]# lvextend -L +2g /dev/centos/swap
将LV剩余空间全给root
[root@centos ~]# lvextend -l +100%FREE /dev/centos/root
两个LV已经扩容成功
2、 扩容根文件系统
LV扩容后需文件系统还没有扩容,使用命令对跟分区文件系统进行在线扩容 (xfs文件系统命令为 xfs_growfs 其它 resize2fs)
[root@centos ~]# xfs_growfs /dev/centos/root
3、 扩容SWAP分区
Swap分区不能直接扩容,需先将其删除再重建
分别使用free –m和swapon –s命令查看swap分区大小。可以看到这时候swap分区大小还是8GB
[root@centos ~]# free -mh
[root@centos ~]# swapon -s
停止swap分区:
[root@centos ~]# swapoff -v /dev/centos/swap
重新建立swap分区:
[root@centos ~]# mkswap /dev/centos/swap
启用Swap分区:
[root@centos ~]# swapon -v /dev/centos/swap
[root@centos ~]# free -m