linux的inode节点中记录了文件的类型、大小、权限、所有者、文件连接的数目、创建时间与更新时间等重要的信息,还有一个比较重要的内容就是指向数据块的指针。一般情况不需要特殊配置,如果存放文件很多,则需要配置。有时磁盘空间有剩余但是不能存放文件,可能是由于inode耗尽所致。
解决方法:
一、清除inode占用高的文件或者目录(推荐)
1、、登录服务器,执行如下命令,分析根目录下的每个二级目录下有多少个文件
2、逐层进入inode占用最高的目录,继续执行上述指令,逐步定位占用过高空间的文件或目录,最后进行相应清理。
本次故障经查发现 /var/spool/postfix/maildrop 目录占用 inode 最高,经过清理后,恢复正常。
该目录之所以占用大量inode 是由于linux在执行cron定时任务时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者,这些小文件就会堆积在maildrop目录下面。
永久性解决该问题需要进行如下配置修改
先修改 /etc/crontab 将 mailto=root 替换成 mailto= "",然后 crontab -e 在最前面直接加入mailto="",最后重启crond服务,之后执行crond定时任务时将不会再发送邮件。
二、修改inode数量
如果不允许清理磁盘中的文件,或者清理后inode使用率仍然较高,则需要通过如下步骤,增加inode节点数量。
注:inode的调整需要重新格式化磁盘,请确保数据已经得到有效备份后,再进行以下操作。
1、执行如下命令,卸载系统文件
2、执行如下命令,重新建立文件系统,指定inode节点数
注:本文指定inode节点数2621440,现场实际环境请以实际为准。
3、执行如下命令,查看修改后的inode节点数