小生博客:http://xsboke.blog.51cto.com
小生 Q Q:1770058260
-------谢谢您的参考,如有疑问,欢迎交流
故障原因:磁盘空间已被大量的数据沾满空间耗尽,虽然还有可用空间,但文件数i节点也已耗尽
显而易见,当一个文件系统的磁盘空间耗尽以后,将无法继续在该分区中创建新的文件数据,从而导致故障的出现,例如:当根分区“/”中的磁盘空间耗尽以后,将可能导致部分程序乃至整个系统无法正常启动或运行,因为一些临时性的运行文件将无法建立
当根分区磁盘空间不足而无法启动进入linux系统时,可以通过RHEL 5的安装光盘进入急救模式,转移或清理掉根分区中占用大量空间的文件,使用dd命令可以模拟出根分区耗尽故障,例如:执行“dd if=/dev/zero of=/somefile bs=1M count=999999”
除此之外,在每一个ext3文件系统中,能够使用的文件数量(对应i节点数量)也是有限的,当一个文件系统被格式化以后,其i节点数也即文件数量就已经固定下来了,如果用户在该分区中创建了巨量的细小文件(耗尽i节点),将可能出现这种情况,虽然该分区中仍有大量的剩余磁盘空间,但是用户却无法再建立新的文件。
一.模拟i节点耗尽故障
(1) 新建一个32M大小的ext3文件系统,将其挂载到/date目录下,并使用带“-i”选项的df命令确认该文件系统中i节点的使用情况。
(2) 参考如下内容编写一个测试程序,运行该程序后可以耗尽/dev/sdb1分区中所有可用的i节点,(10029)
(3) 运行该测试程序 sh killinode.sh &
(4) df -I /date 确认i节点占用情况
(5)当i节点用完后,将无法创建新的文件
(6)df -h T /date 查看磁盘空间占用情况
(7)修复i节点好几故障,理解i节点耗尽故障的根结以后,问题就比较好解决了,只需要找出该分区中占用大量i节点的细小文件,并运行转移或者删除即可
方法一:rm -rf /date/file*
方法二:vim jiaoben
a=`find /date -type f -a -empty`
for b in $a
rm -rf $b
done