一昔前ならサーバにハードディスクドライブ(HDD)を連携することで、大切な企業データや個人データを守っていました。しかし、フラッシュストレージの登場により、既存のストレージ市場に大きな変化が表れるようになりました。フラッシュストレージにおける長年の研究により技術とコストによる障壁がなくなり、企業でも一般的にフラッシュストレージは利用されつつあります。
今回は、それでも今尚、IT基盤の主役であるHDDの基本構造と記録方法についてご紹介します。
まずは、ハードディスクの語源の意味について学んでいきましょう。そもそも、ハードディスクという言葉は、フィルム上のディスクが入ったフロッピーディスクと対比されるためにできた用語だということをご存知ですか?
HDDの本体カバーを開けると金属製の硬いディスクが入っていることから、「ハードディスク」と呼ばれています。このハードディスクは、円盤状の形をしていてプラッタと言います。
素材は、金属製以外にもガラス製のものがあります。この円盤状のハードディスクに、磁気の力を利用して情報を書き込むことで大切なデータを保存します。
もし、必要な情報があれば、書き込んだ内容を読み取ることもできます。ハードディスクは、非常に精密で本体内部に搭載された金属製の円盤と読み取りヘッドとの隙間は、10nmしかないため、どれだけ精密な動きをしているかご理解いただけるかと思います。
もし、手元に壊れたHDDがあるのなら、内部構造を知るために本体カバーを開けてみてください。HDDの本体カバーを開けると、下記のパーツが搭載されていることが分かります。
アクセスアーム
ハードディスクに伸びる金属製のアームのことで先端には、磁気ヘッドが付いています。ディスク上の目的地まで、磁気ヘッドを運ぶ役割を果たします。
ディスク(プラッタ)
ディスクは、金属、またはガラスで作られており円盤の形をしています。ディスクの表面には磁性体と呼ばれる塗料を塗り、この磁性体を磁化することで情報の記録を可能にしています。
磁気ヘッド
アクセスアームの先に付いている微小の電磁コイルのことを磁気ヘッドと言います。磁気ヘッドは、磁性体を磁化するなどの機能を持っており、情報の読み書きができます。
HDDに利用される各パーツについて学んだところで、情報の記録に必要な基本動作について説明します。本来、ハードディスクは、非常に安価で大容量、比較的高速という特徴を持つことから、世の中に送り出されるすべてのサーバに搭載される補助記憶装置です。
HDDの内部には、容量に応じてプラッタ(金属ディスク)が1枚入っており、その表面に塗られている磁性体を磁気ヘッドが磁化させてデータの読み書きを行います。必要な情報の読み取りや書き込みを行う磁気ヘッドですが、アクセスアームの先端でその機能を果たします。
アクセスアームは、「ここに動いてください。」という指示を受けると目的とする位置へと磁気ヘッドを動かします。この時、プラッタは、高速回転していますのでいずれ目的とする位置が磁気ヘッドの真下にやってきます。真下に来た瞬間、磁気ヘッドは、磁化することで情報の書き込みを開始します。
まず、HDDを利用するためには、フォーマットと呼ばれる作業を開始する必要があります。フォーマットとは、HDDの初期化作業のことで、この作業を開始することでプラッタ上にデータを記録するための領域が作られることになります。
フォーマットすることで作成された扇の形をした最少範囲のことをセクタと言います。セクタは、扇の形をしているため、連結すると最終的に1周の領域を形成できます。
セクタを大量に集めた1周の領域は、トラックと呼びます。あるデータを書き込む際、1つのセクタに情報が収まりきらなければ、複数のセクタを利用することで、情報を書き込みます。
同心円状の形をしたトラックをまとめて、縦に並べたものをシリンダと呼びます。簡単にまとめると、下記のようになります。
セクタ(扇状の最少範囲)→トラック(セクタの1周分)→シリンダ(トラックを縦に並べたもの)
上記のセクタやトラックなどの違いが明確に分かると、ハードディスクの仕様表から記憶容量を算出することができます。例えば、下記のハードディスクがあった時、その許容量は、いくつになるのか計算してみたいと思います。
シリンダ数 | 1,500 |
1 シリンダあたりのトラック数 | 20 |
1トラックあたりのセクタ数 | 40 |
1セクタあたりのバイト数 | 512 |
1セクタに必要なバイト数は52バイトなので、これが40個集まれば1トラックを形成できます。そのため、1トラックあたりの容量を下記の計算式によって算出していきます。
512バイト×40個=20,480バイト(1トラックの容量)
このトラックが20個集まることでシリンダを形成できますので、その容量の計算方法は、下記の通りです。
20,480バイト×20個=409,600バイト(1シリンダの容量)
上記の表から分かるように、ハードディスクには、1,500個のシリンダがありますので、総容量は下記の通りです。
409,600バイト×1,500個=614,400,000バイト≒614MB(総容量)
ハードディスクの用語や仕組みを理解すれば、許容量の計算もできるようになりますので、計算する機会があれば、ぜひ思い出してください。
HDDで利用される最少の単位はセクタですが、基本ソフトウェアとなるOSがファイルを読み書きする時は、複数のセクタを1ブロックとみなすため「クラスタ」という単位を用いられます。
つまり、HDDの1つのセクタに書き込めるバイト数が512バイトなら、すべてのセクタを512バイト単位で管理することになるのですが、OSとしては、そのような小さい単位で管理すると大変なので、クラスタという大きな単位を利用するということです。例えば、8セクタを1つのクラスタとして考えた場合、512バイト×8セクタ=4096バイト単位で読み書きを実行します。
HDDが「データへアクセスする」する目的は、データの書き込みやデータの読み込みに限られます。HDDは、下記の方法によって情報の読み書きを行っています。
アクセスアームを動作させることで、目的のトラックに磁気ヘッドを誘導します。
ディスクの回転にともなって目的のデータが磁気ヘッドの位置まで回って来るのを待ちます。
セクタに書かれたデータの読み込みを開始します。つまり、シーク時間とサーチ時間、データの転送時間を集計すれば、データへのアクセス時間を把握できます。
今回は、HDDの基本構造や各パーツの仕組み、動作方法についてご紹介しました。
補助記憶装置としての基本的な仕組みを理解していれば、HDDだけでなくフラッシュストレージについても容易に覚えられるでしょう。フラッシュストレージは、HDDとは、利用されるパーツが大きく異なりますが、同じ目的のもとに利用される装置です。
このブログは2023年8月まで公開していましたストレージチャンネルからの転載となります。
2019年4月よりNetAppに入社。IT業界でのマーケティング業務にて長年に渡り培ってきた経験を活かし、ABM、イベント企画・運営、コンテンツマーケティング、広告など幅広くフィールドマーケティング業務に従事しています。