RAIDレベルを理解しようRAIDの基礎知識(3/3 ページ)

» 2001年02月27日 00時00分 公開
前のページへ 1|2|3       

 ここでは、複数のRAIDレベルを組み合わせる技術と、あまり利用されることのないRAIDレベルを紹介しよう。またRAIDに含まれる技術ではないが、RAIDにとって重要な機能も併せて紹介する。

複数のRAIDレベルの組み合わせ

 RAID 0/1/5はそれぞれ異なるメリット/デメリットを持っており、決して万能とはいえない。そこで考案されたのが、複数のRAIDレベルを組み合わせる技術である。発想としては、あるRAIDレベルが不得意とする機能は別のRAIDレベルでカバーすることで、総合的にデメリットの少ないディスク・サブシステムを実現する、というものだ。単一のRAIDレベルに比べ、必要最小限のディスク台数が多くなりコストがかかりやすいものの、複数のRAIDレベルの組み合わせは、耐障害性の向上と高速化、大容量化を同時に実現する有効な手段としてよく利用されている。実際、ハードウェアRAIDコントローラには、前述のRAID 0/1/5という単体のRAIDレベルだけではなく、これらを組み合わせたRAIDレベルをサポートしている製品が多い。

 厄介なのは、こうしたRAIDレベルを組み合わせたRAIDには標準が存在しないことである。その呼称から仕組みまで、ベンダによって異なっているのが現状だ。呼称は同じにもかかわらず、動作原理は異なるという例すらあるので注意したい。以下では、比較的多くのベンダが採用している組み合わせRAID技術を紹介しよう。

■RAID 0とRAID 1の組み合わせ

 RAID 0では耐障害性がないこと、またRAID 1では複数のディスクをまとめて大容量の単一ディスクを構築できないことが、それぞれのデメリットである。しかし、この2つのRAIDレベルを組み合わせれば、両者のデメリットを解消し、逆に両者のメリットを享受できる。この組み合わせRAID技術は、RAID 10あるいはRAID 0+1、RAID 1+0などと呼ばれる。

RAID 0とRAID 1を組み合わせたRAIDの動作原理
RAID 0では複数の「ディスク」にまたがってデータを配分するが、この場合は複数の「RAID 1アレイ」を単位として、RAID 0のアレイを構成する。各「RAID 1アレイ」では、2台のディスクをミラーリングして耐障害性を確保している。これによりRAID 0のデメリットである耐障害性のなさが解消されると同時に、RAID 1における性能の問題もRAID 0による高速化である程度相殺される。

 この組み合わせRAIDでは、RAID 1により耐障害性を、またRAID 0により高速化と大容量化を実現する。最低限のディスク台数は4台と多めだ。

 RAID製品によっては、上図において「RAID 0」と「RAID 1」を入れ替えたようなディスク・アレイの構成を採るものもある。つまり、RAID 0でストライピングされたディスク・アレイを、RAID 1でミラーリングするというものだ。しかしこのアレイ構成では、1台ディスクが故障すると、次の2台目の故障でデータが失われる可能性が非常に高いという欠点がある。上図のアレイ構成なら、1つのRAID 1アレイを構成するディスク2台が両方とも故障するまで、データは保持される。そのため、実際のRAID製品では、上図のアレイ構成を採用していることが多い。

 筆者が調べた限りでは、この組み合わせRAID技術の呼称は、上図の方式を「RAID 1+0」あるいは「RAID 10」、またRAID 0のディスク・アレイをRAID 1でミラーリングする方式を「RAID 0+1」「RAID 01」と呼ぶことが多い。しかし、これとはまったく逆に「RAID 1+0」と「RAID 0+1」を扱っている例も見かけた。この組み合わせをサポートするRAIDコントローラは多いものの、このように機能が異なる場合があるので、十分な注意が必要だ。

■RAID 50

 RAID 0とRAID 5を組み合わせたRAID技術のことを、RAID 50あるいはRAID 0+5、RAID 5+0などと呼ぶ。これも前出のRAID 10(RAID 1+0、RAID 0+1)同様、標準として定められているわけではなく、ベンダによって呼称や実装形態が異なる。基本的には、前出の図「RAID 0とRAID 1を組み合わせたRAIDの動作原理」において、RAID 1で構成されていたディスク・アレイをRAID 5で構成したものだ。単なるRAID 5に比べ、RAID 0によるストライピングによりデータ転送速度が向上するのがメリットである。最低限のディスク台数は6台と多い。

  RAID 0 RAID 1 RAID 5 RAID 10 RAID 50
耐障害性 なし
性能 シーケンシャル読み出し
シーケンシャル書き込み
ランダム読み出し
ランダム書き込み
リビルド時*1
必要なディスク台数 2台以上 2台*2 3台以上 4台以上 6台以上
ディスク容量の利用効率(n:ディスク台数) 100% 50% 100×(n-1)/n% 50% 100×(n-1)/n%
実装にかかるコスト
各RAIDレベルの比較
耐障害性や性能については「優/良/並」、コストについては「小/中/大」の3段階で相対的にランクを付けてみた。理論値をもとに各ランクを決めているので、実際のRAID製品とは食い違う場合もあるので注意していただきたい。

*1 故障したディスクを正常なものに交換した後、RAIDのディスク・アレイを元の状態に修復する作業をリビルド(Rebuild)という。リビルドの最中は、各ディスクへの読み書きが頻繁に生じるため、通常時と比べ、PCからアクセスされたときの性能は下がる


