前言
企业应用中,单台服务器承担应用存在单点故障的危险,单点故障一旦发生,企业服务将发生中断,造成极大的危害,所以我们需要配置高可用群集。
群集的特点:
1.负载均衡
2.健康检查(高可用)
3.故障切换
一、Keepalived实现原理剖析
1.1 VRRP(虚拟路由冗余协议)
1.是针对路由器的一种备份解决方案,由多台路由器组成一个热备组,通过共用虚拟IP地址对外提供服务;
2.每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态;
3.若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务
4.通过优先级决定主节点
1.2 Keepalived 原理
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。
在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个浮动IP(VIP),主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管浮动IP,继续提供服务,从而保证了高可用性。
主服务器作用:转发数据;发送报文告诉备服务器自己在线
备服务器作用:监听主服务器发来的数据;收不到消息的时候就接替主服务器
1.3 Keepalived 工具介绍
支持故障自动切换(Failover)
支持节点健康状态检查(Health Checking)
是专为LVS和HA设计的一款健康检查工具,判断LVS负载调度器、节点服务器的可用性,当master 主机出现故障及时切换到backup节点保证业务正常,当master故障主机恢复后将其重新加入群集并且业务重新切换回master节点。
官方网站:http://www.keepalived.org/
1.4 Keepalived 模块
Keepalived体系主要模块及其作用:
keepalived体系架构中主要有三个模块,分别是core、check和vrrp。
core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
vrrp模块:是来实现VRRP协议的。
check模块:负责健康检查,常见的方式有端口检查及URI检查。