mark 一下,今日被同事问及keepalived的应用,和lvs(各自的功能有点混啦)。标记一下:

    Keepalived 是一款高可用软件,运行在LVS之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换(Failover)。在TCP/IP协议中,它可以工作在3、4、5层。

    在Layer 3的工作方式是:keepalived定期向服务器群中的服务器发送ICMP数据包。以服务器的ip地址是否有效作为服务器工作正常与否的标准。在Layer 4的工作方式是:以TCP端口的状态来决定服务器是否正常工作,例如对于80端口的web server,如果没有监测到80端口,keepalived会将其从服务器集群剔除,当web  server 工作正常后,keepalived 会自动将web server加入到服务器集群中。在Layer 5的工作方式是:具体取决于自己设定的脚本啦。

     keepalived的主要特点:

     1、keepalived是LVS的扩展项目,keepalived与LVS之间具备很好的兼容性。配置简洁

     2、对服务器群组中的server进行健康检查,实现对失效机器或者服务的故障隔离

     3、负载均衡之间的失败切换(failover)。通过VRRPv2 发送组播来实现(组播地址:224.0.0.18)

     4、iptables的启用不会影响keepalived的运行

     5、Keepalived产生的VIP是整个系统对外的IP。

     6、与LVS结合可以很好的实现负载均衡和高可用(LVS实现负载均衡,Keepalived实现高可用)

     附上一张原理图:

       Keepalived 高可用

      WatchDog 负责监控checkers和vrrp 进程

      Checkers 负责真是服务器的监控检查 healthchecking,(keepalived)最主要的功能

      VRRP STACK 负责负载均衡器之间的失败切换Failover。

      IPVS wrappers 用来设定的规则到内核IPVS代码

      Netlink Reflector 用来设定vrpp的vip 地址。

                                             参考《构建高可用的Linux集群》