본문 바로가기

Redis Sentinel의 quorum과 과반(majority)이 다른 단계인 이유

조회 1 · 댓글 0
빅토르최빅토르최작성자2026년 9월 3일

Sentinel을 3대 띄우고 quorum을 2로 잡았으니 2대만 동의하면 페일오버가 되겠지 하고 넘어가기 쉽습니다. 그런데 quorum과 과반(majority)은 서로 다른 단계라서 quorum만 채운다고 승격이 일어나지는 않습니다. 공식 문서에도 quorum은 실패를 감지하는 데만 쓰인다(the quorum is only used to detect the failure)고 못 박아 두었습니다.

정리하면 이렇습니다. quorum은 마스터를 객관적 다운(ODOWN)으로 표시해 페일오버 절차를 시작할지 판단하는 값입니다. 실제로 페일오버를 수행하려면 Sentinel 하나가 리더로 선출되어 승인을 받아야 하고, 리더 선출에는 전체 Sentinel의 과반 투표가 필요합니다. 예를 들어 Sentinel 5대에 quorum이 2면, 2대가 동시에 마스터 불통에 동의하면 그중 하나가 페일오버를 시작하려 하지만, 실제 승인은 최소 3대(과반)가 살아 있어야 떨어집니다. 그래서 소수 파티션에 갇힌 쪽에서는 페일오버가 일어나지 않습니다.

결국 quorum 값은 감지 민감도를 조절할 뿐이고, 승격 가능 여부는 살아 있는 Sentinel이 과반이냐로 결정됩니다. Sentinel을 3대 이상 홀수로 두는 이유가 여기에 있습니다. 배포한 구성이 quorum과 과반을 모두 만족하는지는 SENTINEL CKQUORUM으로 확인할 수 있습니다.

# sentinel.conf: 마지막 인자가 quorum
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000

# 감지 정족수와 승인 과반이 모두 충족되는지 점검
redis-cli -p 26379 SENTINEL CKQUORUM mymaster

# quorum은 재등록 없이 런타임 변경 가능
redis-cli -p 26379 SENTINEL SET mymaster quorum 2

🔗 https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/

로그인 후 답글을 남길 수 있습니다.