RAID — 分けて速くするか、重ねて守るか
ディスクはいつか必ず壊れます。だから複数台をまとめて1台のように使い、速さ・容量・壊れにくさを買い足すのが RAID です。
考え方は2つしかありません。本をバラして何人かに分けて持たせる(速い。でも1人いなくなると読めない)か、同じ本を2人に持たせる(安全。でも冊数は半分)か。RAIDの各レベルは、この2つの配分を変えているだけです。下の図1でディスクをクリックして壊し、データが生き残るかを試してください。
パリティは「答え合わせの数字」
RAID 5 のふしぎは、4台のうち3台分のデータを置きながら、1台壊れても平気なところです。タネは P と書かれたブロック――パリティです。
パリティは、同じ段に並ぶデータを XOR(排他的論理和) で混ぜた結果です。XORには「同じ式にもう一度通すと元に戻る」という性質があり、1 ⊕ 2 ⊕ 3 = P が成り立つなら 2 ⊕ 3 ⊕ P = 1 も成り立ちます。つまりどのブロックが欠けても、残り全部から計算し直せる。図1でRAID 5のディスクを1台壊すと、この計算式が段ごとに走って中身が戻る様子が見えます。
ただし代償があります。1ブロック書き換えるたびにパリティも計算して書き直す必要があり、書き込みは他のレベルより重くなります。さらに、2台目が壊れたらもう復元できません。式が2つ欠けた連立方程式は解けないのと同じです。
RAIDはバックアップではない
最後に、いちばん誤解されやすい点を。RAIDが守ってくれるのはディスクという部品の故障だけです。誤って削除したファイル、ウイルスによる暗号化、上書きミス――これらは全ディスクに忠実にコピーされます。ミラーもパリティも、消せと言われれば正しく消すのです。
RAIDは「止めずに動かし続けるための仕組み」、バックアップは「過去の状態に戻すための仕組み」。役割が違うので、片方でもう片方の代わりにはできません。
- ストライピング
- データをブロックに分けて複数ディスクへ分散する方式。同時アクセスで速くなる。
- ミラーリング
- 同じ内容を別ディスクにもう一部持つ方式。容量は半分になるが、片方が生きていれば読める。
- パリティ
- 同じ段のデータをXORで混ぜた検査用の値。欠けたブロックを計算で復元できる。
- リビルド
- 故障ディスクを交換したあと、残りのディスクから中身を書き戻す作業。時間がかかる。
- ホットスペア
- 普段は待機し、故障が起きた瞬間に自動で組み込まれる予備ディスク。
まとめ
RAIDは「バラして速くする」と「重ねて守る」の配合レシピです。全部バラせば RAID 0(速い・もろい)、全部重ねれば RAID 1(安全・容量半分)、その間を計算で埋めるのが RAID 5(容量75%・1台まで)、両方を組み合わせたのが RAID 10(容量半分・速くて強い)。どれを選ぶかは「何を諦めるか」を選ぶことです。そして忘れてはいけないのが、RAIDはバックアップの代わりにならないということ。