HDDの仕組みと読み書きの方法

ハードディスク(HDD)の仕組みと、読み書きの方法について説明しています。

セクターとクラスター

 ハードディスクは、円盤状のプラッタにデータを書き込みます。

ハードディスクのプラッタ、アーム、磁気ヘッド、セクター

 アームの先端に磁気ヘッドが付いていて、プラッタが回転する事で読み書きが出来ます。ハードディスクが読み書き出来る最小単位は、セクターと呼ばれます。サイズは、512バイト等です。

 OSでの読み書きの最小単位は、クラスターです。

ハードディスクのセクターとクラスター

 Windows10ではアロケーションユニットサイズとも呼ばれ、サイズは4KiB等です。つまり、セクターが512バイトの時、8セクターで1クラスターとなります(512×8=4,096バイト)。

 尚、実際の読み書きは、クラスターをセクターに変換(×8等)して行います。例えば、Windows10ではファイルのクラスターをMFT(Master File Table)*1で管理していますが、セクターに変換してからハードディスクで読み書きしています。

    *1:ファイル名や属性等、ファイル(ディレクトリ含む)に関連した情報を管理しています。

トラックとシリンダー

 トラックは、プラッタで同心円上の1周の事を言います。

ハードディスクのトラック

 ハードディスクには、複数のプラッタがあります。各プラッタ上で同じ位置にあるトラックの集合をシリンダーと呼びます。

ハードディスクのシリンダー

 プラッタの両面に書き込みが可能で、磁気ヘッドも各プラッタの両面にあります。このため、上記では6トラックで1シリンダーとなります。

 全てのアームは同じ動きをするため、同一シリンダー内のデータは同時に読み書き出来ます。

ハードディスクの読み書き

 ハードディスクは、以下の待ち時間の後に読み書きします。

シーク時間と回転待ち時間
・シーク時間
 アームを動かして、目的のシリンダーまで磁気ヘッドを移動させる時間です。
・回転待ち時間
 プラッタが回転し、目的のセクターが磁気ヘッドの所に来るまでの待ち時間です。

 ハードディスクの回転数は、RPM(1分間の回転数)で表されます。5,400RPM、7,200RPM等のハードディスクがあります。

クラスターサイズが大きい事のメリットとデメリット

 OSが、セクターとは異なるクラスター単位で読み書きするのにはメリットがあるためです。以下に、クラスターサイズが大きい場合のメリットとデメリットを示します。

メリット1:大きなボリューム(Cドライブ等)が作れる

 以下は、Windows10でのクラスターサイズと最大ボリュームサイズの関係です。

【クラスターサイズとボリュームサイズ】
クラスターサイズ 最大ボリュームサイズ
512B 2TiB
4KiB 16TiB
8KiB 32TiB
16KiB 64TiB
32KiB 128TiB
64KiB 256TiB

 クラスターサイズが大きい程、大きなボリュームサイズが使える事が分かると思います。これは、クラスターを管理出来る最大数が232-1までとなっていて、クラスターサイズが大きい程大きなボリュームを管理出来る(クラスターサイズ×管理出来る最大数)ためです。

メリット2:大きなファイルが作れる

 大きなファイルを作る時は、複数のクラスターに書き込む事になります。このクラスターを管理出来る数にも限界があるため、クラスターサイズが大きい程大きなファイル(1TiB以上等)が作成出来ます。

メリット3:高速な読み書きが期待できる

 クラスターは連続したセクターを確保するため、バラバラのセクターに配置される事がありません。つまり、シーク時間や回転待ち時間が少なくなるため、クラスターサイズが大きい方が高速に読み書きが出来ます。

デメリット:無駄な領域が多くなる

 クラスターサイズが大きいと、連続した領域が必ず確保されるため無駄な領域が発生します。例えば、810バイト等のファイルを作成した場合でも、クラスターサイズが4KiBの場合は4KiBが確保され、他のファイルのためには使えません。以下は、テキストファイルのプロパティです。

サイズとディスク上のサイズ

 サイズは810バイトになっていますが、ディスク上のサイズは4,096バイト(=4KiB)になっているのが分かると思います。これは、クラスターギャップと呼ばれます。

 因みに、1バイト等の小さすぎるファイルはMFTに直接保存されます。MFTは最初から確保されているため、ディスク上のサイズは0バイトになります。

  • このエントリーをはてなブックマークに追加