searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ceph mon选主原理

2023-06-29 02:54:58
49
0

选举触发条件


1)mon启动,bootstrap过程中;
2)处理其它mon选举消息过程中,如果自身满足条件,也会发起选举;
3)ceph命令触发quorum变动时;
通常是前2种情况

 

选举原则


1、发起选举的monitor会给monmap中的其它mon发送OP_PROPOSE消息,收到消息的mon决定是否投票(回复OP_ACK消息)给当前mon;
2、发起选举的mon会首先投自己一票;
3、如果收到OP_PROPOSE消息的monitor的rank更小,不会投票回复OP_ACK消息,会自己发起选举、或者已经发起选举等待自己选举成功;
4、monitor只会投票给比自己rank值小的monitor;
5、monitor收到多个OP_PROPOSE消息时,如果已经投票给rank更小的mon,则不会投票给当前mon;如果之前投票的mon rank值较大,则也会再次投票给当前mon;
6、投票给了其他mon,如果自己曾发起了选举,结束自己的选举(electing_me置为false,清空acked_me);
7、如果在选举过程中,monmap中存在monitor无法连接(down掉,网络异常等),通常要等到选举超时(5s)才会选举成功;
8、epoch为奇数代表选举中,为偶数代表稳定状态;

 

 

最终结果


Rank值最小的mon获胜,成为leader。

 

0条评论
0 / 1000
l****n
2文章数
0粉丝数
l****n
2 文章 | 0 粉丝
l****n
2文章数
0粉丝数
l****n
2 文章 | 0 粉丝
原创

ceph mon选主原理

2023-06-29 02:54:58
49
0

选举触发条件


1)mon启动,bootstrap过程中;
2)处理其它mon选举消息过程中,如果自身满足条件,也会发起选举;
3)ceph命令触发quorum变动时;
通常是前2种情况

 

选举原则


1、发起选举的monitor会给monmap中的其它mon发送OP_PROPOSE消息,收到消息的mon决定是否投票(回复OP_ACK消息)给当前mon;
2、发起选举的mon会首先投自己一票;
3、如果收到OP_PROPOSE消息的monitor的rank更小,不会投票回复OP_ACK消息,会自己发起选举、或者已经发起选举等待自己选举成功;
4、monitor只会投票给比自己rank值小的monitor;
5、monitor收到多个OP_PROPOSE消息时,如果已经投票给rank更小的mon,则不会投票给当前mon;如果之前投票的mon rank值较大,则也会再次投票给当前mon;
6、投票给了其他mon,如果自己曾发起了选举,结束自己的选举(electing_me置为false,清空acked_me);
7、如果在选举过程中,monmap中存在monitor无法连接(down掉,网络异常等),通常要等到选举超时(5s)才会选举成功;
8、epoch为奇数代表选举中,为偶数代表稳定状态;

 

 

最终结果


Rank值最小的mon获胜,成为leader。

 

文章来自个人专栏
CEPH
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0