当前位置: 首页 > 工具软件 > CL-JSON > 使用案例 >

CentOS 系统根目录 /dev/mapper/cl-root 100% 耗尽的解决方案

沈枫涟
2023-12-01

CentOS 系统根目录 /dev/mapper/cl-root 100% 耗尽的解决方案

我的这个问题是docker引起的(其他会将数据或日志写入更目录的也会引发这个问题)

docker 有大量的日志输出,直接把 50G 空间(默认的root更目录)给占满了

导致系统需要根目录参与很多功能都用不了

例如:

cd 后Tab补全会提示如下内容
-bash: cannot create temp file for here-document: No space left on device
无法为立即文档创建临时文件: 设备上没有空间

开始排查

#查看磁盘占用情况
df -h

文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               3.8G     0  3.8G    0% /dev
tmpfs                  3.9G     0  3.9G    0% /dev/shm
tmpfs                  3.9G  360M  3.5G   10% /run
tmpfs                  3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/cl00-root   50G   50G   20K  100% /
/dev/sda2              976M  188M  722M   21% /boot
/dev/mapper/cl00-home  541G   19G  522G    4% /home
/dev/sda1              599M  6.8M  593M    2% /boot/efi
tmpfs                  781M  1.2M  780M    1% /run/user/42
overlay                 50G   50G   20K  100% /var/lib/docker/overlay2/50c36ea855f6be6fb4b694cb8aa8a155ac5f41c792f542261de54e5d63a6a147/merged
shm                     64M  4.0K   64M    1% /var/lib/docker/containers/ccf3badd71b21e99798b37e9fa5f040d48ee43b79d46d6bdd1580b519b15c36b/mounts/shm
tmpfs                  781M     0  781M    0% /run/user/1000

可以看到我的/dev/mapper/cl00-root已经占用100%

通过文件大写过滤定位到引起问题的点

命令find / -xdev -size +100M -exec ls -l {} \; 查询问题大小大于100m的文件

[root@localhost containers]# find / -xdev -size +100M -exec ls -l {} \;

-rw-r-----. 1 root root 45823135744 6月  20 10:51 
/var/lib/docker/containers/ccf3badd71b21e99798b37e9fa5f040d48ee43b79d46d6bdd1580b519b15c36b/ccf3badd71b21e99798b37e9fa5f040d48ee43b79d46d6bdd1580b519b15c36b-json.log
-rw-r--r--. 1 root root 106599076 10月 12 2021 /var/cache/PackageKit/8/metadata/AppStream-8-x86_64/packages/firefox-78.14.0-1.el8_4.x86_64.rpm
-rw-r--r--. 1 root root 128706140 10月 12 2021 /var/cache/PackageKit/8/metadata/BaseOS-8-x86_64/packages/linux-firmware-20201218-102.git05789708.el8.noarch.rpm
-rwxr-xr-x. 1 root root 116368288 6月   2 2021 /usr/bin/dockerd
-rwxr-xr-x. 1 root root 234799856 4月  10 2020 /usr/lib64/firefox/libxul.so

然后根据查询结果依次排查, 我这里主要是第一项docker 引起的, 所以我进到docker目录查看详情

查看详情

进入到问题目录

#查看目录下的占用情况
du -sh *

72K     buildkit
43G     containers
6.7M    image
52K     network
3.6G    overlay2
0       plugins
0       runtimes
0       swarm
0       tmp
0       trust
24K     volumes

可以看到我的containers文件占用了43G(根目录一共才50G)

解决方案

最简单的方式是直接删掉占用大的文件(确定无用后), 一些不要的日志缓存什么的直接删掉就好

如果其他数据盘还有足够的空间, 保险起见我们可以将文件移动到别的盘下存储, 将更目录的空间空出来

使用mv命令移动文件

#移动文件
mv `参数` `占用大的文件` `目标目录`

#软连接
ln -s `移动后的目标目录` `占用大的文件`

例如:
 mv docker /home/docker
 ln -s /home/docker docker

mv参数说明

  • -f: 强制删除
  • -i: 交互模式,在删除前询问用户是否操作
  • -r: 递归删除,常用在目录的删除
 类似资料: