一、KEEPALIVED起初就是专门为LVS而设计的,用来监控LVS集群里各个节点的状态,后来加入了VRRP虚拟路由器冗余协议的功能,除了配合LVS,也能做其他服务的的高可用软件(NGINX,HAPROXY),VRRP的功能是解决单点路由障碍,能保证网络稳定、不间断地运行,同时也具有LVS failover功能。
也就是说KeepAlived的功能主要有healthcheck和failover。主LVS宕机之后,备LVS将通过VRRP协议来接管。
工作原理:keepalived主节点工作的时候,会不断向备节点广播心跳信息,用以告诉备节点自己还活着,一旦主节点发生宕机,备节点无法检测到心跳信息,就会调用自身的接管程序,接管主节点的IP和服务资源。当主节点恢复正常的时候,备节点又会释放IP和服务资源交还给主节点。
二、VRRP协议:虚拟路由器冗余协议,它的出现就是为了解决单点路由故障,保证网络稳定不间断地运行,VRRP通过一种竞选协议机制来将路由任务交给某台VRRP路由器。
在一个VRRP虚拟路由器中,有多台物理路由器,但只有一台MASTER路由器处于工作状态,其他都是BACKUP,VRRP协议让每一个物理路由器参与竞选,最终获胜的就是MASTER。MASTER拥有虚拟路由器的IP,集群架构中,业务节点就是通过这个IP地址作为静态路由,这台MASTER要负责转发发送给网关的包和相应ARP请求。
Virtual Route Redundancy Protocol
三、KeepAlived实战
1. 安装keepalived
wget http://www.keepalived.org/software/keepalived-1.1.9.tar.gz
安装keepalived最好也检查一下, 如不做软连接,需要configure --with-kernel-dir=指定目录
[root@asling-87 usr]# ll /usr/src/linux
lrwxrwxrwx. 1 root root 33 Nov 17 2015 /usr/src/linux -> kernels/2.6.32-573.7.1.el6.x86_64
./confgiure
make && make install
2 .
[root@asling-87 init.d]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
[root@asling-87 init.d]# ls /etc/init.d/keepalived
/etc/init.d/keepalived
3.
[root@asling-87 etc]# ls /usr/local/etc/sysconfig/keepalived
/usr/local/etc/sysconfig/keepalived
[root@asling-87 etc]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
4.
[root@asling-87 etc]# cp /usr/local/sbin/keepalived /usr/sbin/
[root@asling-87 etc]# mkdir /etc/keepalived -p
四、KeepAlived配置IP接管功能
! Configuration File for keepalived
global_defs {
router_id LVS_87
}
vrrp_instance VD-1 {
state MASTER
interface eth0
virtual_router_id 87
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.0.87/24
}
}
五、KeepAlived指定日志文件