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实现高可用)
附上一张原理图:
WatchDog 负责监控checkers和vrrp 进程
Checkers 负责真是服务器的监控检查 healthchecking,(keepalived)最主要的功能
VRRP STACK 负责负载均衡器之间的失败切换Failover。
IPVS wrappers 用来设定的规则到内核IPVS代码
Netlink Reflector 用来设定vrpp的vip 地址。
本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/934499,如需转载请自行联系原作者