keepalived介紹

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負責應用請求轉發,保證服務可用。

相關文章
相關標籤/搜索