負載均衡器裏面,HAProxy比較出名了,可是若是隻用一臺HAProxy,則會出現單點故障。html
這個時候,該KeepAlived出馬了。java
http://www.cnblogs.com/dkblog/archive/2011/07/06/2098949.html (參考文章)linux
----------------------------------------------------------------------環境介紹redis
OS: Ubuntu 12.04後端
虛擬IP: 192.168.56.2負載均衡
KeepAlived + HaProxy : 192.168.56.101 (master)測試
KeepAlived + HaProxy : 192.168.56.102 (backup)日誌
原本應該用HaProxy測試,爲了簡便,直接用兩個redis測試。code
後端對應着兩個redis 分別安裝在192.168.56.101,192.168.56.102上。router
----------------------------------------------------------------------
而後101(master)上的配置爲
! Configuration File for keepalived global_defs { notification_email { 837500869@qq.com } notification_email_from 837500869@qq.com smtp_server smtp.qq.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER interface eth5 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.56.2 } }
102(backup)的配置爲
! Configuration File for keepalived global_defs { notification_email { 837500869@qq.com } notification_email_from 837500869@qq.com smtp_server smtp.qq.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP interface eth5 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.56.2 } }
PS:由於我只須要VIP浮動,負載均衡交給了HAProxy,因此KeepAlived的負載均衡功能沒有使用。
分別在101和102上啓動KeepAlived ---
啓動以前,看看以下:
daemon_mode默認值爲0,而賦值的語句以下:
由於咱們不須要 start_check_child(); 因此啓動參數加上-P便可,前臺打日誌,則加上 -ln
./bin/keepalived -f ./keepalived/etc/keepalived/keepalived.conf -P -ln
而後看VIP是否能夠ping
估計是iptables未允許vrrp協議.
iptables -A INPUT -p vrrp -j ACCEPT 須要保存? iptables -L 是列舉出當前的規則 ( )
再嘗試看看,仍是不行,百度了半天,原來配置文件須要絕對路徑。
./bin/keepalived -f /root/keepalived-1.2.8/keepalived/etc/keepalived/keepalived.conf -P -ln
這下能夠了
ping的結果:
接下來啓動2個redis.
啓動101->啓動102->啓動測試程序->掛掉101->啓動101
結果:
---後來發現一個問題,這裏並無對HAProxy的監測。