はじめに
RAID 5 は、データを複数のディスクに分散して保存しながら、1台のディスクが壊れてもデータを復元できる優れた仕組みです。そのカギを握るのが 「パリティ(parity)」 という仕組み。そしてその計算には XOR(排他的論理和) という論理演算が使われています。
今回はこの「パリティ」や「XOR」を、初心者でも直感的にわかるように、具体的なビット演算の例を交えてやさしく解説します!
RAID 5 ってどんなしくみ?
RAID(Redundant Array of Independent Disks)は、複数のハードディスク(HDD)やSSDを組み合わせて、信頼性や性能を高める技術です。その中でも RAID 5 は、以下のような特徴があります:
- 📦 データを複数のディスクに分散して保存
- 🔐 パリティ情報を使って、1台のディスクが壊れてもデータを復元できる
- ⚙️ パリティはすべてのディスクに分散して保存される(1台に偏らない)
パリティ(Parity)ってなに?
パリティは、簡単に言えば「データが壊れたときのためのヒント」です。
たとえば、次のように 2台のディスクにデータを保存し、もう1台にパリティを保存します:
ディスクA | ディスクB | パリティC |
---|---|---|
10110011 | 11001010 | ???????? |
この「パリティC」は、AとBのデータを「XOR計算」して求めます。
XORってなに?
XOR(エックス・オー・アール(エクス・オア))は、コンピュータの中でよく使われる論理演算のひとつで、日本語では「排他的論理和(eXclusive OR)」と呼ばれます。「inclusive OR(論理和)」が「どちらか一方、または両方が1なら1」なのに対して、XORは「どちらか一方が1のときだけ1」になる演算です。
🔢 XORの基本ルール:
両方が違う(0と1、または1と0) → 結果は 1
両方が同じ(0と0、または1と1) → 結果は 0
入力A | 入力B | XOR結果 |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
👉 「同じなら0、ちがえば1」 と覚えるとシンプルです。
この性質により、XORは元の値を求めるのにも使えるという便利な特徴を持っています。
✅ 実際のパリティ計算の例(ビット単位)
🎲 データ:
- ディスクA →
10110011
- ディスクB →
11001010
🧮 パリティC を求める(A XOR B):
A: 1 0 1 1 0 0 1 1
B: 1 1 0 0 1 0 1 0
--------------------
C: 0 1 1 1 1 0 0 1 ← これがパリティ!
💥 壊れても大丈夫!復元のしくみ
仮に「ディスクA」が壊れてしまっても、残っているディスクBとパリティCがあれば、次のように復元できます:
🎯 ディスクA = パリティC XOR ディスクB
C: 0 1 1 1 1 0 0 1
B: 1 1 0 0 1 0 1 0
--------------------
A: 1 0 1 1 0 0 1 1 ← 元通り!
XORは「片方がわかっていれば、もう片方を求められる」性質があるので、このような復元が可能になります。
📌 パリティの保存場所はどうなってる?
RAID 5 では、パリティが毎回同じディスクに保存されるのではなく、各ディスクに分散されるように設計されています。
これにより、読み書きのバランスがよくなり、パフォーマンスも上がります。
🧭 まとめ
- RAID 5 のパリティは「データを守るヒント」
- XORという計算で、簡単にパリティを作れる
- パリティと残ったデータがあれば、壊れたディスクの内容を復元できる
- 「同じなら0、違えば1」というシンプルなルール
RAID 5は、この「簡単で強力な仕組み」を活かして、コストと安全性をバランスよく実現しています。