Linux索引节点(inode)用满导致的一次故障(转自张宴博客 http://blog.s135.com)

一、发现问题:
  在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。

  二、分析问题:
  后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
  点击在新窗口中浏览此图片

  inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

  而这台服务器的Block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足。

  三、查找原因:
  /data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。

  四、解决方案:
  1、删除/data/cache目录中的部分文件,释放出/data分区的一部分inode。

  2、用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/data分区inode不足的问题:
  ln -s /opt/newcache /data/cache

  3、更换服务器,用高配置的服务器替换低配置的服务器。很多时候用钱去解决问题比用技术更有效,堆在我办公桌上5台全新的 DELL PowerEdge 1950 服务器即将运往IDC机房。
  点击在新窗口中浏览此图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是 Linux 内核源码中 ext4 文件系统部分的代码。 该目录下包含了 ext4 文件系统的核心代码,包括: 1. super.c:superblock 相关代码,用于管理文件系统的元数据信息。 2. inode.c:inode 相关代码,用于管理文件和目录的元数据信息。 3. namei.c:namei 相关代码,用于管理文件和目录的路径信息。 4. file.c:file 相关代码,用于管理文件和目录的读写操作。 5. dir.c:directory 相关代码,用于管理目录的读写操作。 6. extents.c:extent 相关代码,用于管理文件和目录的数据块分配和释放。 7. mballoc.c:multi-block allocator 相关代码,用于管理文件和目录的空间分配和释放。 8. resize.c:resize 相关代码,用于管理文件系统的扩容和缩容操作。 此外,还包括一些与 ext4 文件系统相关的辅助函数和工具函数,例如: 1. balloc.c:block allocator 相关代码,用于管理文件系统的数据块分配和释放。 2. bitmaps.c:bitmap 相关代码,用于管理文件系统的位图信息。 3. checksum.c:checksum 相关代码,用于管理文件系统的校验和计算。 4. extents_status.c:extent status 相关代码,用于管理文件系统的数据块状态信息。 5. migrate.c:migration 相关代码,用于管理文件系统的数据块迁移操作。 6. page-io.c:page I/O 相关代码,用于管理文件系统的页缓存和 I/O 操作。 7. sysfs.c:sysfs 相关代码,用于管理文件系统的 sysfs 接口。 8. utils.c:utility 相关代码,用于提供一些常用的工具函数。 每个文件都有相应的注释,用于描述该文件的作用和实现细节。整个代码库的结构清晰,代码风格规范,是学习文件系统实现的优秀范例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值