Keepalived介紹
Keepalived是一款高可用軟件,它的功能主要包括兩方面:
1)經過IP漂移,實現服務的高可用:服務器集羣共享一個虛擬IP,同一時間只有一個服務器佔有虛擬IP並對外提供服務,若該服務器不可用,則虛擬IP漂移至另外一臺服務器並對外提供服務;
2)對LVS應用服務層的應用服務器集羣進行狀態監控:若應用服務器不可用,則keepalived將其從集羣中摘除,若應用服務器恢復,則keepalived將其從新加入集羣中。html
Keepalived能夠單獨使用,即經過IP漂移實現服務的高可用,也能夠結合LVS使用,即一方面經過IP漂移實現LVS負載均衡層的高可用,另外一方面實現LVS應用服務層的狀態監控,如圖所示:bash
Keepalived原理
Keepalived的實現基於VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗餘協議),而VRRP是爲了解決靜態路由的高可用。VRRP的基本架構如圖所示:服務器
虛擬路由器由多個VRRP路由器組成,每一個VRRP路由器都有各自的IP和共同的VRID(0-255),其中一個VRRP路由器經過競選成爲MASTER,佔有VIP,對外提供路由服務,其餘成爲BACKUP,MASTER以IP組播(組播地址:224.0.0.18)形式發送VRRP協議包,與BACKUP保持心跳鏈接,若MASTER不可用(或BACKUP接收不到VRRP協議包),則BACKUP經過競選產生新的MASTER並繼續對外提供路由服務,從而實現高可用。架構
Keepalived安裝配置負載均衡
下載地址:http://www.keepalived.org/download.html
ide
Linux下以默認配置安裝:oop
tar –zxvf keepalived-1.2.7.tar.gz cd keepalived-1.2.7 ./configure make make install
或:spa
yum install keepalived
執行腳本:3d
/etc/init.d/keepalived start|stop|restart
因爲keepalived服務之間須要使用VRRP協議進行通訊,所以須要進行防火牆配置:rest
iptables –I INPUT –i eth0 –d 224.0.0.0/8 –j ACCEPT iptables –A INPUT –i eth0 –p vrrp –j ACCEPT iptables –A OUTPUT –p vrrp –o eth0 –j ACCEPT
配置文件:
/etc/keepalived/keepalived.conf |
Keeaplived的配置包含三部分:
1)全局配置,配置郵件等;
2)VRRPD配置,配置VRRP實例;
3)LVS配置,配置LVS的應用服務器;
若只是單獨使用keepalived,經過IP漂移實現服務的高可用,則只須要配置前兩部分就能夠,若結合LVS使用,實現LVS負載均衡層的高可用、應用服務層的狀態監控,則還須要配置第三部分。
Keepalived應用示例
1)單獨使用(IP漂移)
如圖所示,兩臺機器192.168.80.12八、192.168.80.129共享虛擬IP 192.168.80.130,192.168.80.12八、192.168.80.129的keepalived配置分別以下所示:
global_defs { router_id LVS_DEVEL } vrrp_instance_VI_1{ state MASTER interface eth0 virtual_router_id 201 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.80.130/24 dev eth0 } } |
global_defs { router_id LVS_DEVEL } vrrp_instance_VI_1{ state BACKUP interface eth0 virtual_router_id 201 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.80.130/24 dev eth0 } } |
•啓動192.168.80.12八、192.168.80.129上的keepalived
192.168.80.128成爲MASTER,佔有VIP 192.168.80.130並對外組播VRRP協議包
192.168.80.129無變化
•關閉192.168.80.128上的keepalived
192.168.80.128再也不佔有VIP 192.168.80.130
192.168.80.129成爲MASTER,佔有VIP 192.168.80.130並對外組播VRRP協議包
2)結合LVS使用
LVS高可用集羣經過VIP 192.168.80.130對外提供服務,負載均衡層有兩臺服務器192.168.80.13二、192.168.80.135,負責分發服務請求至應用服務層,經過keepalived實現這兩臺服務器的負載均衡高可用(和單獨使用keepalived的應用示例相同),應用服務層也有兩臺服務器192.168.80.13三、192.168.80.134,負責對外提供Web應用服務,經過keepalived實現這兩臺服務器的狀態監控。
192.168.80.13二、192.168.80.135上的keepalived配置在全局配置、VRRPD配置上和單獨使用keepalived的應用示例相同,但須要添加LVS配置,以下所示:
virtual_server 192.168.80.130 80 { delay_loop 6 lb_algowlc lb_kind DR persistence_timeout 50 protocolTCP real_server 192.168.80.133 80 { weight1 TCP_CHECK{ connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.80.134 80 { weight 1 TCP_CHECK{ connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } |
啓動服務後,負載均衡層經過VIP對外提供服務,並將服務請求轉發至133和134這兩臺應用服務器上:
132和135這兩臺負載均衡服務器中,132佔有VIP 130,並對133和134進行狀態監控:
•應用服務狀態監控
若133和134這兩臺應用服務器中,134服務不可用,則keepalived將其從應用服務器集羣中摘除,待其恢復後,又從新加入,在其恢復前,負載均衡層將應用請求均轉發至133,保證服務可用。
•負載均衡服務高可用
若132和135這兩臺負載均衡服務器中,132服務不可用,則keepalived將VIP 130漂移至135,由135負責應用請求轉發,保證服務可用。