『RAIDとは?』

はじめに

最近、RAIDという言葉を耳にする機会が増えました。おそらくHDDの単価が下落して複数のHDDをそろえることがそれほど負担にならなくなったことなどが影響したんだと思われますが、RAIDの中でもRAID0と呼ばれるストライピングなどが取り上げれることが多く、どうもRAIDはHDDの高速化の手段と思われている場合もあるようです。

ここでは、RAIDの意味と方法などを解説します。 なお、通常異なるHDDでストライピングを組むと遅い方、容量が少ない方に足を引っ張られ性能が低下するので通常はしません。以下の話も基本的に同じHDDを利用することを前提に進めます。

RAIDとは

RAIDとはRedundant Array of Inexpensive Disksの略で日本語読みではレイドと呼ばれるようです。

意味的には冗長性で、複数のHDDに同じ内容を書きこんでおけば一台が壊れてもデータが消えることがなくていいねっての概念ですが、複数台を上手に組み合わせることにより速さなどの性能も向上させることも盛り込まれています。1987年にカリフォルニア大学バークレー校のDavid A. Patterson教授のグループが提唱しました。

RAID0

複数のHDDにデータを分散させることでHDDの読み書きを高速化するというもので、その特性上すストライピングと呼ばれます。(縞々のように交互に書き込むから)

例えば、二台のHDDにデータを記録するとき一台の書き込み速度が100MB/sだったら、二台に記録すれば論理的には200MB/sの速さで記録することが出来ることになります。ブロックというデータの単位で振り分けます。

一台でも壊れるとすべてのデータが使用不能になるためRAID本来の冗長性という観点からみると当てはまらないのですが、RAIDの冗長性なしバージョンということで0という番号が当てられています。これがRAIDに含まれる理由は、もともと後述のRAID3やRAID5で用いられた高速化の技術のみを抜き取ったものだからです。

HDDは最低二台から可能で、容量は使ったHDDの数だけ増えます。
現在HDDのメジャーな高速化の手段としてよく使われています。

RAID1

最も単純なRAIDで、複数のHDDに全く同じ内容を書きこむことで一台が壊れても残りのディスクからデータを読み込むことができるというもので、その特性上ミラーリングとも呼ばれます。(ミラーみたいに全く同じ情報を写すから)

RAID処理が単純なため高度なRAIDプロセッサーを必要とせず安価に構築できる反面、高速化の面では原理的にはまったく高速化されません。RAID処理にかかる時間があるので若干ながら一台の時よりも遅くなるようです。

HDDは最低二台から可能で、容量は何台でも一台分となってしまいます。
現在小規模なPCでのHDDのメジャーなRAID化の手段としてよく使われています。

RAID2

ハミングコードとよばれる訂正コードを使ったRAIDシステムです。データとそのデータから生成されたハミングコードをそれぞれ専用の複数のHDDに分散して記録します。

このハミングコードによってHDD上の1bit単位のエラーを訂正できるというもので、他のRAIDはHDDが破損した場合に復旧する目的に対して、このRAID2はHDDに記録されたデータ1bitあたりの障害を修正できるようになっている点で強力なのです。

ただし、多量のHDDを使用しRAIDコントロールも煩雑なため非常にコストがかかる上に、現在のHDDはそれ自体にエラー訂正機能が備わっているので現在使用されることは希のようです。

RAID3

RAID0に冗長性を持たせるためにエラー訂正コードをもう一台のHDDに記録させるというもので、RAID処理が簡単なため以前はよく使われていたのですが、RAIDプロセッサの性能向上によってより効率のよいRAID5が使われることが多いようです。

エラー訂正の方法は排他的論理和と呼ばれる方法を使っていて、例えば①と②のデータをRAID0のように二台のHDDに分散してデータを記録して、①と②のデータと③の和が0になるように③を決めます。

パソコンで扱うデータは0か1しかないので、①、②、③のどれか一つのデータが失われてもそれが0か1のどちらのデータだったかわかるというものです。(①と②と③の和は統一すれば1でも良い。)

bitまたはbyte単位でデータを振り分けます。
最低三台のHDDが必要で、容量は三台で二台分でです。
RAID0より冗長性が高く、RAID1よりコストパフォーマンスが高いのが特徴ですが、エラー訂正コードを記録するHDDにアクセスが集中するために高速化の点で効率が悪く現在はRAID5にとって代わられました。

RAID4

RAID3がbitまたはbyte単位で書き込むので同時に書き込みや小さいサイズのデータに弱いという弱点を改善してブロック単位でデータを扱うようにしたものです。

これもRAID3同様にエラー訂正コードを記録するHDDにアクセスが集中するために高速化の点で効率が悪く現在はRAID5にとって代わられました。

最低三台のHDDが必要で、容量は三台で二台分でです。

RAID5

RAID3の欠点を改善したもので、現在高度なRAIDシステムではもっとも採用されています。

RAID3はエラー訂正コードを記録するHDDが決まっていたために、そのHDDにアクセスが集中してしまい高速化を妨げてしまったのですが、RAID5ではこのエラー訂正コードを書き込むHDDを均等に割り振ることで速度の低下を防ぐものです。

例えば、①と②および③と④というデータがあったなら、①をHDD1に②をHDD2に記録して、この①と②のエラー訂正コードをHDD3に記録します。次に、③をHDD2に④をHDD3に記録してエラー訂正コードをHDD1に記録します。という風にエラー訂正コートを分散して速度低下を防ぎます。

RAID3同様に最低三台のHDDが必要で、容量は三台で二台分です。

RAID0+1

RAID10とも言われる方式で、RAID0とRAID1を組み合わせたものです。 

RAID1をRAID0化したものかその逆とでも考えればいいと思います。RAID処理が簡単なため、高度なRAIDプロセッサーなどが必要とせず構築が簡単なのですが、HDDの使用効率がRAID5より悪く、最低四台のHDDが必要で、容量は四台で二台分です。