特定のファイル名に対して「デバイスに空き容量がありません」というエラーが発生する

特定のファイル名に対して「デバイスに空き容量がありません」というエラーが発生する

特定のディレクトリ内に多数のファイルを含む 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

ファイル名を1文字でも変更すると動作します。

このボリュームのディスク使用量と 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

関連情報