nginx Keepalived高可用集群

一、Keepalived高可用

1、简介

Keepalived软件起初是专为LvS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LvS软件外,还可以作为其他服务(例如: Nginx、 Haproxy、MySQL等)的高可用解决方案软件。

Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是 Virtual router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。所以, Keepalived一方面具有配置管理LvS的功能,同时还具

有对LVS下面节点进行健康检査的功能,另一方面也可实现系统网络服务的高可用功能。Keepalived软件的官方站点是http://www.keepalived.org

2、Keepalived服务的三个总要功能

1).管理LVS负载均衡软件
早期的Lvs软件,需要通过命令行或脚本实现管理,并且没有针对LVS节点的健康检查功能。为了解决LVS的这些使用不便的问题, Keepalived就诞生了,可以说,Keepalived软件起初是专为解决Lvs的问题而诞生的。因此, Keepalived和Lvs的感情很深,它们的关系如同夫妻一样,可以紧密地结合,愉快地工作。 Keepalived可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS的配置以及控制服务的启动、停止等功能,这使得LVS的应用更加简单方便了。

2).实现对LVS集群节点健康检查功能( healthcheck)
Keepalived可以通过在自身的 keepalived.conf文件里配置Lvs的节点IP和相关参数实现对LVS的直接管理;除此之外,当LVS集群中的某一个甚至是几个节点服务器同时发生故障无法提供服务时, Keepalived服务会自动将失效的节点服务器从LVS的正常转发队列中清除出去,并将请求调度到别的正常节点服务器上,从而保证最终用户的访问不受影响;当故障的节点服务器被修复以后, Keepalived服务又会自动地把它们加入到正常转发队列中,对客户提供服务。

3).作为系统网络服务的高可用功能( failover)
Keepalived可以实现任意两台主机之间,例如 Master和 Backup主机之间的故障转移和自动切换,这个主机可以是普通的不能停机的业务服务器,也可以是LVS负载均衡、 Nginx反向代理这样的服务器。
Keepalived高可用功能实现的简单原理为,两台主机同时安装好 Keepalived软件并启动服务,开始正常工作时,由角色为 Master的主机获得所有资源并对用户提供服务,角色为 Backup的主机作为 Master主机的热备;当角色为 Master的主机失效或出现故障时,角色为 Backup的主机将自动接管 Master主机的所有工作,包括接管vIP资源及相应资源服务;而当角色为 Master的主机故障修复后,又会自动接管回它原来处理的工作,角色为 Backup的主机则同时释放 Master主机失效时它接管的工作,此时,两台主机将恢复到最初启动时各自的原始角色及工作状态。

3、Keepalived高可用故障切换转移原理
Keepalived高可用服务对之间的故障切换转移,是通过RRP( Virtual router Redundancy Protocol,虚拟路由器冗余协议)来实现的。
在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备 Backup节点自己还活着,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主 Master节点的I资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的P资源及服务,恢复到原来的备用角色。

那么,什么是VRRP呢?
VRRP,全称 Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP的出现就是为了解决静态路由的单点故障问题,VRRP是通过一种竞选机制来将路由的任务交给某台VRRP路由器的。
VRRP早期是用来解决交换机、路由器等设备单点故障的,下面是交换、路由的Master和 Backup切换原理描述,同样适用于 Keepalived的工作原理。在一组VRRP路由器集群中,有多台物理VRRP路由器,但是这多台物理的机器并不是同时工作的,而是由一台称为 Master的机器负责路由工作,其他的机器都是Backup。 Master角色并非一成不变的,VRRP会让每个VRRP路由参与竞选,最终获胜的就是 Master。获胜的 Master有一些特权,比如拥有虚拟路由器的IP地址等,拥有系统资源的 Master负责转发发送给网关地址的包和响应ARP请求。
VRRP通过竞选机制来实现虚拟路由器的功能,所有的协议报文都是通过IP多播( Multicast)包(默认的多播地址224.0.0.18)形式发送的。虚拟路由器由VRID(范围0-255)和一组IP地址组成,对外表现为一个周知的MAC地址:00-00-5E-00-01-VRID}。所以,在一个虚拟路由器中,不管谁是 Master,对外都是相同的MAC和IP(称之为VIP)。客户端主机并不需要因 Master的改变而修改自己的路由配置。对它们来说,这种切换是透明的。

在一组虚拟路由器中,只有作为 Master的RRP路由器会一直发送VRRP广播包( VRRP Advertisement messages),此时 Backup不会抢占 Master当 Master不可用时,Backup就收不到来自 Master的广播包了,此时多台 Backup中优先级最高的路由器会抢占为 Master。这种抢占是非常快速的(可能只有1秒甚至更少),以保证服务的连续性。出于安全性考虑,VRRP数据包使用了加密协议进行了加密。

总结如下:
Keepalived高可用对之间是通过VRRP通信的。

1)VRRP,全称 Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP的出现是为了解决静态路由的单点故障。

2)VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的。

3)VRRP用IP多播的方式(默认多播地址(224.0.0.18))实现高可用对之间通信。

4)工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竟选,但一般 Keepalived系统运维工作中都是一对。

5)VRRP使用了加密协议加密数据,但 Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。

Keepalived服务的工作原理:

Keepalived高可用对之间是通过VRRP进行通信的,ⅤRRP是通过竟选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。

在 Keepalived服务对之间,只有作为主的服务器会一直发送VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性。接管速度最快可以小于1秒。

二、Keepalived高可用服务搭建准备

1、安装keepalived环境说明

2、安装Keepalived软件

猜你喜欢

转载自www.cnblogs.com/Mr-Ding/p/9672005.html