SENTINEL
redis
runtime_error
ai_generated
partial
哨兵:故障转移中止 - 主节点变更后无法达到仲裁数
SENTINEL: failover aborted - no reachable quorum after master change
ID: redis/redis-sentinel-down-after-master-failover
85%修复率
83%置信度
1证据数
2024-06-20首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| redis 6.2 | active | — | — | — |
| redis 7.0 | active | — | — | — |
| redis 7.2 | active | — | — | — |
| redis 7.4 | active | — | — | — |
根因分析
在主节点故障转移后,新主节点的配置纪元不一致,导致哨兵实例失去仲裁并中止故障转移过程。
English
After a master failover, the new master's configuration epochs are inconsistent, causing sentinel instances to lose quorum and abort the failover process.
官方文档
https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/解决方案
-
Manually reset the sentinel state for the affected master: `SENTINEL RESET mymaster` on each sentinel. Then monitor with `SENTINEL MASTER mymaster` to verify quorum.
-
Force a new failover by running `SENTINEL FAILOVER mymaster` on the leader sentinel after ensuring all sentinels agree on the new master's configuration.
-
Check and synchronize sentinel configuration files across all nodes, ensuring `sentinel monitor` and `sentinel auth-pass` are identical, then restart sentinels one by one.
无效尝试
常见但无效的做法:
-
Restarting all sentinel instances simultaneously
75% 失败
Simultaneous restart can cause all sentinels to lose state, delaying failover detection and potentially causing split-brain scenarios.
-
Manually setting the old master back as leader
95% 失败
The old master may be unreachable or have stale data; forcing it back can cause data loss and inconsistency with replicas.
-
Increasing sentinel quorum to 5
80% 失败
Higher quorum makes it harder to reach consensus, especially in degraded networks, and does not fix the epoch mismatch.