Centos7 | 调节home分区容量至root分区下

一、背景
在最近项目过程中,遇到系统登录缓慢,甚至卡死情况,查看后台发现cpu占用率高达200%以上,输入部分命令时,显示磁盘已满。但是磁盘总量为1T,想到不该是磁盘满了。使用df -h命令查看才知,是根目录满了,经了解得知:centos7默认的root大小为50G,也就是说如果硬件分配时超过50G,大部分剩余空间都会分配给home,故将home分区多余部分配给root

二、准备工作
1.查看磁盘
df -h
#记录home的大小,便于记录内存


2.查看磁盘格式
df -T /dev/mapper/centos-root


三、调节home分区
1.备份分区为压缩文件至tmp
tar cvf /tmp/home.tar /home

2.卸载home分区
备注:(如中途不重启,可忽略)
1.修改fstab(这一步非常重要,若中途要重启系统,千万不要漏了)

准备卸载/home文件系统,centos启动时会对/etc/fstab的内容逐一检测,由于fstab默认有/home,如果不修改fstab,重启之后会发现centos跪了。
所以卸载之前,要先注释掉/home,不让系统开机检测/home。

2.编辑fstab

bash vi /etc/fstab

#/dev/mapper/centos-home /home xfs defaults 0 0
#注释掉/home的内容,wq保存。 ```

3.安装psmisc z


```bash yum install -y psmisc ``````bash
#Psmisc软件包包含三个帮助管理/proc目录的程序,安装下列程序: fuser、 killall、pstree和pstree.x11(到pstree的链接)

#fuser 显示使用指定文件或者文件系统的进程的PID。

#killall 杀死某个名字的进程,它向运行指定命令的所有进程发出信号。

#pstree 树型显示当前运行的进程。

#pstree.x11 与pstree功能相同,只是在退出前需要确认。 ```

(1)卸载home文件系统
umount /home
1
如果提示无法卸载,是因为有进程占用/home,可以用下面的命令来停止占用的进程。

fuser -km /home/

(2)删除/home所在的lv
lvremove /dev/mapper/centos-home


2.恢复home分区
(1)创建50G大小的/home的lv
lvcreate -L 50G -n /dev/mapper/centos-home

(2)创建文件系统
mkfs.xfs /dev/mapper/centos-home


(3)挂载分区并查看
mount /dev/mapper/centos-home
df -h

(4)恢复home文件
tar xvf /tmp/home.tar -C /


四、调节root分区
1.增加root分区大小,查看剩余内存

vgdisplay
lvextend -L +500G /dev/mapper/centos-root

#此处逐渐增加,便于查看剩余空间

2.扩展/root文件系统
xfs_growfs /dev/mapper/centos-root

3.查看拓展结果
df -h

————————————————

posted @ 2021-06-17 11:31  PC-Tiger  阅读(676)  评论(0)    收藏  举报