web-dev-qa-db-ja.com

HAproxyおよびkeepalivedとの接続同期の提案

Keepalivedを使用して architecture.txt ドキュメントで提案されているように、フェイルオーバー構成でHAproxyを機能させることができました。

CentOS 5.5、epelリポジトリのHAproxy rpm(haproxy-1.3.25-1.el5)、CentOSテストリポジトリのkeepalived rpm(keepalived-1.1.15-0.el5.centos)を使用しました。

これは私のキープアライブ構成です

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
    }
}

私が今望んでいるのは、マスターに障害が発生したときに、バックアップノードが実際の接続を引き継ぐことができるようにすることです。

これは、LVS機能などを使用して、複数の方法(conntrackd)で実行できると聞きました...利用可能なrpmを使用するのが最善である、それを達成するための最も簡単でより堅牢な方法についての提案があります。

ありがとうG

4
golemwashere

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
    }
}
1
quanta