なぜext2とその後継者はデフラグを必要としないのですか?


回答:


9

ext4ファイルシステムが断片化を抑制し続ける1つの方法は、遅延割り当てプロセス(ext4のデフォルトの割り当てモード)を使用することです。

遅延割り当ては、新しく書き込まれたファイルデータブロックのファイルシステム内のディスクブロックへのマッピングをライトバック時まで延期することで機能します。

これは、各ファイルのブロックの総数(または少なくともボールパーク)がわかっているときに、ファイルのほとんどのブロックを同時に割り当てることで機能します。これにより、ブロックアロケーター(mballocMMKの回答で言及)が、ファイルを配置するために適切なサイズの空き領域を見つけてより適切に処理できるようになります。


これは確かにext4ドライバーの機能にすぎないことに注意してください。さて、非常に 技術的に 言えば、そのようなオプションで古いfsをマウントできなかったのかどうかはわかりません(少なくとも部分的には)。現時点では、DELALLOCはext4-onlyとマークされています。
1

8

ext3ファイルシステムでは、ディスクごとにブロックごとにブロックアロケーターがあるため、断片化が発生する可能性は十分にあります。

ただし、ext4ファイルシステムには、ディスクへのブロックの書き込みを遅らせることができるマルチブロックアロケーターがあり、ディスクの単一のチャンクに一度に複数のブロックをプロパティ割り当てして、連続した書き込みを可能にすることができます。断片化が発生する可能性は低くなります(まだ可能ですが、可能性は低くなります)


6

少なくともExt2(およびExt3については、確かではありませんが)では、ディスク上のフォーマット/構造には、最適化を妨げるものはありません。

デフラグの必要性の欠如は、OSごとに異なる実装レベルにあります。つまり、実装に応じて、Ext2のファイルはフラグメント化される場合とフラグメント化されない場合があります。

断片化が回避される場合、物理ブロックの割り当ての遅延が原因である可能性があります。つまり、実装のあるレベルでは、ファイルシステムは、データがディスクに書き込まれる/コミットされるまで、データをキャッシュ(および論理ブロック番号を介してアクセス)します。データが最終的にディスクに書き込まれるとき、物理ブロックを割り当てる必要があります。割り当てアルゴリズムは、データにいくつかの連続した利用可能な物理ブロックを割り当てる場合があります(またはそうでない場合もあります)。

お役に立てれば。


実際にはe2defragユーティリティがあり、それが必要になる場合があります(ランダムに書き込まれたファイルが多数ある完全なディスク上)。ext4の遅延アロケータにより、これはさらに起こりにくくなります。しかし、ext2でも何らかの割り当て/書き込みの遅延があったため、MS-DOS®のプリミティブアロケーターよりもデフラグユーティリティを実行する必要が少なくなりました。
mirabilos 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.