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负责应用请求转发,保证服务可用。