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

相关推荐

  • N25第三周作业(用户组,和文本管理)

    列出当前系统 上所有已经登录用户的用户名,注意:同一个用户登录多次,则只显示一次即可. 列出最后登录到当前系统的用户相关信息. 命令who查看所有用户 , tail查看后几行 取出当前系统上被用户当作其默认shell的最多那个shell. 命令cut 分割 , -d 指定分隔符,-f指定字段 uniq 显示或忽略重复行信息   -c:显示并统计重复…

    Linux干货 2016-12-19
  • RAID学习总结

    RAID(Redundant Array of Independent Disks): 定义:独立硬盘冗余阵列,旧称廉价磁盘冗余阵列(Redundant Array of Independent Disks),简称磁盘阵列。 原理:把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使其性能达到甚至超过价格昂贵,容量巨大的硬盘。 优势: RAID在容量和管理上…

    Linux干货 2016-08-22
  • 文件、目录——Linux基本命令(7)

    1.     文件名规则 (1)文件名最长255个字节          (2)包括路径在内文件名称最长4095个字节 (3)文件颜色          蓝色-…

    2017-07-17
  • linux的发展史

    一、今天要介绍的Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 但是很多时候我们了解到的技术都不是…

    Linux干货 2016-10-17
  • Hello World 集中营

    编程的人应该都知道什么是Hello World。这是一个最简单的程序,其只在屏幕上输出“Hello World”字样,这通常是初学者的在学习编程时的第一个示例。把打印出 “Hello World” 作为第一个范例程序,现在已经成为编程语言学习的传统。“Hello World”起源于Brian Kernighan 和Dennis MacAlistair Rit…

    2016-05-17
  • Liunx获取信息帮助与man文档章节的划分

    首先要判断命令的类型,可用 type COMMAND 来判断命令 如果显示结果为(….是 shell内嵌)即为shell内嵌命令,如需获取帮助,使用 help COMMAND 即可; 下图的例子是pwd是shell内嵌命令 内部命令属于Shell的一部分,所以并没有单独对应的系统文件,只要Shell解释器被运行,内部指…

    2017-07-02

评论列表(1条)

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

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