获取错误:特定文件名的“设备上没有剩余空间”

pra*_*tri 6 linux filesystems ext4 hard-drive

我有一个 ext4 卷,在特定目录中有很多文件。

每当我尝试在其中创建具有特定名称的文件时,都会收到“设备上没有剩余空间”错误。

$ touch /data/lake/http:____images__br037__319854_366_tp.jpg
touch: cannot touch ‘/data/lake/http:____images__br037__319854_366_tp.jpg’: No space left on device
Run Code Online (Sandbox Code Playgroud)

如果我更改文件名的一个字母,它就可以工作。

这是该卷的磁盘使用情况和 inode 使用情况:

# df -h /dev/xvdf
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvdf       985G  679G  256G  73% /data

# df -i /dev/xvdf
Filesystem       Inodes    IUsed    IFree IUse% Mounted on
/dev/xvdf      65536000 24751661 40784339   38% /data
Run Code Online (Sandbox Code Playgroud)

我还运行了 fsck 以确保它不是磁盘损坏问题。

# e2fsck -y /dev/xvdf
e2fsck 1.42.9 (4-Feb-2014)
/dev/xvdf: clean, 24751661/65536000 files, 182020406/262144000 blocks
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我如何进一步调试它。

rac*_*man 6

dir_index 功能(您应该能够禁用)中似乎存在一个已知错误,该错误是由文件名的哈希冲突引起的:

http://blog.merovius.de/2013/10/20/ext4-mysterious-no-space-left-on.html