基于VIP的keepalived高可用架构

一,Keepalived简介

  Keepalived的作用:

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

二,Keepalived工作原理

 1.keepalived内部工作分为以下几个部分:

  • WatchDog监控checkers和VRRP进程的状况;
  • Checkers负责真实服务器的健康检查healthchecking
  • VRRP Stack负责负载均衡器之间的失败切换
  • IPVS wrapper用来发送设定的规则到内核IPVS代码。
  • Netlink Reflector用来设定vrrp的vip地址

 

 

2,Keepalived是以VRRP协议为实现基础的,VRRP全称 Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

  VRRP根据优先级来确定虚拟路由器中每台路由器的角色(master路由器或Backup路由器)

3,Keepalived主要有三个模块,Core,check和vrrp

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

 

 

三,Keepalived应用场景

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

  2,传输层场景:(传输控制协议TCP和用户数据协议UDP)

    keepalived在传输层就是利用Tcp协议的端口连接和扫描技术来判断集群点是否正常。比如,对于常见的web服务默认的80端口,SSH服务默认的22端口等,keepalived一旦在传输层探测到这些端口没有响应数据返回,就认为这些端口发生异常,然后强制将此端口对应的节点从服务器集群组中移除。

  3,应用层场景:在应用层,可运行FTP,HTTP,DNS等各种不同类型的高层协议。用户可以通过自定义Keepalived的工作方式,例如:用户可以通过编写程序来运行Keepalived。而Keepalived将根据用户的设定检测各种程序或服务是否运行正常,如果Keepalived的检测结果与用户设定不一致时,Keepalived将把对应的服务从服务器中移除。

四,高可用集群

    集群是一组相互独立的,通过高速网络互联的计算机,他们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。其任务调度则是集群系统中的核心技术。

五,高可用架构

  1,HA(High availlable),高可用性集群是通过系统的可靠性和可维护性来度量的。工程上,通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF+MTTR)*100%.

  具体HA衡量标准:

    ①99%:一年宕机时间不超过4天。

    ②99.9%:一年宕机时间不超过10小时。

    ③99.99%:一年宕机时间不超过1小时。

    ④99.999%:一年宕机时间不超过6分钟

   2,高可用集群实现:

    ①主从方式(非对称方式)

    ②双机双工方式(互备互援)

    ③集群工作方式(多服务器互备方式)

  3,高可用的资源分类:

    ①网络高可用

    ②服务器高可用

    ③存储高可用

    ④服务高可用

六,Keepalived高可用集群的解决方案

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

  ①VRRP Stack:实现VRRP协议

  ②Checkers:检测ipvs后端real server的健康状况检测

  VRRP双方节点都启动以后,要实现状态转换的,刚开始启动的时候,初始状态都是BACKUP,而后向其他节点发送通告,以及自己的优先级信息,谁的优先级高,就转换为MASTER,否则就还是BACKUP。这时候服务就在状态为MASTER的节点上启动,为用户提供服务,如果,该节点挂掉了,则转换为BACKUP,优先级降低,另一个节点转换为MASTER,优先级上升,服务就在此节点启动,VIP,VMAC都会被转移到这个节点上,为用户提供服务。

  

 

posted @ 2020-07-27 21:21  Boogiever  阅读(577)  评论(0编辑  收藏  举报