我有一个 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
如果我更改文件名的一个字母,它就可以起作用。
以下是该卷的磁盘使用情况和 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
我还运行了 fsck 以确保它不是磁盘损坏问题。
# e2fsck -y /dev/xvdf
e2fsck 1.42.9 (4-Feb-2014)
/dev/xvdf: clean, 24751661/65536000 files, 182020406/262144000 blocks
有人可以帮我如何进一步调试吗?
答案1
dir_index 功能中似乎有一个已知的错误(您应该能够禁用它),它是由文件名哈希值冲突引起的:
http://blog.merovius.de/2013/10/20/ext4-mysterious-no-space-left-on.html