LVS与Keepalived群集
1. Keepalived服务重要功能
1.1 管理LVS负载均衡器软件
keepalived可以通过读取自身的配置文件,让数据通过更底层的接口来直接管理LVS配置以及服务的启动停止功能,从而使 LVS应用更加简便。
1.2 支持故障自动切换(failover)
-
两台主机同时安装好keepalived并且启动服务,启动时master主机获得所有资源并对用户提供服务 (请求) ,而backup主机作为master的热备;当master主机出现故障时,backup主机将自动接管master主机所有工作,包括VIP资源及相应资源服务。
-
master主机故障修复后会自动接管它的原来处理的工作,backup主机则同时交付master主机失效时接管的工作,此时两台主机将恢复到启动时各自的初始状态。
抢占模式: master故障修复后会将VIP从BACKUP节点中抢占过来, 非抢占模式:master故障修复后不抢占BACKUP,BACKUP升级为MASTER后的VIP
1.3 实现LVS集中节点的健康检查(health checking)
- 通过在keepalived.conf文件中配置LVS的节点IP和相关参数来实现对LVS直接管理。
- 如果几个节点上的服务器同时发生故障无法提供服务,keepalived服务会自动将失效节点上的服务器从LVS正常转发列中清除出去,并请求调度到别的正常节点服务器上,从而保证最终用户的访问不受要影响。
- 当有故障的节点服务器修复以后,keepalived服务又会自动把他们加入到正常转发列中,对外面客户提供服务。
1.4 实现LVS负载调度器和节点服务器的高可用性(HA)
企业群集需要满足三个特点: 负载均衡,健康检查,故障切换。LVS+ keepalived完全可以满足需求
2. Keepalived高可用故障切换转移原理
keepalived高可用服务群集之间的故障切换转移,是通过VRRP(虚拟路由器冗余协议)来实现的。在keepalived服务正常工作时,主节点(Master)会不断地向备节点(Backup)以多播的方式发送心跳消息,用以告知备节点正常运作。而当主节点发生故障时,就无法发送心跳消息,备节点也就因此无法检测到来自主节点的信息,于是备节点将调用自身的接管程序,接管主节点的IP资源及服务。而当主节点恢复时,备节点又会返还在主节点故障时代为接管的IP资源及服务,恢复到初始状态。
3. Keepalived体系主要模块及作用
keepalived体系架构中主要有三个模块,分别是core、check和vrrp。
- core模块:用作keepalived的核心,负责主进程的启动和维护以及全局配置文件的加载和解析
- vrrp模块:用以实现VRRP协议
- check模块:负责健康检查,常用的方式有端口检查及URL检查
4. Keepalived服务的工作原理
4.1 定义
Keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。
4.2 工作原理
在一个LVS服务群集中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为同一个虚拟IP。主服务器会发送VRRP通告信息给备份服务器,当主服务器异常导致备份服务器收不到VRRP消息的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。