Keepalived的原理架构图,从图中可以看到,
Keepalived 大致分两层结构:用户空间和内核空间
内核空间由IPVS和NETLINK模块组成,
内核模块Keepalived主要实现负载均衡和路由高可用的核心模块,其中的NETLINK主要用于提供高级路由及其相关的网络功能。
用户空间是Keepalived的多数核心功能模块,其中几个核心功能模块的介绍如下。
Checkers :此功能模块主要负责真实服务器的健康检查( HealthChecking ),是Keepalived最主要的功能之一,因为HealthChecking是负载均衡功能稳定运行的基础,LVS集群节点的故障隔离和重新加入均依赖于HealthChecking的结果。
VRRP Stack :此功能模块主要负责负载均衡器之间的故障切换,集群架构中2个及2个以上LVS负载均衡器,才具备故障切换的条件,
IPVS Wrapper :此模块主要用来发送设定的规则到内核IPVS代码。Keepalived的设计目标是构建高可用的LVS 负载均衡群集, Keepalived在运行中将会通过IPVSWrapper模块调用IPVSAdmin工具来创建虚拟服务器,检查和管理LVS集群物理服务器池。
Netlink Reflector :此功能模块主要用来设定VRRP的VIP地址并提供相关的网络功能,该模块通过与内核中的NETLINK模块交互,从而为Keepalived提供路由高可用功能。
从Keepalived 的实现原理和功能来看, Keepalived是开源负载均衡项目LVS的增强和虚拟路由协议VRRP实现的集合,即Keepalived通过整合和增强LVS与VRRP来提供高可用的负载均衡系统架构。
System call 用来在进程之间的系统接口调用,来完成checkers和VRRP Stack健康检查和故障切换操作。
SMTP 在健康状态和故障切换发送故障时,通过邮件通知客户及时处理故障。