*2 3台以上のハードディスクでミラーリングするRAID製品も存在するが、基本的には2台でディスク・アレイを構成する


あまり利用されないRAIDレベル

 RAID 0/1/5以外のRAIDレベルは、動作原理の複雑さやコスト・パフォーマンスの低さといった問題により、現実に利用されることはほとんどない。現在では、理論的な構成としてのみ残っているといえるだろう。以下では、利用されなくなった理由も含めて、廃れてしまったRAIDレベルを紹介しよう。

■RAID 2

 RAID 2では、エラーを修復するための冗長コードを元のデータとともに、複数のディスクにまたがって記録する。特徴は、冗長コードが多ビットのECC(Error Correcting Code:誤り訂正符号)であることと、データを配分するときの単位サイズがブロック(セクタ)単位ではなくbitまたはbyte単位であることだ。

 多ビットのECCによる冗長コードは、元のデータに対してそのサイズが大きくなりがちで、容量面でのオーバーヘッドが大きいというデメリットがある。例えば、代表的なECCの1つであるハミング符号を用いると、元のデータを2台のディスクに分散するには、冗長コードだけのために3台のディスクが必要になってしまう。元のデータより冗長コードの容量を小さくするには、元のデータを格納するディスクを4台以上にしなければならない。

 またECCの計算は、パリティより複雑で時間がかかるため、速度面でもオーバーヘッドは大きい。こうしたデメリットのため、市販のRAID製品にRAID 2はほとんど実装されていない。

■RAID 3

 RAID 3もまた、元のデータに冗長コードを加えて複数のディスクに記録する。冗長コードには、RAID 5と同じパリティを採用する。RAID 5と大きく異なるのは、

  • 各ディスクにデータを配分する際の単位サイズが、ブロック(セクタ)単位ではなくbitまたはbyte単位である
  • パリティが特定のディスクに保存される(全ディスクには分散されない)
  • 高速化のためには、複数のディスクをまったく同時に読み書きするための同期機能が必要

という点だ。特に3番目の条件を満たすには、ほかのディスクと同期して回転させたり、データ転送したりするための仕組みを持った特殊なディスクが必要となるほか、ディスクごとにバスを別々に設けてRAIDコントローラと接続するといった工夫も必要になるなど、コスト面でほかのRAIDレベルより不利である。このため、市販のRAID製品でもRAID 3を実装している製品は、それほど多くはない。

■RAID 4

 RAID 4は、RAID 5と同様に、元のデータからパリティを生成して、ブロック単位で複数のディスクに記録する、という点でよく似ている。異なるのは、パリティを全ディスクに分散するのではなく、特定のディスクだけに格納する点だ。つまり、元のデータとパリティそれぞれを格納するディスクが別々に分かれている*3。この原理のため、RAID 4では、データの書き込みが発生すると、パリティ用ディスクへの書き込みが集中してしまい、それがボトルネックとなって書き込み性能が下がってしまう。このデメリットをパリティの分散書き込みで改善しているのがRAID 5である。つまり、RAID 4は事実上RAID 5で代替されており、RAID製品でもRAID 4をサポートしているものはほとんどない。

*3 決まったパリティ用ディスクを持つという点では、RAID 4とRAID 3は同じである。両者の決定的な違いは、RAID 3がbitまたはbyte単位でデータを各ディスクに配分するのに対し、RAID 4はRAID 5同様、ブロック(セクタ)単位でデータを配分するという点だ。


■RAID 6

 RAID 6は、RAID 5の改良版といえる技術で、1つのデータ・ブロックにつき2つのパリティを生成する。これにより、同時に2台のハードディスクが故障しても、元のデータを修復可能としている。この耐障害性の高さがRAID 6のメリットである。

 しかし、パリティが増えた分、その計算や書き込みのオーバーヘッドも増加するため、特に書き込みの性能は高くない。また、パリティ用に2台分のディスク容量を必要とするため、ディスクの利用効率はRAID 5より下がる。それに、2台のディスク故障に備えるだけなら、RAID 5に後述のホットスペアを組み合わせることでも代替できなくはない(短時間で2台が故障したら、RAID 5+ホットスペアだと復旧できないが)。こうした理由から、RAID 6を実装している製品は少ない。

RAIDの耐障害性を支える技術

 最後に、RAID 1/5などでディスクが故障した際に役立つ機能を紹介しよう。

■ホットスワップ(hot-swap)

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

 一般的に、通電された状態の電気回路では、何の対策もせず、電気信号の配線を突然切り離すと電気回路が故障することがある。そのため、ホットスワップ対応の電気機器は、回路が故障しないよう、特殊な対策が施されている。例えば、大きな電流が流れる電力線が切り離される前に、電気信号の配線を切り離す、といった工夫だ。コンピュータ機器の場合は、取り外す前にその機器へのアクセスを停止するといったソフトウェア処理も必要になる。

 RAIDにより耐障害性を高めているディスク・サブシステムでは、故障したディスクを交換する際、いちいちコンピュータ・システム全体を止めずに済むよう、ホットスワップ対応のドライブ・ベイを導入していることがある。その場合、故障したディスクをドライブ・ベイから取り外し、新品に取り替えるといった作業の間、コンピュータ・システムはサービスを止めることなくユーザーに提供し続けることが可能だ。ホットスワップ非対応の場合は、いったんコンピュータを停止して電源を切り、ディスクを交換してから再起動しなければならない。

#hot-spare#

■ホットスペア(hot-spare)

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

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

  関連記事(PC INSIDER内)
動向解説 最新IDE RAID事情
前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。