一、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指定日志文件

       KeepAlived+LVS集群架构方案学习笔记_路由器  

       KeepAlived+LVS集群架构方案学习笔记_监控_02