这篇文章将为大家详细讲解有关基于VIP的Keepalived 高可用架构是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Keepalived 的作用是检测服务器的状态。如果有一台 web 服务器宕机,或工作出现故障,Keepalived 将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后 Keepalived 自动将服务器加载到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能。
稳定性强:keepalived 是一个类似于 layer3/4/7 交换机机制的软件,具备我们平时说的第 3 层、第 4 层和第 7 层交换机的功能,常用于前端负载均衡器的高可用服务,当主服务器出现故障时,可快速进行切换,监测机制灵活,成功率高。
成本低廉:开源软件,可直接下载配置使用,没有额外费用。
应用范围广:因为 keepalived 可应用在多个层面,所以它几乎可以对所有应用做高可用,包括 LVS、数据库、http 服务、nginx 负载均衡等等。
支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择。
WatchDog 监控 checkers 和 VRRP 进程的状况。
Checkers 负责真实服务器的健康检查 healthchecking。
VRRP Stack 负责负载均衡器之间的失败切换。
IPVS wrapper 用来发送设定的规则到内核 IPVS 代码。
Netlink Reflector 用来设定 vrrp 的 vip 地址等。
Keepalived 是以 VRRP 协议为实现基础的,VRRP 全称 Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
VRRP 根据优先级来确定虚拟路由器中每台路由器的角色(Master 路由器或 Backup 路由器)。VRRP 优先级的取值范围为 0 到 255(数值越大表明优先级越高),可配置的范围是 1 到 254,优先级 0 为系统保留给路由器放弃 Master 位置时候使用,255 则是系统保留给 IP 地址拥有者使用。优先级越高,则越有可能成为 Master 路由器。当两台优先级相同的路由器同时竞争 Master 时,比较接口 IP 地址大小。接口地址大者当选为 Master。
core 模块:keepalived 的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
check 模块:负责健康检查,包括各种常见的检查方式。
vrrp 模块:是来实现 VRRP 协议的。
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 的检测结果与用户设定不一致时,Keepalived 将把对应的服务从服务器中移除。
集群是一组相互独立的、通过高速网络互连的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。
通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个计算机坏了整个系统还是能正常运行。集群在目前互联网公司是必备的技术,极大提高互联网业务的可用性和可缩放性。
HA(High Available),高可用性集群是通过系统的可靠性(reliability)和维护性(maintainability)来度量的。
工程上,通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF+MTTR)*100%
(平均无故障时间/总时间,总时间=平均无故障时间+平均维修时间)。
具体 HA(可用性)衡量标准:
99% 一年宕机时间不超过 4 天。
99.9% 一年宕机时间不超过 10 小时。
99.99% 一年宕机时间不超过 1 小时。
99.999% 一年宕机时间不超过 6 分钟。
高可用工作方式
主从方式(非对称方式)
双机双工方式(互备互援)
集群工作方式(多服务器互备方式)
高可用的资源分类
开源高可用解决方案
keepalived:通过实现 vrrp 协议来实现地址漂移。
在系统中,有一个 Master 节点和一个 Backup 节点,其中 Master 节点对线上业务提供服务,Backup 与 Master 节点之间保持心跳。
当 Master 节点因宕机服务不可用时,系统会切换到 Backup 节点上线,提供服务。
当宕机 Master 节点恢复后,系统将该 Master 节点作为 Backup 加入集群。
在系统中,有两个 Master 节点,均对线上业务提供服务,两个 Master 节点之间保持心跳。
当某一台 Master 节点因宕机服务不可用时,系统会将流量全部导向剩余的 Master 节点,继续提供服务。
当宕机的 Master 节点恢复后,系统将该 Master 加入集群,提供服务。
Keepalived 在一个节点上启动之后,会生成一个 Master 主进程,这个主进程又会生成两个子进程,分别是:
VRRP Stack:实现 VRRP 协议。
Checkers:检测 ipvs 后端 realserver 的健康状况。
VRRP 双方节点都启动后,要实现状态转换的,刚开始启动的时候,初始状态都是 BACKUP,而后向其他节点发送通知,以及自己的优先级信息,谁的优先级高,就转换为 MASTER,否则就还是 BACKUP。
这时候服务就在状态为 MASTER 的节点上启动,为用户提供服务,如果,该节点挂掉了,则转换为 BACKUP,优先级降低,另一个节点转换为 MASTER,优先级上升,服务就在此节点启动,VIP、VMAC 都会被转移到这个节点上,为用户提供服务。
关于基于VIP的Keepalived 高可用架构是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。