首页/数据/备份与容灾速查/仲裁与法定人数 Quorum

仲裁与法定人数 Quorum

用多数派机制决定谁能成为主:奇数个投票成员(节点或仲裁者)避免 1:1 僵局,配合 witness 在双节点场景提供决胜票。

备份与容灾速查数据更新于 2026-10-13

仲裁与法定人数 Quorum

用多数派机制决定谁能成为主:n 个投票成员需要 n/2+1 同意才能选出主节点,避免 1:1 的对等僵局。投票成员通常取奇数(3、5)并跨故障域分布;只有两个节点时引入见证节点(witness)提供决胜票。仲裁设计的核心目标很直接——任何单点故障都不应同时影响多数派。

基本信息

适用平台Pacemaker/Corosync、etcd、ZooKeeper、数据库集群等
基本规则多数派当选:n 个投票成员需 n/2+1 同意
部署建议投票成员取奇数,分布在不同的故障域
见证节点双节点场景引入仲裁者打破平票,通常不承载业务数据

典型使用场景

  • 数据库主备集群:决定故障时哪一侧成为主
  • 分布式协调服务(etcd、ZooKeeper):保证同一时刻只有一个主
  • 跨机房集群:在第三处放仲裁节点,避免机房间网络分区导致双主
  • 集群扩容规划:调整投票成员数量时重新评估多数派门槛
  • 演练验证:模拟单点故障,确认集群仍能选出主并继续服务

部署组合示意

部署组合示意
# 同城:主 + 备 + 仲裁节点(第三处小节点或云上轻量实例)
# 跨城:主 + 备 + Witness(放在第三个故障域)
# 三节点集群:节点分布在三个机柜或三个可用区,任意一个故障仍有多数派
# 原则:任何单点故障都不应同时影响多数派
# 观测:仲裁节点或见证节点的网络可达性要纳入监控与告警
# 禁忌:把仲裁与主节点放在同一机柜、同一供电、同一交换机下

常见配置对比

配置容错能力风险
双节点无仲裁不能自动定主分区时各认为自己是主,形成双主
双节点加仲裁容忍单点故障仲裁与主同机房时失去意义
三节点奇数容忍一个节点故障节点集中在一个机柜时同时失效
五节点容忍两个节点故障跨域通信延迟影响写性能
仲裁节点不承载业务数据,但它的网络可达性决定集群在分区时的行为,同样要纳入监控。仲裁的决策规则一旦确定,变更要谨慎:缩小多数派门槛的窗口内集群会变得脆弱。

易错点

  • 两个节点加一个仲裁,但仲裁与主节点在同一机房:机房故障时集群整体不可用
  • 偶数投票成员导致平票僵局:故障时无法自动定主,需要人工介入
  • 仲裁节点长期离线未被发现:真正分区时集群行为与设计不符
  • 用共享存储代替仲裁却忽略存储本身是单点:存储故障导致两侧同时不可用

数据来源与参考

  • 分布式共识基础(quorum 多数派机制)
  • 集群软件文档(Pacemaker / etcd 仲裁说明)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