HDDのデータを守る! RAIDと呼ばれる技術

HDD

えー、この前の日曜日に4TBもの容量のHDDが壊れてしまいました。。。
かろうじて動くようですが、データをサルベージできるかどうか・・・

幸いにして重要なデータは入っていなかったので、最悪は諦めもつくのですが、やっぱりデータは消えないようにしたいものです。
というわけで今回はそういうネタで行きたいと思います。




データの守り方の基本というのは、やっぱりこまめにバックアップを取っておくことです。
定期的なバックアップを取っておけば、最後にバックアップを取った時点まで復元もできます。
バックアップは、別のHDDを用意して完全バックアップあるいは完全バックアップからの差分バックアップを取り続ければいいだけです。

完全バックアップというのは読んで字のごとく、全てのバックアップを取ります。
差分バックアップというのは、一度完全バックアップを取った後であれば、次回のバックアップ時は変化した分だけをバックアップするというものです。

会社などではテープにバックアップを取るという手法を用いることもあります。(LTOという規格のテープです)

しかしいくらこまめにバックアップを取ればいいとはいえ、一般家庭においてはコスト的な問題で無難とは言い難いのも事実です。
テープなんてもってのほかです。

そこで今回は一般家庭でも導入しやすいであろうRAID(レイド)という技術に着目したいと思います。

 

・RAIDとは?

Redundant Arrays of Inexpensive Disks、またはRedundant Arrays of Independent Disksの略で、HDDを用いてデータを冗長(じょうちょう)化するというものです。

冗長化という言葉は普段あまり聞くことはないかもしれませんが、簡単に言うと予防線を張るということです。
同じ仕様(製品)のHDDを複数使用することにより、故障からデータを守ります。
異なる仕様のHDDを使用することもできますが、一番少ない容量のHDDに合わせてRAIDが構成されます。

またRAIDにはレベルがあり、レベルによりこの予防線の強さも異なります。
ちなみにRAIDはRAID対応のマザーボードを使用するか、専用のHDDケースを用いることで構成することができます。

それでは、レベル別でRAIDの種類を見てみることにします。

 

・RAID0

RAID0

1つのデータを2つに分け、HDD2個に対して分けたデータを同時に保存するRAIDレベル、RAID0です。ストライピングとも呼ばれます。
RAID0は以下のような特徴があります。

  • HDDを2個以上使用
  • 読み書き速度が約2倍(HDD2個の場合)
  • 容量は使用したHDDの総容量
  • 冗長性がない

2つに分けたデータを同時に2個のHDDから読み書きするため、動作は約2倍速くなります。パソコンの内部(ハード)の制約にもよりますが、3個なら3倍、4個なら4倍となっていきます。高速化を求めたいときに構成するもので、ゲーマーだけでなく、スパコンのような大規模シミュレータにもRAID0が用いられます。

しかし、RAID0には冗長性がなく、HDDが1個でも壊れるとすべてのデータが失われます。
冗長性がないという意味を込めてレベル「0」なんだとか。

 

・RAID1

RAID1

1つのデータをデータを分けずにHDD2個に対して同時に保存するRAIDレベル、RAID1です。ミラーリングとも呼ばれます。
RAID1は以下のような特徴があります。

  • HDDを2個使用
  • 読み書き速度は1個のときと同じ
  • HDDが1個壊れても大丈夫
  • 容量は総容量の半分

RAID1はミラーリングと呼ばれる通り、同じデータを2個のHDDに書き込むため、速度は1個のときとほぼ同じですが、1個壊れてもすぐデータが失われるという事態にはなりません。

RAID1を構成したときのHDDの容量も1個分と同じ容量になります。

ちなみに3個以上のHDDを用いてRAID1は構成できませんが、独自に3個以上でRAID1を構成できるように仕様を拡張したRAID1Eというものも存在するようです。この場合、容量はHDD3個以上用いても1個分ですが、最後の1個になるまでデータが失われることはありません。

 

・RAID5

1つのデータをデータを2つに分け、さらにデータを保証する「パリティ」と呼ばれるデータを1つ生成・付加し保存するRAIDレベル、RAID5です。
RAID5は以下のような特徴があります。

  • HDDを3個以上使用
  • 書き込み速度はRAID0よりは1個のときよりは速い
  • HDDが1個壊れても大丈夫
  • 容量は<使用したHDDの個数-1>個分

