Keepalived简介
Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(HighAvalilability,HA),虽然两种不同的涵义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管,它与HeartBeatRoseHA实现相同类似的功能,都可以实现服务或则网路的高可用,并且又有差异,HeartBeat是一个专业的、功能健全的高可用软件,它提供了HA软件所需的基本功能,例如:脉搏检查、资源接管,测量集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强悍linux运维招聘,而且布署和使用相对比较麻烦,与HeartBeat相比,Keepalived主要是通过虚拟路由冗余来实现高可用功能centos双机热备方案,尽管它没有HeartBeat功能强悍,而且Keepalived布署和使用特别的简单,所有配置只须要一个配置文件即可以完成。
下文在学习黑马程序员“高可用的并发解决方案nginx+keepalived”的教程中有详尽介绍,文末有此教程链接~
Keepalived是哪些?
Keepalived原本是为LVS设计的,专门拿来监控集群系统中各个服务节点的状态,它依据TCP/IP参考模型的第三、第四层、第五层交换机制检查每位服务节点的状态,假如某个服务器节点出现异常,或则工作出现故障,Keepalived将测量到,并将出现的故障的服务器节点从集群系统中剔除,这种工作全部是手动完成的,不须要人工干涉,须要人工完成的只是修补出现故障的服务节点。
后来Keepalived又加入了VRRP的功能,VRRP(VritrualRouterRedundancyProtocol,虚拟路由冗余合同)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网路不间断稳定运行,因而Keepalvied一方面具有服务器状态监测和故障隔离功能,另外一方面也有HAcluster功能,下边介绍一下VRRP合同实现的过程。
VRRP合同与工作原理
在现实的网路环境中。主机之间的通讯都是通过配置静态路由或则(默认网段)来完成的,而主机之间的路由器一旦发生故障,通讯都会失效,因而这些通讯模式当中,路由器就成了一个单点困局,为了解决这个问题,就引入了VRRP合同。
熟悉网路的学员对VRRP合同应当不陌生,它是一种主备模式的合同,通过VRRP可以在网路发生故障时透明的进行设备切换而不影响主机之间的数据通讯红帽子linux,这其中涉及到两个概念:化学路由器和虚拟路由器。
VRRP可以将两台或则多台数学路由器设备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟IP(一个或则多个)对外提供服务,而在虚拟路由器内部十多个数学路由器协同工作,同一时间只有一台数学路由器对外提供服务,这台数学路由设备被成为:主路由器(Master角色),通常情况下Master是由补选算法形成,它拥有对外服务的虚拟IP,提供各类网路功能,如:ARP恳求,ICMP数据转发等,但是其它的化学路由器不拥有对外的虚拟IP,也不提供对外网路功能,仅仅接收MASTER的VRRP状态通告信息,这种路由器被合称为“BACKUP的角色”,当主路由器失败时,处于BACKUP角色的备份路由器将重新进行改选,形成一个新的主路由器步入MASTER角色,继续提供对外服务,整个切换对用户来说是完全透明的。
每位虚拟路由器都有一个惟一的标示号,称为VRID,一个VRID与一组IP地址构成一个虚拟路由器,在VRRP合同中,所有的报文都是通过IP多播形式发送的,而在一个虚拟路由器中,只有处于Master角色的路由器会始终发送VRRP数据包,处于BACKUP角色的路由器只会接受Master角色发送过来的报文信息,拿来监控Master运行状态,一通常不会发生BACKUP占据的情况,除非它的优先级更高,而当MASTER不可用时,BACKUP也就难以收到Master发过来的信息,于是就认定Master出现故障,接着多台BAKCUP都会进行补选,优先级最高的BACKUP将称为新的MASTER,这些补选角色切换特别之快,因此保证了服务的持续可用性。
Keepalvied的工作原理
里面我们介绍了Keepalived通过VRRP实现高可用性的工作原理,而Keepalived作为一个高性能集群软件,它能够实现对集群中服务器运行状态的监控以及故障隔离,下边我们介绍一下Keepalived对服务器运行状态和故障隔离的工作原理。
Keepalived工作在TCP/IP参考模型的三层、四层、五层,也就是分别为:网路层,传输层和应用层,按照TCP、IP参数模型隔层所能实现的功能,Keepalived运行机制如下:
在网路层:我们晓得运行这4个重要的合同,互联网络IP合同,互联网络可控制报文合同ICMP、地址转换合同ARP、反向地址转换合同RARP,在网路层Keepalived在网路层采用最常见的工作方法是通过ICMP合同向服务器集群中的每一个节点发送一个ICMP数据包(有点类似与Ping的功能),假如某个节点没有返回响应数据包,这么觉得该节点发生了故障centos双机热备方案,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点。
在传输层:提供了两个主要的合同:传输控制合同TCP和用户数据合同UDP,传输控制合同TCP可以提供可靠的数据输出服务、IP地址和端口,代表TCP的一个联接端,要获得TCP服务,须要在发送机的一个端口和接收机的一个端口上构建联接,而Keepalived在传输层里借助了TCP合同的端口联接和扫描技术来判别集群节点的端口是否正常,例如对于常见的WEB服务器80端口。或则SSH服务22端口,Keepalived一旦在传输层侦测到这种端标语没有数据响应和数据返回,就觉得这种端口发生异常,之后强制将这种端口所对应的节点从服务器集群中剔除掉。
在应用层:可以运行FTP,TELNET,SMTP,DNS等各类不同类型的高层合同,Keepalived的运行方法也愈发全面化和复杂化,用户可以通过自定义Keepalived工作方法,比如:可以通过编撰程序或则脚本来运行Keepalived,而Keepalived将按照用户的设定参数测量各类程序或则服务是否容许正常,假如Keepalived的测量结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除。
Keepalvied的安装
我们在本文中的测试环境如下:
两台化学服务器和一个虚拟服务器(vip):
master:centos7192.168.8.4
backup:centos7192.168.8.6
vip:192.168.8.100
测试环境的网路topology图如下:
节点A192.168.8.4(主节点),节点B192.168.8.6(备用节点),虚拟IP(对外提供服务的IP192.168.8.100)。
在这些模式下,虚拟IP在某时刻只能属于某一个节点,另一个节点作为备用节点存在。当主节点不可用时,备用节点接管虚拟IP(即虚拟IP甩尾至节点B),提供正常服务。
keepalived的原理可以这样简单理解:
keepalived安装在两台化学服务器上,并互相监控对方是否在正常运行。
当节点A正常的时侯:节点A上的keepalived会将下边的信息广播出去:
192.168.8.100这个IP对应的MAC地址为节点A网卡的MAC地址,图中的其它笔记本如顾客端和NodeB会更新自己的ARP表,对应192.168.8.100的MAC地址=节点A网卡的MAC地址。当节点A发生故障的时侯,节点B上的keepalived会检查到,而且将下边的信息广播出去:192.168.8.100这个IP对应的MAC地址为节点B网卡的MAC地址图中的其它笔记本如顾客端会更新自己的ARP表,对应192.168.8.100的MAC地址=节点B网卡的MAC地址,下边分别在两台机器上进行软件安装:
1.下载keepalived:说明:目前在CentOS7上安装须要1.3.2以上版本,否则会出现一个操作系统内核错误,不好搞定,建议使用root用户安装
2.解压keepalived:tar-xvfkeepalived-1.3.4.tar.gz
3../configure
4.make
5.makeinstall
6.whereiskeepalived
7.mkdir/etc/keepalived
8.cp/usr/local/etc/keepalived/keepalived.conf/etc/keepalived/
9.cp/usr/local/etc/rc.d/init.d/keepalived/etc/init.d/(目前这个文件在keepalived解压后,存在keepalived文件夹,etc文件夹,init.d中,具体看安装的版本)
10.cp/usr/local/etc/sysconfig/keepalived/etc/sys
11.cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/
12.cp/usr/local/sbin/keepalived/usr/sbin/
13.chkconfig--addkeepalived添加操作系统启动
14.chkconfig--listkeepalived
15.servicekeepalivedstart/stop/restart启动关掉keepalived服务
Keepalvied的防火墙配置
防火墙规则(主从机都要配置,单向打开vrrp服务,建议关掉防火墙先测试keepalived配置是否正确,这儿是firewall防火墙的配置,iptables的话查下):
16.firewall-cmd--direct--permanent--add-ruleipv4filterINPUT0--in-interfaceeth0--destination224.0.0.18--protocolvrrp-jACCEPT
17.firewall-cmd--direct--permanent--add-ruleipv4filterOUTPUT0--out-interfaceeth0--destination224.0.0.18--protocolvrrp-jACCEPT
18.firewall-cmd--reload
Keepalvied配置
分别配置主机从机的keepalived.conf文件,配置完成后重启keepalived服务,双机热备功能服务器配置完成。
1.主机的配置
2.从机的配置
高可用的并发解决方案nginx+keepalived