RAIDの基礎知識

RAID 0
RAID0

RAID 0では、2台以上のディスクを組合せ、ディスクに対するより書きの処理を複数のディスクに対して同時並行的に実行することで、アクセス速度を高速化する。[ストライピング]とも呼ばれる。

右図のデータブロック 1/2/3や4/5/6, 7/8/9は、もともと連続しているデータである。RAID 0では、右図のようにディスクの台数に合わせてデータを分割して、各ディスクに格納する。例えばデータブロック 1/2/3の組を読み出す場合、各ディスクに並行してアクセスする事で、ほぼ同時に1/2/3それぞれのデータブロックを読み出すことが可能になる。

例えば右図のようにディスクが3台あるなら、データを3つに分けてそれぞれのディスクに対して同時に書き込むことにより、理論的には1台の場合と比べて3分の1の時間で書込みを完了することができる。従って、一般的にRAID 0では、ディスクの台数を増やすほど性能(データ転送速度)も高まる傾向にある。

またRAID 0は、複数のディスクをあてかも1台のディスクであるかのように扱うことで大容量の単一ストレージを実現する。ディスクの容量の利用効率は100%、つまり全ディスクの容量を無駄無く利用できるわけだ。例えば、1GBのハードディスク3台のRAID 0を構成すると、実行容量は1GB x 3 = 3GBとなる。RAID 0のデメリットは、冗長性をまったく備えていないことである。むしろディスクの台数が多いことにより、ディスク1台の場合と比べ、耐障害性は悪化してしまう。もしRAID 0で運用中の各ディスクのうち、1台でも壊れてしまうと、全体へのアクセスが不能になってしまうからだ。

RAID 1
RAID1

RAID 1はRAIDレベルの中で、最も単純な手法でディスクの耐障害性を高めている。その手法とは、同一のデータを複数のディスクに書き込み、一方のディクスが故障しても、他方で処理を続行できるようにする。つまりRAID 1では、同じデータを格納したディスクのコピーを用意することで、故障に備えているわけだ。通常は2台のディスクを使って実現する。

RAID 1は[ミラーリング]とも呼ばれる。RAID 1では、データが書き込まれる際、アレイ内の各ディスクにまったく同一のデータが書き込まれる。1台のディスクが故障した場合でも、残りのディスクが稼動し続けることで、データは失われずに済む。RAID 1では、同一のデータを2台以上のディスクに書き込むため、ディスク容量の利用効率は50%以下になってしまうというデメリットがある(2台のディスクの容量が異なると、利用効率は50%よりさらに下がる)。例えば1Gbytesのデータを記録するには、1Gbytes×2=2Gbytes分の容量のディスクが必要になる。性能については、2台のディスクに同一のデータを書き込まなければならないという原理のため、ディスク1台の場合と比べ、書き込み時のオーバーヘッドが大きい。しかし、ハードウェアによって各ディスクへ並行して書き込みを行うことにより、このオーバーヘッドを最小限に抑えることは可能だ。読み出し性能はディスク1台の場合とほぼ同等であるが、RAID 0と同じ原理で、複数のディスクから同時並行読み出しを実行することによって、性能を高めることもできる。ただしRAID 0ほど性能は向上しない。

RAID 5
RAID5

RAID 5は、耐障害性の向上と高速化、大容量化のすべてを実現できるRAID技術である。分散データ・ガーディングとも呼ばれる。RAID 5では、ディスクの故障時に記録データを修復するために「パリティ」と呼ばれる冗長コードを、全ディスクに分散して保存するのが特徴だ。データを分割して各ディスクに格納するという原理はRAID 0(ストライピング)と同じだ。異なるのは、データ・ブロックの組(右図でいえば1/2や3/4、5/6)ごとにパリティが生成される点である。たとえ1台のディスクが壊れても、残りのディスクに格納されたデータとパリティから、失われたデータを復活させることができる。RAID 5では、データをディスクに記録する際、RAID 0(ストライピング)と同じ原理で、複数のディスクにデータを分散して書き込むと同時に、パリティも計算・生成してディスクに書き込む。パリティ用ディスクは特に決まっておらず、全ディスクに分散して書き込まれる。これにより、パリティ専用ディスクのみに負荷が集中し、性能が低下することを防いでいる。また、どれか1台のディスクが故障しても、それ以外のディスクのデータとパリティ情報から、元の完全なデータを生成して回復できる。ただし、回復可能なのは1台のディスクが故障したときまでであり、同時に2台以上が壊れると回復は不可能になる。パリティの保存に必要なのは、全ディスク台数に関係なくディスク1台分の容量である。従ってディスク台数が多いほど容量の利用効率も向上する。RAID 1(ミラーリング)と比較した場合、この利用効率の高さがRAID 5のメリットの1つとされる。

