RAIDとは複数の物理ディスクを束ねて仮想的にひとつの論理ディスクとする技術のことです。また、1つの論理ディスクを構成するためにまとめられた物理ディスクをRAIDグループと言います。
1つのグループ内で構成できるRAIDには以下のような種類があります。
RAID0(ストライピング)
別名ストライピングと呼ばれるRAIDレベルです。
ストライピングとは、1つのデータを2つ以上のディスクに 分けて同時に書き込むことです。データ保存時には分散して書き込むため高速性に優れています。
性能は向上しますが、ディスクが1台でも故障すると、データは復旧できません。
RAID1(ミラーリング)
別名ミラーリングと呼ばれるRAIDレベルです。
2台のディスクに、それぞれまったく同じデータが保存されます。
万一のディスク故障時には、ディスクを交換し、もう一台のディスクからデータを復旧できます。
信頼性が上がりますが、データは分散されないため性能は向上しません。また、同じデータを2台で保持するので、ディスクの使用効率が下がります。
RAID5(分散型)
パリティ分散と呼ばれる方式で、データからパリティ(誤り訂正符号)を生成し、データとともに複数のディスクに分散して保存します。
最低3台のディスクで構成し、いずれかのディスクが壊れたとしてもパリティから復元させることが可能です。このため、1台までならどのディスクが破損しても保全可能です。
データを分散できるためディスク本数が増えるほど読み込み速度は向上しますが、書き込み時はパリティの計算を行うため性能は高くなりません。ただし、通常、データベースは書き込みより読み込みのほうが多いため総じて性能は向上します。
RAID10
RAID10は、RAID1とRAID0を組み合わせたものです。RAID1でミラーリングされたディスクのセットを複数用意して、それらの間でストライピング(RAID0)します。
ディスク故障時には、ペアのディスクからデータを復旧できます。同じデータを保存したペアのディスクが同時に故障しない限り、最大2台までのディスク故障に対応できます。ただし、ディスクは最低4台必要となり、コストが高くなります。
RAID6
2つのディスクが同時に故障した場合でもデータを復元できるよう考慮されたRAIDレベルです。データからパリティを2つ生成し、データとともに分散して書き込みます。RAID5は1つのパリティを生成し、耐障害性をあげていたのに対し、RAID6では異なるパリティを2つ生成するため、同時に2台が故障してもデータを復旧できます。
例えば、1台が故障して復旧している間に、もう1台が故障してしまった場合にも、RAID6なら復旧が可能です。
最適なRAIDレベルは?
RAIDレベルは上記したもの以外にRAID2やRAID3などがあります。ただしそれらは動作原理の複雑さやコストパフォーマンスの低さといった問題により、現実に利用されることはほとんどありません。
では、データベースサーバーのストレージとして使用する場合、どのRAIDレベルが良いのでしょうか。
データベースは信頼性と性能のどちらも要求されることは言うまでもありません。そのため、その両方が向上するRAID5、RAID6、RAID10のいずれかが推奨されます。
RAID6、RAID10は必要なディスク本数も多くなる分、RAID5よりコスト高となりますが、万一、複数台同時に故障する事態となった場合、目も当てられません。その追加投資が企業を救うこともあります。そのため、RAID6かRAID10が良いでしょう。
さらに言えば、性能はRAID10、信頼性はRAID6に軍配が上がります。その場合、信頼性の方が重視されることが多いのでRAID6が最適と言えるでしょう。
ただし、それもひとつの考え方に過ぎず、要件やサーバー運用体制等により最適なRAID構成は変わってきます。そのため、明確な答えは存在せず、それぞれのRAID特性を考慮し、保護対象とするデータの重要度とコストとのバランスを見極め、都度、どれが最適なのかを決めていくしかありません。