首页/系统与基础设施/存储速查/分布式存储仲裁与裂脑防护
分布式与对象存储70 条

分布式存储仲裁与裂脑防护

分布式存储用多数派仲裁保证同一时刻只有一个权威副本集,成员数取奇数并跨站点增设见证节点可提升容错;裂脑防护依赖多数派规则、租约与切换前的强制隔离,缺一不可。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​‌​​​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​‌​​‌​‌‌​​​‌​​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌‌​​​‌​‌‌‌​‌​‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌‌​‌​‌​‌‌​‌‌​‌​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​​‌​​‌‌‌​​‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

仲裁与裂脑

集群要保证同一份数据只有一个权威副本集,靠的就是多数派仲裁:只有超过半数的成员达成一致,集群才允许继续写入。当网络把集群切成两半、两边都以为自己才是正统时,就是裂脑。防护的核心不是让两边都能写,而是让任何一侧都不具备独立做主的条件。

基本信息

适用类型Ceph MON、etcd、ZooKeeper、数据库主从集群
决定因素成员总数与多数派比例
常见部署奇数节点,跨站点时增设仲裁站点
关键概念租约、隔离(fencing)、见证节点

典型使用场景

  • 双机房部署:两站点各占一半容量,需第三处放仲裁避免谁都做不了主
  • 虚拟化与超融合:宿主机与存储同物理机,故障域重叠时更易裂脑
  • 数据库主库切换:需要隔离旧主才能安全提升新主
  • 集群缩容:从偶数节点减到奇数节点的操作必须一次到位
  • 机架级故障演练:验证切一半链路后集群是否安全停写而非双写

验证仲裁余量

验证仲裁余量
ceph -s                       # 看 quorum 是否包含全部 MON 与是否只读
ceph mon stat                 # 确认 MON 成员数与当前参与仲裁的数量
ceph mon dump                 # 核对 MON 地址与选举策略(以官方文档为准)
# 演练思路:断开一组 MON 的链路,确认集群转为只读而不是继续双写

成员数与容错

成员数可容忍失效数说明
31常见最小生产配置
52跨站点更稳,写延迟略增
41没有额外收益,反而更易失去多数派
20任一节点故障即无法仲裁,禁止用于生产

裂脑防护手段

  • 多数派规则:少于一半成员时拒绝写入,宁可停写也不双写
  • 隔离机制:切换前先强制切断旧主的网络与电源通路,避免旧主继续服务
  • 租约与超时:协调者授予的租约到期前旧主必须停止服务
  • 见证节点:只参与投票不存数据,降低跨站点仲裁成本
  • 监控与演练:定期演练单站点断链,验证停写与恢复路径符合预期
仲裁节点的作用是打破平票,不承担数据读写;它所需要的带宽与容量极小,但链路质量必须稳定。
跨站点同步复制时,写延迟取决于两端往返时延与写入路径的交集;把仲裁放到远距离站点会同时放大延迟与误判概率,规划前先实测链路。

易错点

  • 用两个仲裁节点凑数,任一故障就丧失多数派,可用性反而下降
  • 没有隔离机制就做主从切换,旧主仍可写造成两边数据分叉
  • 把容错数与可用容量混为一谈,按容量一半规划站点却忽略仲裁要求
  • 从未演练断链场景,真发生分区时才发现集群行为与预期不符

数据来源与参考

  • Ceph 官方文档:Monitor 仲裁与分区行为
  • Raft / Paxos 共识算法中的多数派与租约机制

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/distributed-quorum-split-brain.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌​​‌​​​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​‌​​‌​‌‌​​​‌​​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌‌​​​‌​‌‌‌​‌​‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌‌​‌​‌​‌‌​‌‌​‌​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌​​​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​​‌​​‌‌‌​​‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​