记录一次linux目录扩容

297 阅读1分钟

事件起因

一个平平无奇的早上,开发环境中服务挂了,排查服务日志发现数据库挂了,排查数据库日志发现磁盘空间不足。开始分析磁盘问题。

分析问题

开发环境中数据库和日志都保存在/var目录中,然而在搭建开发环境的时候并没有给/var目录单独挂载磁盘,/var使用的是根目录的空间。使用命令

df -h 

查看磁盘使用情况,根目录只有50G的空间已经满了,但是/home目录有450G空间,还空了400多G 根目录只有50G的空间。

解决方案

将/home下的空间移动给根目录下。

  1. 使用root用户登录远程
  2. 备份home目录到/tmp目录下
tar cvf /tmp/home.tar /home
  1. 卸载home分区
umount /dev/mapper/centos-home

image.png(图中容量已经调整过了,请忽略)

执行命令时可能会提示umount /dev/mapper/centos-home umount: /home:目标忙,此时需要在卸载目录之前先执行如下命令停止占用的进程

fuser -km /home
  1. 移除home卷
lvremove -f /dev/mapper/centos-home
  1. 给根目录增加400G空间
lvextend -L +400gG /dev/mapper/centos-root

image.png(图中容量已经调整过了,请忽略)

  1. 扩展/root文件系统
xfs_growfs /dev/mapper/centos-root
  1. 创建home卷
lvcreate -L 35G -n /dev/mapper/centos-home
  1. 格式化home分区
mkfs.xfs /dev/mapper/centos-home
  1. 挂载home分区
mount /dev/centos-home
  1. 还原home备份
tar -xvf /tmp/home.tar -C /

检查结果

df -h 

使用命令检查最新的磁盘空间结果可以看到根目录增加了400G,home目录只剩35G。至此扩容完成。

image.png