使用 HAproxy 和 keepalived 的连接同步建议

使用 HAproxy 和 keepalived 的连接同步建议

我设法让 HAproxy 在故障转移配置中工作,正如架构.txt使用keepalived的文档。

我使用了 CentOS 5.5、来自 epel repo 的 HAproxy rpm(haproxy-1.3.25-1.el5)以及来自 CentOS 测试 repo 的 keepalived rpm(keepalived-1.1.15-0.el5.centos)。

这是我的 keepalived 配置

vrrp_script chk_haproxy {           # Requires keepalived-1.1.13
    script "killall -0 haproxy"     # cheaper than pidof
    interval 2                      # check every 2 seconds
    weight 2                        # add 2 points of prio if OK
}

vrrp_instance VI_1 {
    interface eth0
    state MASTER
    virtual_router_id 51
    priority 101                    # 101 on master, 100 on backup
    virtual_ipaddress {
    10.0.0.30            
    10.0.0.31            
    }
    track_script {
        chk_haproxy
    }
}

我现在想要的是当主节点出现故障时,我的备份节点能够接管实际打开的连接。

我听说这可以通过多种方式完成(conntrackd),使用 LVS 功能等...我希望得到关于实现它的最简单和更强大的方法的建议,使用可用的 rpm 是最好的。

谢谢G

答案1

lvs_sync_daemon_inteface选项使 MASTER 能够保存连接状态并将其与 BACKUP 同步。尝试以下操作:

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    lvs_sync_daemon_interface eth0
    virtual_router_id 51
    priority 101                    # 101 on master, 100 on backup
    virtual_ipaddress {
    10.0.0.30            
    10.0.0.31            
    }
    track_script {
        chk_haproxy
    }
}

相关内容