LVS-keepalived实现高可用

概念:

本章核心:

LVS-keepalived实现高可用_第1张图片

Keepalived为LVS应运而生的高可用服务。LVS的调度无法做高可用,预算keepalived这个软件,实现了调度器的高可用。

但是:Keeplived不是专门为LVS集群服务的,也可以做其他服务器的高可用

LVS的高可用集群:主调度器和备调度器(可以有多个)一般都是一主两备,一主一备

主调度器能够正常运行时,由主调度器进行后端真实服务器的分配处理,其余的备用调度器处在冗余状态,不参与集群的运转,主调度器挂了无法运行,此时备用调度器才会承担主调度器的工作,一旦主调度器恢复工作,继续由主调度器进行处理,备调度器用成了冗余。

VRRP:keepalived时基于vrrp协议实现LVS服务的高可用,解决了调度器单节点的故障问题

复习一下VRRP:

复习一下vrrp协议:提高网络路由器的可靠性开发的一种协议。

选举出主和备:预先设定好主和备的优先级,住的优先级较高,备的优先级低,一旦开启服务器,优先级高的,会自定抢占主的位置

VRRP组播通信:224.0.0.18  VRRP协议当中的主备服务器通过组播地址进行通信,交换主备服务器的之间的运行状态,主服务器会周期性的发送VRRP的报文消息,已告知其他备服务器,主服务器形现在的状态

主备切换:主服务器发生故障或者不可达,VRRP协议会把请求转义到备服务器,通过组播地址,VRRP可以迅速通知其他服务器发生了主备切换,确保新的主服务器可以正常的处理客户端的请求

故障恢复:一旦服务器恢复通信,由组播地址进行通信,发现在恢复的主服务器优先级更高,会抢占原主服务器的位置,成为主服务器,调度和接受请求。

LVS—DR模式结合keepalived

LVS-keepalived实现高可用_第2张图片

主的故障恢复之后,VIP地址转移

LVS-keepalived实现高可用_第3张图片

实验配置:

Test1:主调度器

Test2:备调度器

后端真实服务器1

后端真实服务器2

VIP地址

客户端

需要的工具

LVS-keepalived实现高可用_第4张图片

LVS-keepalived实现高可用_第5张图片

LVS-keepalived实现高可用_第6张图片

LVS-keepalived实现高可用_第7张图片

LVS-keepalived实现高可用_第8张图片

LVS-keepalived实现高可用_第9张图片

Keepalived的体系和模块

全局模块:core模块,负责整个keepalived启动加载和维护

VRRP模块:实现VRRP协议,包括主备切换

Check模块:负责健康检查,检查节点服务器,检查后端真实服务器的健康检查。配置在真实服务器的模块当中

LVS-keepalived实现高可用_第10张图片LVS-keepalived实现高可用_第11张图片

关闭主调度服务器的转发功能

LVS-keepalived实现高可用_第12张图片

LVS-keepalived实现高可用_第13张图片

配置备服务器

备调度器远程复制

LVS-keepalived实现高可用_第14张图片

LVS-keepalived实现高可用_第15张图片

LVS-keepalived实现高可用_第16张图片

LVS-keepalived实现高可用_第17张图片

LVS-keepalived实现高可用_第18张图片

LVS-keepalived实现高可用_第19张图片

配置后端真实服务器

配置虚拟网卡

LVS-keepalived实现高可用_第20张图片

LVS-keepalived实现高可用_第21张图片

LVS-keepalived实现高可用_第22张图片

LVS-keepalived实现高可用_第23张图片

LVS-keepalived实现高可用_第24张图片

开一台客户机验证

LVS-keepalived实现高可用_第25张图片

验证keepalived机制是否工作正常

主调度器

LVS-keepalived实现高可用_第26张图片

备调度器

LVS-keepalived实现高可用_第27张图片

LVS-keepalived实现高可用_第28张图片

主调度器恢复工作之后

LVS-keepalived实现高可用_第29张图片

LVS-keepalived实现高可用_第30张图片

LVS-keepalived实现高可用_第31张图片

脑裂概念:

主和备同时拥有VIP地址,在高可用系统当中,联系两个系统的心跳线,本来是一体的,他是一个动作协调的高可用系统。

心跳线断开之后,分裂成两个独立的个体,主和备之间失去了联系,两个调度器,就像脑裂人一样开始抢占主的位置,抢占VIP,主也有VIP,备也有VIP,导致整个集群失败。

怎么解决脑裂问题:

软件层面:

  1. 配置文件问题
  2. Tcpdump抓包分析
  3. 先重启主,再重启备

网络层面:

  1. 高可用服务器之间他们的心跳线检测失败,主备之间无法进行通信

硬件层面:

  1. 连接主备之间的心跳线老化
  2. 网卡或者网卡驱动失败,IP地址配置冲突
  3. 防火墙导致的,防火墙没有配置心跳消息的传输通道,导致检测失败
  4. 后端服务器的配置问题,心跳方式不同,心跳广播冲突,软件bug

如何解决keepalived脑裂的问题:

  1. 硬件:准备两条心跳线,这样断了一条也无所谓,依然能够传送心跳消息
  2. 设置防火墙一定要让心跳的消息通过
  3. 依靠监控软件实时检测

生产当中常见的环境:

Dev 开发环境 开发人员专用

Sit 测试环境,测试人员使用(开发运维)

pre  预生产环境,运维和开发(和最终的生产环境保持一致)

Prd 生产环境(面向用户的环境)

Keepalived用于Nginx高可用:

核心图:

LVS-keepalived实现高可用_第32张图片

实验配置:

Nginx1:192.168.233.61主

Nginx2:192.168.233.62 备

Nginx3:配置VIP

实验前提:

关闭防火墙和安全机制

三台Nginx安装keepalived

LVS-keepalived实现高可用_第33张图片

Nginx1:

LVS-keepalived实现高可用_第34张图片

LVS-keepalived实现高可用_第35张图片

LVS-keepalived实现高可用_第36张图片

配置文件后面的全部删除

随后添加内容

LVS-keepalived实现高可用_第37张图片

配置文件最后

LVS-keepalived实现高可用_第38张图片

Nginx2配置:

另一台nginx直接复制配置文件

改一下优先级,和主备 

LVS-keepalived实现高可用_第39张图片

LVS-keepalived实现高可用_第40张图片

LVS-keepalived实现高可用_第41张图片

写一个脚本文件:

LVS-keepalived实现高可用_第42张图片

LVS-keepalived实现高可用_第43张图片

LVS-keepalived实现高可用_第44张图片

把脚本复制到51主当中

LVS-keepalived实现高可用_第45张图片

赋权777

LVS-keepalived实现高可用_第46张图片

配置全部完成,停掉主服务

LVS-keepalived实现高可用_第47张图片

查看VIP地址是否转移

LVS-keepalived实现高可用_第48张图片

LVS-keepalived实现高可用_第49张图片

实现高可用

重启nginx服务,再重启keepalived,记得先后顺序,检测是否出现脑裂问题

你可能感兴趣的:(lvs)