データベースのデータを保持する記憶媒体としては、HDD(ハードディスクドライブ)を使うのが一般的です。
格納するデータは、業務において非常に重要度が高いデータなので、耐障害性をあげる必要があります。
そのための技術として用意されているのが「RAID(Redundant Array of Independent Disks)」になります。
RAIDとは?
複数ディスクを束ねて、仮想的な一つのストレージとする技術のことです。
RAIDの基本的な考え方
同じデータを複数ディスクに書き込むことによって冗長化することで、安全性を高めること。
RAIDのメリット
- 安全性の向上
- 性能の向上
RAID構築の流れ
下記のことを考えて、設計します。
どのRAIDレベルを採用するか。
RAID0(ストライピング)
引用:http://www.programering.com/a/MzN0EDMwATE.html
複数のディスクにデータを分散します。ディスクのうち一本でも故障すると破綻するので、「RAIDとして欠陥がある」と述べる人もいます。
冗長性は全くありませんが、ディスクを分散することにより、ディスクI/Oの性能がかなり高いのが特徴です。
RAID1(ミラーリング)
引用:http://www.programering.com/a/MzN0EDMwATE.html
2本のディスクに全く同じデータを書き込むので、信頼性が高くなります。
ただ、性能は1本の時と変わらないですし、ディスクの使用効率もあまりよくないです。
RAID5(パリティ分散)
引用:http://www.programering.com/a/MzN0EDMwATE.html
最低3本以上のディスクが必要になります。
「パリティ」と呼ばれる誤り訂正符号を分散して格納します。
「パリティ」から実データを復元できるので、1本までなら壊れても復元可能です。ただ、2本以上壊れると復元できません。
さらに、データを分散することができるため、ディスクI/Oの性能も向上させることができます。
ネックとしては、ディスクをたくさん用意しないといけないので、RAID0、1に比べるとコストがかかることでしょう。
RAID10(RAID1 + 0):ミラーリング+ストライピング
引用:http://www.programering.com/a/MzN0EDMwATE.html
「RAID0」と「RAID1」を組み合わせたものになります。
最初に、RAID1のグループを作って、さらにそのグループの中で、RAID0をさせます。
なので、RAID0の速度と、RAID1の安全性のいいところをもくろんだ手法となります。
ただ、最低4本のディスクが必要になるので、一番コストは高くなってしまいます。
上記にあげたRAID以外も、レベルが存在しますが、あまり実務では利用されないので割愛します。
どのRAIDを選ぶか?
まず、検討の余地にあがるのは、「RAID10」でしょう。ただ、コストがかかってしまうので、財布との相談ですが、余裕がなければ、「RAID5」になるでしょう。
全くお金に余裕がなければ、安全性の高い「RAID1」もありです。「RAID0」は、耐障害性に乏しいので採用されません。
RAID選定における優先度
この記事へのコメントはありません。