知识卡片

Monitor用Paxos仲裁为什么必须是奇数个

专业/工作 · 241

内容

Monitor不存数据,只维护整个集群状态的权威副本(谁是OSD、PG分布、CRUSH规则等),多个monitor之间用Paxos算法做分布式决策,任何一次状态变更都需要超过半数节点确认才算生效。这就是为什么monitor数量要设成奇数——3个节点时只要2个存活就能凑够半数以上,5个和4个能容忍的故障数相同(都是1个)但4个不比5个更省资源,奇数个恰好是”用最少节点换到同样容错能力”的配置。发散:这套仲裁逻辑和ZooKeeper、etcd的leader选举、以及分布式锁服务要求奇数节点的原因完全一致,是所有基于多数派共识的系统的通用约束。

参考来源

《Ceph分布式存储学习指南》第3章《Ceph架构和组件》