无法写入磁盘但磁盘未满

fel*_*the 5 filesystem disk files

我无法写入任何文件,即使是 root,也无法执行任何其他需要写入的操作。任何需要写入的进程都不能,所以它们都失败了。df说我有足够的空间:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       30G   14G   15G  48% /
udev            984M  4.0K  984M   1% /dev
tmpfs           399M  668K  399M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            997M     0  997M   0% /run/shm
Run Code Online (Sandbox Code Playgroud)

我发现的所有“无法写入磁盘”的结果都与合法完整的磁盘有关。我什至不知道从哪里开始。今天早上突然出现了这个问题。

PHP 的最后一个日志条目是“失败:设备上没有剩余空间 (28)”。Vim 说“无法打开(文件)进行写入”。其他应用程序会出现类似的错误。

删除 ~1gb 后只是为了确定,问题仍然存在。我也重启了。Ubuntu 12.04

Tim*_*Tim 1

OP在编辑中回答:

编辑:事实证明,尽管我没有磁盘空间不足,但索引节点已经用完了。问题在这里解决了

You are out of inodes. It's likely that you have a directory somewhere with
many very small files.
Run Code Online (Sandbox Code Playgroud)

什么是索引节点?

Ext4 的理论限制为 40 亿个文件,该限制受到用于标识每个文件的 inode 编号大小的限制(ext4 使用 32 位 inode 编号)。然而,正如 John 所说,Ext4 静态分配 inode 表,因此实际限制是在创建文件系统时设置的。

来源