背景
当前系统有挂载本地lvm分区的磁盘目录:/data、/data2。随着业务的发展,该目录磁盘空间严重不足,如何在线动态扩容该目录?
在Linux下常见的磁盘扩容过程有两种,根据创建pv的方式不同,可以分为:使用分区创建PV方式的磁盘扩容、使用整个磁盘创建PV方式的磁盘扩容。
分析
使用df命令查看该/data目录挂载的磁盘分区是否支持扩容。
使用lvs、vgs、pvs命令查看2个目录挂载分区的详细信息:
/data | /data2 | |
pv | /dev/sdc1 | /dev/sdd |
vg | vg_test_01 | vg_test_02 |
lv | lv_data | lv_data2 |
根据pv创建方式的不同,因此扩容/data、/data2目录需要使用不同的方式。Linux下使用分区创建PV方式的磁盘扩容,扩容/data目录
1、首先,登录vcenter扩容该虚拟机下该硬盘的空间大小。
2、使用”echo 1 > /sys/class/scsi_device/xxxx/device/rescan” 重新扫描磁盘分区。(设备号不同,需根据实际情况)
3、使用fdisk命令将新扩容的磁盘容量,划分为新的/dev/sdc分区,并设置为lvm分区。
使用partx -a /dev/sdc重新扫描,识别新的分区
4、使用pvcreate /dev/sdc2,将/dev/sdc2创建为物理卷
5、使用vgextend vg_test_01 /dev/sdc2来扩容卷组。
6、使用lvextend -l +100%free /dev/vg_test_01/lv_data来扩容逻辑卷
7、使用xfs_growfs /dev/vg_test_01/lv_data来扩容/data所在的文件系统
至此,/data目录扩容完成。
Linux下使用整个磁盘创建PV方式的磁盘扩容,/data2目录扩容
还是使用上面例子中的服务器,这次,我们将要扩容/data2目录。这个目录跟上一个例子中有什么不同呢?使用我们的一系列命令来观察这个分区。
由上图可见,该/data2目录挂载的分区为:/dev/mapper/vg_test_01-lv_data2,lv_data2逻辑卷(lv),属于vg_test_02卷组(vg),该卷组由/dev/sdd物理卷(pv)组成,组成该vg的PV是整个磁盘sdd,没有划分分区。
这种的状态就无法应用上面例子使用的:扩容磁盘容量、划分分区、创建给分区的PV,将PV扩容到VG的方式了。
使用物理磁盘创建PV的磁盘扩容我们可以这么做:扩容物理磁盘容量、扩容PV容量、扩容LV容量、扩容文件系统。省却了创建LVM分区以及扩容VG的操作。
1、登录vcenter扩容该虚拟机下该硬盘的空间大小。
2、使用”echo 1 > /sys/class/scsi_device/xxxx/device/rescan” 重新扫描磁盘分区。(设备号不同,需根据实际情况)
3、使用pvresize /dev/sdd命令,来扩容pv物理卷
4、使用lvextend -l +100%free /dev/vg_test_02/lv_data2 来扩容lv逻辑卷
5、使用xfs_growfs /dev/vg_test_02/lv_data2来扩容文件系统
至此、/data2目录也已经扩容完成。
备注
xfs文件系统使用:xfs_growfs命令来扩容文件系统
ext文件系统使用:resize2fs命令来扩容文件系统