web-dev-qa-db-ja.com

なぜディスクが断片化するのですか?

定期的なWindowsメンテナンスの一環として、ハードドライブをデフラグします。しかし、なぜNTFSおよびFAT *システムでハードドライブが断片化するのでしょうか。どうやらext *はそうではありません、なぜこれですか? USBドライブもデフラグする必要がありますか?

18
Simon Sheehan

断片化は30年前の問題ではありません。当時は、フロッピーよりもほとんど高速ではないハードドライブと、ごくわずかなプロセッサメモリサイズがありました。これで、非常に高速なドライブと大容量のプロセッサメモリがあり、ハードドライブやコントローラにかなりのバッファリングがある場合があります。さらに、セクターサイズが大きくなっている(またはファイルがより大きなブロックに割り当てられている)ため、より多くのデータが本質的に連続しています。

オペレーティングシステムもよりスマートになりました。 DOS 1.xは参照されたとおりにディスクから各セクターをフェッチしていましたが、最新のOSは、シーケンシャルアクセス用にファイルが開いていることを確認でき、消費した後は追加のセクターをフェッチすることを合理的に予測できます。あなたが今持っているもの。したがって、次の数(ダース)のセクターを「プリフェッチ」できます。

そして、それ以上、ファイルを連続させない方が良い場合がよくあります。ファイルシステムが複数のドライブに分散している(大規模な)システムでは、複数のディスクが同時にファイルをシークできるため、ファイルが「分散」している場合は、実際にファイルにすばやくアクセスできます。

ボックスに必要かどうかに関係なく、2〜3年ごとに最適化を行います。

[重要なことは、ディスク上のデータが最適化されるかどうかではなく、空き領域が最適化されるかどうかということです。これでFATはひどいものでした。デフラグを解除しない限り、空き領域の2つの連続したブロックがなくなるまで、状況はますます悪化し続けました。他のほとんどのスキームは、空き領域を合体させ、いくらか「スマート」な方法でピースを割り当てることができるため、断片化が悪化するのではなく、特定のしきい値に達してから安定します。]

22
Daniel R Hicks

すべてのファイルシステムのフラグメント。 extおよびその他のLinuxファイルシステムは、設計方法により断片化が少なくなっています-引用 ウィキペディアLinuxネットワーク管理者ガイド

最新のLinuxファイルシステムは、ファイル内のすべてのブロックを連続したセクターに格納できない場合でも、それらを互いに近づけることにより、断片化を最小限に抑えます。 ext3などの一部のファイルシステムは、ファイル内の他のブロックに最も近い空きブロックを効果的に割り当てます。したがって、Linuxシステムでの断片化について心配する必要はありません。

ただし、 ext4 にはオンラインでの最適化があるため、Linuxファイルシステムでも、最終的には断片化ISの問題になります。

Windowsファイルシステムでは、クラスターを配置するスペースがある場所にクラスターが配置され、デフラグが実行されてクラスターが置き換えられます。 Linuxでは、ファイルは十分なスペースがある場所に優先的に配置されます。

ただし、Windows 7ではデフラグの実行がスケジュールされているため、手動でデフラグを実行する必要はありません。

13
Journeyman Geek