高性能集群软件Keepalived之基础知识篇

  • 时间:
  • 浏览:0
  • 来源:万人牛牛棋牌APP_万人牛牛棋牌APP官网

上节简单介绍了Keepalived通过VRRP实现高可用功能的工作原理,而Keepalived作为另有另一个高性能集群软件,它还能实现对集群中服务器运行情形的监控及故障隔离。下面继续介绍下Keepalived对服务器运行情形监控和检测的工作原理。

Keepalived工作在TCP/IP参考模型的第三、第四和第五层,也也不网络层、传输层和应用层。根据TCP/IP参考模型各层所能实现的功能,Keepalived运行机制如下。

    Keepalived最初也不为LVS提供服务的,原因分析分析着Keepalived才能实现对集群节点的情形检测,而IPVS才能实现负载均衡功能,否则,Keepalived借能助 第三方模块IPVS就才能很方便地搭建一套负载均衡系统。在这里有个误区,原因分析分析着Keepalived才能和IPVS并肩很好地工作,否则所以初学者都以为Keepalived也不另有另一个负载均衡软件,你你这个理解是错误的。

Keepalived时候又加入了VRRP的功能,VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,它总出 的目的是为了解决静态路由总出 的单点故障问题图片,通过VRRP才能实现网络不间断地、稳定地运行。否则,Keepalived一方面具有服务器情形检测和故障隔离功能,自己面也具有HA cluster功能.下面完全介绍下VRRP协议的实现过程。

    NETLINK模块主要用于实现你你这个高级路由框架和你你这个相关的网络功能,完成用户空间层Netlink Reflector模块发来的各种网络请求。

(5)Netlink Reflector

三、 VRRP协议与工作原理

在传输层,提供了另有另一个主要的协议:传输控制协议TCP和用户数据协议UDP。传输控制协议TCP才能提供可靠的数据传输服务,IP地址和端口,代表另有另一个TCP连接的另有另一个连接端。要获得TCP服务,须在发送机的另有另一个端口上和接收机的另有另一个端口上建立连接,而Keepalived在传输层也不利用TCP协议的端口连接和扫描技术来判断集群节点是否正常的。比如,对于常见的Web服务默认的500端口、SSH服务默认的22端口等,Keepalived一旦在传输层探测到那此端口没有响应数据返回,就认为那此端口所处异常,否则强制将此端口对应的节点从服务器集群组中移除。

这是IPVS功能的另有另一个实现。IPVS wrapper模块才能将设置好的IPVS规则发送到内核空间并提交给IPVS模块,最终实现IPVS模块的负载均衡功能。

    VRRP才能将两台或多台物理路由器设备虚拟成另有另一个虚拟路由器,你你这个虚拟路由器通过虚拟IP(另有另一个或多个)对外提供服务,而在虚拟路由器组织组织结构,是多个物理路由器协同工作,同一时间只有一台物理路由器对外提供服务,这台物理路由器被称为主路由器(所处MASTER角色)。一般情形下MASTER由选举算法产生,它拥有对外服务的虚拟IP,提供各种网络功能,如ARP请求、ICMP、数据转发等。而你你这个物理路由器不拥有对外的虚拟IP,也不提供对外网络功能,仅仅接收MASTER的VRRP情形通告信息,那此路由器被统称为备份路由器(所处BACKUP角色)。当主路由器失效时,所处BACKUP角色的备份路由器将重新进行选举,产生另有另一个新的主路由器进入MASTER角色继续提供对外服务,整个切换过程对用户来说完全透明。

(3)VRRP Stack

一、Keepalived介绍

(2)Checkers

在应用层,才能运行FTP、TELNET、SMTP、DNS等各种不类似型的高层协议,Keepalived的运行办法也更加全面化和多样化化,用户才能通过自定义Keepalived的工作办法,类似用户才能通过编写线程池池运行来运行Keepalived,而Keepalived将根据用户的设定检测各种线程池池运行或服务是否允许正常,原因分析分析着Keepalived的检测结果与用户设定不一致时,Keepalived将把对应的服务从服务器中移除。

    熟悉网络的读者对VRRP协议应该并不陌生。它是你这个生活主备模式的协议,通过VRRP才能在网络所处故障时透明地进行设备切换而不影响主机间的数据通信,这其中涉及另有另一个概念:物理路由器和虚拟路由器。

    每个虚拟路由器就有另有另一个唯一标识,称为VRID,另有另一个VRID与一组IP地址构成了另有另一个虚拟路由器。在VRRP协议中,所有的报文就有通过IP多播形式发送的,而在另有另一个虚拟路由器中,只有所处MASTER角色的路由器会经常发送VRRP数据包,所处BACKUP角色的路由器只接收MASTER发过来的报文信息,用来监控MASTER运行情形,否则,太久再所处BACKUP抢占的问题图片,除非它的优先级更高。而当MASTER不可用时,BACKUP也就无法收到MASTER发过来的报文信息,于是就认定MASTER总出 故障,接着多台BACKUP就会进行选举,优先级最高的BACKUP将成为新的MASTER,你你这个选举并进行角色切换的过程非常快,因而也就保证了服务的持续可用性。

    在现实的网络环境中,主机之间的通信就有通过配置静态路由(默认网关)完成的,而主机之间的路由器一旦总出 故障,通信就会失败,否则,在你你这个通信模式中,路由器就成了另有另一个单点瓶颈,为了解决你你这个问题图片,就引入了VRRP协议。

