Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability HA),其实两种不同的含义:
广义上来说,是指整个系统的高可用性
狭义上来说,就是指主机的冗余和接管
一、Keepalived是什么?
Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态。根绝TCP/IP参考模型的第三层、第四层、第五层交换机制查看每个服务节点的状态,如果某个服务节点出现异常,keepalived会将出现故障的服务节点从集群系统中祛除出去。这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。
Keepalived加入了VRRP的功能,VRRP(Vritrual Router Redundancy Protocol , 虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行。因此keepalived一方面具有服务器状态查看和故障隔离功能,另外一方面也有HA cluster功能。
二、keepalived的作用
⚫ 高可用-可持续的服务器质量
⚫ 负载均衡-横向扩展
⚫ 实现对失效服务器的隔离-通过健康监测,保证服务的可用性
⚫ 实现:vrrp协议实现(冗余网关路由协议)
三、keepalived的体系结构
大致分两层结构:用户空间user space和内核空间kernel space
1:IPVS:IP虚拟服务器(IP Virtual Server),是一种提供负载平衡功能的技术
2:NetLink:提供高级路由及其他相关的网络功能
3:WatchDog:负责监控checkers和VRRP进程的状况
4:Checkers:负责真实服务器的健康检查,是keepalived最主要的功能。可以没有
VRRP Stack,但健康检查healthchecking是一定要有的。
5:VRRP Stack:负责负载均衡器之间的失败切换FailOver。如果只用一个负载均衡
器,则VRRP不是必须的。
6:IPVS wrapper:用来发送设定的规则到内核的IPVS部分
7:Netlink Reflector:用来设定VRRP的vip地址等
8:控制面