LVS+keepalived高可用集群

1、定义

keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用,keepalived实现的是调度器的高可用,但keepalived不只为lvs集群服务的,也可以做其他代理服务器的高可用,比如nginx+keepalived也可实现高可用 (重点)

2、作用

解决代理服务器的高可用问题

lvs的高可用集群:主调度器和备调度器(一主一备、一主两备)

3、工作方式

主调度器能够正常运行时,由主调度器进行后端真实服务器的分配处理,其余的备用调度器都处于冗余状态,不参与集群的运转,当主调度器出现故障无法运行时,备用调度器承担主调度器的工作,一旦主调度器恢复工作,继续由主调度器进行处理,备调度器又处于冗余状态

4、keepalived是基于VRRP协议实现lvs服务的高可用,解决了调度器单节点的故障问题

5、VRRP协议:提高网络路由器的可靠性开发的一种协议

工作原理:

****(1)选举主备。****预先设定好主和备的优先级,选举出主和备。主的优先级较高,备的优先级低,一旦开启服务,优先级高的会自动抢占主的位置

****(2)检测主备。****依靠VRRP组播通信检测主、备是否正常运转。组播通信地址:224.0.0.18。VRRP协议当中的主备服务器通过组播地址进行通信,交换主备服务器之间的运行状态,主服务器会周期性的发送VRRP报文消息,告知其他备服务器主服务器现在的状态

****(3)主备切换。****主服务器发生故障或者不可达,VRRP协议会把请求转移到备服务器。通过组播地址224.0.0.18,VRRP可以迅速的通知其他服务器立即主备切换,并确保新的主服务器可以正常的处理客户端的请求

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

6、LVS-DR模式结合keepalived数据流向

7 keepalived的体系模块

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

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

check模块:配置在真实服务器的模块中。负责健康检查,检查后端真实服务器的健康状况

8、(重点)脑裂:主备同时拥有VIP地址

1、定义:在高可用系统中,联系两个节点的心跳线,本来是一体的,是一个动作协调的高可用系统。若心跳线断开后分裂成两个独立的个体,主备之间失去了联系,都以为对方出现了故障,两个调度器像脑裂人一样开始抢占主的位置和VIP地址,此时主服务器有VIP地址,备服务器也有VIP地址,导致整个集群失败

2、问题原因

  1. 软件层面:

重启主备服务器的keepalived服务(先重启主,再重启备,再模拟一下故障恢复)

配置文件

②tcpdump抓包分析

  1. 网络层面:

高可用服务器之间心跳线检测失败(主备之间无法进行通信,ping测试一下)

  1. 硬件层面:

①连接主备之间的心跳线老化

②网卡或网卡的驱动失效

③IP地址配置冲突

④防火墙没有配置心跳线消息的传输通道,导致检测失败(VRRP消息发不出去)

⑤后端服务器的配置问题(心跳方式不同、心跳广播冲突、软件bug等)

3、如何解决脑裂问题?

①硬件:准备两条心跳线,这样断了一条依然能够传送心跳消息

②设置防火墙,一定让心跳消息通过

③依靠监控软件实时监测(zabbix软件)

环境:

dev开发环境------开发人员专用(与运维无关)

sit测试环境------测试人员使用(开发、运维都可以用)

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

prd生产环境------面向用户的最终环境

常用的是开发、测试环境一块用,再加上生产环境

9、LVS+keepalived实现高可用实验

keepalived不能有注释;启动keepalived会自动生成ipvsadm配置,不需要配置ipvsadm配置文件;keepalived配置错误照样能重启

实验条件:

test1------主调度器------20.0.0.10------keepalived、ipvsadm服务

test2------备调度器------20.0.0.20------keepalived、ipvsadm服务

nginx1------后端真实服务器1------20.0.0.11------nginx服务

nginx2------后端真实服务器2------20.0.0.21------nginx服务

nginx3------客户端------20.0.0.31

VIP地址:20.0.0.100(自定义,必须和DIP和RIP在同一网段)

实验步骤:

