こんばんは。あんみつです。
今日は基本情報、応用情報で地味にいつも1問出てくる「RAID」(RAID 0~RAID 5)について解説します。
目次
RAIDとは?
RAIDとは、複数のハードディスク(HDD)にデータを分散して記録する仕組みのことです。
データの分散のさせ方の違いによってレベルが定義されており、それがRAID 0や1など数字で表されています。
ちなみにRAIDはRedundant Arrays of Independent Disksの略称です。
RAIDの目的
RAIDには3つ目的があります。
・冗長性の確保 ★主目的
簡単に言うと「壊れにくくする」ということです。
例えば、複数のHDDのうち1台くらい故障してもシステムが停止しないようにする、ということ。
・容量の拡張
HDDを複数繋げることで1つのドライブ上で複数台のHDD容量のデータを扱えるようになります。
(実際はRAIDレベルに応じて、故障検知用のデータが付与されるので、繋げたHDDのサイズ分丸々拡張はしません)
・処理速度の向上
複数のHDDに分散した読み書きを行うことで高速化を図ることができます。
RAIDレベル
ここからがいわゆる「ここテスト出るぞー」な部分です(笑)
各RAIDの特徴を説明していきます。
ちなみに実際に現在も使用されている構成はRAID 1とRAID 5くらいのようです。
RAID 0 -ストライピングー
2台以上のHDDを組み合わせて一つのストレージとして扱う仕組みです。
組み合わされたHDDに対してデータを分散して書き込みます。
これをストライピングといいます。
ただ、この仕組みは前述の目的のうち2つ目、3つ目は果たせますが、
誤り検出ができないため1つでもHDDが壊れるとシステム全体が動作不能となり、
主目的である冗長性は確保できていないことからRAIDには含まれないという説もあり、
そういった意味でも「0」とされているようです。
RAID 1 -ミラーリングー
2台のHDDに同じデータを書き込む仕組みです。
これをミラーリングといいます。
片方のHDDが壊れてももう片方でデータの読み書きが継続できます。
デメリットはHDDが増えても使用可能な容量が増えないことと、
2台のHDDに同じデータを書き込むので書き込み処理にかかる時間が増えることです。
RAID 0に対して、主目的である冗長性のみを達成するための仕組みといえます。
RAID 2 -ストライピング+ハミング符号ー
データ本体とエラー修正用のハミング符号(ECC: Error Correction Code )をそれぞれ複数のHDDに分割して記録する仕組みです。
エラー修正の仕組みの都合上、データ本体用に2台、修正コード用に3台と最小構成で5台のHDDが必要です。
耐障害性が高く、同時に2台のHDDまで修復が可能ですが、HDDの利用効率が低い点がデメリットです。
RAID 3 -ストライピング+パリティ(ビット単位) ー
データを複数のHDDに分割して記録し、エラー修正用の「パリティ」という冗長コードを専用のHDDに記録する仕組みです。
RAID2のECCをパリティに置き換えることで演算にかかる処理負荷が軽減されます。
修正コード用HDDが1台で済むので最小構成は3台になります。
1台のHDD故障は修復が可能です。
構成HDD台数 – 1台分がデータ用となるためHDD利用効率も高いですが、
データ分割がビット単位であることや修正コード用書き込み処理が速度や負荷の面でボトルネックになるという弱点を抱えています。
RAID 4 -ストライピング+パリティ( ブロック単位) ー
RAID 3のデータ分割がビット単位からブロック単位に変わった版です。
データの分割がブロック単位で行われるため、RAID 3と比べてデータの読み書き効率が上がります。
RAID 5 -ストライピング +パリティ(ブロック単位) を分散書き込みー
RAID 3や4でボトルネックになっていた修正コード用HDDへの書き込みの集中を回避するため、
パリティブロックもHDDに分散して書き込む仕組みです。
RAID 6(おまけ)
基本はRAID 5と同様の構成ですが、
2種類の異なる計算方法で求めたパリティを分散し書き込むことで、同時に2台までの障害に耐えられるようにしたものです。
過去問(RAID)
実際のH29秋の基本情報のRAIDに関する問題を解いてみましょう。
答えは、、、
「ウ」ですね!
おわりに
いかがでしたでしょうか。
当ブログのカテゴリ「情報処理」で絞っていただくと基本情報に関する記事がまとめて読めますので、
よろしければ他の記事もご覧ください。
それでは!