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