|
Article on other languages:
|
RAID(Redundant Arrays of Inexpensive (もしくはIndependent) Disks、レイド)とは、複数台のハードディスクを組み合わせることで仮想的な1台のハードディスクとして運用する技術。ディスクアレイの代表的な実装形態で、主に信頼性の向上をねらって用いられるものである。 本記事において、装置という語句を用いるが、これはRAIDが取り付けられる機器(サーバ・ワークステーション・パソコンなど)の総称を意味する。
概要1988年にカリフォルニア大学バークリー校のデイビッド・パターソン, Garth A. Gibson, Randy H. Katzによる論文「A Case for Redundant Arrays of Inexpensive Disks (RAID)」に於いて提唱された。これはSIGMOD Conference 1988: pp 109-116 で発表された。 この論文は、安価で低容量、価格相応の信頼性のハードディスク(Inexpensive Disk)を用い、大容量で信頼性の高いストレージ(補助記憶装置)をいかに構築すべきかを提案したものである。論文にはハードディスクの構成によって、raid 1からraid 5までの5種類を定義している。また、論文では提案されていないが一般にストライピングをraid 0と表記する。 はじめに定義された6種類のうち、RAID 2はほとんど利用されず、RAID 3、RAID 4もRAID全体の中では少数派である。今日ではraid 0、raid 1、raid 5、およびこれら3方式の組み合わせが用いられている。後にraid 5を拡張したRAID 6が定義され、raid 5より耐障害性が必要な場面で利用されている。 導入を検討するユーザにとっては、信頼性 ・ 速度 ・ 予算(ハードディスクの利用効率も含む)の内どれを重視するかを考え、実情にあわせた導入方法を選択することができる。3つを見事に満たすのは難しいが、2つを満たす現実的な方法は充分にある。 RAIDの構成によっては、一部のハードディスクが故障しても仮想ディスクは稼動できることがある。その場合、仮想ディスクを稼働させたまま故障したハードディスクを取り外して代わりのハードディスクに交換することにより装置を停止することなく運用を続けることができる。このように装置が稼働中に接続しなおして、即座に利用できる機能を「ホットスワップ(活線挿抜)」と呼ぶ。ホットスワップ機能を使用するには装置側でハードウェアとして対応していることが前提となるため、サーバ用途など24時間連続稼働が求められる装置ではホットスワップが実質的に標準装備となっている。 RAIDは、大容量データの高速処理や耐障害性の向上を必須要件とする大規模な業務用サーバやワークステーション、特定目的に製造されたコンピュータ機器等に用いられていたが、近年、小規模サーバやパソコンにも普及しつつある。 RAIDが一般ユーザに普及してきた要因
RAIDはバックアップの代替となるか?答えは『ならない』、RAIDは「データを保護する技術」ではなく、「データ(およびシステム)をHDDの障害から保護する技術」という正しい認識を持つべきである RAIDは複数のHDDを用いて、仮想ディスクの故障する可能性を低減させる技術である。そのため、ファイルを誤消去など人為的なもの、コンピュータウィルスによるファイルの破壊、ファイルシステムの不整合など、ソフトウェア的な障害には対応できない。またHDDが同時期に複数故障する場合等、単体のHDDに比べれば非常に低いが故障の可能性を持つ。 一方でバックアップは、データを静的な状態で、一定期間、複数世代、保存するものであり、RAIDとは役割が異なる。データはRAIDとバックアップの両者を組みあわせて運用することにより、サービスの継続性を保証しつつ、高い安全性を持って保全することができる。 RAIDの方式RAIDを実装する方法としては、ハードウェアで実現する方法(ハードウェア方式)とソフトウェアで実現する方法(ソフトウェア方式)がある。 ハードウェア方式ハードウェア方式は、RAIDコントローラカードを使用するものとディスクアレイユニットを用いる2方式が存在する。 RAIDコントローラカードこの方式は、RAIDコントローラと呼ばれるカードを装置に取り付け、パリティ演算やディスクの管理などを任せるものである。一部のマザーボードにはRAIDコントローラをあらかじめ実装している製品がある。 ホストが僅かな指示を送るだけでRAIDコントローラが具体的な処理を全て行うため、CPUの負荷が低減される。しかし、コントローラ毎に制御方法が異なるため、OS側で各RAIDコントローラカードへの対応が必要であり、専用のドライバが必要となる。 近年、チップセットにRAID0/1/0+1コントローラ機能を集積したサーバ向けチップセットが広く普及している。このハードウエアはパリティ演算などは行わない。基本的な構造はMUX(マルチプレクサ)/DEMUX(デマルチプレクサ)で構成されており、CPUが発行したディスクI/O操作を複数のハードディスクへのディスクI/Oに分散・またディスクからの読み出しの多重化を行う。信頼性はもとより、ディスクI/O速度を高速化する総合アクセラレータ的要素が強い。 ディスクアレイユニットコンピュータやOS側からは単なるSCSIやファイバーチャネルのドライブとして見えるため、特別なドライバが必要なく、CPUへの負荷が全くない。更に、ホットスワップやホットスペアはもとよりオートリカバリ機能を備えているため、運用コストをも低減することが出来る。ディスクアレイユニット内のハードディスクが故障した場合は、シリアルポートやイーサネットを通じて状態を監視ソフトに通知する機能が備わっている。また、ディスクアレイユニットの中にはデファレンシャルSCSIやファイバーチャネルを使い、2台のサーバで1台のディスクアレイユニットを共有出来るものもある。複数台のディスクアレイユニットを組み合わせて専用の制御用サーバがセットになったものもある。
ソフトウェア方式ソフトウェア方式は、OS自身が普通のドライブ コントローラ (IDE, SCSI, FC など) を通して複数台のディスクを管理する。この方式はハードウェア方式と比較し、CPUへの負荷が高いが、特別なハードウェアを購入する必要がないという利点がある。 ソフトウェアRAIDの実現には、OS・ファイルシステム・単体ソフトウェア・チップセット・増設RAIDボードなど複数の方式が存在する。 Windowsは、NTFSファイルシステムにおいてRAID機能をサポートしている。Linuxは、カーネルにてサポートしている。FreeBSDは、gmirrorというソフトウェアにてサポートしている。ファイルシステムのZFSには、RAID5相当の機能(RAID-Z)が存在する。インテルのチップセットでは、マトリックス・ストレージ・マネージャー機能によりRAID機能をサポートしている。Adaptecの低価格RAIDボードでは、HOST RAIDによりソフトウェアRAIDを行っている。 RAIDレベルraid 0からRAID 6まで7種類のうち、実際に利用されるのはraid 0、raid 1、raid 5、RAID 6で、RAIDコントローラやソフトウェアによって使用できるレベルが限定されている場合が多い。 サーバ用途としては、データの保全性を重視するためraid 1またはraid 5が主に利用されている。サーバ台数の限られた環境で、一台のサーバにかかる負担が高い場合はこれらにraid 0を組み込んで高速化を狙うケースもある。(もちろんサーバ自体を増設して、一台あたりの負担を軽減することも検討すべきであり、負荷の度合い・設置場所の都合・予算などを多角的に検討する必要がある。単にraid 0をかぶせて高速化することだけに過度の期待を寄せるべきではない) RAIDの方式によらず、サーバ用途の場合はトラブル発生時に速やかなハードディスク交換を実施できる態勢を採るのが重要であり、ホットスペアやホットスワップ対応の製品を用いるのが望ましい。 また、ある種のアプリケーションは、制御情報はraid 1またはraid 5のファイルシステムに保存し、マルチメディアデータはraid 0に保存するとともにテープや光メディアにバックアップしている。 各RAIDレベルを組み合わせて信頼性と速度を両立させることができる。ただしハードディスクの必要台数が増えるため、特にRAIDコントローラカードを用いて装置内部にハードディスクを取り付けている場合、電源がハードディスク台数分の負担に耐えられるか注意すべきである。 raid 0: 耐故障性の無いディスクアレイ (ストライピング)raid 0は複数台のハードディスクに、データを分散して読み書きし高速化したものである。これをストライピングと呼ぶ。 冗長性がなく耐障害性もないため、RAIDには含まれないとされ、RAID 0と呼ばれる。 raid 0には最低2ドライブが必要である。 1台のドライブが故障しただけでアレイ内の全データが失われてしまうため、故障率は単体ドライブに比べ高い。例えば、ある条件で一定期間使用した場合におけるドライブの故障率が1%だったとした場合、1台ならば故障率は1%だが、2台でraid 0を構成した場合は約2%(1-0.99*0.99=0.0199)となり故障率は約2倍に上昇する。 単独のraid 0では速度は向上するものの信頼性(対故障性)が低下することから、後述のraid 1やraid 5などを速度の向上を図る目的でストライピング化した形で用いられることも多い。
raid 1: 二重化 (ミラーリング)raid 1は複数台のハードディスクに、同時に同じ内容を書き込む。これをミラーリングと呼ぶ。 raid 1は最もシンプルなRAIDであり、耐障害性の高いRAIDである。 また、RAIDの最大の弱点であるコントローラの故障にも対応しやすい。 raid 1には最低2ドライブが必要である。 一台が故障した際に、もう一方も同時に故障する可能性は低く、システムは稼動し続けることが出来る。 例えば、ある条件で一定期間使用した場合におけるドライブの故障率が1%だったとした場合、1台ならば故障率は1%だが、2台でraid 1を構成した場合は約0.01%(0.01*0.01=0.0001)と故障率は1/100となり、耐障害性が上がる。 ただし、複数台に同じデータを持っているので、扱えるデータ容量としてはアレイを構成するハードディスク容量の半分以下となる。raid 1ではハードディスク台数が増えれば増えるほどハードディスクの利用効率が悪くなる。ハードディスクの利用効率を重要視するならばraid 5の方がよい。 本来raid 1の読み出しは、一つのドライブのみにアクセスし、もう片方は、完全なバックアップドライブである。これを双方から読み出すようアルゴリズムを拡張することで、理論上、単体ディスクの2倍の速度で読み出しを行える。 しかし、常に性能を重視した実装が行われている訳ではなく、Windows NTに実装されているソフトウェアraid 1では読み込み、書き込み共に1つで、読み込みは常に一方のディスクからのみ行われる。Windows Server 2003は低負荷時には片方から、高負荷時には負荷分散を行う。
raid 1+0とraid 0+1raid 0とraid 1を組み合わせた構成を特別にraid 1+0(raid 10)/raid 0+1(raid 01)と呼ぶ。高速化、大容量化を目指したraid 0と高信頼性を求めたraid 1を組み合わせることにより、速度、容量、耐障害性の向上を図ることができる。最低4ドライブ必要である。 raid 0とraid 1は相性がよく、組み合わせ次第ではRAID 6よりも耐障害性が高くなる。raid 1を使用しているためコントローラの2重化にも対応できるので、容量が必要でなおかつ強力な耐障害性を求める場合に採用されることが多い。 raid 0とraid 1、どちらを先に行うかにより名前が変わる。一見どちらも同じように見えるが耐障害性の面で異なる。
ドライブ故障への耐性はraid 1+0のほうが優れている。raid 0+1ではraid 1を構成するraid 0領域のドライブそれぞれ1台ずつが故障した時点でデータが破壊されるが、raid 1+0ではraid 0を構成するraid 1セットの構成ドライブ2台がどちらも故障しない限りデータは破壊されない[1]。台数が増えれば増えるほどraid 1+0のほうが耐障害性が上がる[2]。コントローラ故障への耐性はraid 0+1が上回る局面も存在しうるが[3]、基本的にはraid 1+0のほうが優れていると考えてよい。 RAID 2: ビット単位での専用誤り訂正符号ドライブ (ECC)RAID 2の冗長化機構はハミング符号で、ストライプ単位は1ビットである。ハミングコードによるデータ修復が常に必要なほどHDDの信頼性は低くないので、RAID 2は実用性がなく、製品は市販されていない。 RAID 2の実装に必要なドライブ数は訂正可能ビット数により異なるため、一意に記述することは出来ない。最低で5ドライブを必要とする。
RAID 3: ビット/バイト単位での専用パリティドライブRAID 3はRAID 2の誤り訂正符号を排他的論理和によるパリティに変更し、演算コストを低減したものである。 最低3ドライブで構成され、1台を誤り訂正符号に割り当て、残りの複数台にデータを記録する。 RAID 3はraid 5に取って代わられた。RAID 3に対応した機器をこれから手に入れることは不可能と考えてよい。ビデオ編集機器においては、アクセスの殆どがシーケンシャルアクセスであることから、現在でもRAID 3が用いられている場合があるが、パソコンやサーバでRAID 3を用いる理由はもうない。
RAID 4: ブロック単位での専用パリティドライブRAID 4はRAID 3のI/O単位をブロックに拡大し、I/O効率の改善を計ったものである。 性能面でraid 5に劣るRAID 4は廃れつつある。
raid 5: ブロック単位でのパリティ分散記録raid 5は複数のハードディスクに誤り訂正符号データと共に分散させて記録することで、RAID 3、RAID 4のボトルネックを回避している。最低3ドライブが必要である。RAID1やRAID1+0に比べて使用効率に優れている。またRAID0のように複数のディスクに分散しているため読み出し性能が優れている。一方で書き込む場合にはパリティを作成しなおすために、ディスクから読み出しとパリティ演算が必要となる。
raid 5を用いた組み合わせraid 5に速度面、耐障害性などでの不満がある場合、raid 0+1や1+0と同様に、他のRAIDと組み合わせることで弱点をカバーできる。 raid 5+0とraid 0+5raid 5の速度を向上させたい場合、使っている台数と同数のハードディスクを追加してraid 0と組みあわせるか、サーバを増設し負荷を分散させるのが有効である。raid 5+0およびraid 0+5を構成する場合は、最低6ドライブが必要である。 raid 1+0や0+1と同様、raid 5とraid 0のどちらを先に行うかで名前が変わる。raid 5のセットによるストライピングを行うraid 5+0のほうが、次の理由で優れているといえる。
raid 5+1とraid 1+5RAID 6を上回る強力な耐障害性が要求される場合、この組み合わせが選択肢となる。raid 5+0やraid 0+5と同様、最低6ドライブを必要とする。 raid 5+1、raid 1+5とも3ドライブまでの同時故障に耐えられるが、raid 1+5のほうがより強い耐障害性を持つ[5]。 メンテナンス性にも優れる。何らかの理由によりすべてのドライブを交換する必要が生じた場合、ミラーの片方のディスクを一度に交換し、リビルド後に残りを交換して再リビルド、という簡便な手順で、装置を止めることなく交換を完了でき、またこの作業中もraid 5の耐障害性が残っている[6]。 raid 5+5raid 5によってraid 5を組む、raid 5+5も考えられる。この構成には最低9ドライブを要する。 raid 5+1や1+5と同様、同時に3ドライブまでの故障に耐えられ、またディスク利用効率でそれらを上回る。耐障害性ではraid 5+1と1+5の中間程度になる[7]。 同様に、3次元化したraid 5+5+5、4次元化したraid 5+5+5+5なども考えられる。raid 5+5+5は7台、raid 5+5+5+5は15台までの同時故障に耐えられるが、必要となるドライブ数およびディスク効率の面から実用的ではない[8]。 RAID 6: ブロック単位・複数パリティ分散記録RAID 6は任意の2つのハードディスクに障害が発生してもデータが復元できるRAIDである。冗長データを2種類作成し2つのディスクに記録することで、2重障害に対応でき、同時に2ドライブが故障しても復元できる。最低4ドライブを必要とする。1つの冗長データはRAID5と同じようにパリティ符号を用いる。もう1つの冗長データは、異なるアドレスのデータからパリティを生成する方式(対角線パリティ)や、異なる係数を乗算してから生成する方式(リード・ソロモン符号)など、複数の実装形態がある。raid 1のミラーリングを3重化した場合も2つのハードディスク障害に対応できるが、これは通常RAID 6とは呼ばない。
EMC CLARiX/CLARiiON のRAID6では EVENODDアルゴリズムを使って、X86プロセッサのXOR命令でパリティの計算、データのリカバリをソフトウェアで行っている。 大規模なシステムでは、RAID 6を用いた多重RAIDも、raid 5と同様に考えられる。
RAID Z: 可変ストライプ幅RAID Zはraid 5やRAID 6と似た機構を持つが、ストライプ幅を可変とすることで速度と耐障害性を向上させたものである。 raid 5やRAID 6ではパリティ更新時に何らかの障害が発生するとデータとパリティーが一致しなくなり、システム上では正常に見えても内部ではデータ破壊が進んでいるという状態(サイレントクラッシュ)に陥るという致命的な欠点がある。またストライプ幅より小さいデータを書き込む際にも、全体のデータとパリティを読み込んで再計算をする必要があるため、パフォーマンスが著しく低下するという弱点も持っている。 RAID Zでは常にストライプ全体への書き込みを行い、コピーオンライトと組み合わせることでraid 5やRAID 6が持つサイレントクラッシュの問題を完全に回避できる。 脚注、参考文献
関連項目
外部リンク
Article keywords: raid controller, raid 0, raid 1, |
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net