Virtual SAN – RAID-5/6 には Witness がないのは何故か
前回のエントリでは RAID-5/6 の仕組みや動作について説明しました。今回は前回のエントリで書き残していた RAID-5/6 での Witness について言及します。
まぁ、タイトル通り Witness がないという結論なのですが。RAID-0/1 含め、改めて調べ直すと色々でてくるもんです。
RAID-1 でのタイブレーク
RAID-1 (Mirroring) 構成では、ミラーされたコンポーネントに加え、Witness コンポーネントを合わせてタイブレークを実現していました。コンポーネントが 2 つにミラーされていれば (FTT=1)、1 つの Witness コンポーネントが追加されます。RAID-1 構成では、コンポーネント数が必ず奇数となるように Witness コンポーネントが追加されます。
RAID-1 での Witness ネタはまたいずれ。
RAID-5/6 でのタイブレークだと !?
RAID-5/6 の場合はどうでしょうか?実は RAID-5/6 の構成では、そもそもタイブレークが必要な状況は発生しないので、Witness コンポーネントは必要ありません。
RAID-1 では、Witness ではないコンポーネントが 1 つでも残っていればデータアクセスは可能でした。それ故に、ネットワーク パーティションが発生した時に、どちらのグループがそのコンポーネントにアクセス出来るかを決定するタイブレークが重要な問題でした。
しかし、RAID-5/6 はそうではありません。RAID-5 では、フラグメントとパリティを含むコンポーネントが 4 つありますが、少なくとも 3 つは生き残っていないと全データにアクセス出来ません。1 つでも 2 つでも残りのデータを復元できません。RAID-6 では、フラグメントとパリティを含むコンポーネントが 6 つになり、少なくとも 4 つは生き残っていないと全データにアクセス出来ません。1 つでも 2 つでも 3 つでも残りのデータを復元できません。つまり、データを完全に復元できる 2 つのグループが存在し得ないため、Witness コンポーネントを導入してタイブレークの心配を解消する以前に、タイブレーク自体が必要ありません。
まとめ
- RAID-5/6 には Witness コンポーネントは存在しない
- RAID-5/6 ではデータが復元できる数のコンポーネントを掴めた方が生き残る
- RAID-5 では 3 つのコンポーネントを掴める方が生き残る
- RAID-6 では 4 つのコンポーネントを掴める方が生き残る