KeepAlived简介与原理

KeepAlived是Linux下的一款轻量级高可用解决方案,基于VRRP协议,通过虚拟路由冗余实现服务的高可用性。它在网络、TCP及应用层进行健康检查,当检测到故障节点时,会自动将故障节点从集群中剔除。VRRP协议旨在解决路由单点故障问题,通过选举算法确保服务的持续可用性。在负载分担模式下,多台路由器可同时承担业务,提高资源利用率。
摘要由CSDN通过智能技术生成

简介: 

Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管,

   它与HeartBeat RoseHA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测、资源接管,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强大,但是部署和使用相对比较麻烦,

与HeartBeat相比,Keepalived主要是通过虚拟路由冗余来实现高可用功能,虽然它没有HeartBeat功能强大,但是Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可以完成,Keepalived是一款用于保障服务高可用性的软件,它能自动侦测服务器状态、移出 故障服务器、切换到正常运行的服务器、添加恢复后的服务器到集群中。

实现思路:

Keepalived是基于VRRP协议的实现,主要用在IP层、TCP层和应用层。

 在网络(IP)层:我们知道运行这4个重要的协议,互联网络IP协议,互联网络可控制报文协议ICMP、地址转换协议ARP、反向地址转换协议RARP在网络层Keepalived在网络层采用最常见的工作方式是通过ICMP协议向服务器集群中的每一个节点发送一个ICMP数据包(有点类似与Ping的功能),如果某个节点没有返回响应数据包,那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点

     在传输(TCP)层:提供了两个主要的协议:传输控制协议TCP和用户数据协议UDP,传输控制协议TCP可以提供可靠的数据输出服务、IP地址和端口,代表TCP的一个连接端,要获得TCP服务,需要在发送机的一个端口和接收机的一个端口上建立连接,Keepalived在传输层里利用了TCP协议的端口连接和扫描技术来判断集群节点的端口是否正常,比如对于常见的WEB服务器80端口。或者SSH服务22端口,Keepalived一旦在传输层探测到这些端口号没有数据响应和数据返回,就认为这些端口发生异常,然后强制将这些端口所对应的节点从服务器集群中剔除掉。

在应用层:可以运行FTP,TELNET,SMTP,DNS等各种不同类型的高层协议,Keepalived的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived工作方式,例如:可以通过编写程序或者脚本来运行Keepalived,而Keepalived将根据用户的设定参数检测各种程序或者服务是否允许正常,如果Keepalived的检测结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除

VRRP协议解决的问题

 在现实网络中,两台服务器之间通常是没有直接连接的,那么A机如何选择到达B机 的路由呢?

通常的解决方案有两种:

1:在A机上使用动态路由协议 (问题:管理维护成本、是否支持等)

2:在A机上配置静态路由(问题:路由器或默认的网关成单点、需重启网络等)

VRRP协议的目的就是解决路由单点故障问题。

VRRP (Virtual Router Redundancy Protocol),虚拟路由冗余协议,是解决局域网 中配置静态网关出现单点故障的路由协议。 在具有多播或广播能力的局域网中,借助VRRP能在某台路由器出现故障时仍然提供 高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由 协议、路由发现协议等配置信息。

名词解释 1:

VRRP路由器:物理的路由器,上面运行了实现VRRP协议的VRRPD程序

2:VRRP虚拟路由器:逻辑上的路由器,通常由多台路由器组成,可以看成是一个VRRP路由器 池,对外看起来是一个路由器,就是那个虚拟的路由器,其标识称为VRID(范围是0-255)

3:Master和Backup:一个虚拟路由里面的多个路由器,并不是同时工作的,工作的那台称为 Master,其他的就是Backup。

对VRRP协议的理解

1:VRRP是一种选择协议,它可以把一个虚拟路由器的职责,动态转交给Master进行处理

2:VRRP是一种路由容错协议,也可以叫做备份路由协议。当Master宕掉后,虚拟路由将启用 备份路由器,从而实现网络通信可用

VRRP可以将两台或者多台物理路由器设备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟IP(一个或者多个)对外提供服务,而在虚拟路由器内部十多个物理路由器协同工作,同一时间只有一台物理路由器对外提供服务,这台物理路由设备被成为:主路由器(Master角色),一般情况下Master是由选举算法产生,它拥有对外服务的虚拟IP,提供各种网络功能,如:ARP请求,ICMP 数据转发等,而且其它的物理路由器不拥有对外的虚拟IP,也不提供对外网络功能,仅仅接收MASTER的VRRP状态通告信息,这些路由器被统称为“BACKUP的角色”,当主路由器失败时,处于BACKUP角色的备份路由器将重新进行选举,产生一个新的主路由器进入MASTER角色,继续提供对外服务,整个切换对用户来说是完全透明的。

   每个虚拟路由器都有一个唯一的标识号,称为VRID,一个VRID与一组IP地址构成一个虚拟路由器,在VRRP协议中,所有的报文都是通过IP多播方式发送的,而在一个虚拟路由器中,只有处于Master角色的路由器会一直发送VRRP数据包,处于BACKUP角色的路由器只会接受Master角色发送过来的报文信息,用来监控Master运行状态,一一般不会发生BACKUP抢占的情况,除非它的优先级更高,而当MASTER不可用时,BACKUP也就无法收到Master发过来的信息,于是就认定Master出现故障,接着多台BAKCUP就会进行选举,优先级最高的BACKUP将称为新的MASTER,这种选举角色切换非常之快,因而保证了服务的持续可用性。

VRRP协议工作机制

1:路由器开启VRRP功能后,会根据优先级确定出Master

2:Master会通过IP多播包的形式来发送公告报文,Backup会接收到这些报文

3:如果是抢占式:Backup会跟发送报文的Master比较优先级,如果Backup优先级更 高,那么Backup会抢占成为Master,而Master会让位成为Backup

4:如果是非抢占式:只要Master没有故障,不会出现新的Master。

5:如果备份路由器在连续三个公告间隔内收不到VRRP公告,或收到优先级为0的公 告的话,就会按照竞选协议来选出新的Master,以保证服务的可用

 VRRP负载分担

在实际组网中一般会进行VRRP负载分担方式的设置。负载分担方式是指多 台路由器同时承担业务,避免设备闲置。 同一台路由器可以加入多个备份组,在不同组中有不同的优先级,使得该 路由器可以在一个组中作为Master,在其他的备份组中作为Backup

Keepalived起初是为LVS设计的,由于Keeplalived可以实现对集群节点的状态检测,而IPVS可以实现负载均衡功能,因此,Keepalived借助于第三方模块IPVS就可以很方便地搭建一套负载均衡系统,在这里有个误区,由于Keepalived可以和IPVS一起很好的工作,很多人都以为Keepalived就是一个负载均衡软件,这种理解是错误,

在Keepalived当中IPVS模块是可配置的,如果需要负载均衡功能,可以在编译Keepalived时开打负载均衡功能,也可以通过编译参数关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值