一、keepalived两大核心
(1)健康检查
keepalived根据TCP/IP参考模型的第三层、第四层、第五层交换机制监测每个服务节点的状态,专门用来监控集群系统中各个服务节点的状态。如果某个服务器节点出现异常,或者工作出现故障,keepalived将检测到,并将出现故障的节点从集群系统中剔除。这些操作自动完成,需要人工完成的知识修复出现故障的服务节点。
原理:采用TCP三次握手,icmp请求,http请求,udp echo请求等方式对负载均衡器后面真实的服务器(通畅就是承载真是业务的服务器)进行保活;
图例1:发生错误
图例2:自动清理后
(2)故障切换
之后keepalived又加入了VRRP(虚拟路由冗余协议)功能,VRRP出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,因此,keepalived一方面具有服务器状态监测和故障隔离功能,另外一方面也有HAcluster功能。
原理:主要应用于配置了主备模式的负载均衡器,利用VRRP维持住被负载均衡器的心跳,当负载均衡器出现问题时,由备负载均衡器承载对应的业务,从而在最大限度上减少流量宋史,并提供服务的稳定性。
图例1:发生宕机
图例2:故障切换之后
二、keepalived原理介绍
(1)VRRP(虚拟路由冗余协议)
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backuo,master上面有一个对外提供服务的VIP(该路由器在聚友网内的其他机器的·默认路由为该VIP),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据vrrp的优先级来选举一个backup当master。这样来保证路由器的高可用。
(2)切换机制与心跳
keepalived dirctors之间的故障切换转移,是通过vrrp协议来实现的。
在keepalived dirctors正常工作时,主directors节点会不断的向备节点广播心跳信息,用以告诉备节点自己还活着,当主节点发生故障时备节点就无法继续检测到主节点的心跳,进而调用自身的接管程序,接管主节点的IP资源及服务。而主节点恢复时,备节点会释放主节点故障时自身截关的IP资源及服务,恢复到原来自身的备用角色。
(3)运行状态与隔离
keepalived 对服务器运行状态和故障隔离的工作原理: