도구스개발

분산 합의 쿼럼 계산기

노드 수를 넣으면 Raft·Paxos식 과반수 쿼럼과 PBFT식 비잔틴 장애 허용 쿼럼, 그리고 각각이 견딜 수 있는 최대 장애 노드 수를 계산합니다.

쿼럼(최소 응답 수)

3 / 5대

최대 허용 장애 노드 수 2대

전체 노드 수5대
쿼럼(최소 응답 수)3대
최대 허용 장애 노드 수 (f)2대
장애 허용을 하나 더 늘리려면7대부터

quorum = ⌊N/2⌋+1, f = ⌊(N−1)/2⌋입니다. 5대 중 3대만 응답하면 결정을 내릴 수 있고, 최대 2대까지 죽거나 응답하지 않아도 시스템은 계속 동작합니다.

쿼럼은 겹쳐야 안전합니다.
어떤 두 쿼럼을 골라도 반드시 겹쳐야 서로 다른 결정이 동시에 확정되는 일이 없습니다. 크래시 장애는 응답이 없는 것만 가능하지만, 비잔틴 장애는 노드가 거짓 응답을 보낼 수도 있어 겹치는 부분에 정직한 노드가 최소 하나는 있어야 합니다 — 그래서 같은 N이라도 비잔틴 쿼럼은 크래시 쿼럼보다 작아지지 않고, 노드 수가 늘수록 그 차이도 벌어집니다.

사용 방법

  1. 1클러스터의 전체 노드 수(N)를 입력합니다.
  2. 2장애 모델을 고릅니다 — 죽거나 응답이 없는 것만 가정하면 크래시 장애, 거짓 응답까지 가정하면 비잔틴 장애입니다.
  3. 3결정을 내리기 위해 모아야 하는 최소 응답 수(쿼럼)와, 그 구성이 견딜 수 있는 최대 장애 노드 수를 확인합니다.
  4. 4한 단계 더 견디려면 노드가 몇 개까지 늘어야 하는지도 함께 보여 줍니다.

자주 묻는 질문

결정을 내리기 전에 어떤 두 쿼럼을 골라도 반드시 겹쳐야 서로 다른 결정이 충돌하지 않습니다. 크래시 장애만 가정하면 과반수(quorum = ⌊N/2⌋+1)면 충분하고, 이때 최대 허용 장애 수는 f = ⌊(N−1)/2⌋입니다. Raft(Ongaro–Ousterhout, 2014)와 Paxos 계열이 이 방식을 씁니다.

크래시 장애는 응답이 없는 것만 가능하지만, 비잔틴 장애는 노드가 거짓 응답을 보낼 수도 있습니다. 그래서 과반수만으로는 부족하고 N ≥ 3f+1(f = ⌊(N−1)/3⌋)이 필요하며, 쿼럼도 단순히 2f+1이 아니라 ⌊(N+f)/2⌋+1로 계산해야 합니다. N이 3f+1과 정확히 같을 때만 이 값이 2f+1과 같아지고, 노드가 여유 있게 많으면 그보다 커집니다. PBFT(Castro–Liskov, 1999)가 이 방식을 씁니다.

쿼럼 두 개(각 Q개)를 N개 중에서 뽑으면 교집합은 최소 2Q−N개입니다. 이 교집합에 정직한 노드가 최소 하나는 있으려면 교집합이 비잔틴 노드 수 f보다 커야 합니다(2Q−N > f). 이를 Q에 대해 풀면 Q = ⌊(N+f)/2⌋+1이 나옵니다. N=3f+1을 대입하면 정확히 2f+1이 되어 PBFT 논문의 값과 일치하지만, N이 그보다 크면(여유 노드가 있으면) 쿼럼도 커져야 안전합니다.

아닙니다. 크래시 장애는 2개, 비잔틴 장애는 3개 단위로 늘어야 장애 허용 수(f)가 하나 증가합니다. 예를 들어 크래시 장애에서 4노드와 5노드는 둘 다 f=1·f=2로 다르지만, 3노드와 4노드는 둘 다 f=1로 같습니다 — 이 경우 4번째 노드는 가용성만 살짝 늘릴 뿐 장애 허용 수는 그대로입니다.

핵심 합의 로직은 대부분 이 식을 그대로 따르지만, 배포 형태(옵저버 노드 포함 여부, 리더 전용 카운트 여부)에 따라 실제 설정 화면의 노드 수 정의가 조금씩 다를 수 있습니다. 여기서는 합의에 직접 참여하는 노드 수만을 N으로 가정합니다.

전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 네트워크 분할(파티션)이나 리더 선출 타이밍 같은 다른 실패 모드는 다루지 않습니다. 순수하게 "몇 대가 응답해야 안전한가"만 계산합니다.
  • 비잔틴 쿼럼 공식은 PBFT(Castro–Liskov, 1999)의 안전조건(2Q−N > f)에서 직접 유도한 것으로, 이 계산기가 임의의 N을 받기 위해 일반화한 결과입니다. N=3f+1인 최소 구성에서는 논문의 2f+1과 정확히 일치합니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 7일 · 결과는 참고용 추정치입니다.