overlay挂载影响host主机根目录(排查)¶
在生产环境中遇到一个非常奇怪的案例,监控系统报告主机有目录100%满了,然而,登陆到服务器上检查 df -h
却看到所有目录都没有超过 90% :
Filesystem Size Used Avail Use% Mounted on
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 66M 63G 1% /dev/shm
tmpfs 63G 5.1M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda3 20G 53M 20G 1% /
/dev/sda2 976M 150M 759M 17% /boot
/dev/sda5 682G 576G 72G 89% /home
但是,仔细观察就发现异样: /
根目录怎么可能只有 53M
空间
使用 排查磁盘空间消耗 的方法检查
/
根目录下哪个目录占用异常:
du -Shx | sort -rh | head -10
可以看到 /var/log
实际上已经占用了 20G
:
20G ./var/log
7.4G ./tmp
...
检查磁盘挂载的
/dev/sda3
实际大小,也就是通过 parted分区工具 输出:
parted /dev/sda print
输出显示可以看到 /dev/sda3
分区有 55G
:
Model: ATA INTEL SSDSC2BB80 (scsi)
Disk /dev/sda: 800GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 4194kB 3146kB bios_grub
2 4194kB 1078MB 1074MB ext4 boot
3 1078MB 54.8GB 53.7GB ext4
4 54.8GB 56.9GB 2147MB linux-swap(v1)
5 56.9GB 800GB 743GB ext4
通常对于磁盘目录大小显示异常的,应该是多个磁盘被重复挂载到相同目录下导致,所以通过
mount
命令检查:
mount | grep sda3
输出如下,显示 Docker OverlayFS存储引擎 挂载异常:
/dev/sda3 on / type ext4 (rw,relatime,prjquota,data=ordered)
/dev/sda3 on /home/t4/docker/overlay/2312e9718d905ac6630d9252c84308a5fb14de503166bcf37a2ae6193265ca22/merged/usr/share/zoneinfo/Asia/Shanghai type ext4 (ro,relatime,prjquota,data=ordered)
/dev/sda3 on /home/t4/docker/overlay/9595fee13549814ce88fbc91b19d6f76185e179695bea7ff4c73d6749402d2bb/merged/usr/share/zoneinfo/Asia/Shanghai type ext4 (ro,relatime,prjquota,data=ordered)
/dev/sda3 on /home/t4/docker/overlay/5236144a35c37c27aedc261bde7c3527cc1553ddf89ed73448aced49db961e79/merged/usr/share/zoneinfo/Asia/Shanghai type ext4 (ro,relatime,prjquota,data=ordered)
通过 根据overlay目录获取对应容器 可以找出这些异常挂载的 overlay 目录对应的容器: