何百万もの小さなファイルを移動すると、「スペース不足」エラーが発生する

何百万もの小さなファイルを移動すると、「スペース不足」エラーが発生する

あるパーティションから別のパーティションに約450万のファイル(サイズ範囲100 - 1000バイト)を移動したくありません。合計フォルダサイズは約2.4GBです。

まず、解凍し、圧縮されたファイルを新しい場所に移動しました。最大800,000個のファイルのみを貼り付けることができ、「スペース不足」エラーが表示されます。

次に、mvコマンドを試しましたが、結果として同じ状況が発生しました。

rsyncを使用しても同じエラーが発生し、〜800,000個のファイルのみが移動されます。

ディスクの可用性ステータスを確認しましたが、制限よりはるかに低いです。 (新しいパーティションには約700GBの空き容量があり、約2.4GBのスペースが必要です。)

パーティションの利用可能なinodeを確認しましたが、同じです。可能な最大191M inodeのうち約800kのみ使用します。 (実際には 'mkfs.ext4 -Tsmall /dev/sdb3'でパーティションをフォーマットしました。)

ここで何が間違っているのかわかりません。一度に約800,000個のファイルのみをコピーまたは移動できます。

答え1

エラーの原因が見つかりました(他のフォーラムで見つかりました)。このエラーは、 "dir_index"パラメータによって有効になっているext4で使用されるハッシュアルゴリズムが原因で発生します。私にはハッシュクラッシュがひどすぎて、次のように無効にしました。

tune2fs -O "^dir_index" /dev/sdb3

欠点は、インデックスがないため、パーティション化が以前よりも遅いことです。

問題に関する追加情報: ext4: 不思議な「デバイスに余分なスペースがありません」エラー

関連情報