ICDロゴ

RAID (Redundant Arrays of Independent(Inexpensive) Disks)

【レイド】

別名
RAIDアレイ (RAID array) 【レイド・アレイ】

最終更新日: 2003/04/09

 複数台のディスク・ドライブを組み合わせることで、高速・大容量かつ信頼性に優れたディスク・サブシステムを構築する技術。RAIDのルーツは、1987年に米カリフォルニア大学バークレイ校でPatterson、Gibson、Katzの3名が連名で発表した「A Case for Redundant Arrays of Inexpensive Disks」という論文だとされる。

 ハードディスクの大容量化と価格低下はめざましく、いまやクライアント側のパーソナルコンピュータ・レベルでも、数ギガバイトから数十ギガバイトのディスクを搭載したマシンも珍しくなくなった。これに伴い、サーバにはさらに大容量のディスクが搭載されるようになってきた。しかしディスクの大容量化が進めば進むほど、万一のディスク障害時に受ける被害は大きくなる。また動画の再生やキャプチャなど、大量のデータを高速に読み書き可能なディスク・サブシステムも求められるようになった。RAIDは、こうしたディスク・サブシステムの信頼性向上、耐障害性の向上、処理性能の向上を実現するための技術として、PCをベースとするサーバ・システムなどでも広く活用されている。

 Patterson氏らの論文が発表されたころ、RAIDの「I」は「Inexpensive」を意味していた。これは当時、ディスク・サブシステムの高速化と大容量化を図るには、高価な専用ディスク装置を利用するのが一般的だったのに対し、Patterson氏らの論文では市販の安価(Inexpensive)なハードディスクを利用することを前提にしていたからだ。現在では、高価な専用ディスク装置が廃れていることもあって、独立した個々のディスクを用いるという意味で「Independent」をRAIDの「I」とすることが多いようだ。

 RAIDの実現方式は、OSなどに用意されたソフトウェアによる方式と、RAID専用ハードウェアを使用する方式の2つに大別される。Windows NTやWindows 2000には、標準でソフトウェアRAIDを実現する機能が組み込まれており、専用カードなどを用意しなくてもRAID構成を実現することができる。ただしソフトウェアRAIDでは、ディスクI/Oに少なからずRAID処理のためのオーバー ヘッドがかかるので、本格的なサーバ・システムでは、ハードウェアでRAIDの各種処理を実行するハードウェアRAIDコントローラを用いるのが一般的である。

 RAIDでは、複数ドライブへの分散書き込み、複数ドライブからの分散読み出しを行うストライピング(striping)、同一データを複数ドライブに書き込むミラーリング(mirroring)、データ・エラー検出するパリティ・チェック(parity check)、エラー検出と訂正を行うECC(Error Check and Correction)といった技術を組み合わせて使用する。一口にRAIDといっても、具体的なRAIDの構成には、機能によってRAID0からRAID5までの6種類の分類がある。

■RAID0

 ストライピングによって、複数ディスクをあたかも1台のディスクであるかのように扱えるようにするもの。最低2台以上のディスクを組み合わせて、ディスクへの書き込み処理や、ディスクからの読み出し処理を複数ディスクに分割し、同時並行的に実行することで、アクセス速度を高速化する。ディスクの大容量化や高速化の目的で使用されるのが一般的。ただし、後述するRAID 1やRAID 5のような冗長性は備えておらず、耐障害性は高くないどころか、複数のディスクのうち、どれか1台が読み出し不能になると、ディスク全体が読み出し不能になるという欠点がある。

■RAID1

 ミラーリングを使って同一のデータを複数のディスクに書き込み、一方のディスクが故障しても、他方で処理を続行できるようにし、耐障害性を高めるもの。通常はディスク2台を使って実現する。ただしRAID1では、同一のデータを2台のディスクに書き込むため、ディスクの使用効率は50%になってしまうという欠点がある(例えば1Gbytesのデータを記録するには、1Gbytes×2=2Gbytes分のディスクが必要になる)。

■RAID2、RAID3、RAID4

 分類上これらは存在するが、次のRAID5が一般的に使われるため、現実のシステムではほとんど用いられない。

■RAID5

 複数のディスクにデータとパリティ情報を記録することで耐障害性を高めたもの。データをディスクに記録する際、そのデータのパリティ情報を生成し、残りのデータとともにストライピングによって複数のディスクに分散して書き込む。こうしておけば、万一ディスクの1台が故障しても、残ったデータとパリティ情報から破損したデータを割り出すことができる。パリティに必要な容量はディスク1台分で済むため、ミラーリングよりも効率よくディスク領域を使用できる。

 RAID5では、ディスクからの読み出し時には、複数ディスクからの同時並行読み出しが可能なので高速化がなされるが、データの書き込み時にはパリティを算出しなければならず、その分のオーバーヘッドがかかる。

RAID5の動作原理
RAID5の動作原理
データを分割して各ディスクに格納するという原理はRAID 0(ストライピング)と同じだ。異なるのは、データ・ブロックの組(上図でいえば1/2や3/4、5/6)ごとにパリティが生成される点である。たとえ1台のディスクが壊れても、残りのディスクに格納されたデータとパリティから、失われたデータを復活させることができる。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