RAID1は同じデータを保存していましたが、RAID5ではパリティを保存することによりRAID1に比べるとHDDを効率的に使用できます。
HDD1個分をパリティ保存領域として使用するので、たとえば図のように3個でRAID5を構成していれば総容量は2個分ということになります。

2つに分けたデータとパリティデータはランダムにHDDに書き込まれますので、パリティデータがどこかのHDDに固定して保存されているわけではありません。なお、パリティの保存先が固定されているRAID4というものもありますが、あまり一般的ではありません。

速度に関しては、パリティを「計算する」という処理が間に入る分、RAID0ほど速くはならない、というのが実情です。
しかし、近年のハードウェアの高性能化により今のRAID5はそこそこ高速です。

RAID5はHDD3個以上が要件なので、極端な話、10個でも構成できますが、パリティは1個分のため、故障も1個までしか耐えられず、2個以上壊れるとデータは失われます。

ちなみにパリティデータを2個生成するRAID6というのもあります。
RAID6はHDDを4個以上使用し、2個のHDDをパリティ保存領域として使用します。

RAID6

 

・RAID10?

RAIDレベルには「10」というのがあります。
しかし「10」というのは当て字です。
実際はRAID0とRAID1を組み合わせたものをRAID10と呼んでいます。
RAID10は以下のような特徴があります。

  • HDDを4個以上の偶数個使用
  • 読み書き速度が約2倍
  • HDDは最大2個まで壊れても大丈夫(HDD4個の場合)
  • 容量は最大で使用したHDDの個数の半分

RAID0とRAID1の両方の特徴を持っています。
RAIDの組み合わせですが、組み合わせ方によっては厳密には呼び方が微妙に違います。
「RAID0+1」、「RAID1+0」の2つです。
同じじゃないの? と思われがちですが、実は信頼性が微妙に違います。

 

・RAID0+1

 

RAID0+1

RAID0+1はRAID0グループを2個作り、その後にそのRAID0グループをRAID1で構成してしまうものです。

一見、丈夫そうな構成に見えますが、HDD#1が故障したとすると・・・

 

RAID0+1_warning

左側のRAID0グループは壊れたことになり、HDD#0は壊れていなくても壊れたのと同じ意味になってしまいます。
次にHDD#2あるいは#3が壊れるとデータは失われます。実質RAID0+1は1個までの故障までしか耐えられないのです。

RAID0+1_broken

・RAID1+0

それではRAID1+0はどうでしょう?
RAID1+0はRAID0+1とは逆で、RAID1グループを2個作ってから、そのRAID1グループをRAID0で構成するものです。

RAID1+0

先ほどのRAID0+1と同じように、HDD#1→HDD#3の順でHDDが壊れたと仮定した場合を見てみると・・・

RAID1+0_safe

HDD#1が壊れた時点でもRAIDは崩れることなく動作しており――

RAID1+0_safe

さらにHDD#3が壊れたとしてもデータが失われることなく動作することが分かります。
信頼性はRAID1+0の方が高いことが分かります。これは使用するHDDの本数が増えれば増えるほど信頼性は高くなっていきます。
しかし――

RAID1+0_broken

 

このような壊れ方をしてしまった場合はデータは失われてしまいます。
壊れたHDDは交換すれば元通りのRAID1に自動復旧しますので、HDDが1個壊れた時点で新品に早急に交換することが重要です。

RAID0+1の場合はRAID0が崩れてしまっているので、ただ新品に交換してもRAID0を手動で再構成してやらないと元通りには戻りません。

これらのことからRAID0+1はRAID1+0に比べて信頼性も低く、また手間がかかるので推奨されていません。

ちなみにRAIDの組み合わせによっては、RAID50やRAID55ということもできるそうです。

 

人はデータを守るために様々な手法を考えてきましたが、RAIDが一番手間がかからず安価で済ませることができると思います。

一番いいのは災害対策もできる拠点間ミラーリング(例えば北海道の自宅と沖縄の実家でデータをミラーリングする、など)ですが、莫大なコストがかかるので、できる人はどうぞ、ということにしておきます。。。

本当はバックアップも取っておいた方がいいですよ~

 

※HDD搭載済
   
※HDD別売り
    
投稿日:
カテゴリー: PC