ディスクの断片化は、ハードディスクドライブ(HDD)やその他一部のストレージにおいて、データがシステムメモリに書き込まれる仕組みに伴って生じる副作用です。コンピューターがドライブ上で最初に利用可能なブロックへデータを書き込むと、連続したファイルが分割されることで発生します。時間の経過とともに、ファイルの場所を特定するのに時間がかかるため、断片化によってコンピューターの読み取り速度は低下します。業務で使用するハードディスクを最適化し、高速性を維持するには、ストレージチームが断片化を継続的に管理する計画を立てなければなりません。本ガイドでは、断片化がハードディスクに及ぼす影響、断片化のメリットとデメリット、そして時間の経過に伴う管理方法に焦点を当てます。
ディスクの断片化とは?
ディスクの断片化は、マシンがディスクドライブ上で最初に利用可能なブロックへデータを書き込むことで、時間の経過とともに発生します。コンピューターがハードディスクドライブにファイルを書き込む場合、最も速い方法は、最初に利用可能なストレージブロックを選ぶことです。しかし、これによってドライブ上の連続したファイルが分割されます。
つまり、近接性が重要です。通常、オペレーティングシステムはアプリケーションやファイルのストレージブロックをストレージデバイス上の次に利用可能な場所に保存します。これは必ずしも、アプリケーション内の直前のブロックに隣接するストレージブロックとは限りません。
断片化はハードディスクドライブでは発生しますが、ソリッドステートドライブでは発生しません。SSDはハードディスクと同じ方法でファイルを断片化しません。断片化はプライマリシステムメモリ(RAM)でも発生することがあります。既存のメモリレジスターが使われたり再利用されたりする際に、アプリケーションやシステムのプロセスがメモリを不連続なブロックとして割り当て、使用するためです。ただし、本記事ではHDDの断片化に焦点を当てます。
オペレーティングシステム内で読み取りや書き込みの処理が行われるため、ディスクの断片化は通常、時間の経過とともに増加します。アプリケーションやファイルが追加・削除されることで、新たなストレージによって異なるブロックが不連続な形で空きます。時間が経つと、ファイルは非常に断片化し、ハードドライブ上のデータの読み取りが遅くなります。これは、ファイルストレージリソースの非効率的な利用と見なされることがあります。一方、オペレーティングシステムが、連続した読み取りが可能になるよう事前にブロックを再割り当てすることなく、利用可能なストレージブロックへ迅速にファイルを書き込めるため、ファイル書き込み処理は高速化します。
ディスクの断片化は、パフォーマンスと単純さが向上する代わりに、ある程度なら一般的に許容されます。しかし時間の経過とともに、ドライブの速度低下やディスク容量の浪費につながる可能性があります。ストレージ容量と速度を最適化するには、企業はディスクの断片化の仕組みと、その影響を軽減する方法を理解する必要があります。
断片化の種類
断片化には、内部断片化と外部断片化という2つの代表的な種類があります。
- 内部断片化。メモリが固定パーティションに分割される仕組み上、ファイルが適合しにくい場合があります。たとえば、特定のプロセスに4 MBが必要で、ストレージシステムが6 MBの領域を割り当てた場合、プロセスが消費するのは4 MBだけでも、6 MBすべてが使用済みになります。書き込みに必要な量を超えてメモリが割り当てられると、余った領域が無駄になります。
- 外部断片化。メモリの割り当て処理が非効率だと、ドライブ上に小さすぎて利用できない領域の断片が残ることがあります。プロセスがその領域を使って実行しようとしても、空き領域が連続しておらず、ドライブ上で利用できない断片に分割されているため、プロセスは完了しません。
内部断片化を軽減するには、ストレージ管理者は、プロセスの実行に必要な量を超えてメモリを割り当てないよう、オペレーティングシステムにすでに搭載されていることが多い動的割り当てソフトウェアを使用すべきです。外部断片化の問題を解決するには、デフラグツールを使用します。デフラグツールはハードドライブ上の断片を再配置し、より広い連続領域を利用できるようにします。
ストレージの専門家は、ドライブの断片化率が10%になった時点、または月に1回、ディスクをデフラグすることを推奨しています。どちらでも問題ありませんが、特定のドライブでデータの書き込みと読み取りが常に行われている場合は、定期的にデフラグしてください。
内部断片化と外部断片化の比較
次の表では、内部断片化と外部断片化の違い、およびそれぞれの影響を軽減する方法をまとめています。
| 内部断片化 | 外部断片化 | |
|---|---|---|
| 発生する理由 | 内部断片化は、メモリとストレージが通常、固定サイズの単位に分割されるために発生します。 | 外部断片化は、異なるプロセスによって動的に割り当てられる可変サイズのブロックにメモリが分割されることによって生じます。 |
| 結果 | 固定サイズの単位を完全には満たさない形で領域が割り当てられると、余分な断片が残ります。 | プロセスがドライブ上の領域を使用してから解放すると、断片が残ることがあります。 |
| 解決方法 | オペレーティングシステム内の動的割り当てツールを使用して、無駄な領域を減らします。 | デフラグソフトウェアを使用します。 |
断片化のメリット
ディスクの断片化には、書き込み時間の短縮、書き込み失敗の減少、ストレージ容量の最適化といったメリットがあります。ディスクの断片化は必ずしも悪いものではなく、書き込み性能を向上させる必要があるストレージシステムにとっての妥協策ともいえます。
書き込み時間の短縮
ドライブ上ですぐに利用できるブロックにデータが書き込まれるため、コンピューターはより高速にデータを書き込めます。システムは連続したデータ書き込みを可能にするためにストレージを再編成しないので、書き込み処理の速度が向上します。
失敗の減少
断片化を有効にしないシステムでは、連続した空き領域が不足すると書き込みに失敗します。しかし、断片化のあるシステムでは、連続した空き領域が不足しているというだけで書き込み処理が自動的に失敗することはありません。同じアプリケーションのファイルをディスク上の異なる場所に書き込めるためです。
ストレージの最適化
利用可能なすべてのストレージブロックを活用することで、断片化したシステムはストレージデバイスをより有効に使える可能性があります。ディスク容量を最適化すれば、コスト削減にもつながります。高品質なハードドライブは高価な場合があり、企業は多数のドライブに投資しなければなりません。断片化によって、HDDは既存のドライブ容量をより多く利用できます(ただし、ディスクの断片化が進み、プロセスを実行できるブロック領域が極めて限られると、このメリットの重要性は低下します)。
断片化のデメリット
断片化は当初、ディスクのパフォーマンスに有益ですが、監視しなければ時間とともにシステムの速度を大幅に低下させます。データの読み取り時間が遅くなり、ストレージチームによる定期的なメンテナンスも必要になるため、対処は容易ではありません。
読み取り速度の低下
アプリケーションの実行に必要なファイルがすべて同じ場所に存在するとは限らないため、断片化によって読み取りが遅くなる可能性があります。コンピューターはそれらすべてのファイルを探して不連続な場所を調べなければならず、時間がかかることがあります。一般消費者向けのノートパソコン1台では目立たないかもしれませんが、業務用マシン、特に重要なアプリケーションを実行する高性能コンピューターでは、すぐに影響が現れます。
継続的なデフラグの必要性
断片化の修復には作業が必要です。内部断片化の場合、管理者はメモリ割り当てツールを使用して、ストレージデバイスやRAM内の領域が無駄になるのを防ぐ必要があります。外部断片化の場合、管理者はデフラグツールを使用して残りのメモリを調整し、新しいプロセスが実行に十分な領域を確保できるようにする必要があります。
詳しくはハードドライブ向けの最適なデフラグツールをご覧ください。
結論:ディスクの断片化
断片化はハードドライブに不可避な要素ですが、管理することは可能です。ITチームまたはストレージチームは、頻繁に使用するストレージデバイスを監視し、断片化の問題がないか確認すべきです。兆候の1つとして、読み取り速度の低下が挙げられます。
内部断片化を管理するには、オペレーティングシステムに標準搭載されているものでも、サードパーティ製のものを追加したものでも、動的メモリ割り当てツールを使用します。外部断片化を管理するには、評価の高い業務用デフラグソリューションを導入します。ディスクの断片化はデータを高速に書き込むために必要ですが、ドライブを長期的に使用可能な状態に保つには継続的なメンテナンスが必要です。
次に読むべきはデータセンターでハードドライブを使う価値です。
Sean Michael Kernerがこのレポートに寄稿しました。