RAID 5の性能については、ディスクからの読み出し時には、複数のディスクから同時並行読み出しが可能なので高速化がなされる。しかしデータの書き込み時には、パリティを算出・生成する必要があるほか、パリティ生成のため1組のデータ・ブロックをいったんディスクから読み出さなければならず、オーバーヘッドが大きい。そのため、RAID 5の書き込み性能は決して高くはない。

RAID 6
RAID6

RAID 6は、RAID 5にもう1つ独立したパリティーを追加し、信頼性を向上させたもの。同時に2台のディスク装置が故障してもデータ修復が可能なため、RAID0+1、RAID5よりも優れた耐故障能力を有しています。

RAID 0 + 1
RAID0+1(10)

RAID 0では耐障害性がないこと、またRAID 1では複数のディスクをまとめて大容量の単一ディスクを構築できないことが、それぞれのデメリットである。しかし、この2つのRAIDレベルを組み合わせれば、両者のデメリットを解消し、逆に両者のメリットを享受できる。この組み合わせRAID技術は、RAID 10あるいはRAID 0+1、RAID 1+0などと呼ばれる。RAID 0では複数の「ディスク」にまたがってデータを配分するが、この場合は複数の「RAID 1アレイ」を単位として、RAID 0のアレイを構成する。各「RAID 1アレイ」では、2台のディスクをミラーリングして耐障害性を確保している。これによりRAID 0のデメリットである耐障害性のなさが解消されると同時に、RAID 1における性能の問題もRAID 0による高速化である程度相殺される。

注:RAID 0+1はその呼称から仕組みまで、メーカーによって異なる場合があります。上記の例は比較的多くのメーカーが採用しているRIAD技術です。

ホットスワップ

ホットスワップとは、着脱可能なHDD/電源/ファン等を、システムが通電された状態のまま取り外して、代替機器と交換・装着する操作のことをいいます。システム全体を止めることなく、一部の部品だけをホットスワップで交換することにより、ユーザーに対するサービスを中断させずにシステムの修理や機能向上を図ることができる。

一般的に、通電された状態の電気回路では、何の対策もせず、電気信号の配線を突然切り離すと電気回路が故障することがある。そのため、ホットスワップ対応のシステムは、回路が故障しないよう、特殊な対策が施されている。例えば、大きな電流が流れる電力線が切り離される前に、電気信号の配線を切り離す、といった工夫だ。コンピュータ機器の場合は、取り外す前にその機器へのアクセスを停止するといったソフトウェア処理も必要になる。RAIDにより耐障害性を高めているサブシステムでは、故障したディスクを交換する際、いちいちシステム全体を止めずに済むよう、ホットスワップ対応のドライブ・ベイを導入していることがある。その場合、故障したディスクをドライブ・ベイから取り外し、新品に取り替えるといった作業の間、システムはサービスを止めることなくユーザーに提供し続けることが可能だ。ホットスワップ非対応の場合は、いったんコンピュータを停止して電源を切り、ディスクを交換してから再起動しなければならない。

ホットスペア

ホットスペアとは、HDDの故障に備えて、あらかじめ予備のHDDを通電状態で待機させておくことをいいます。ホット・スタンバイあるいはオンライン・スタンバイとも呼ばれます。ホットスペアを用意しておけば、あるHDDが故障したとき、その代わりに予備のHDDを稼働させ、故障発生前の状態に修復する、という作業を自動化することができる。

RAIDにより耐障害性を高めているRAIDシステムでは、ホットスペアがよく実装される。ホットスペア用として設定されたディスクは、通電された待機状態にある。もし、1台のハードディスクが故障した場合、RAIDシステムを管理しているRAIDコントローラは、故障したディスクを論理的に切り離し、ホットスペア用ディスクを起動する。そして、残っているデータとパリティ情報などからホットスペアのディスクに必要なデータを書き込み、元の正常な状態に復旧させる。

以上の処理がすべて自動的に実行されるのが、ホットスペアのメリットである。ホットスペア用ディスクを用意していない場合、ディスクの故障時には、手動で正常なディスクに交換するまで、そのRAIDシステムは耐障害性が低下した状態で運用せざるを得なくなる。