別に誰に向かって書いているわけでもないんだけどさ。
2ch なんかのデフラグ関係の話題を読んでいると、デフラグ「すべき」派も「すべきでない」派も、ちゃんと理解しないで言っている節が感じられるもので、ついつい書きたくなってしまう。
Linux にはデフラグが必要ない、という人がいるが、そんなことはない。
デフラグツールなんてなくても、全ファイルを別のディスクにコピーすれば同じこと、という人がいるが、そんなことはない。
現代的な意味において、デフラグは「断片化の解消」よりも、「より高速な外周に、よく使うデータを集める作業」だということは、前回の日記に書いた。
Linux の ext3 は、ファイルの断片化を起こしにくい構造をとっている。これは事実。
でも、それは「ファイルの間に十分な隙間を開ける」ことで行われている。
もし断片化がおきそうなら、より大きな隙間を探してファイルを移動するので、ディスク容量に余裕があるうちは断片化は起こらない。
結果として、外周部分でもデータはスカスカ。使う頻度も特に考慮されない。
ext3 がデフラグを起こしにくい、ということをもって「Windows の NTFS は設計が悪い」という人もいるが、断片化を問題とするか、速度の速い外周を活かそうとするかの思想の違いであって、善し悪しではない。
NTFS では、外周を有効に使う代わりに、断片化を起こしやすい。
そこで、OS自体にデフラグを効率的に行うための仕組みを設けている。
だから、システムを起動して作業をしながらでも、バックグラウンドでデフラグができる。
実はこれはすごいことで、DOS 時代の(Windows98までの時代の)FAT では、システムを停止しないとデフラグできなかった。
おかげで、Windows にはシステム標準でもデフラグがついているし、市販ソフトも、フリーソフトもたくさんある。
一方、Linux にはこのような仕組みはない。
外周は有効に使えないし、断片化が起こってしまった際に解消する仕組みもない。
システムを起動したまま、どころか、停止したとしてもデフラグするためのツールは準備されていない。
ext3 の上位互換である ext4 には、デフラグのための仕組みが備えられた。でも、デフラグツールは開発中で、まだ提供されていない。
(開発途中版を使うことはできるけど、大事なファイルシステムに、バグがあるかもしれないデフラグツールを使いたい人はいるだろうか?)
なので、Linux ユーザーがいう「デフラグの必要がない」は、やりたくてもできないだけ。
外周を十分に使えないから、NTFS よりも遅い。
もっとも、NTFS を長年デフラグなしで使うと、断片化によって極端に性能劣化する。
ext3 ではそのようなことは起こりにくい。(起こりえない、ではない)
で、Linux ユーザーの窮余の策としては「ファイルを全部別ディスクにコピー」だ。
これでデフラグと同じ効果がある、とする。
Windows ユーザーでも、デフラグするとハードディスクの寿命が縮む、と信じている人は同じことを言う。
でも、この方法は、断片化解消にはなるけど、よく使うファイルを外周に再配置することにはならない。
最初に書いたように、現代的な意味でのデフラグの肝は、外周を使う再配置にある。
だから、ディスク丸ごとコピーではデフラグの代わりにならない。
ちなみに、ディスクを丸ごとコピーすれば、ディスクは動作し続けて熱を持つ。
デフラグがハードディスクに悪い、というのであれば、丸ごとコピーも同じようにハードディスクに悪い。
(もっとも、デフラグよりもアクセス時間は短いはずだ。その意味ではハードディスクへの悪影響を最低限に抑えられる。
理由は、「空の領域に移す」という、究極的に広い作業領域が与えられている上、断片化の解消だけが目的で、再配置が行われないから。)
ちなみに、僕 Linux 使ってますよ。盲信者ではないだけで。
ところで、断片化していなければ読み込み中のシークが発生しない、というのは真実ではない。
不良セクタがあれば、それはハードディスク最内周に準備された「代替領域」に書き込まれるから。
不良セクタの存在は、ハードディスク内で解決されてしまうので、OS からは見えない。
「連続領域に並べた」と思っていても、実は断片化している、という状態になるし、この際「外周に配置した」つもりでも、実は内周に置かれていたりもする。
もっとも、通常のセクタと比較して、不良セクタの存在する割合は非常に低いので、「確率問題として」普通は無視する。
SSD に関しては、はっきり言って知らん。僕は SSD 使ってないので。
XP では、SSD を HDD とみなして動作していたので、デフラグしないと性能劣化した、という。
(SSD の扱えるデータブロックよりも、一般的な HDD の扱うデータブロック(セクタ)のほうが小さい。
このため、SSD の1ブロックに、HDD の数ブロックを同居させることになる。
ここで「断片化」がおきていると、1ファイルの書き換えに際して、関係ないファイルも一緒に処理しなくてはならなくなり、結果的に速度が低下する。)
Windows7 では、SSD はちゃんと SSD と認識して動作する。
XP で見られた「HDD のまねをするため」の無駄はカットされ、SSD の性能を十分に引き出す。
デフラグ、もはや過去のものだ。
デフラグとは、HDD に対して必要なテクノロジーであって、SSD の性能を十分に引き出せるのであれば、不要だ。
つまり、3回にもわたってデフラグ話書いたけど、僕が貧乏人でいまだに HDD メインで使っているから、と考えてください。
同じテーマの日記(最近の一覧)
関連ページ
古くて非力なマシンをLinuxBeanで再生してみた【日記 15/10/23】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |