周氏一族,整理技术文档,给下一代留点教程......


采用系统默认最下化安装的同学都知道,基本上home的分区大得要命,可现实中,我们home不需要那么大,我们的大部分数据是放在 / 目录下,因此需要调整大小,不然在生产环境当中,容易导致硬盘分区溢出,没有写入权限。


先来看看我的硬盘分区和大小情况,很明显,这是一块600G的硬盘,但是我root只有53.7G,swap只有16.9G,可是home竟然有529G

wKiom1PRulmgsVb9AAPkPfA0Ra8165.jpg


1、减少home分区大小

umount /home

resize2fs -p /dev/mapper/VolGroup-lv_home 100G

mount /home

正常情况下,只需要三条命令搞定,就把home缩小成100G了

注意:

umount /home

如果是新系统 ,这条命令是没问题,如果是非全新系统,可能就会出现其他程序在占用 home,那么就得先释放一下 “fuser -m /home

resize2fs -p /dev/mapper/VolGroup-lv_home 100G

一般情况下,这条命令,输入之后,都会提示 运行“e2fsck -f /dev/mapper/VolGroup-lv_home”

那你就先运行,然后再运行 resize2fs -p /dev/mapper/VolGroup-lv_home 100G

wKiom1PRvKbjLS3xAAMMjgO2LoE177.jpg


我们可以查看一下现在的home分区大小,使用命令   df -h

wKioL1PRvgzxAt7UAADxIhBHNns085.jpg


2、先来明确一件事情,我们把home减少之后的目的是为了干嘛,就是home占用太多,我们把它空间拿出来,丢给 swap或者root,那么,现在home已经减少了,是不是意味着可以直接给swap或者root加空间大小呢?

这是明显的错误,如果不懂的,估计得先从最基层的学起,我们刚才减少的是home的大小,并不是整个卷组的大小,我们要把home的卷组大小给缩一下,这样才能多出来空闲的空间

lvreduce -L 100G /dev/mapper/VolGroup-lv_home

wKiom1PRvgyT0XXuAAEL92FTdms273.jpg

注意:

使用lvreduce指令用于减少LVM逻辑卷占用的空间大小。可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。我还是建议,新系统的时候,来调整,如果项目在投入使用阶段了,你再来搞这玩意,你的小心脏得自己先做好心里准备,搞不好就数据全部玩完了。


3、使用vgdisplay命令查看LVM的空闲空间

[root@localhost ~]# vgdisplay

wKioL1PRv_bCDPZ3AAFjRRCg7aw244.jpg

现在可以看到,我这里还有392.70G可用空闲空间,那么,现在我就要把这392.70G空间合理分配一下


4、我先来处理swap空间吧,大家都知道,这个swap就是内存的交换,一般都是设置成硬件内存的2倍,那我先把swap关掉

[root@localhost ~]# swapoff /dev/mapper/VolGroup-lv_swap

[root@localhost ~]# free -m

wKiom1PRv5TCO-EcAAC_5YuI8t0038.jpg

很明显,我这内存是 32G的,那么我应该给他设置个64G左右swap空间吧,大家前面也看到,我的swap空间,少得可怜,只有16.9G,这不是坑我么?


5、调整swap空间

扩展    /dev/mapper/VolGroup-lv_swap,增加48G

[root@localhost ~]# lvextend -L +48G /dev/mapper/VolGroup-lv_swap


将 /dev/mapper/VolGroup-lv_swap 设置为swap分区

[root@localhost ~]# mkswap /dev/mapper/VolGroup-lv_swap


启动swap分区

[root@localhost ~]# swapon /dev/mapper/VolGroup-lv_swap

[root@localhost ~]# free -m


wKioL1PRwlKB3bgGAAK8_vtUOpk577.jpg

很明显,我现在swap分区,已经是 66.8G了,基本满足项目跑了


6、把剩下的空间,丢给 /  目录,也就是  /dev/mapper/VolGroup-lv_root

丢之前,还是先看看整体目前的空间分配情况,还有多少空间,可以丢,同样

[root@localhost ~]# vgdisplay

wKioL1PRwwKxKaEhAAFXyzUk5Aw309.jpg

还有344.70G,你可以完全把他全部丢给root,但是我一般不这样做,我要预留点备用,所以我就给他丢300G吧,留40G左右备用,以防万一。


7、还等什么,开始吧

[root@localhost ~]# lvextend -L +300G /dev/mapper/VolGroup-lv_root

[root@localhost ~]# resize2fs -p /dev/mapper/VolGroup-lv_root

[root@localhost ~]# df -h

wKiom1PRwoLho2ZVAAH7tdpq5Qo991.jpg


8、到这里,就结束了,整个服务器分区完成了,在分区过程中,一定要专心,不然就容易出错 ,一出错,那么就玩完了,我自己可是经历过两次不专心,导致服务器挂掉,最后重装系统,还好我的系统都是全新的,没有任何数据。