標籤:
在Leader觸發failover之前,首先wait數秒(隨即0~5),以便讓其他sentinel執行個體準備和調整。如果一切正常,那麼leader就需要開始將一個salve提升為master,此slave必須為狀態良好(不能處於SDOWN/ODOWN狀態)且權重值最低(redis.conf中)的,當master身份被確認後,開始failover
A)“+failover-triggered”: Leader開始進行failover,此後緊跟著“+failover-state-wait-start”,wait數秒。
B)“+failover-state-select-slave”: Leader開始尋找合適的slave
C)“+selected-slave”: 已經找到合適的slave
D) “+failover-state-sen-slaveof-noone”: Leader向slave發送“slaveof no one”指令,此時slave已經完成角色轉換,此slave即為master
E) “+failover-state-wait-promotition”: 等待其他sentinel確認slave
F)“+promoted-slave”:確認成功
G)“+failover-state-reconf-slaves”: 開始對slaves進行reconfig操作。
H)“+slave-reconf-sent”:向指定的slave發送“slaveof”指令,告知此slave跟隨新的master
I)“+slave-reconf-inprog”: 此slave正在執行slaveof + SYNC過程,如過slave收到“+slave-reconf-sent”之後將會執行slaveof操作。
J)“+slave-reconf-done”: 此slave同步完成,此後leader可以繼續下一個slave的reconfig操作。迴圈G)
K)“+failover-end”: 容錯移轉結束
L)“+switch-master”:容錯移轉成功後,各個sentinel執行個體開始監控新的master。
Redis failover過程