去繁化简解决CentOS下调整home和根分区大小的方法

去繁化简解决CentOS下调整home和根分区大小的方法

一、知识点扫盲
Cent0S 7默认启用LVM2(Logical Volume Manager),把机器的一块硬盘分为两个区sda1和sda2,其中分区sda1作为系统盘/boot挂载,少量空间;sda2作为一个物理卷并且完全作为逻辑卷组VG(Volume Group)centos,在这个逻辑卷组centos中建立三个逻辑卷LV(Logical Volume)root和home还有swap,分别挂载到根目录/和/home以及swap。而两个分区sda1和sda2上都建立了文件系统XFS,文件系统XFS作为RedHat的默认文件系统也有它的考虑,成为继ext3,ext4之后的主流文件系统。
几个概念的关系:M个物理硬盘HD或者物理硬盘中的分区一起组建为一个逻辑卷组VG及存储池,在卷组VG中创建N个逻辑卷LV,在一个逻辑卷LV中创建文件系统比如xfs。物理硬盘/分区、逻辑卷有最小基本寻址单元,CentOS7默认的大小为4MB,二者一一对应,类似于链接或者变量引用,但是一个二者关系并非一直不变,因为物理硬盘可能发生变化而逻辑卷自动调整。创建卷组和逻辑卷,会类似于创建分区一样在磁盘开始位置写入卷的信息VGDA(卷组描述符区域,Volume Group Descriptor Area)用于识别。逻辑卷的好处在于屏蔽物理底层支撑,可*扩展变更,而不用担心硬盘或者分区的物理空间局限,也就不会存在为了扩展分区大小而去备份/扩展分区重新格式化硬盘等问题
二、生产环境的烦恼
博主要求IDC机房给重装系统。每次要求的好好地,装系统的时候别默认分配磁盘,可是万恶的IDC机房每次都偏偏不听,估计是偷懒,懒得管那么多事,每次都是采用默认的分配磁盘。CentOS 7默认安装时/home占用太多空间,根目录相较而言就小得多(只有50G),而OpenStack安装以及存储的东西都在根目录下。上传几个镜像说不定就把你的根目录空间耗尽。不像其他文件系统ext3,ext4或者reiserfs等,有命令(resize2fs,resize_reiserfs)直接支持缩小文件系统的大小,默认安装的xfs支持扩展增大但是不支持缩小空间!我相信凡是和公司IDC机房打过交道的都会心里暗暗怒骂,但是呢,生气归生气,磁盘的分配问题我们还是要解决,那么今天博主就给大家带来磁盘的乾坤大挪移之法。
三、乾坤大挪移操作步骤
1、首先查看磁盘使用情况
去繁化简解决CentOS下调整home和根分区大小的方法
我们从上图可以看出,/home分区有865G磁盘,而根分区只有默认的50G。我们的目标就是让865G的这一大快存储移到根分区下。
2、备份/home中的用户数据,并卸载home,同时删除home逻辑卷
去繁化简解决CentOS下调整home和根分区大小的方法

注意:umount /home 如果提示无法卸载,则是有进程占用/home,使用如下命令来终止占用进程:
yum install -y psmisc //安装fuser
fuser -mu /home //执行这个命令可以看到占用/home分区的进程ID
kill -9 进程ID //kill -9删除对应的进程
去繁化简解决CentOS下调整home和根分区大小的方法
3、查看卷组可用空间
去繁化简解决CentOS下调整home和根分区大小的方法
我们可以看见卷组可用空间是864G,就是刚才卸载的home分区的大小
4、新建一个卷home,fdisk格式化为8e格式,文件系统还是搞为xfs(同样挂载到/home)
去繁化简解决CentOS下调整home和根分区大小的方法
L表示大小,默认单位为M;n表示卷名;这里的centos是CentOS7安装系统的时候就默认建立好的卷组名

5、查看逻辑卷home
去繁化简解决CentOS下调整home和根分区大小的方法
去繁化简解决CentOS下调整home和根分区大小的方法
6、再次查看卷组空间大小

命令:vgdisplay //我们可以看到Free PE / Size这里的数字变成814.50GiB

7、激活卷组centos,使得这个新建的home逻辑卷生效
去繁化简解决CentOS下调整home和根分区大小的方法
8、新建的逻辑卷home上建立xfs文件系统

命令:mkfs -t xfs /dev/centos/home

9、把这个新逻辑卷home挂到之前的文件夹/home中去
去繁化简解决CentOS下调整home和根分区大小的方法

10、再把之前拷出来的东西拷回新建的/home中,不用重启

命令:mv /backup/* /home/

11、最后再把释放出来多余的空间分配给root卷并xfs_growfs扩展文件系统
去繁化简解决CentOS下调整home和根分区大小的方法

把剩下的814G现在分配给root卷,剩下那点渣渣空间让它闲着;+号表示在原来的基础上额外增加,不要“+”则是设定为具体额度

12、查看逻辑卷和卷组情况,这下root的空间就多达到864G,之前的是50G
去繁化简解决CentOS下调整home和根分区大小的方法

13、再次激活下卷组centos
去繁化简解决CentOS下调整home和根分区大小的方法

14、df -h查看,不使用xfs_growfs扩展文件系统,磁盘是不认得多的空间的
去繁化简解决CentOS下调整home和根分区大小的方法

15、扩展root卷
去繁化简解决CentOS下调整home和根分区大小的方法

16、再看root大小已经生效,800多G了
去繁化简解决CentOS下调整home和根分区大小的方法