高森太郎のノート

このページについて

このページは、高森太郎がノート的に何でも書くページです。
主に勉強したこと、自分が知った知識や方法などを中心に、適当に、メモ的に、書き留めてます。

 | 

2011年10月04日 (火曜日)

[][][]データの保存の可能性・復旧の容易性から考えるRAID選択 データの保存の可能性・復旧の容易性から考えるRAID選択 - 高森太郎のノート を含むブックマーク はてなブックマーク - データの保存の可能性・復旧の容易性から考えるRAID選択 - 高森太郎のノート

最近はRAIDが非常にお手軽になってきた。

たとえばマザーボードがデフォルトでRAID対応しているのは当然で、RAIDボックスと呼ばれる、HDD複数個積んで、さらにRAIDのチップを積んでいてUSBなりeSATAなりでつなぐだけでストレージとして使う事の出来る製品も近頃お手頃になってきている。以前こう言った製品は数十万以上のオーダーは当然するものだった。

一方、よくある誤解として

  • RAIDはバックアップである*1
  • RAID化すれば必ず速度は上がる*2
  • RAIDにすると故障が減る*3
  • RAIDであればデータの保存は万全*4

と言う誤解も多い。

といわけで、個人あるいは、全体で余りお金をかけられない企業なんかで、特にデータ保存の可能性、復旧の容易性からRAIDの選択を考える。

結論から言うと、今の段階で一番個人が使うRAIDで優れているのは、RAID1 ミラーリングではないかと思う。

それは

  • HDDの容量が十分に増え、高速化しているため、容量、速度共にHDD一台で十分
  • 故障したときに
    • RAID復旧もHDDが2台しかないので、迷わず交換できる。
    • パリティ計算が入らないので比較的高速に復旧できる
    • 最悪故障してないPCあるいはUSBのHDDケースにでも突っ込めば読めるお手軽さ
    • 故障中でも速度低下が無い
  • 装置が安い
  • 装置を選ばない

と言う所からだと思う。

理由は以下にだらだらと。

なお、今回の話はPCなりに直接つなぐための補助記憶装置の話をしているので注意。家庭/個人用、あるいはSOHO用のNASでも似たような使い方はされるだろうが、かなり話は違ってくる。*5


RAIDの種類

RAIDの種類はいろいろある。

詳しくはWikipedia:RAID等を参照していただくとして、個人がマザーボードに搭載されているもの、あるいは安価な個人向けRAID boxで使えるRAIDで選択肢に入るものは限られてくるため、それらを抽出して以下に示す。

なお、ここで「補助記憶」といっているのは、HDD/SSDと置き換えて読んでください。

RAID Level/名称基本的な説明使用可能な補助記憶の台数容量速度データ保護/抽出/復旧の容易性備考等
RAIDなしただ装置をつなぐだけ1台~そのままそのまま壊れたらその装置に入ってたデータは読めない。ただし特殊なソフトや業者への依頼での吸い出しは比較的用意
RAID0
ストライピング
2つの補助記憶装置にまたがってデータを保存しておき、同時に読み出すことで高速化をする基本的には2台そのまま早い1台壊れたら全て駄目。ただし複数台使用している分、故障可能性は1台より高い。RAIDコントローラが無ければ読めない。基本的にデータ保護に使うためのRAIDではない。今時のHDDは速度も速いし、SSDもあるのでよほどの理由でも無い限り個人で積極的に選ぶ理由は無いかも
RAID1
ミラーリング
2台のHDDに同じデータを同時に書き込む2台以上。普通は2台で運用する全補助記憶のうち一番容量の少ない装置の容量1台分の容量基本的には変わらない。読み込みを複数台同時にかけて早く読む装置もある最後の1台が壊れるまでデータは保存される。RAIDコントローラの故障でも、素直に作れば違うPCに入れても読めるデータ保護に使うRAIDでは一番シンプルで、使用する台数を増やせば増やすほど信頼性が素直に上がる。ただし容量の使用効率悪いと言う欠点が。
RAID5
パリティ分散記憶
複数台の記憶装置にまたがってデータを保存し、パリティと呼ばれる誤り訂正符号をそれぞれの補助記憶装置に記録しておくことで、1台までの補助記憶装置の故障に耐える3台~5台程度が限度全補助記憶のうち、一番容量の少ない装置の容量×(台数-1)読み出しは早い。書き込みは遅いと言われるが、どちらもRAIDコントローラが悪いと途端に遅くなる1台の故障までデータは保護される。復旧は多くの場合故障した補助記憶装置を入れ替えて行うが、パリティ計算が入るので遅い一時は速度、容量効率を兼ね備えた万能RAIDのように宣伝されたが、いろいろとデメリットも知っておく必要がある
RAID6
パリティ分散記憶
RAID5と同じ理屈だが、さらにもう1台、合計2台までの障害に耐えられるようにパリティを保存する。4台~10台程度が限度全補助記憶のうち、一番容量の少ない装置の容量×(台数-2)読み出しは早い。書き込みは遅いと言われるが、どちらもRAIDコントローラが悪いと途端に遅くなる。RAID5よは遅い同時2台の故障までデータは保護される。復旧は多くの場合補助記憶装置を入れ替えて行うが、パリティ計算が入るので遅いたまにRAID5は信頼性が低い、RAID6は信頼性が高いと宣伝されるが…いろいろとデメリットを知っておく必要がある
(番外編)
RAID Z
ZFSと言うフィルシステムを用いる分散記憶。故障に耐えられる装置の数によって、RIAD Z1,RAID Z2などとも言われる2台~超超大規模ストレージまで全補助記憶のうち、一番容量の少ない装置の容量×(台数-故障しても耐えられる装置の数)作成するときに耐えられる故障ドライブの数を設定できる。ただ復旧には知識が必要マシンパワーに依存する。設定にも寄るが、マシンの性能を使いきるまで高速化できるが、マシンが高速ではない場合はむしろ遅い…忘れてください

