一、KeepAlived的发展
Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。
后来Keepalived又加入了VRRP的功能,VRRP(VritrualRouterRedundancyProtocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,因此Keepalvied一方面具有服务器状态检测和故障隔离功能,另外一方面也有HAcluster功能。
健康检查和失败切换是keepalived的两大核心功能。所谓的健康检查,就是采用tcp三次握手,icmp请求,http请求,udp echo请求等方式对负载均衡器后面的实际的服务器(通常是承载真实业务的服务器)进行保活;而失败切换主要是应用于配置了主备模式的负载均衡器,利用VRRP维持主备负载均衡器的心跳,当主负载均衡器出现问题时,由备负载均衡器承载对应的业务,从而在最大限度上减少流量损失,并提供服务的稳定性。
keepalived服务简单来说,就是用来防止单点故障的。所谓的单点故障就是,主服务器挂了之后从服务器充当主服务器,原来的主服务器恢复后,当从服务器来使用,保证服务的高可用性。也可以这样理解,老大挂了之后手下的小弟过来接班,老大复活后,当小弟使用。
二、Keepalived的通信原理
- 1、在网络中,主机之间的通信都是通过配置静态路由或者(默认网关)来完成的,而主机之间的路由器一旦发生故障,服务就会中断,因此这种通信模式当中,路由器就成了一个单点瓶颈,为了解决这个问题,就引入了VRRP协议。
- 2、VRRP协议是一种容错的主备模式的协议,保证当主机的下一跳路由出现故障时,由另一台路由器来代替出现故障的路由器进行工作,通过VRRP可以在网络发生故障时透明的进行设备切换而不影响主机之间的数据通信。
- 3、VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的。
- 4、工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竞选,但一般Keepalived系统运维工作中都是一对
- 5.VRRP路由器在运行过程中有三种状态:
- a、Initialize状态:系统启动后就进入Initialize,此状态下路由器不对VRRP报文做任何处理;
- b、 Master状态;
- c、 Backup状态;
- 一般主路由器处于Master状态,备份路由器处于Backup状态
6、VRRP选举机制
- a、VRRP组中IP拥有者。如果虚拟IP地址与VRRP组中的某台VRRP路由器IP地址相同,则此路由器为IP地址拥有者,这台路由器将被定位主路由器。
- b、比较优先级。如果没有IP地址拥有者,则比较路由器的优先级,优先级的范围是0~255,优先级大的作为主路由器
- c、比较IP地址。在没有Ip地址拥有者和优先级相同的情况下,IP地址大的作为主路由器。
7、VRRP通过一竞选(election)协议来动态的将路由任务交给LAN中虚拟路由器中的某台VRRP路由器。
三、Keepalived的部署
1.架构
2.搭建环境
vip为172.25.254.100
基础准备
1.网络环境配置需求在上图可查,需要各主机能够互相ping通
2.SElinux需要为禁用状态(对于所有主机)
vim /etc/selinux/config 进入配置文件更改
reboot 重启生效