クォーラム【quorum】

高い可用性が求められる業務用のコンピュータシステムやストレージシステムでは、同等の機能を持つ複数の機器(ノード)が協調して一つのサービスを提供する構成がよく用いられる。このような環境では、一部のノードに障害が発生した場合でも、残りのノードで処理を継続する必要がある。
しかし、ネットワーク分断などによりノード群が複数のグループに分かれ、互いに連絡が取れなくなってしまうと、双方が正当な稼働系であると判断して同時に書き込みを行う事態が生じ得る。これを防ぐために、あらかじめ定められた数以上のノードが合意している場合のみサービスを継続できるという仕組みにしておく。
この合意形成に必要な最低限の数、およびその数を満たしたノードの集合のことをクォーラムという。“quorum” の原義は会議などの「定足数」である。合意形成は多数決(過半数)の原理を採用することが多く、例えば、3つのノードで構成されるクラスタでは、2つ以上が相互に通信可能である場合にのみ正常系とみなす設計が採られる。
過半数以外のクォーラム
理論的には、クォーラムの決定方法は「その方法で決めたどのクォーラム同士も必ず共通部分を持つ」という条件を満たせばよい。「過半数が集まればクォーラムとする」という決定方法はこの条件に従っているが、他の方法でもこの条件を満たすことができるため、必ずしもクォーラムが過半数/多数決である必要はない。
例えば、ノードが平方数(整数の2乗)であれば、ノードを格子状(正方形)に並べ、「ある行すべてと、その行より下の各行から適当に一つずつ選ぶ」という方法でも、必ずクォーラム間に共通ノードが生まれる。この決定法を「グリッド」(grid)と呼び、半数より遥かに少ない数でクォーラムを決定することができる。