vol.8 データ保存の単位とデータ削除のからくり
データの読み書きの方法について詳しく見てきましたが、今度はプラッタの中にデータはどのように保存されているのか、そしてデータ削除はどのように行われているのかを紹介します。
データは、磁気ディスクであるプラッタ上に複数の同心円として記録されますが、この同心円の1つずつをトラック、トラックを等間隔で細かく分割した最少記録単位のことをセクタと呼びます。このセクタ単位にデータが保存されることになりますが、そのサイズは512バイトと決まっています。つまり、10バイトのデータだけ読み書きするということはできません。なお、最近ではセクタ単位で4096バイト(4Kバイト)記録できるAdvanced Format Technology(ATF)に対応したHDDも登場しており、プラッタの容量を増やすことが可能となっています。
また、一般的にHDDをPCで使う場合はフォーマットという処理を行いますが、このフォーマットによって複数のセクタが組み合わされた「クラスタ」と呼ばれる単位が作られ、OS上ではこのクラスタ単位にデータが管理されるようになります。一つのクラスタにセクタがいくつ含まれるのかはOSの種類によって異なりますが、OS上ではこのクラスタが最小単位として扱われます。
実際にデータが作成されると、このクラスタごとにデータが保管されるようになりますが、どこにデータを保管したのか把握できるよう、目次に当たる「インデックス」と呼ばれる情報を個別に管理します。このことで、どのクラスタに何のデータが保管されているのかがわかるようになります。
では、保存されているデータを削除した場合はどうなるのでしょうか。PC上でファイルの削除をした場合、実はデータそのものがなくなることはありません。実際に削除を実行すると、削除したデータのインデックス情報が削除されますが、実際に保存されているクラスタ内にあるデータは何も変わりません。実際にデータは残ったまま、その情報を読み出すためのインデックス情報が消えるだけなのです。これが、データ削除の実態だということをしっかり覚えておきましょう。
なお、大きなファイルになると一つのクラスタにデータが保存できなくなるため、いくつかのクラスタにファイルを分散して保管が行われます。最初は連続したクラスタに保管されますが、読み書きを繰り返すことで連続していないバラバラのクラスタにデータが分散していきます。この状態をディスクの断片化、いわゆる「フラグメント」と呼びます。また、これを整理する処理のことを「デフラグ」と呼びます。