No space left on device

前言:之前在测试环境遇到了一个问题,查看应用的日志发现错误:No space left on device。以为是服务器磁盘满了。
首先使用了df -h查看磁盘的剩余容量,发现大部分都是还没有使用的,就很奇怪为什么会报上面这个错误。

因为不只是磁盘满了会报这个错误,还有另外一个错误,是关于 inode 的。

如果磁盘满了或者 inode 也满了,在这两种情况中的一个发生,就会让我们在控制台上看到No space left on device这样的报错。

no-space

那么如何查看当前机器上的 inode 情况呢?使用df -i命令即可查看。

df-i

所以当我们使用 df -h 发现磁盘还未满的时候,还要用 df -i 验证下 inode 是否已满,因为有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。

Reference

http://www.ruanyifeng.com/blog/2011/12/inode.html