天天看点

Linux之Keepalived实现服务器集群高可用

Keepalived介绍 

Keepalived是Linux下一个轻量级的高可用解决方案,它与Hearbeat实现的功能类似,都可以实现服务或者网络的高可用,但是又有差别,Hearbeat是一个专业的,功能完善的高可用软件,它提供HA软件所需的基本功能,如心跳检测和资源接管,检测集群中的服务系统,在集群节点之间转移共享IP地址的所有者,功能强大,部署比较麻烦;Keepalived主要通过虚拟路由冗余来实现高可用功能,虽然功能没有Hearbeat强大,但是部署比较简单,且使用非常简单,只需一个配置文件即可完成。 

Keepalived起初是为了LVS设计的,专门用来监控集群系统中各个服务节点的状态。它根据TCP/IP参考模型的第三,第四,和第五层交换机制检测每个服务节点的状态,如果某个服务出现异常,或者工作出现故障,Keepalived将检测到,并将出现故障的服务节点从集群系统重剔除,而在故障节点恢复正常后,有可以自动将此服务节点重新加入服务集群中,这些工作全部自动完成,不需要人工干涉,只需人工完成只是修复出现故障的服务节点。后来Keepalived加入VRRP功能,解决单点故障问题,实现网络不间断稳定运行。

VRRP协议和工作原理 

VRRP(虚拟路由冗余协议)是一种主备模式的协议,可以在网络发生故障时透明的进行设备切换而不影响主机间的数据通信。 

VRRP可以将两台或者多台物理路由器设备虚拟成一台虚拟路由器,这个虚拟路由器通过虚拟IP向外提供服务,而在虚拟路由器的内部是对个路由器协同工作,同一时间只有一个物理路由器对外提供服务,这台路由器别称为主路由器。主路由器有算法产生,它对外提供虚拟IP,ARP请求,ICMP,数据转发等功能。而备份路由器不对外提供网络功能,仅仅接受来自MASTER的VRRP状态通告信息。

VRRP的工作过程如下: 

1. 路由器开启VRRP功能后,会根据优先级确定自己在备份组中的角色。优先级高的路由器成为主用路由器,优先级低的成为备用路由器。主用路由器定期发送VRRP通告报文,通知备份组内的其他路由器自己工作正常;备用路由器则启动定时器等待通告报文的到来。 

 2.  VRRP在不同的主用抢占方式下,主用角色的替换方式不同: 

   l在抢占方式下,当主用路由器收到VRRP通告报文后,会将自己的优先级与通告报文中的优先级进行比较。如果大于通告报文中的优先级,则成为主用路由器;否则将保持备用状态。 

   l在非抢占方式下,只要主用路由器没有出现故障,备份组中的路由器始终保持主用或备用状态,备份组中的路由器即使随后被配置了更高的优先级也不会成为主用路由器。 

  3. 如果备用路由器的定时器超时后仍未收到主用路由器发送来的VRRP通告报文,则认为主用路由器已经无法正常工作,此时备用路由器会认为自己是主用路由器,并对外发送VRRP通告报文。备份组内的路由器根据优先级选举出主用路由器,承担报文的转发功能。

Keepalived工作原理 

Keepalived工作在TCP/IP协议的第三,第四,第五层上,即网络层,传输层和应用层。 

(1).网络层:运行IP,ICMP,ARP,RARP协议,其中常采用ICMP协议向服务器集群中的每个节点发送一个ICMP的数据包,如果某个节点没有返回响应数据包,则认为此节点发生故障。 

(2).传输层:Keepalived利用TCP协议在端口连接和扫描技术来判断集群节点是否正常。 

(3).应用层:可以运行FTP,TELNET,SMTP等协议。

Keepalived的体系结构 

Linux之Keepalived实现服务器集群高可用

从上图看出,Keepalived分为用户空间和内核空间。

安装keeplived

yum源安装 

[root@Clone4 ~]# yum install keepalived

编译安装

Keepalived配置文件详解

MATSER和BACKUP的权值计算

实现HTTPD的高可用

部署环境说明: 

Clone1     192.168.80.129    BUCKUP    HTTPD 

Clone4     192.168.80.132    MASTER    HTTPD 

VIP:192.168.80.150

Keepalived的配置文件 

Linux之Keepalived实现服务器集群高可用
Linux之Keepalived实现服务器集群高可用

启动 

(1).先启动BACKUP服务器 

Linux之Keepalived实现服务器集群高可用

(2).在启动MATSER服务器 

Linux之Keepalived实现服务器集群高可用

Hearbeat实现高可用:(http://lnsane784.blog.51cto.com/1226518/1952393) 

Corosync+pacemaker实现高可用:(http://lnsane784.blog.51cto.com/1226518/1952687) 

HTTPD服务器搭建:(http://www.crazyrui.pw:8088/index.php/2017/07/14/linux_server_httpd/) 

Tomcat搭建:(http://www.crazyrui.pw:8088/index.php/2017/06/14/linux_tomcat/)

本文转自lnsaneLlinux博客51CTO博客,原文链接http://blog.51cto.com/lnsane784/1953997如需转载请自行联系原作者

Insane_linux

继续阅读