LVS-keepalived实现高可用

概念:

本章核心:

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

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

实验配置:

Test1:主调度器

Test2:备调度器

后端真实服务器1

后端真实服务器2

VIP地址

客户端

需要的工具

Keepalived的体系和模块

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

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

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

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

配置备服务器

备调度器远程复制

配置后端真实服务器

配置虚拟网卡

开一台客户机验证

验证keepalived机制是否工作正常

主调度器

备调度器

主调度器恢复工作之后

脑裂概念:

主和备同时拥有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高可用:

核心图:

实验配置:

Nginx1:192.168.233.61主

Nginx2:192.168.233.62 备

Nginx3:配置VIP

实验前提:

关闭防火墙和安全机制

三台Nginx安装keepalived

Nginx1:

配置文件后面的全部删除

随后添加内容

配置文件最后

Nginx2配置:

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

改一下优先级,和主备

写一个脚本文件:

把脚本复制到51主当中

赋权777

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

查看VIP地址是否转移

实现高可用

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

相关推荐
Ap04158 天前
LVS介绍以及模式实现
lvs
天蓝不会忘记028 天前
lvs,haproxy,keepalived,nginx,tomcat介绍和实验
nginx·tomcat·lvs
qizhideyu8 天前
LVS(Linux virual server)
linux·运维·lvs
在这habit之下8 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
Yiiz.8 天前
LVS实验
lvs
️️(^~^)8 天前
LVS实验
linux·服务器·lvs
gx23488 天前
1-LVS
linux·服务器·lvs
unfeeling_8 天前
LVS实验
lvs
芝士雪豹只抽瑞克五9 天前
Linux Virtual Server (LVS) 负载均衡集群笔记
linux·笔记·负载均衡·lvs
屎到临头想搅便9 天前
LVS负载均衡
网络·lvs