1、问题现象
1、df –Th查看发现/根分区可用空间不足,且/home分区可用空间较多
2、配合lsblk命令查看发现/根分区与/home分区均为LVM类型
2、解决思路
压缩/home分区的大小,腾出空间用于根分区(根分区为LVM类型)进行在线扩容
3、操作步骤
1、先确认/home分区可用大小,已用大小,可以腾出多大空间,只保留至多少空间大小
举例:如下图所示/home分区可用大小74G,已用57M,因为/home不需要用于存放较多文件,可以考虑将/home只保留到10G大小,这样就可以腾出60几G的空间出来
2、umount /home
如果提示设备忙,用lsof /home以及fuser/home查看 /home目录被哪些进程使用,然后kill-9杀掉这些进程,再重新umount,再df–Th确认/home分区是否卸载成功了
如下图所示:因为当前已经cd/home目录,所以无法umount /home,这时退出/home目录,例如直接cd 到主用户目录,即可卸载
/home分区卸载成功示例
3、执行resize2fs -p /dev/mapper/centos-home10G将/home分区缩小至10GB大小
这时会提示先运行e2fsck-f /dev/mapper/centos-home进行分区检测
这时再次执行resize2fs-p /dev/mapper/centos-home10G
等待进度条完成
4、进行LV压缩lvreduce -L 10G/dev/mapper/centos-home
根据提示执行y
然后vgdisplay查看腾出空间大小
如下图所示vgdisplay可以看到FreePE/Size约为69G大小
也就是腾出了69G可供重新分配的空间
5、将上一步vgdisplay看到FreePE全部用于扩展根分区所在的LV
lvextend -l+100%FREE /dev/mapper/centos-root
重设根分区大小resize2fs-p /dev/mapper/centos-root
最后df –PTh查看根分区大小是否扩容成功
如下图所示:根分区已经由原来的20G扩容到了88G大小
6、最后mount –a重新挂载/home分区,当然也可以手动
mount /dev/mapper/centos-home /home
注意事项
1、resize2fs命令只针对ext4格式的文件系统
那对于xfs格式的文件系统的扩展命令为xfs_growfs/dev/mapper/centos-root
2、若/home与/根分区为xfs格式文件系统的LVM分区
建议的解决思路是
1)、先将/home下的文件备份到本地后,umount /home
2)、再格式化home分区成ext4格式:mkfs.ext4/dev/mapper/centos-home
3)、再进行前面讲述的步骤,进行/home分区压缩与根分区扩容
4)、对xfs格式文件系统的根分区扩容时使用的命令是xfs_growfs /dev/mapper/centos-root
5)、然后/etc/fstab中/home分区的文件系统格式要改为ext4,必须与实际文件系统格式匹配
LVM的相关操作参考如下文章
1、CentOS系统中动态调整LVM分区大小
2、XFS文件系统LVM分区在线扩容