简介

keepalived作用
检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障服务器。

VIP(虚拟IP动态IP)

基于VIP的keepalived高可用集群架构
keepalived会让两个nginx争抢一个VIP
keepalived配置文件可以设置角色:Master、backup,当nginx1是master时,那么nginx-1抢到VIP。
keepalived可以通过脚本监测当前Master是否可用,如果不可用,那么其他keepalived会争抢成为master。

特性

1.配置文件简单:可通过简单配置实现高可用功能。
2.稳定性强:keepalived是一个类似于layer3/4/7交换机机制的软件,具备我们平时说的第三层、第四层和第七层交换机的功能,常用语前端负载均衡器的高可用服务,当主服务器出现故障时,可快速切换,监测机制灵活,成功率高。
3.成本低廉:开源软件,可直接下载配置使用,没有额外费用。
4.应用范围广:因为keepalived可应用在多个层面,所以它几乎可以对所有应用做高可用,包括LVS、数据库、http服务、nginx负载均衡等等。
5.支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择。

keepalived工作原理

1.watchDog监控checkers和VRRR进程的状态;
2.checkers负责真实服务器的健康监测healthchecking;
3.VRRR Stack负责负载均衡器之间的失败切换;
4.IPVS wrapper 用来发送设定的规则到内核IPVS代码
5.Netlink Reflector 用来设定VRRP的VIP地址等。

基于VIP的keepalived高可用集群架构
keepalived是以VRRP协议为实现基础的,VRRP全程Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
VRRP根据优先级来确定虚拟路由器中每台路由器的角色(master路由器或backup路由器)。VRRP优先级的取值范围为0-255(数值越大表明优先级越高),可配置的范围是1-254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。优先级越高,,则越有可能成为Master路由器。当两台优先级相同的路由器同时竞争Master时,比较接口IP地址大小。接口地址大者当选为Master

三大核心模块core、check、vrrp

1.core:keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
2.check:负责健康检查,包括常见的各种检查方式。
3.vrrp:用来实现VRRP协议。

keepalived应用场景

在网络层、数据链路层,运行着4个重要协议:
IP:互联网协议
ICMP:互联网控制报文协议。
ARP:地址转换协议。
RARP:反向地址转换协议。

网络层场景

keepalived在网络层采用的最常见的工作方式是通过ICMP协议向服务器集群中的那个节点发送一个ICMP数据包(类似于ping实现的功能),如果某个节点没有返回响应数据包,那么认为此节点发生了故障,keepalived将报告此节点失效,并从服务器集群中剔除这个故障节点

传输层场景

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

应用层场景

在应用层,可运行FTP、telnet、http、DNS等各种不同类型的高层协议。keepalived在应用层的运行方式也更加全面化和复杂化,用户可以通过自定义keepalived的工作方式;例如:用户可以通过编写程序来运行keepalived。而keepalived将根据用户的设定监测各种程序或服务是否正常运行,如果检测结果与用户设定不一致时,keepalived将把这个服务从服务器中剔除。

高可用

HA(High Available),高可用性集群是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。
工程上,通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF_MTTR)*100%(平均无故障时间/总时间,总时间=平均无故障时间+平均维修时间)宕机时间不超过6分钟
具体HA(可用性)衡量标准
1.99%一年宕机时间不超过4天
2.99.9%一年宕机时间不超过10小时
3.99.99%一年宕机时间不超过1小时
4.99.999%一年宕机时间不超过6分钟

高可用集群实现

工作方式
1.主从(非对称方式)
2.双机双工(互备互援)
3.集群工作(多服务器互备)
资源分类
1.网络高可用
2.服务器高可用
3.存储高可用
4.服务高可用

高可用架构

主从高可用架构
1.在系统中,有一个master节点和一个backup节点,其中master节点对线上业务提供服务,backup与master节点之间保持心跳。
2.当master节点因宕机服务不可用时,系统会切换到backup节点上提供服务。
3.当宕机master节点回复后,系统将该master作为backup加入集群
基于VIP的keepalived高可用集群架构
双主高可用架构
1.在系统中,有两个master节点,均对线上业务提供服务,两个master节点之间保持心跳。
2当某一台master节点因宕机服务不可用时,系统会将流量全部导向剩余的master节点,继续提供服务。
3.当宕机的master节点恢复后,系统将该master加入集群,提供服务。
基于VIP的keepalived高可用集群架构

keepalived高可用集群的解决方案

keepalived在一个节点上启动之后会生成一个master主进程,这个主进程又会生成两个子进程,分别是:
1.VRRP Stack :实现VRRP协议;
2.Checkers:监测ipvs后端realserver的健康状况;
VRRP双方节点都启动之后,要实现状态转换的,刚开始启动的时候,初始状态都是backup,而后向其他节点发送通告,以及自己的优先级信息,谁的优先级高,就转换为master,否则还是backup。
这时候服务就在状态为master的节点上启动,为用户提供服务,如果该节点挂掉了,则转换为backup优先级降低,另一个几点转换为master,优先级上升,服务就在此节点启动,VIP、VMAC都会被转移到这个节点上,为用户提供服务。
基于VIP的keepalived高可用集群架构

相关文章: