很多人判断磁盘问题,只会看 df -h。但在线上环境里,磁盘没满却写不进文件并不罕见:inode 耗尽、挂载异常、权限问题、文件句柄占用、文件系统只读,都可能让“磁盘还有空间”这件事失去意义。

Linux 对磁盘的管理,不只是字节容量问题,还包括文件系统组织、块设备、inode 结构和挂载状态。把这些概念分清,才能真正读懂磁盘类故障。

磁盘问题的本质,从来不只是“还剩多少 G”。

为什么这一篇重要

如果只看容量,不理解 inode 和文件系统状态,很多写入失败问题就会被误判成应用 bug。

先把核心问题想清楚

  • 磁盘容量和 inode 容量是两套不同的限制维度。
  • 文件系统负责把底层存储组织成可读写的目录和文件结构。
  • 挂载状态和文件系统异常会直接影响写入行为。

实战里更该关注什么

  • 排障时同时看容量、inode、挂载点和写入报错。
  • 多理解日志、临时文件和小文件爆炸为什么容易吃掉 inode。
  • 把“文件写不进去”拆成空间、权限、句柄和挂载四类思路。

常见误区

  • 觉得 df -h 没满就说明磁盘一定没问题。
  • 从不关注 inode 使用率。
  • 把所有写入错误都归结为应用权限不足。

一个值得自己做的小练习

在测试环境里创建大量小文件,观察 inode 使用率变化,再对比创建少量大文件时的差异。

小结

磁盘排障真正重要的不是机械地看剩余空间,而是建立“存储容量、文件系统结构和运行状态”三者一起看的意识。