keepalived介紹
Keepalived介紹
Keepalived是一款高可用軟件,它的功能主要包括兩方面:
1)通過IP漂移,實現服務的高可用:服務器集群共享一個虛擬IP,同一時間只有一個服務器占有虛擬IP並對外提供服務,若該服務器不可用,則虛擬IP漂移至另一臺服務器並對外提供服務;
2)對LVS應用服務層的應用服務器集群進行狀態監控:若應用服務器不可用,則keepalived將其從集群中摘除,若應用服務器恢復,則keepalived將其重新加入集群中。
Keepalived可以單獨使用,即通過IP漂移實現服務的高可用,也可以結合LVS使用,即一方面通過IP漂移實現LVS負載均衡層的高可用,另一方面實現LVS應用服務層的狀態監控,如圖所示:
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
Linux下以默認配置安裝:
1 2 3 4 5 |
tar –zxvf keepalived-1.2.7. tar .gz
cd keepalived-1.2.7
. /configure
make
make install
|
或:
1 |
yum install keepalived
|
執行腳本:
1 |
/etc/init .d /keepalived start|stop|restart |
由於keepalived服務之間需要使用VRRP協議進行通信,因此需要進行防火墻配置:
1 2 3 |
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.128、192.168.80.129共享虛擬IP 192.168.80.130,192.168.80.128、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.128、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.132、192.168.80.135,負責分發服務請求至應用服務層,通過keepalived實現這兩臺服務器的負載均衡高可用(和單獨使用keepalived的應用示例相同),應用服務層也有兩臺服務器192.168.80.133、192.168.80.134,負責對外提供Web應用服務,通過keepalived實現這兩臺服務器的狀態監控。
192.168.80.132、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負責應用請求轉發,保證服務可用。
keepalived介紹