很多人判断磁盘问题,只会看 df -h。但在线上环境里,磁盘没满却写不进文件并不罕见:inode 耗尽、挂载异常、权限问题、文件句柄占用、文件系统只读,都可能让“磁盘还有空间”这件事失去意义。
Linux 对磁盘的管理,不只是字节容量问题,还包括文件系统组织、块设备、inode 结构和挂载状态。把这些概念分清,才能真正读懂磁盘类故障。
磁盘问题的本质,从来不只是“还剩多少 G”。
为什么这一篇重要
如果只看容量,不理解 inode 和文件系统状态,很多写入失败问题就会被误判成应用 bug。
先把核心问题想清楚
- 磁盘容量和 inode 容量是两套不同的限制维度。
- 文件系统负责把底层存储组织成可读写的目录和文件结构。
- 挂载状态和文件系统异常会直接影响写入行为。
实战里更该关注什么
- 排障时同时看容量、inode、挂载点和写入报错。
- 多理解日志、临时文件和小文件爆炸为什么容易吃掉 inode。
- 把“文件写不进去”拆成空间、权限、句柄和挂载四类思路。
常见误区
- 觉得
df -h没满就说明磁盘一定没问题。 - 从不关注 inode 使用率。
- 把所有写入错误都归结为应用权限不足。
一个值得自己做的小练习
在测试环境里创建大量小文件,观察 inode 使用率变化,再对比创建少量大文件时的差异。
小结
磁盘排障真正重要的不是机械地看剩余空间,而是建立“存储容量、文件系统结构和运行状态”三者一起看的意识。