1、主调度器test1------20.0.0.10

(1)安装、重启keepalived、ipvsadm服务

保存配置文件:ipvsadm-save > /etc/sysconfig/ipvsadm

(2)保存配置文件

(3)修改keepalived配置文件,绑定VIP地址和后端真实服务器地址

主和备的名称不能一样,否则报错

虚拟路由器的id号(virtual_router_id 51),主备一致

(4)关闭主服务器的转发功能和重定向

net.ipv4.ip_forward = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

2、备份服务器test2------20.0.0.20

(1)安装ipvsadm、keepalived服务

(2)备份keepalived配置文件

(3)远程复制主服务器的keepalived配置文件

(4)修改keepalived配置文件vim /etc/keealived/keepalived.conf

3、检测此时VIP地址在哪台服务器上

4、后端服务器nginx1、nginx2设置静态页面,便于检测轮询

5、后端服务器nginx1、nginx2配置虚拟网卡,绑定VIP地址

(1)nginx1

①配置虚拟接口

②绑定回环接口

③内核参数优化(只有真实服务器的RIP地址可以返回响应结果)

(2)nginx2

①配置虚拟接口

②绑定回环接口

③内核参数优化(只有真实服务器的RIP地址可以返回响应结果)

6、测试

7、模拟故障

(1)主服务器故障------验证高可用,主备是否切换

结论:主备切换成功

(2)主服务器恢复正常运行------VIP地址是否能切换到原主服务器

(3)节点服务器出现故障------假设RS1故障

测试结果:只能访问另一个后端真实服务器

(4)节点服务器恢复正常运行------假设RS1正常运行

测试结果:根据轮询算法后端真实服务器

10、nginx+keepalived实现高可用实验

nginx依靠脚本检测主备服务器的健康生命体征

实验条件:

nginx4------主服务器------20.0.0.41------keepalived、ipvsadm服务

nginx5------备服务器------20.0.0.51------keepalived、ipvsadm服务

nginx6------客户端------20.0.0.61------nginx服务

VIP地址:20.0.0.100(自定义,必须和DIP和RIP在同一网段)

实验步骤:

1、主服务器nginx4

(1)安装ipvsadm、keepalived服务

(2)备份keepalived配置文件

(3)修改keepalived配置文件

(4)创建周期性执行脚本check_nginx.sh

(5)下载脚本文件到桌面 sz check_nginx.sh

(6)建立静态页面,便于识别

2、备服务器nginx5

(1)安装ipvsadm、keepalived服务

(2)备份keepalived配置文件

(3)远程连接复制主服务器的keepalived配置文件

(4)修改keepalived配置文件

(5)下载刚刚的周期性脚本执行文件并赋权

(6)建立静态页面,便于识别

3、检测VIP 地址。此时VIP地址在主服务器上

4、测试。没有轮询算法

5、模拟主服务器故障

测试结果:备服务器顶替主服务器工作

6、模拟备服务器故障

测试结果:主服务器恢复正常运行

相关推荐
独行soc12 小时前
#渗透测试#SRC漏洞挖掘#深入挖掘XSS漏洞02之测试流程
web安全·面试·渗透测试·xss·漏洞挖掘·1024程序员节
XuanRanDev16 小时前
【每日一题】LeetCode - 三数之和
数据结构·算法·leetcode·1024程序员节
鹏大师运维21 小时前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
亦枫Leonlew1 天前
微积分复习笔记 Calculus Volume 1 - 4.7 Applied Optimization Problems
笔记·数学·微积分·1024程序员节
小肥象不是小飞象1 天前
(六千字心得笔记)零基础C语言入门第八课——函数(上)
c语言·开发语言·笔记·1024程序员节
一个通信老学姐1 天前
专业130+总400+武汉理工大学855信号与系统考研经验电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
力姆泰克1 天前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
力姆泰克1 天前
力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
大数据·服务器·数据库·人工智能·1024程序员节
程思扬1 天前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
转世成为计算机大神1 天前
网关 Spring Cloud Gateway
java·网络·spring boot·1024程序员节