事件起因
一个平平无奇的早上,开发环境中服务挂了,排查服务日志发现数据库挂了,排查数据库日志发现磁盘空间不足。开始分析磁盘问题。
分析问题
开发环境中数据库和日志都保存在/var目录中,然而在搭建开发环境的时候并没有给/var目录单独挂载磁盘,/var使用的是根目录的空间。使用命令
df -h
查看磁盘使用情况,根目录只有50G的空间已经满了,但是/home目录有450G空间,还空了400多G 根目录只有50G的空间。
解决方案
将/home下的空间移动给根目录下。
- 使用root用户登录远程
- 备份home目录到/tmp目录下
tar cvf /tmp/home.tar /home
- 卸载home分区
umount /dev/mapper/centos-home
(图中容量已经调整过了,请忽略)
执行命令时可能会提示umount /dev/mapper/centos-home umount: /home:目标忙,此时需要在卸载目录之前先执行如下命令停止占用的进程
fuser -km /home
- 移除home卷
lvremove -f /dev/mapper/centos-home
- 给根目录增加400G空间
lvextend -L +400gG /dev/mapper/centos-root
(图中容量已经调整过了,请忽略)
- 扩展/root文件系统
xfs_growfs /dev/mapper/centos-root
- 创建home卷
lvcreate -L 35G -n /dev/mapper/centos-home
- 格式化home分区
mkfs.xfs /dev/mapper/centos-home
- 挂载home分区
mount /dev/centos-home
- 还原home备份
tar -xvf /tmp/home.tar -C /
检查结果
df -h
使用命令检查最新的磁盘空间结果可以看到根目录增加了400G,home目录只剩35G。至此扩容完成。