首页 > 代码库 > Linux swap/home/root分区 大小 调整
Linux swap/home/root分区 大小 调整
周氏一族,整理技术文档,给下一代留点教程......
采用系统默认最下化安装的同学都知道,基本上home的分区大得要命,可现实中,我们home不需要那么大,我们的大部分数据是放在 / 目录下,因此需要调整大小,不然在生产环境当中,容易导致硬盘分区溢出,没有写入权限。
先来看看我的硬盘分区和大小情况,很明显,这是一块600G的硬盘,但是我root只有53.7G,swap只有16.9G,可是home竟然有529G
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
我们可以查看一下现在的home分区大小,使用命令 df -h
2、先来明确一件事情,我们把home减少之后的目的是为了干嘛,就是home占用太多,我们把它空间拿出来,丢给 swap或者root,那么,现在home已经减少了,是不是意味着可以直接给swap或者root加空间大小呢?
这是明显的错误,如果不懂的,估计得先从最基层的学起,我们刚才减少的是home的大小,并不是整个卷组的大小,我们要把home的卷组大小给缩一下,这样才能多出来空闲的空间
lvreduce -L 100G /dev/mapper/VolGroup-lv_home
注意:
使用lvreduce指令用于减少LVM逻辑卷占用的空间大小。可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。我还是建议,新系统的时候,来调整,如果项目在投入使用阶段了,你再来搞这玩意,你的小心脏得自己先做好心里准备,搞不好就数据全部玩完了。
3、使用vgdisplay命令查看LVM的空闲空间。
[root@localhost ~]# vgdisplay
现在可以看到,我这里还有392.70G可用空闲空间,那么,现在我就要把这392.70G空间合理分配一下
4、我先来处理swap空间吧,大家都知道,这个swap就是内存的交换,一般都是设置成硬件内存的2倍,那我先把swap关掉
[root@localhost ~]# swapoff /dev/mapper/VolGroup-lv_swap
[root@localhost ~]# free -m
很明显,我这内存是 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
很明显,我现在swap分区,已经是 66.8G了,基本满足项目跑了
6、把剩下的空间,丢给 / 目录,也就是 /dev/mapper/VolGroup-lv_root
丢之前,还是先看看整体目前的空间分配情况,还有多少空间,可以丢,同样
[root@localhost ~]# vgdisplay
还有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
8、到这里,就结束了,整个服务器分区完成了,在分区过程中,一定要专心,不然就容易出错 ,一出错,那么就玩完了,我自己可是经历过两次不专心,导致服务器挂掉,最后重装系统,还好我的系统都是全新的,没有任何数据。
本文出自 “周氏一族” 博客,谢绝转载!