inode占用100%时硬盘无法写入文件故障处理

故障现象

 

分区无法写入文件。

 

故障分析

 

执行df -h命令发现空间占用不到70%,执行df -hi,发现某分区IUse%值为100%,说明inode已经用完,应该是某些目录下存在大量的小文件导致。

 

解决方法

 

大量小文件分布有两种可能,一是只有一个或少量目录下存在大量小文件,这种情况我们可以使用如下命令来找出这个异常目录:

  1. find / -type d -size +10M

此命令作用是找出大小大于10M的目录(目录大小越大,表示目录下的文件越多)。
第二种可能是,大量的小文件分布在大量的目录下,这时候上面的命令可能找不出异常的目录,需要以下命令:

  1. cd /
  2. find */ ! -type l | cut -d / -f 1 | uniq -c

此命令作用是找出目录下文件总数,可能需要执行多次,直到找出具体的目录。比如上面的命令找出了/data目录下存在大量的小文件,但/data/目录还有很多目录,这时候我们还需要继续执行:

  1. cd /data
  2. find */ ! -type l | cut -d / -f 1 | uniq -c

直到找出具体的目录。

 

故障总结

 

对inode占用进行监控,并且收到inode告警时应及时使用以上方法来定位问题,并反馈给相应人员从根源解决。