四、Keepalived工作原理

在网络层,运行着一个重要的协议:互连网协议IP、互连网控制报文协议ICMP、地址转换协议ARP以及反向地址转换协议RARP。Keepalived在网络层采用的最常见的工作办法是通过ICMP协议向服务器集群中的每个节点发送另有另一个ICMP的数据包(类似ping实现的功能),原因分析分析着某个节点没有返回响应数据包,没有就认为此节点所处了故障,Keepalived将报告此节点失效,并从服务器集群中剔除故障节点。

二、Keepalived是那此

这是Keepalived最基础的功能,也是最主要的功能,可实现对服务器运行情形检测和故障隔离。

五、Keepalived的体系底部形态

Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的情形。它根据layer3, 4 & 5交换机制检测每个服务节点的情形,原因分析分析着某个服务节点总出 异常,或工作总出 故障,Keepalived将检测到,并将总出 故障的服务节点从集群系统中剔除,而在故障节点恢复正常后,Keepalived又才能自动将此服务节点重新加入到服务器集群中,那此工作完全自动完成,不需用人工干涉,需用人工完成的也不修复总出 故障的服务节点。

    在用户空间层,Keepalived又分为一个要素,分别是Scheduler I/O Multiplexer、Memory Management、Control Plane和Core components。其中,Scheduler I/O Multiplexer是另有另一个I/O复用整理调度器,它负责安排Keepalived所有组织组织结构的任务请求。Memory Management是另有另一个内存管理机制,你你这个框架提供了访问内存的你你这个通用办法。Control Plane是Keepalived的控制面板,才能实现对配置文件进行编译和解析,Keepalived的配置文件解析比较特殊,它并就有一次解析所有模块的配置,也不只有在用到某模块时才解析相应的配置。最后完全说一下Core components,你你这个要素是Keepalived的核心组件,涵盖了你你这个列功能模块,主要有WatchDog、Checkers、VRRP Stack、IPVS wrapper和Netlink Reflector,下面介绍每个模块所实现的功能如下。

    从图中才能看出,Keepalived的体系底部形态从整体上分为两层,分别是用户空间层(User Space)和内核空间层(Kernel Space).下面介绍Keepalived两层底部形态的完全组成及实现的功能。

   内核空间层所处最底层,它包括IPVS和NETLINK另有另一个模块。IPVS模块是Keepalived引入的另有另一个第三方模块,通过IPVS才能实现基于IP的负载均衡集群。IPVS默认涵盖在LVS集群软件中。而对于LVS集群软件,相信做运维的亲们儿并不陌生:在LVS集群中,IPVS安里装另有另一个叫做Director Server的服务器上,并肩在Director Server上虚拟出另有另一个IP地址来对外提供服务,而用户需用通过你你这个虚拟IP地址才能访问服务。你你这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达Director Server,否则由Director Server从服务器集群节点中挑选另有另一个服务节点响应用户的请求。

Keepalived是另有另一个深度图模块化的软件,底部形态简单,但扩展性很强,如有兴趣的读者,才能阅读下Keepalived的源码。下图是官方给出的Keepalived体系底部形态拓扑图。

    用户空间层所处内核空间层之上,Keepalived的所有具体功能就有这里实现,下面介绍、几块重要要素所实现的功能。

这是Keepalived时候引入的VRRP功能,才能实现HA集群中失败切换(Failover)功能。Keepalived通过VRRP功能再结合LVS负载均衡软件即可部署一套高性能的负载均衡集群系统。

在Linux中很早就引入了WatchDog功能,而Keepalived正是通过WatchDog的运行机制来监控Checkers和VRRP线程池池运行运行的。

    在Keepalived中,IPVS模块是可配置的,原因分析分析着需用负载均衡功能,才能在编译Keepalived时打开负载均衡功能,反正,才才能通过配置编译参数关闭。

Keepalived是Linux下另有另一个轻量级的高可用解决方案,它与HeartBeat、RoseHA实现的功能类似,都才能实现服务原因分析分析着网络的高可用,否则又有差别:HeartBeat是另有另一个专业的、功能完善的高可用软件,它提供了HA软件所需的基本功能,比如心跳检测和资源接管,监测集群中的系统服务,在群集节点间转移共享IP地址的所有者等,HeartBeat功能强大,否则部署和使用相对比较麻烦;与HeartBeat相比,Keepalived主也不通过虚拟路由冗余来实现高可用功能,并不一定它没有HeartBeat功能强大,但Keepalived部署和使用非常简单,所有配置只需另有另一个配置文件即可完成。这也是本章重点介绍Keepalived的原因分析分析着。

本文转自南非蚂蚁51CTO博客,原文链接:http://blog.51cto.com/ixdba/1639562,如需转载请自行联系原作者

(4)IPVS wrapper

WatchDog是计算机可靠性领域中另有另一个极为简单又非常有效的检测工具,它的工作原理是针对被监视的目标设置另有另一个计数器和另有另一个阈值,WatchDog会自己增加此计数值,否则等待被监视的目标周期性地重置该计数值。一旦被监控目标所处错误,就无法重置此计数值,WatchDog就会检测到,于是就采取对应的恢复办法,类似重启或关闭。

(1)WatchDog

用来实现高可用集群中Failover时虚拟IP(VIP)的设置和切换。Netlink Reflector的所有请求最后都发送到内核空间的NETLINK模块来完成。