linux-sre-handbook

03-故障转移设计

故障检测

方法 原理 响应速度
心跳 (Heartbeat) 定期 ping 秒级
外部探测 LB 健康检查 秒级
Gossip 协议 节点间相互探测 秒-分级
租约 (Lease) 过期未续约即判定故障 分钟级

故障转移模式

冷备 (Cold Standby)

温备 (Warm Standby)

热备 (Hot Standby)

Keepalived 示例

# /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    state MASTER           # 或 BACKUP
    interface eth0
    virtual_router_id 51
    priority 100           # MASTER 优先级更高
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass secret
    }
    virtual_ipaddress {
        10.0.0.100/24      # VIP
    }
    track_script {
        chk_nginx          # 跟踪 Nginx 健康
    }
}

脑裂 (Split-Brain)

两个节点都认为自己是主:

降级策略

当部分功能不可用时,优雅降级:

延伸阅读