hard-disk

補助記憶装置の主役ハードディスクの基礎知識3選

Appleの「iマック」がフラッシュメモリーとハードディスクを自動使い分けして高速化できることになった。一方、日本電産がHDDモーターなどの販売減を見込んで業績予想を下方修正するなど、ハードディスク関連のニュースは絶えない。ここでは、補助記憶装置の主役ともいえるハードディスクの基礎知識についてまとめる。

情報処理推進機構のシラバスにおいては「41.メモリ」に対応している。

 

1 ハードディスクの構造と記録方法

ハードディスク(磁気ディスク装置)は、高速回転しているディスクに磁気ヘッドを使って情報を読み書きする。その構造は以下の通り。

  • ディスク(プラッタ):金属やガラスでできている固い円盤。表面に磁性体が塗布(とふ)されていて、これを磁化させることで情報を記録する
  • 磁気ヘッド:アクセスアームの先端についている微小な電磁コイル。ディスク表面の磁性体を磁化させたり、読み取ったりする
  • アクセスアーム:先端に磁気ヘッドがついているアーム。ディスク上の目的地まで磁気ヘッドを運ぶ役割を持つ

 

セクタとトラック

ハードディスクを最初に使うときは、フォーマット(初期化)という作業を行う必要がある。この作業を行うことで、プラッタの上にデータを記録するための領域が作成される。作成された領域の扇状に分かれた最小範囲をセクタ、そのセクタを複数集めた1周分の領域をトラックと呼ぶ。また、同心円上のトラックを複数まとめるとシリンダという単位になる。

 

ファイルはクラスタ単位で記録する

ハードディスクが扱う最小単位はセクタであるが、基本ソフトウェアであるOSがファイルを読み書きするときには、複数のセクタを1ブロックとみなしたクラスタという単位を用いるのが一般的(例えば8セクタを1つのクラスタとみなすなど)。

 

データのアクセスにかかる時間

データへのアクセスとは、実際にデータを書き込んだり、書き込み済みのデータを読み込んだりする作業のこと。ハードディスクはこれらの作業を、以下の3つの段階で行う。

  • シーク(位置決め):アクセスアームを動かして、磁気ヘッドを目的のデータが書かれているトラック位置まで運ぶ
  • サーチ(回転待ち):ディスクの回転に伴い、目的のデータが磁気ヘッドの位置まで回ってくるのを待つ
  • データ転送:セクタに書かれたデータを読み込む

したがって、「アクセス時間=シーク時間+サーチ時間+データ転送時間」と表せる。

 

2 フラグメンテーション

ハードディスクに書き込みや消去を繰り返していくと、連続した空き領域が減り、ファイルが断片化(フラグメンテーション)していく。

 

デフラグで再整理

デフラグ(デフラグメンテーション)とは、フラクメンテーションを解消するために行う作業である。断片化したファイルのデータを連続した領域に並べ直すのである。

 

3 RAIDはハードディスクの合体技

RAIDは複数のハードディスクを組み合わせること(ディスクアレイ)で、ハードディスクの速度や信頼性を向上させる。

 

RAIDの代表的な種類とその特徴

  • RAID 0(ストライピング):1つのデータを2台以上のディスクに分散させて書き込む。高速化がはかれるが、信頼性は低い
  • RAID 1(ミラーリング):2台以上のディスクに対して常に同じデータを書き込む。使えるディスクは半分以下になるが、信頼性は高い
  • RAID 5:3台以上のディスクを使って、データと同時にパリティと呼ばれる誤り訂正符号も分散させて書き込む。パリティ情報を使ってデータが復元できる

 

最後に

ハードディスクの基礎知識として、ハードディスクの構造と記録方法、フラグメンテーション、RAIDについてまとめた。

アクセス時間を早めるには、シーク時間かサーチ時間かデータ転送時間といった3つの要素を早くすることで可能になる。また、デフラグメンテーションという保存領域を整理する作業を行うことで、アクセス時間を早めていることがわかった。しかし、Linux創始者のリーナス・トーヴァルズは「ハードディスクは悪の権化」と語るなど、フラッシュメモリー(SSD)といった新しい技術を採用することで、より早くデータ読み込みができるようになっている。技術の進歩は、まさに日進月歩である。

次回はOSとアプリケーションについてまとめる。

キタミ式イラストIT塾 「ITパスポート」 平成24年度 CBT対応


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>