こんな感じである。

独断と偏見でのランク付け

で、この中でそれぞれの要素に独断と偏見でランク付けすると以下のようになる。

まずは速度

順位RAID Level / 名称備考
1ZFS RAID Zスペック依存が激しいが高速
2RAID 0複数読み書きするため基本的には高速。かつてはランダム読み込みが遅いとも言われた
3RAID 5複数読みするため基本的には高速。ただ書き込みは計算を伴うため遅い
4RAID 6複数読みするため基本的には高速。ただ書き込みは計算を伴うため遅い。RAID5に比べても2台分計算するため遅い
5RAID なしそのまま
5RAID 1基本的にはRAIDなしと同じ。ただし読み込みだけは複数同時読み込みをするものも存在するらしく、その場合若干早い

ただし、RAID5,RAID6については使用されるRAIDコントローラに大きく依存する。きちんとした高速なRAIDコントローラを用いれば相当早く駆動できるため、下手なRAID Z環境よりも高速で信頼性も高い。ただし値段も高い。(数十万以上)

一方アレなRAIDコントローラだと途端に遅い事がある。最近では流石に無いだろうが、一時期スピードが遅すぎてスペック表には機能的に存在するにもかかわらず、実際には使い物にならないチップセット内蔵機能など酷いものも存在した。最近では激安RAID BOXやら、NAS製品なんかでそう言う酷い見かけ倒しの製品が出回っているので注意が必要である。特に「最大速度」という表示に景気のいい数字が並んでいるのだが、それが読み込みなのか書き込みなのか表記が無いだとか言うものが結構あり、そういう怪しい装置は要注意である(※経験済み)。

次に容量効率

順位RAID Level / 名称容量
1RAID なしそのまま。全て使える
2RAID 0一番容量の少ない補助記憶装置の容量×台数
3RAID 5一番容量の少ない補助記憶装置の容量×(台数-1)
4RAID 6一番容量の少ない補助記憶装置の容量×(台数-2)
5RAID 1一番容量の少ない補助記憶装置の容量
1~5RAID Z一番容量の少ない補助記憶装置の容量×(台数-パリティ数)

これは単純にこう言う形になる。ただし物理的な補助記憶装置の障害への耐性となるとひっくり返り

順位RAID Level / 名称耐えられる故障台数
1RAID 1最後の一台が故障するまで全てのデータが保護される
2RAID 62台までの故障で全てのデータが保護される
3RAID 51台までの故障で全てのデータが保護される
4RAIDなし故障したドライブのデータは読めないが、故障していないドライブのデータは読める
5RAID 01台でも故障するとすべて読めない
1~5RAID Zパリティ数による

という形になる。さらに論理的・コントローラの障害に対する体制だが…こちらは環境や条件に大きく依存するため一概にはいえないし、諸説あるものの

順位RAID Level / 名称理由等
1RAID 1素直に作ってあれば、一台だけ取り出し単純に別のPCにつなぐだけでデータ吸い出しができる
2RAIDなし故障したドライブのデータは読めないが、故障していないドライブのデータは別のPC等につなぐだけでデータ吸い出しができる
3RAID Zコントローラ(装置)が破損しても、他の装置に移してインポート出来る可能性が高いが操作に知識が必要。しかし本当に壊れてしまうと、専門業者に依頼しても難しい
3RAID 5コントローラの性能に依存する。インポートという概念がないものも。操作に注意と知識が必要。しかし本当に壊れてしまうと無理。
3RAID 6コントローラの性能に依存する。インポートという概念がないものも。操作に注意と知識が必要。しかし本当に壊れてしまうと無理。
3RAID 0コントローラの性能に依存する。インポートという概念がないものも。操作に注意と知識が必要。しかし本当に壊れてしまうと無理。

