wakatonoの戯れメモ

はてなダイアリーから引っ越してきました。

「RAIDはバックアップじゃない」って、当然でわ…

とあるところで某氏が「RAIDはバックアップじゃない」と言ってるのを聞く。
「バックアップだ」と屁理屈こねる輩もいるかもしれないが、そんな輩は信用ならんので放置w

RAID=Redundant Arrays of Inexpensive Disksの略で、安価なディスクを使って冗長構成をとったシステムとでもいうのかな。ディスクそのものは安価になってるけどね。

ちなみにRAID0は、単なる複数ディスクを1つの領域に見せるだけまでしかやってないので、冗長度のかけらもないことをお忘れなく。

RAIDの利点と欠点への序曲

RAIDの利点は、ディスクが1個壊れても、そのディスクを交換して復旧かければ問題ないという点か。要は、単一ディスクの障害が起こっても、有意なデータの損失はないというのが利点という感じかな。性能上の欠点はあるにしても、「冗長性」については、運用一つで失われる危険性があることをお忘れなく

RAIDの欠点〜性能以外は運用面で出る欠点〜

RAIDの特徴は、同じスペックのディスクを複数個ならべるという点であり、RAID1についてもRAID5についてもなるべくアクセス頻度が均等になるように配慮されている。
ところが通常は、RAIDを新規に構成する場合には、RAIDを構成するディスクはほぼ同時期に同じ流通経路を通じて調達されることが多い。
これが何を意味するかというと、同じロットの製品が納入されるということであり、

  • 同じ時期に同じラインでほぼ同じ条件で製造された工業製品
  • 同じ日に使い始められる
  • 同じ条件で使われる

ということになる。短期的にはいいかもしれないが、信頼性を過信してそのまま放置していると、

  • 同時期に壊れ始めるという可能性が大きい。

ということになる。
これが何を意味するか?というと、

  • ディスク破損→ディスク交換→復旧の間(この間は冗長度がない)に、また別のディスクが壊れる可能性がある

ということを意味する。
このリスクを減らすためには、

  • 同じスペックのスペアディスクを用意する(1個〜2個)
  • 3ヶ月〜半年など、一定期間ごとにディスクを交換する
  • 交換した後のディスクは、また別の交換のために保管しておく

というように、予防保守を行うことで対処する必要がある。使ってる条件について、なるべく使用期間のバラつきが出るようにしてやることで、故障発生時期をずらすことが出来る。
個人のシステムでここまでする必要があるか?というあたりは疑問だがw、RAID組んでまでというものについては、一考の余地はあるだろう。

RAIDが担保するものとバックアップが担保するもの

RAIDが担保するのは、(予防保守が行われている前提で)ハードウェアの耐障害性、バックアップが担保するのは、ある時点でのデータセットである。
耐障害性をあげれば、データセットが瞬時に失われる(もしくは部分障害によるデータの欠損は回避できる)だろう。しかし、ユーザの操作ミス/プログラムのバグによるデータの消失からはRAIDはデータを守ってくれない。これを守れるのは、バックアップもしくはLVMでのスナップショット取得くらいだろう。