dragon image みちのぶのねぐら

RAID規格の概要

Update: 2009-03-27

私が所属する組合 ( コンピュータ・ユニオン ) のミーティングで RAID についての話になったのですが、私が覚えているのと違う定義があるようです。パリティが1個のディスクに書き込まれるのは私の記憶だと RAID 3 、別の人が言うにはそれは RAID 2 だとのことでした。よく使われる 0, 1, 5 で認識のずれがなければ困ることはないのですが、気になって調べてみました。私が覚えていたつもりの RAID 2, 4 のことなどもうすっかり忘れていましたし。

もともと RAID は厳格ではない規格です。世の中の製品のバラエティが増えるにつれて RAID 0 などが追加されてきました。4、5年以上前なら「 正式な RAID の Level は 1 〜 5 だけ」みたいな記述も見られましたが、今ではそんな堅いことを言う人はいません。

RAID は何の略?

もともとは Redundant Array of Inexpensive Disks の略でした。でも、 “Inexpensive” の印象がよくないということで Redundant Array of Independent Disks の略とされることが多くなっています。

歴史的文書から

Wikipedia の RAID の参照文献 1 A Case for Redundant Arrays of Inexpensive Disks (RAID) ( David A. Patterson, Garth A. Gibson and Randy Katz ) ではこうなっています。

私が覚えていた 1, 3, 5 はこの定義です。ただし、今までよくわかっていなかった RAID 4 の意味がわかりました。RAID 3, 4, 5 の順番に並んでいる理由がわかりました。bit 単位でデータを取り扱う RAID 3 に対してRAID 4 はセクタ単位になり、詳細は省略して(論文を全文翻訳することになりそうなので)その結果、 Independent Reads/Writes になります。で、そのセクタ単位のチェック情報を1個のディスクに集中させずに全ディスクに分散させたのが RAID 5 なのだそうです。

で、 Wikipedia の記事に戻ると、 RAID 3 は “dedicated parity or bit interleaved parity or byte level parity” で RAID 4 は “Block level parity” となっていて、なんか微妙に違うなぁ。 MSDN の RAID Levels and SQL Server でも RAID 3 に対して RAID 4 は “striped data in much larger blocks or segments” を使うと記されています。 1987年に上記の論文が発表された後、いろいろな製品が出てきたということでしょう。

その他のレベル、ベンダによる定義

Wikipedia のこの記事で挙げられているその他の Level には次のようなものがあります。

MSDN の RAID Levels and SQL Server に Level 10 (1+0) についても記されているのですが、ストライピングセットをミラー構成にしたものだそうで、 Wikipedia の説明では 0+1 とされているものになります。

EMC の EMC CLARiXの高可用性(HA)構成のベストプラクティス には RAID 0, 1, 1/0, 3, 5, 6 について簡単に説明しています。1/0 が Wikipedia の説明の 0+1 なのか 1+0 なのかはわかりません。この記事は全体としてわかりやすくていいですね。

日立の RAID にも RAID 0, 1, 0+1, 3, 5, 6 についての簡単な説明が掲載されています。ここに掲載されている RAID 0+1 は、図を見る限り Wikipedia RAID の 0+1 と同じです。

HP の RAID 6 with HP Advanced Data Guarding technology: a cost-effective, fault-tolerant solution には RAID 0, 1, 1+0, 5, 6 についての説明が掲載されています。この RAID 1+0 は “implemented as a striped array of mirrored drives” ということで Wikipedia RAID の 1+0 と同じ、かな?

さらに Wikipedia の Non-standard RAID levels には、1.5 とか 7 とかいろいろ載っています。

RAID 1 は何個か?

ミーティングのとき「RAID 1 は普通2個だよね」「3個は効果が薄いという検討結果になったことがあった」「通常2個、あったとしても偶数個のはず」と話をしていたのですが、リンクをたどるとありました。奇数で構成できるミラーリング製品。 IBM 社が RAID 1E というのを出していて奇数個可、つまり、ディスクを1個ずつ追加可、なのだそうです。 Wikipedia の Non-standard RAID levels の図 RAID_1E.png がわかりやすいのですが、奇数個でも 1/2台分の容量になります。で、普通は、つまり “E” が付かなければ偶数個ということになります。