といった感じになる。

このほか、さらに独断と偏見で、一般に使うパソコン、ミッドレンジ以下のワークステーションレベルで現実的に使われるレベルの装置の信頼性と言うと

順位RAID Level / 名称理由等
1RAID 1シンプルなので実装がおかしいことはまずない
2RAIDなし
3RAID 0比較的シンプルなので実装がおかしいことはそれほど無い。しかし、RAIDコントローラの性能が遅く、HDDやSSDの速度上昇に対応できなくてボトルネックになる事もある
3RAID 5ライトキャッシュ(書き込みを高速化するための仕組み)+バッテリバックアップが付いているカードは高いので一般用製品には付いてない。すると思わぬ電源断などによるリスクを抱えることに。実装がおかしいこともあって、速度低下を招いたり、CPUに負担をかけたりすることもある。
3RAID 6ライトキャッシュ(書き込みを高速化するための仕組み)+バッテリバックアップが付いているカードは高いので一般用製品には付いてない。すると思わぬ電源断などによるリスクを抱えることに。実装がおかしいこともあって、速度低下を招いたり、CPUに負担をかけたりすることもある。
番外RAID Z本人の知識に大きく依存する。何とも言えない

結論

以上を総合して考えると、多くの人はRAID 5又は、組み合わせRAIDであるRAID 1+0,0+1等を選ぶ人が多いようだ。しかし、個人的にはもはやRAID 5は個人向けには不要なのでは無いかと思う。

と言うのは、現時点で3TBのHDDが1万円を切って購入できる時代だから。そしてそれらが十分な速度性能を持っているからである。

たとえば5400rpmのHDD。以前なら比較的低速なのでブートドライブには適さないとカテゴライズされていた。しかし

  • 記録密度の向上
  • 新物理フォーマットの採用
  • キャッシュの容量増加やそれを利用するコントローラの性能向上

などによって、すでに高速な性能をもちつつある。

大容量のデータをガリガリ読み込みながらする様な仕事、たとえば高解像度の動画編集だとかCAEだとかそう言う用途には確かに足りないかも知れない。しかし一般家庭で大容量と言っても、せいぜい30GB程度のムービーファイルが最大だろうし、大容量であればあるほど連続読み込みが多い野ではないか。この程度ならば現実的な時間で待てるレベルの速度は十分にあると言える。

さらに、ストレージの高速化を求めたいのであれば、昔ならRAIDあるいは高価なSASドライブと言う選択肢だったが、今はSSDと言う選択肢がある。下手なHDDをRAIDにするよりも高速な事も多く、何よりシンプルである。

これらのことから、RAIDに対する期待として、高速化、まとめて大容量化するという機能は重視されなくなってきていると思う。

一方、他のメディアが追従できないほど大容量化したことで故障した際のリスクは増加しており、より重要度を増しているのがデータ保護である。

というわけで、冒頭の結論通り、家庭用あるいは小規模企業のミッドレンジまでのワークステーション程度であれば、一番シンプルでよいRAIDの選択肢はRAID 1 ミラーリングではないか、と思う。

とりあえず言える事は、安易に安いRAID BOXを買ってきたとか、説明書読んでたらRAIDが出来るとかで、「信頼性が高いです!」と言う無邪気な宣伝文句と、なんかすごそうと言う漠然としたイメージから、必要も無いのに安易にRAID 5や6、1+0といった複雑なRAIDを選らんだあげく、故障して復旧に失敗し、データ何とか吸い出せませんか等と人の所に持ってきて無茶ぶりをしたりするのはやめていただきたいということである。

*1:違います。冗長化という範疇に入る。またRAIDと一般に呼ばれるものでも冗長化対応が無いものもある

*2:コントローラに依存する。また速度上昇よりも信頼性に重きをおたものもあるので間違い

*3:台数が増えるので故障は増えます。故障してもデータを失いにくくなったと言うだけ

*4:こう言う事を言う人は一度痛い目にあってみればいいとおもうよ。

*5:たとえばNASでRAID1運用した場合、RAIDの特性は変わらないが、RAID装置そのものが破損したら本体をばらして、直接PCにつないでも簡単には読めなかったりする。また複数人がアクセスする場合、要求される速度も変わってくる

 | 
ページの一番上へ