Keepalive+Nginx高可用配置(主从)

Keepalived高可用集群

一、Keepalived介绍

Keepalived软件主要通过VRRP协议实现高可用功能的。VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题,它能够保证当个别节点宕机时,整个网络可以不间断地运行。keepalived除了能够管理LVS软件外,还可以作为其他服务(Nginx,Haproxy、MySQL等)的高可用解决方案软件。

二、keepalived软件的三个主要功能

1、管理LVS负载均衡软件

早起的LVS软件,需要通过命令行或脚本实现管理,并且没有针对LVS节点的健康检查功能。为了解决LVS的这些不方便的问题,keepalived诞生了。因此keepalived跟LVS的感情很深,关系如夫妻一样,可以紧密的结合。keepalived可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS的配置以及控制服务的启动、停止等功能,这使得LVS的应用更加简单方便。

2、实现对LVS集群节点的健康检查功能

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

3、作为系统网络服务的高可用功能(failover)

keepalived可以实现任意两台主机之间,例如Master和Backup主机之间的故障转移和自动切换,这个主机可以是普通的不能停机的业务服务器,也可以是LVS负载均衡、Nginx反向代理这样的服务器。

原理就是:两台主机同时安好keepalived软件并启动服务,开始正常工作时,由角色为Master的主机获得所有资源并对用户提供服务,角色为Backup的主机作为Master主机的热备;当角色为Master的主机失效或出现故障时,角色为Backup的主机将自动接管Master主机的所有工作,包括接管VIP资源及相应资源服务;而当角色为Master的主机故障修复后,又会自动接管回它原理处理的工作,角色为Backup的主机则同时释放Master主机失效时它接管的工作,还原为最初启动各自的角色。

三、keepalived高可用故障切换转移原理

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

VRRP,全称Virtual Router Redundancy Protocol,虚拟路由冗余协议,VRRP的出现就是为了解决静态路由的单点故障问题,VRRP是通过一种竞选机制来将路由任务交给某台VRRP路由器的。

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


总结就是下面四句话:

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

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

(3)VRRP是IP多播的方式,实现高可用对之间的通信。

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

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

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

(1)硬件环境:四台虚拟机,两台做负载均衡器,两台做web服务器。

(2)web服务器前面搭建好了

(3)安装keepalived软件:yum install keepalived -y,在两台负载均衡器上都装上。时间同步

(4)启动:systemctl start keepalived.service

(5)配置主的文件/etc/keepalived/keepalived.conf

(6)全局定义部分可以不配,实际工作中交给更擅长监控报警的zabbix或者nagios来管

主的

Keepalive+Nginx高可用配置(主从)

备份的

Keepalive+Nginx高可用配置(主从)

测试,主的开启keepalived和禁用

19.jpg

20.jpg

然后将主的keepalived关掉,用curl测试:

18.jpg

主主的区别如下,电脑内存太小,只有4g,跑了4太虚拟机太卡,上传张图片几分钟,不折腾了。

21.jpg

原创文章,作者:N24_yezi,如若转载,请注明出处:http://www.178linux.com/65402

(10)
N24_yeziN24_yezi
上一篇 2016-12-30 21:39
下一篇 2016-12-31 10:57

相关推荐

  • centos系统中常用的命令

    日志文件说明:  /var/log/message      系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一   /var/log/secure      &nb…

    Linux干货 2016-06-28
  • Linux命令帮助的获取

    帮助命令 1. 使用帮助命令和帮助选项来获取帮助 2. 使用man来查看命令使用手册(manual) 3. 使用info来查看命令的信息页 4. 程序自身的帮助文档(README/INSTALL/ChangeLog) 5. 程序官方文档(官方站点:Documentation) 6. 发行版的官方文档…

    Linux干货 2016-06-01
  • N25_第六周

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; %s@^[[:space:]]+@#&@g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; %s@^[[:spac:]]+@@g…

    Linux干货 2017-02-13
  • 马哥教育网络班N22期+第6周课程练习

    一、总结vim编辑器的使用方法 vim文本编辑器 全屏编辑器,模式化编辑器 vim的教程文件命令:vimtutor vim /path/to/somefile vim模式: 编辑模式(命令模式),默认模式 输入模式 末行模式 内置的命令行接口; 模式转换: 编辑模式—>输入模式: i:insert, 在光标所在处前方输入,转为输入模式 a:append…

    Linux干货 2016-10-09
  • 简单的bash脚本查看任意网段的在线主机

    一前言         最近看到许多同志在写ping某个地址段的bash脚本,我也心血来潮来了一发。  当然本人新手,大神勿喷。 二准备工作           linux系统的机…

    2017-03-02

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-13 09:34

    赞,特别是最后一张图,希望能看出其中和你配置不一样的地方,并理解~~继续加油~