はじめに
今回は、データ運用の要である『RAID』について解説していきます。
では、『RAID』とはどのようなものなのでしょう?
結論から言えば、『RAID』とは『ハードディスクに必要不可欠な信頼性を追求するための技術』になります。
消えてから分かるデータの重要性
あなたは故意ではなくPCのデータが消えてしまったことはありますか?
もしそのような出来事に遭遇していたのなら、私も過去にあるので心中お察しします。
ほんと、辛いですよね〜泣きたくなりますよね〜。
ところがこのデータが消える話はPCだけではありません。
あなたが利用しているサービスのサーバーも同様に、常にデータ損失の可能性は捨てきれないのです。
どんな企業で構築したサーバーも、ホスティングベンダーが保持しているサーバーにもこれは当てはまります。
その理由は、『ハードディスク(Hard Disk Drive)』という長期記憶媒体を使用していることによります。
よく聞きますよね?ハードディスクは消耗品だと。
つまり、ハードディスクは壊れることを前提として考えておかなければならないハードウェアなのです。
そして、そのハードディスクが壊れれば当然データが消去されるので、多くの人がアクセスするようなサーバーだと大変なトラブルになります。
業務停止は免れず、それだけではなく損失を被る可能性もあります。
もちろん、このような損失を起こさないためにもデータのバックアップは別に最優先事項としておかなければなりません。
データのバックアップとはデータ丸ごとを複数の媒体に保存しておくことです。
PCのバックアップであれば、ハードディスク内のデータをそのまま別のハードディスクにコピーするだけで済みます。
しかし、常に連続稼働しているサーバーには余計な負荷がかかるため、そのような手法は得策ではありません。
そこで、サーバーでも利用できるデータのバックアップに似た方法として、複数のハードディスクを効果的に利用した『RAID』という技術が生まれました。
『RAID』って一体何?
RAIDとは、PCやサーバーなどでおこなう、安全性を向上させるための多重化技術です。
この技術を『冗長化(じょうちょうか)』と呼びます。
ちなみにRAIDは、上記で説明していたバックアップとは意味合いが違うものになるのでご注意ください。
RAIDを簡単に説明すると、まずPCやサーバーを構築する際にハードディスク1台のみという搭載にはせず、複数のハードディスクを搭載させてRAIDを施すことになります。
こうすることで、仮にどれかのハードディスクが壊れても、それ以外のハードディスクで連続稼働を継続させることができます。
この技術が必要なものの台頭がレンタルサーバーなどのホスティングベンダーであるのは間違いなく、RAIDを扱うことで安心という名のサービスをおこなっているわけです。
『RAID』を利用するにはどうしたらいいの?
PCにある程度の知識をお持ちであれば、個人でもRAIDを組んで冗長化対策をすることはできます。
そのRAIDを利用する方法として、基本的にはRAIDコントローラーなるハードウェアが必要になります。
RAIDコントローラーは、マザーボードに接続するためのカード式のハードウェアです。
ハードディスクは、通常マザーボードに直接接続してデータの読み書きをしていますが、RAIDの場合はそうはせず、RAIDコントローラーに接続して読み書きをおこなえるようにします。
こうすることで、ハードディスクを複数搭載しつつも、RAIDを利用したデータの冗長化保存が可能になります。
ちなみに、最近だとRAIDコントローラーと同様の機能がマザーボードに元から付いていたりするので、わざわざRAIDコントローラーを購入する必要はないかもしれません。
それに、今となっては大容量のハードディスクが簡単に購入できますし、そのハードディスクにデータをコピーすれば済む話なので、個人でRAIDを用いるケースは少ないのが実情ではないでしょうか。
たくさんある『RAID』の種類
RAIDと一口に言っても、その冗長化方法は複数あります。
その理由は、冗長化するにも『ハードディスクが壊れない』という絶対的な保証がどうしても不可能なため、そこを上手く補う方法として技術を模索していくうちに、RAIDによる冗長化の方法が増えていったというものになります。
つまり、RAIDと言ってもどういった方法を採用しているかで、その冗長化が安全かどうかの尺度が分かることになります。
その種類と見分け方は『RAID 0』『RAID 1』『RAID 5』『RAID 6』『RAID 10』というように、RAIDの後に数字が付くことで判断が可能です。
以下にRAIDの種類と特徴を簡単にまとめてみました。
- 容量拡大を重点に置いた『RAID 0』
- 冗長化技術の元祖『RAID 1』
- 復旧用データを備える『RAID 5』
- RAID5の進化形『RAID 6』
- RAID0とRAID1の合わせ技『RAID 10』
では、なぜRAIDにこのような数字が付き、増えていったかを見ていきましょう。
容量拡大を重点に置いた『RAID 0』
『RAID 0』のハードディスクの最低必要台数は2台からです。
RAID0の場合、ハードディスクは複数ありますが、冗長化という意味合いでは若干違っていて、複数のハードディスクを連結させて1台のハードディスクとして認識させるだけにしています。
今よりもハードディスクの最大容量が500GBなど少ない時期に、例えば500GB+500GB=1,000GBとして、複数台を1台として考える、容量を増やすことをメリットとした手法です。
データの保存イメージは、ある1つのデータがあったらそれを細かく分割し、元のデータより小さい単位にしてしまいます。
そして、その分割したデータを2台のハードディスクに分けて保存していきます。
イメージ的には、例えば1つのデータを6つに分けたとして、HDD No,1には1番目と2番目と3番目の分割データ、HDD No,2には4番目と5番目と6番目の分割データを保存していくという具合です。
このような複数台のハードディスクに分散させてデータを書き込むことを『ストライピング』と呼びます。
この場合、データの読み書き自体も分散できるので、高速化できるというメリットがあります。
ただその反面、複数台あるハードディスクの内どれか1台でも故障すると全データの消去と同じ意味合いになってしまいます。
これは大きなデメリットなので、RAID0を利用するのは容量アップと高速化したい時だけの利用に留まってしまいがちです。
冗長化技術の元祖『RAID 1』
『RAID 1』のハードディスクの最低必要台数は2台です。
『RAID 0』の、ハードディスクを複数台用意し、それらを1台として考える方法は同じですが、『RAID 1』はきちんとした冗長化になっています。
それは、まずRAID0とはデータの保存イメージが違い、データを分割することなくそのままのデータを扱う点です。
そして、ハードディスクを1台として考えますが、保存先は1つの場所でありつつも、実は同じデータを別のハードディスクにも保存しているというものになります。
つまり、同じデータが2台に保存されるというものです。
このおかげでRAID1の場合は、1台が壊れてももう1台に問題がなければ継続稼働が可能になるというメリットがあります。
メンテナンス的にも、1台のハードディスクが壊れた場合にはその1台を交換することで、データの保護が比較的容易です。
『RAID 1』は、その信頼性の高さからよく利用されてきたRAIDで、このRAID方法を『ミラーリング』と呼びます。
ただ、RAID1のデメリットとして、ハードディスクの容量が増えるわけでもなく高速化することもできない点があります。
復旧用データを備える『RAID 5』
『RAID5』から段々と複雑になってきます。
まず、RAID5のハードディスクの最低必要台数は3台になります。
ハードウェア的な冗長化の方法は、複数台を1台扱いにするRAID0、RAID1と変わりませんが、データの保存方法がまた変わってきます。
イメージは、RAID0のように、ある1つのデータがあったらそれを細かく分割するまでは同じで、例えば1つのデータを6つに分けたとすると、HDD No,1には1番目と2番目、HDD No,2には3番目と4番目、HDD No,3には5番目と6番目という具合でハードディスクに分散保存していきます。
もちろん、これだけではデータをただ分散させただけなので、冗長化にもなっていません。
ではどうするかというと、復旧用の『パリティデータ』というブロックデータを別で作っておくのです。
上記のように、仮に1つのデータを6つに分けたとします。
するとその時点でパリティデータも同時に作られますが、そのパリティデータには1番目&2番目を1つのデータセット、3番目&4番目を1つのデータセット、5番目&6番目を1つのデータセットという組み合わせとして作られることになります。
そして、保存先のハードディスクには以下のようにデータが保存されていくわけです。
HDD | 元データ | パリティデータ |
---|---|---|
HDD No,1 | 1番目,2番目の元データ | 5番目,6番目のパリティデータセット |
HDD No,2 | 3番目,4番目の元データ | 1番目,2番目のパリティデータセット |
HDD No,3 | 5番目,6番目の元データ | 3番目,4番目のパリティデータセット |
こうすることで、どれか1台のハードディスクが故障しても、残りの2台のパリティデータを利用できることになるので連続稼働が可能になります。
このRAID方法は『パリティス付きストライピング』と呼ばれ、RAIDの安全策として比較的人気が高い傾向にあります。
RAID5の進化形『RAID 6』
『RAID 6』は『RAID 5』に必要なハードディスク3台にもう1台増設して4台にし、さらに信頼性を高めたものになります。
RAID6の場合は、たとえ2台が壊れても、残りの2台で稼働が可能なので安全策としてはかなり有効な冗長化対策です。
その仕組みはRAID5と同じで、データの分散をおこないつつもパリティデータを作るという点は変わりません。
しかし、RAID5では1セットだったパリティデータのブロックを、RAID6では2セット作るところに違いがあります。
RAID5に書いたのものに付け加えると、元データの1番目&2番目を2つのパリティデータセット、3番目&4番目を2つのパリティデータセット、5番目&6番目を2つのパリティデータセットとして作られることになります。
そして、そのパリティデータセットも含め、ハードディスクに分散保存させていきます。
かなりややこしいですが、以下のようなイメージです。
HDD | 元データ | パリティデータ |
---|---|---|
HDD No,1 | 1番目,3番目の元データ | 5番目,6番目のパリティデータセット |
HDD No,2 | 2番目の元データ | 3番目,4番目,5番目,6番目のパリティデータセット |
HDD No,3 | 4番目の元データ | 1番目,2番目,3番目,4番目のパリティデータセット |
HDD No,4 | 5番目,6番目の元データ | 1番目,2番目のパリティデータセット |
こうすることで、ハードディスクが仮に2つ壊れても残りの2台からデータを復旧すれば、元どおりにすることが可能になります。
この方法を『ダブルパリティ』と呼びます。
ただし、RAID6のデメリットとして、パリティデータを2セット余分に作って保存することになるので、ハードディスクの容量を圧迫することになります。
RAID0とRAID1の合わせ技『RAID 10』
『RAID 10』は『RAID6』のようにハードディスクの最低必要台数が4台です。
データを分割するのは同じですが、RAID5やRAID6のようにパリティデータを作ろうとはせず、RAID0やRAID1のように初心に戻りつつも進化させた方法になっています。
まず、4台のハードディスクがあるとしたら、RAID1のミラーリングを施して、AセットBセットのように2台ずつに分けます。
次にどちらのセットもRAID0のストライピングを施すのです。
こうすることで、ミラーリングしつつもストライピングをさせるというRAID0とRAID1の合わせ技をさせているわけです。
ミラーリングした2台のハードディスクがどちらも壊れない限り、連続稼働が可能になります。
データも分割はするものの、RAID5やRAID6と違いパリティデータを作ることはないので、容量の圧迫もなくトラブルが起こった後の復旧がしやすく、サーバー自体にも負担をかけずに済むというメリットがあります。
ただし、ミラーリングをしていることにより容量が増えるわけではないので、ハードディスクのコスト増というデメリットは免れません。
『RAID』には種類があるのは分かったけど、結局どの『RAID』がいいの?
こればっかりは、安心を取るかコストを取るかで変わってきます。
導入のしやすさならRAID1か5でしょう。
より信頼性に重きを置きたいならRAID6かRAID10になってきます。
RAID0については、今やハードディスク大容量の時代なのとそもそもが冗長化にはならないので、RAID2〜4のように無くなっていくように思われます。
それに、これからもまだまだ新しいRAIDも生まれてくる可能性もあり、安心とコストを天秤にかけつつ、その都度時代にあったRAIDを選ぶことが得策になるでしょう。
以下に各RAIDの特徴を簡単にまとめてみました。
種類 | メリット | デメリット | HDDの最低必要数 |
---|---|---|---|
RAID 0 | データの分散と容量を拡張できる | 冗長化にはなっていない | 2台 |
RAID 1 | 元のデータを分散して保存する | 容量がHDD1台分にしかならない | 2台 |
RAID 5 | データの分散だけでなく復旧用パリティデータを1セット作成できる | 1セット分のパリティデータにより容量が圧迫される | 3台 |
RAID 6 | データの分散だけでなく復旧用パリティデータを2セット作成できる | 2セット分のパリティデータにより容量が圧迫される | 4台 |
RAID 10 | RAID0(ストライピング)とRAID1(ミラーリング)のいいとこ取り | ミラーリングの2台が故障すると復旧不可 | 4台 |
まとめ
RAIDについて何となく掴めたでしょうか?
RAIDと言っても、意外にも複数の種類が存在しているんですよね。
これだけSaaSが普及する時代に、なかなか個人でRAIDにすることは少ないかもしれませんが、反対にサーバーにとっては絶対に必要な技術です。
私たちユーザーの安心のためにもRAIDのさらなる発展、もしくはそれに変わるような技術が生まれたら注目していきたいです。
SaaSについて書いた記事はこちらから