当前位置: 代码迷 >> 综合 >> 企业级负载均衡LVS集群———KeepAlived高可用性集群、LVS(IPVS)+KeepAlived+Httpd、LVS(IPVS)+KeepAlived+Vsftpd
  详细解决方案

企业级负载均衡LVS集群———KeepAlived高可用性集群、LVS(IPVS)+KeepAlived+Httpd、LVS(IPVS)+KeepAlived+Vsftpd

热度:65   发布时间:2023-12-09 02:33:39.0

文章目录

  • 一、KeepAlived
    • 1、KeepAlived的定义
    • 2、KeepAlived的工作原理
    • 3、Keepalived高可用故障切换转移原理
    • 4、Keepalived运行机制
    • 5、面试中Keepalived的工作原理的文字表述
  • 二、 LVS+KeepAlived+Httpd
  • 三、LVS+KeepAlived+Vsftpd

一、KeepAlived

背景 :我们之前都是一个调度器来调度多台web后端服务器,但是调度器也有不能工作的时候,若调度机坏了,所有的web服务器都不能访问,这就要求 调度器也要备份。因此就引出了高可用的集群KeepAlived,也就是有多个调度器(有主有备),利用keepalived保证web服务通过正常的调度器工作。所有调度器同时宕机的可能性是很小的。

目的 : 保证当个别节点宕机时,整个网络可以不间断地运行

1、KeepAlived的定义

keepalived是 集群管理中保证集群高可用的一个服务软件(防止单点故障),它能够保证当个别节点宕机时,整个网络可以不间断地运行,所以,Keepalived一方面具有 配置管理LVS 的功能,同时还具有 对LVS下的节点进行健康检查 的功能,另一方面也可 实现系统网络服务的高可用

  • 高可用(High Avalilability,HA),其实两种不同的含义:广义上来讲,是指整个系统的高可用性,狭义上来讲就是主机的冗余和接管。
  • Keepalived起初是为LVS设计的,由于Keepalived可以实现对集群节点的状态检测,而IPVS可以实现负载均衡功能。 Keepalived借助于第三方模块IPVS就可以很方便的搭建一套负载均衡系统。 误区:由于Keepalived可以和IPVS一起工作,所以普遍认为Keepalived是一个负载均衡软件,这种理解是错误的。

2、KeepAlived的工作原理

keepalived是以VRRP协议为基础实现的

  • VRRP(Virtual Router Redundancy Protocol),即虚拟路由冗余协议。VRRP是一种 主备模式 的协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个虚拟路由器组,这个组里面有 一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就会根据VRRP的优先级来选举一个backup当master通过VRRP可以在网络发生故障时透明的进行设备切换而不影响主机之间的数据通信,可保证路由器的高可用。
  • 在一个虚拟的路由器中,只有处于Master角色的路由器会一直发送VRRP数据包,处于BACKUP角色的路由器只会接受Master角色发送过来的报文信息。

3、Keepalived高可用故障切换转移原理

在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活看,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。

4、Keepalived运行机制

  • Keepalived工作在TCP/IP参考模型的三层:网络层,四层:传输层,五层:应用层。

(1)网络层
在网络层的四个协议(互联网络IP协议,互联网络可控制报文协议ICMP,地址转换协议ARP,反向地址转换协议RARP)。Keepalived在网络层采用最常见的工作方式是 通过ICMP协议向服务器集群中的每一个节点发送一个ICMP的数据包,类似于ping的功能。 如果某个节点没有返回响应数据包,那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中的节点剔除。

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

(3)应用层
可以运行FTP,TELNEL,SMTP,DNS等各种不同类型的高层协议,Keepalived的运行方式也更加全面化和复杂化。用户可以通过自定义Keepalived工作方式,例如可以通过编写程序或者编写脚本来运行Keepalived,而Keepalived将根据用户设定的参数来检测各种程序或者服务是否运行正常,当Keepalived的检测结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除。

5、面试中Keepalived的工作原理的文字表述

 Keepalived高可用对之间是通过VRRP通信的,因此,我们从VRRP开始了解起:
1) VRRP,全称 Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP的出现是为了解决静态路由的单点故障。
2) VRRP是通过一种竟选协议机制来将路由任务交给某台 VRRP路由器的。
3) VRRP用 IP多播的方式(默认多播地址(224.0_0.18))实现高可用对之间通信。
4) 工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的开源。备节点可以有多个,通过优先级竞选,但一般 Keepalived系统运维工作中都是一对。
5) VRRP使用了加密协议加密数据,但Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。
介绍完 VRRP,接下来我再介绍一下 Keepalived服务的工作原理:
1)Keepalived高可用对之间是通过 VRRP进行通信的, VRRP是遑过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。
2)
  相关解决方案