安裝HAProxy請參考
http://www.cnblogs.com/kgdxpr/p/3272861.html
安裝Keepalived
1、下載安裝依賴包
yum install -y wget make gcc openssl-devel popt-devel
2、下載、安裝Keepalived
wget http://www.keepalived.org/software/keepalived-1.2.8.tar.gz tar zxvf keepalived-1.2.8.tar.gz cd keepalived-1.2.8 ./configure --prefix=/usr/local/keepalived make make install
3、安裝成功后做成服務模式。
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
4、配置文件
mkdir -p /etc/keepalived/ cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf chmod +x /etc/init.d/keepalived vi /etc/keepalived/keepalived.conf
global_defs { router_id LVS_DEVEL } #監測haproxy進程狀態,每2秒執行一次 vrrp_script chk_haproxy { script "/etc/keepalived/chk_haproxy.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER #從服務器為BACKUP interface eth0 virtual_router_id 51 priority 100 #從服務器要低於100 advert_int 1 mcast_src_ip 10.10.3.171 #MASTER服務器IP,從服務器寫從服務器的IP authentication { auth_type PASS auth_pass 111111 } track_script { chk_haproxy #監測haproxy進程狀態 } virtual_ipaddress { 10.10.3.170 #虛擬IP } }
chk_haproxy.sh內容
vi /etc/keepalived/chk_haproxy.sh
status=$(ps aux|grep haproxy | grep -v grep | grep -v bash | wc -l) if [ "${status}" = "0" ]; then /etc/init.d/haproxy start status2=$(ps aux|grep haproxy | grep -v grep | grep -v bash |wc -l) if [ "${status2}" = "0" ]; then /etc/init.d/keepalived stop fi fi
啟動和關閉服務
service keepalived start
service keepalived stop
高可用測試
1、將Master上的keepalived停止 查看Master上的日志 tail -f /var/log/messages Sep 23 01:24:34 181 Keepalived[3125]: Stopping Keepalived v1.2.8 (09/23,2013) Sep 23 01:24:34 181 Keepalived_vrrp[3127]: VRRP_Instance(VI_1) sending 0 priority Sep 23 01:24:34 181 Keepalived_vrrp[3127]: VRRP_Instance(VI_1) removing protocol VIPs. 發現Master釋放了VIP 再查看Backup上的日志 Sep 23 01:20:26 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Transition to MASTER STATE Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Entering MASTER STATE Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) setting protocol VIPs. Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.10.3.180 Sep 23 01:20:27 182 Keepalived_healthcheckers[2886]: Netlink reflector reports IP 10.10.3.180 added 發現Backup綁定了VIP 2、將Master上的keepalived啟動 查看Master上的日志 tail -f /var/log/messages Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) Entering MASTER STATE Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) setting protocol VIPs. Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.10.3.180 Sep 23 01:27:56 181 Keepalived_healthcheckers[3449]: Netlink reflector reports IP 10.10.3.180 added 發現Master綁定了VIP 再查看Backup上的日志 Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Received higher prio advert Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Entering BACKUP STATE Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) removing protocol VIPs. Sep 23 01:21:15 182 Keepalived_healthcheckers[2886]: Netlink reflector reports IP 10.10.3.180 removed 發現Backup釋放了VIP