知识卡片
Monitor为何取奇数个
内容
Monitor 集群不存任何用户数据,只靠 Paxos 在多个 Monitor 间选出一个 Leader,对集群状态(各类 Map)做一致性决策;这种多数派仲裁机制要求”半数以上节点存活”集群才可用,也就是常说的法定人数(quorum)。把 Monitor 总数设成奇数,是因为在同样能容忍的故障数下,奇数比相邻偶数更省一个节点:3 台和 4 台都只能容忍 1 台故障,5 台和 6 台都只能容忍 2 台故障,多出来的那台偶数节点并不会换来更高的容错能力,纯属浪费。发散:这跟 Raft、ZooKeeper 等所有基于多数派仲裁的一致性协议偏好奇数节点数,是同一个算术道理,并非 Ceph 独有的设计。
参考来源
《Ceph分布式存储实战》第2章《存储基石RADOS》