ERM
redis
runtime_error
ai_generated
partial
SENTINEL:故障转移未达到法定人数
SENTINEL: quorum not reached for failover
ID: redis/sentinel-quorum-failure
85%修复率
87%置信度
1证据数
2024-03-05首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| Redis 6.2.0 | active | — | — | — |
| Redis 7.0.0 | active | — | — | — |
| Redis 7.2.0 | active | — | — | — |
根因分析
哨兵节点因网络分区或哨兵实例不足无法就主节点故障达成一致,阻止了故障转移。
English
Sentinel nodes could not agree on a master failure due to network partitions or insufficient sentinel instances, preventing failover.
官方文档
https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/解决方案
-
Ensure at least 3 sentinel instances are running with quorum set to 2. Use SENTINEL SET <master-name> quorum 2 and verify connectivity with INFO sentinel.
-
Check network connectivity between sentinels: use redis-cli -h <sentinel-ip> -p 26379 PING to each sentinel. Fix firewall rules or DNS resolution.
-
If a sentinel is down, restart it individually and wait for it to rejoin the quorum. Monitor with SENTINEL MASTER <master-name>.
无效尝试
常见但无效的做法:
-
75% 失败
Manual failover bypasses sentinel checks and can cause split-brain if the original master recovers.
-
70% 失败
A high quorum makes failover harder to achieve, increasing downtime during real failures.
-
80% 失败
Simultaneous restart can cause all sentinels to lose state and delay failover; it does not fix network issues.