tarは開くことができないと言います:デバイスに残りのスペースはありませんが、df -hとdf -iの両方が利用可能なスペースが非常に大きいことを示しています。

tarは開くことができないと言います:デバイスに残りのスペースはありませんが、df -hとdf -iの両方が利用可能なスペースが非常に大きいことを示しています。

何百万もの小さなファイルを含む約100の.tarファイルがあります。 Linuxのディレクトリに抽出したい。

これらの.tarファイルは、インストールされているLVM EXT4ファイルシステムにあります。しかし、マウントされたFSに解凍してもルートディレクトリに解凍しても、tarはデバイスにスペースがないと言います。

ところでdf -h、df -iで残りのスペースを確認してみると、まだたくさん残っています(私のルートディレクトリに700G、マウントされたFSに30T)。

それでは、ここで何が問題になる可能性がありますか?

結果df -hdf -ih df -hの結果 df -ihの結果

答え1

~によるとこのブログエントリ、著者は、large_dirファイルシステムオプションが有効になっていない場合、通常のext4ディレクトリの最大サイズは約1000万ファイルであると推定します。

考える、完全に仮説ではない、ある日、次の(Linux)カーネルログメッセージが見つかりました。

EXT4-fs警告(デバイスmd1):ext4_dx_add_entry:2461:ディレクトリ(ino:102236164)インデックスがいっぱいになり、最大htreeレベルに達しました:2 EXT4-fs警告(デバイスmd1):ext4_dx_add_entディレクトリはアクティブではありません。機能

ある意味おめでとうございます。論理的に言えば、ディレクトリに多くのファイルが蓄積されていっぱいです。残念ながら、ファイルを生成しようとする追加の試みは失敗します。実際にはすでに失敗しました。エラーメッセージが表示されたためです。幸運な場合は、ソフトウェアがエラーメッセージを記録して確認できます。また、ディレクトリが大きすぎるため、不快な驚きを経験する可能性があります。

(ここで「ラージ」は相対的です。「ls -lh」レポートによると、これが発生するディレクトリは約575 MBにすぎません。これはディレクトリの場合は非常に大きいですが、最新のファイルの場合はそれほど大きくありません。ファイルシステム全体に空き容量があります。たくさんあります)。

dmesg以下を使用してカーネルログを確認することをお勧めします。2fs調整オプションがあります-O large_dir

答え2

ディスク容量は十分ですが、ディスク上のファイル数が多く、ファイルシステムが収容できる最大数に達しました。

df -ih使用されているinodeの割合を表示するには実行してください。おそらく100%でしょうか?
源泉

関連情報