002 基于VIP的keepalived高可用架构

  • Keepalived简介
  • Keepalived工作原理
  • Keepalived应用场景
  • 高可用集群
  • 高可用架构
  • Keepalived高可用集群的解决方案
Keepalived简介

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

  1. 配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能
  2. 稳定性强:Keepalived是一个类似于layer3/4/7交换机机制的软件,具备我们平时说的第3层、第4层和第7层交换机的功能,常用于前端负载均衡器的高可用服务,当主服务器出现故障时,可以快速进行切换,监测机制灵活,成功率高。
  3. 成本低廉:开源软件,可直接下载配置使用,没有额外费用。
  4. 应用范围广:因为Keepalived可应用在多个层面,所以它几乎可以对所有的应用做高可用,包括LVS、数据库、http服务、nginx负载均衡等。
  5. 支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择。
Keepalived工作原理
  1. WatchDog监控checkers和VRRP进程的状态;
  2. Checkers负责真实服务器的健康检查healthchecking;
  3. VRRP Stack负责负载均衡器之间的失败切换;
  4. IPVS wrapper用来发送设定的规则到内核IPVS代码;
  5. Netlink Reflector用来设定VRRP的vip(虚拟IP)地址等。

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

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

在网络层、数据链路层,运行着4个重要协议:

  • IP:互联网协议。
  • ICMP:互联网控制报文协议。
  • ARP:地址转换协议(IP地址转Mac地址)
  • RARP:反向地址转换协议。(Mac地址转IP地址)
    网络层场景:
    Keepalived在网络层采用最常见的工作方式是通过ICMP协议向服务器集群中的那个节点发送一个ICMP数据包(类似于ping实现的功能),如果某个节点没有返回响应数据包,那么认为此节点发生了故障,Keepalived将报告此节点失效,并从服务器集群中剔除故障节点。
    传输层场景:
    传输层提供了两个主要的协议TCP和UDP
    Keepalived在传输层利用TCP协议的端口连接和扫描技术来判断集群点是否正常。如Web服务器80端口,ssh服务22端口,Keepalived一旦在传输层探测到这些端口没有响应数据返回,就认为这些端口发生异常,然后强制将此端口对应得节点从服务器集群中移除。
    应用层场景:
    在应用层,可运行FTP、TELNET、HTTP、DNS等各种不同类型的高层协议。
    Keepalived在应用层的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived的工作方式;例如,用户可以通过编写程序来运行Keepalived。而Keepalived将根据用户的设定检测各种程序或服务是否运行正常,如果Keepalived的检测结果与用户设定不一致时,Keepalived将把对应的服务从服务器中移除。
集群
  1. 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。
  2. 通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面相对较高的收益,其任务调度则是集群系统中的核心技术。
  3. 集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。集群在目前互联网公司是必备的技术,极大提高互联网业务的可用性和可缩放性。
高可用

HA(High Available),高可用性群集是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。
工程上,通常用平均无故障时间(MTFF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:HA=MTFF/(MTFF+MTTR) (平均无故障时间/总时间,总时间=平均无故障时间+平均维修时间),宕机时间不超过6分钟。
具体HA(可用性)衡量标准:

  1. 99%一年宕机时间不超过4天
  2. 99.9%一年宕机时间不超过10小时
  3. 99.99% 一年宕机时间不超过1小时
  4. 99.999% 一年宕机时间不超过6分钟
高可用集群实现

高可用工作方式:

  1. 主从方式(非对称方式)
  2. 双机双工方式(互备互援)
  3. 集群工作方式(多服务器互备方式)

高可用的资源分类

  1. 网络高可用
  2. 服务器高可用
  3. 存储高可用
  4. 服务高可用
    开源高可用解决方案:Keepalived 通过实现vrrp(虚拟路由冗余协议)协议来实现地址漂移

主从高可用架构

  1. 在系统中,有一个Master节点和一个Backup节点,其中Master节点对线上业务提供服务,Backup与Master节点之间保持心跳。
  2. 当Master节点因宕机服务不可用时,系统会切换到Backup节点上线,提供服务。
  3. 当宕机Master节点恢复后,系统将该Master作为Backup加入集群。

双主高可用架构

  1. 在系统中,有两个Master节点,均对线上业务提供服务,两个Master节点之间保持心跳。
  2. 当某一台Master节点因宕机服务不可用时,系统会将流量全部导向剩余的Master节点,继续提供服务。
  3. 当宕机的Master节点恢复后,系统将该Master加入集群,提供服务。
Keepalived高可用集群的解决方案

Keepalived在一个节点上启动之后,会生成一个Master主进程,这个主进程又会生成两个子进程,分别是:

  1. VRRP Stack:实现VRRP协议
  2. Checkers:检测ipvs后端realserver的健康状况检测

VRRP双方节点都启动以后,要实现状态转换的,刚开始启动的时候,初始状态都是Backup,而后向其它节点发送通告,以及自已的优先级信息,谁的优先级高,就转换为Master,否则就还是Backup。

这时候服务就在状态为Master的节点上启动,为用户提供服务,如果,该节点挂掉了,则转换为Backup ,优先级降低,另一个节点转换为Master,优先级上升,服务就在此节点启动,VIP,VMAC都会被转移到这个节点上,为用户提供服务。

发布了32 篇原创文章 · 获赞 0 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/h13140995776/article/details/101634620
002
今日推荐