×

信创系统磁盘空间充足却无法创建文件?原来是 inode 满了!

hqy hqy 发表于2025-07-17 16:55:19 浏览13 评论0

抢沙发发表评论

导读

在日常使用 Linux 系统的过程中,我们时常会关注磁盘空间的使用情况。然而,有时候你会遇到一种“诡异”的现象:磁盘空间还很充足,却提示无法再创建文件或写入数据。如果你也遇到过类似问题,那很有可能是——inode 用完了!今天我们就来聊聊这个容易被忽视的“文件系统元数据”——inode,它为什么会导致无法创建文件,又该如何解决和预防。



一、什么是 inode?

在 Linux 文件系统中,inode(索引节点)是用来存储文件元信息的数据结构。它记录了每个文件的以下信息:

文件类型(普通文件、目录、符号链接等)

文件大小

所有者(UID)和所属组(GID)

权限(rwx)

时间戳(创建、修改、访问时间)

数据块指针(文件内容实际位置)

注意:inode 不存储文件名,文件名由目录项(directory entry)记录并指向 inode。

二、inode 用完的常见现象

当 inode 被用尽时,即使磁盘还有大量空间,也会出现如下现象:

创建新文件时报错:设备上没有空间

日志无法写入,新建配置文件失败

某些服务(如 nginx、mysql)突然无法启动

使用 df -h 看磁盘剩余空间还很多,但 df -i 显示 inode 已满


pdsyw@pdsyw1024:/tmp$ touch pdsyw.txt
touch: 无法创建 'pdsyw.txt': 设备上没有空间
pdsyw@pdsyw1024:/tmp$ df -h /
文件系统        容量  已用  可用    已用%   挂载点
/dev/sda5        25G  9.1G   15G   39%      /
pdsyw@pdsyw1024:/tmp$ df -i /
文件系统       Inode    已用(I)   可用(I)   已用(I)%   挂载点
/dev/sda5      1638400    1638400   0     100%        /
图片

三、inode 为什么会满?

inode 的数量是在格式化文件系统时就已经固定分配好的。常见情况如下:


文件系统类型

inode 分配逻辑

ext4

每 16KB 分配一个 inode(默认)

xfs

动态分配,默认不会轻易用尽

btrfs

动态分配 inode,几乎不担心 inode 用尽


容易造成 inode 爆满的情况:

生成大量小文件:如日志系统、临时缓存、爬虫输出、session 文件等

程序异常创建文件不清理:如无限循环写文件

打包/解压大量碎片文件

四、如何排查 inode 使用情况?

查看 inode 使用量:


pdsyw@pdsyw1024:/tmp$ df -i
图片

查找 inode 占用最多的目录:

# 找到哪个目录最占 inode(逐级深入分析)


root@pdsyw1024:/tmp# du --inodes -d 3 / | sort -nr | head -20
图片

五、如何解决 inode 已满问题?

方法一:删除无用小文件

找到并清理无用文件是最快的解决方式。例如:

# 删除7天前的临时文件


root@pdsyw1024:/tmp# find /tmp -type f -mtime +7 -delete
图片

方法二:将高频写入目录挂载到更大 inode 的分区

可以将日志、缓存、会话目录单独挂载到一个 inode 多的分区或 tmpfs 上:


root@pdsyw1024:~# mount -t tmpfs -o size=512M tmpfs /tmp
root@pdsyw1024:~# df -i
root@pdsyw1024:~# touch /tmp/pdsyw.txt
图片

方法三:重新格式化磁盘时增加 inode 数量

适用于数据可以迁移的场景(如备用分区):


mkfs.ext4 -N <更大的 inode 数量> /dev/sdb1

# 或使用:-i 选项指定每个 inode 所代表的数据字节数


mkfs.ext4 -i 4096 /dev/sdb1

六、预防建议

定期监控 inode 使用情况(可以写脚本或用 Prometheus + Grafana)

避免程序创建过多小文件,可考虑使用数据库、日志轮转等方式替代

为高频 I/O 的目录单独挂载分区或 tmpfs

选择合适的文件系统类型,如使用 xfs 或 btrfs 替代 ext4




打赏

本文链接:https://www.kinber.cn/post/5333.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客