ext4ファイルシステムでエクステントサイズを変更するには?

ext4ファイルシステムでエクステントサイズを変更するには?

読みながらここext4 ファイルシステムには、ブロックを範囲にグループ化する範囲機能があります。それぞれ最大128MiBの連続空間を持つことができます。にはe4defrag次のような行があります。

[325842/327069]/file:  100%  extents: 100 -> 10   [ OK ]

ファイルサイズは約150MiBです。したがって、Wikiページによると、10ではなく2つの範囲が必要です。

  1. 範囲が128MiBではなく15MiBの理由を知っている人はいますか?
  2. 正確な範囲サイズを確認するためのツールはありますか?
  3. 128MiBになるようにサイズを変更するにはどうすればよいですか?

ベストアンサー1

あなたの質問は間違った前提に基づいているようです。

基本的に...あなたの範囲はいサイズは128 MBですが、e4defragはファイルをインポートしてそのデータをコピーした後、コピーに10ではなく5つの範囲があることを発見し、これを「成功」と呼び、inodeをコピーしたデータを指して元のデータを解放します。これが発生すると、「10 -> 5」が印刷されます。

(今すぐデータをコピーすることも可能です。もっとこの場合、コピーを削除し、そのままにして「10 -> 10」を印刷します。 )

ディスクがいっぱいになると、e4defragがファイルサイズに基づいて計算された「最小」範囲の数でファイルを縮小する可能性が減少します。

ただし、e4defragがディスクの最適化を完全に実行することを期待しないでください。ファイルごとに1回(複数の範囲を持つファイルごとに、つまりすでに1つの範囲しかない場合(または可能な限り小さいと推測))、少し遅くします。スキップします)そして、この試みがある種の改善につながらない場合は、そのままにして改善があっても、可能な限り最小限の範囲の数は保証されません。特に、最後の実行以降に余分なスペースが確保されている場合、最初の実行後にe4defragを再実行すると少しの改善が得られますが、最初の実行後の後続の実行では収益の減少が急速に発生する可能性があります。

おすすめ記事