记一次删除文件后磁盘空间未释放问题

记一次删除文件后磁盘空间未释放问题

异常现象

维护人员巡检过程中发现主机根目录利用率达到超限告警阈值(80%),当前利用率达到95%,如下图1:

image-20230908083601767

随后维护人员通过rm命令方式清除掉根(/)目录下部分过期日志文件,再次通过df -h查看挂载点占用率无变化、未下降。通过du -sh * 命令查看根(/)目录下各文件系统空间大小累计和约10G与df -h 命令输出中使用的总大小107G严重不符,如下图2:

image-20230908084343135

排查分析

在跟维护人员沟通了解异常现象之后,通过运维人员提供的远程环境进行排错:

通过图2可以发现除hdfs文件系统占用13T外,根(/)目录下其他文件系统空间总大小使用约10G左右,而df -h输出结果中根(/)目录的总大小为118G。查看hdfs挂载情况发现是分布式块存储挂载(盘符名称为data01-data15)。

了解挂载情况之后初步怀疑是维护人员在使用rm命令删除日志文件时,被删除的文件仍在被其他用户或应用程序使用,进程占用,导致df -h输出结果异常,排查过程如下:

  • 通过lsof |grep delete命令已经删除但是还被程序占用的文件列表,检查结果无内容输出,证明被删除的文件未被占用,文件清理无异常
  • 通top命令检查系统进程,未发现存在僵尸Z或D状态的异常进程,说明清除文件进程无异常
  • 通过find命令查找根(/)目录下超过500M的文件,检查结果仍未发现异常
  • 在客户跟业务部许可的前提下,告知客户做一次重启操作,重启之后发现系统无法正常启动,只能进入维护模式,检查发现是因为/etc/fstab文件对hdfs挂载点的data01-data15分布式块存储未做网络延迟挂载,导致系统无法正常启动,遂注释/etc/fstab下data01-data15的挂载,重新启动正常进入系统
  • 重新启动之后通过df -h命令输出结果与之前无变化,du -sh * 查看根(/)目录下各文件系统发现hdfs占用空间106G(发现问题:hdfs未挂载的时候占用106G,挂载后占用13T),通过检查/hdfs/data01-/hdfs/data15发现/hdfs/data12占用106G。

问题定位

/hdfs/data12挂载点在未进行分布式块存储(/dev/sdm1)挂载之前就已存储了106G的数据,后又将/dev/sdm1磁盘挂载到了/hdfs/data12挂载点,mount之后导致原来的文件被覆盖,而删除的文件是被存储在挂载的分布式存储设备上,挂载之前的数据以及存储空间无影响。导致出现该异常现象。

处置方案

沟通由维护人员联系业务部人员判定挂载前/hdfs/data12目录下的数据是否需要清理。或通过LVM方式扩容根(/)目录。

维护建议

对系统进行修改前详细了解系统状况,进行挂载操作前保证磁盘和目录可知、可控。

posted @ 2023-09-08 08:48  寻梦99  阅读(88)  评论(0)    收藏  举报