ERM redis runtime_error ai_generated partial

SENTINEL:故障转移未达到法定人数

SENTINEL: quorum not reached for failover

ID: redis/sentinel-quorum-failure

其他格式: JSON · Markdown 中文 · English
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.

generic

官方文档

https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/

解决方案

  1. 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.
  2. Check network connectivity between sentinels: use redis-cli -h <sentinel-ip> -p 26379 PING to each sentinel. Fix firewall rules or DNS resolution.
  3. If a sentinel is down, restart it individually and wait for it to rejoin the quorum. Monitor with SENTINEL MASTER <master-name>.

无效尝试

常见但无效的做法:

  1. 75% 失败

    Manual failover bypasses sentinel checks and can cause split-brain if the original master recovers.

  2. 70% 失败

    A high quorum makes failover harder to achieve, increasing downtime during real failures.

  3. 80% 失败

    Simultaneous restart can cause all sentinels to lose state and delay failover; it does not fix network issues.