![見出し画像](https://assets.st-note.com/production/uploads/images/38552848/rectangle_large_type_2_7926ac113cab35e20b41fe3b5331d780.png?width=1200)
Re:補助記憶装置とは?-ハードディスク(後編)
こんにちは!
今回もハードディスク(以下HDD)を解説していきます。
今回は後編です。
1.データのアクセス時間
以前の記事ではHDDはデータ格納領域(セクタ)を持つプラッタというディスクを磁気の力で読み取り、書き込みをすると書きました。
この一連の動作を「データにアクセスする」といいますが、本稿ではそれについてより詳しく説明します。
まずHDDのデータにアクセスするには3つのステップを踏みます。
まず一つは、磁気ヘッドのついたアクセスアームを目的のトラック位置まで動かします。これをシークといいます。
プラッタ上には何個ものトラックが構成されていますが、その中でも目的のセクタ・クラスタを含むトラック上にアームが動きます。たとえば目的のセクタが中心から2つ目のトラック上にある場合、そのトラックの位置まで動かします。
次にプラッタを回転させ、目的のデータをアームのある位置まで運びます。これをサーチと呼びます。ディスクは一方向にしか回せませんので、目的データがすでにアーム直下にあれば回す必要がありませんが、もしアームのある位置の一個手前にあったらプラッタを一周させなければなりません。
ちなみにこのシークとサーチそれぞれにかかる時間を合わせたものを待ち時間と呼びます。
最後に、実際に磁気ヘッドがプラッタ上のデータを読み書きします。これをデータ転送と呼びます。そしてこれにかかる時間と待ち時間(シーク+サーチ)を合計したものをアクセス時間と呼びます。
つまり、シーク、サーチ、データ転送それぞれにかかる時間を足せばいいのです。簡単かと思いました? そう思った方は是非前回の記事をご覧ください。
それでは、前回の問題をこちらにも持ってきましょう。
この問題を解いていきますが、まず前提としてシーク時間とサーチ時間は平均値を用います。それを踏まえて計算に必要な値をそれぞれ求めていきますが、既にシーク時間は20ミリ秒とでていますね。では、サーチ時間を出しましょう。
プラッタを回転させるので、サーチ時間に必要な値は回転速度。計算方法は1分(60秒)を回転数で割るのです。つまり、
しかし、この値が答えではありません。この値はプラッタが一周するときにかかる時間です。上のサーチの説明の通り、一周させる場合と全く回転しない場合があります。ですから、全く回らない場合、即ち0ミリ秒も考慮します。すると、
よってサーチ平均時間は10ミリ秒です!
次にデータ転送時間です。実はHDDが1トラック分のデータを転送するのにかかる時間は、プラッタが一周するのにかかる時間と一緒です。ですから、1トラックの総記憶容量を、プラッタを一周させるのにかかる時間で割ればいいのです。つまり、
です。
問題では「5,000バイトのデータ」ですから、
よってデータ転送時間も10ミリ秒です。
これでシーク・サーチ・データ転送の所要時間がそろいました。これらを足し合わせ、
よって問いのHDDのアクセス時間は40ミリ秒です!!
「なんだこの問題は?」とお思いの方もいるかもしれませんが、これが基礎問です。本番はさらにひねった問題がでる可能性があるので、是非解き方を覚えていきましょう。
2.RAID
RAIDは前回の解説とほぼ被りますが、いわば複数のHDDを一台と見立てて使用する技術です。ようは何台も用意すればスピードも効率もよくなるということですね。このRAIDにもいくつか種類があり、今回は前回省いたところも含めて紹介します。
RAID0
一つのデータを分割して2台以上のHDDに分割保存する技術です。高速ですが、バックアップがないため片方が壊れたらデータの復元ができません。
RAID1
一つのデータのコピーを作りRAIDを構成するすべてのHDDに全く同じデータを保存する、いわば多重バックアップをとります。性能はRAID0と正反対でHDDが一つ壊れてもデータは消滅しませんが、同じデータを何重保存するので保存領域をかなり食います。
RAID2
データに対してエラー修正用コードと呼ばれるデータを作成し、分散して保存します。RAID2には最低5つのHDDが必要で、HDDのうち2つには元のデータを、残り3つのHDDにはエラー修正コードを格納します。
データに不具合がでても修正コードが直してくれるのでデータは絶対安全ですが、修正コードをムダに作るうえにHDD5つ分のコストが高いため、あまり使用されません。
RAID3
RAID2ででてきた修正コードを、パリティ(修正コードよりちょっと機能を簡略化した誤り訂正データ)と一緒に保存します。
必要HDD数は5→3に減り、HDD1と2に本データを、HDD3にパリティをまとめて保存します。
RAID2と比べて安価で速いですが、エラーチェックが正確ではない場合もあります。
RAID4
RAID3の改善版で、RAID3より元データの割り方を大きくしたものです。
実はRAID2や3では元データをbitやbyteごとの小さいデータに細切れにして保存していましたが、RAID4ではブロックというより大きいサイズに分割してHDDに分散保存します。
byteデータが一本の鉛筆だとすればブロックデータは1ダースの鉛筆群と考えると、ダースの方が管理しやすいですよね。しかし、やはり中途半端なのであまり使用されません。
RAID5
RAID5では、今まで元データを2台分に分割し、パリティを1台のHDDに一括保存していたのを、3台すべてに平等に保存されるようにし、負荷を均等にしたものです。これによって高速、安全、かつ容量も抑えられる形式になりました。まさにRAIDの進化の集大成ですね。
以上、RAIDの種類を人類の進化の歴史のように見ていきました。実際にHDDをRAIDとして使うところも多いので、ぜひ覚えてください!
3.まとめ
・HDDのデータアクセス時間はシーク時間+サーチ時間+データ転送時間の和
・RAIDは複数HDDを組み合わせて一つのHDDと見立てて使用する技術
・RAIDの現在の主流はRAID5
以上、本日はここまでです。
それではまた!
この記事が気に入ったらサポートをしてみませんか?