keepalive为LVS应运而生的高可用服务。LVS的调度器无法做高可用,于是keepalive这个软件,实现的是调度器的高可用。但是,keepalive不是专门为LVS集群服务的,也可以做其他代理服务器的高可用(面试)
LVS的高可用集群:主调度器和备调度器(可以有多个)一主两备或者一主一备
主调度器能够正常运行时,由主调度器进行后端真实服务器的分配处理。其余的备用调度器处在冗余状态 (既不参与集群的运转,只有主调度器出现故障无法运行的时候,备用调度器才会承担主调度器的工作,一旦主调度器恢复工作,继续由主调度器进行处理,此时被调度器又成了冗余)
VRRP:keepalive是基于VRRP协议实现LVS服务的高可用。解决了调度器单节点的故障问题
【VRRP协议就是leepalive工作流程(以↓四步)】
VRRP协议:提高网络路由器可靠性而开发的一种协议
选举出主和备,预先设定好了主和备的优先级。主的优先级较高,备的优先级较低。一旦开启服务器,优先级高的会自动抢占主的位置
VRRP组播通信:224.0.0.18 VRRP协议当中的主备服务器通过组播地址进行通信,交换主备服务器之间的运行状态。主服务会周期性的发送VRRP的报文消息,以告知其他备服务器主服务器现在的状态
主备切换:主服务器发生故障,或者不可达时,VRRP协议会把请求转移到被服务器。通过组播地址,VRRP可以迅速的通知其他服务器发生了主备切换,确保新的主服务器可以正常的处理客户端请求
故障恢复:一旦主服务器恢复通信,由组播地址进行通信,发现在恢复的主服务器优先级更高,会抢占原服务器的位置,成为主服务器,调度和接受请求
Ivs-DR模式结合keepalived
确定优先级,确定主备
主挂,vip到备,备成主
lvs-DR模式结合keepalived
keepalived的体系模块:
全局模块:core模块,负责整个keepalive启动加载和维护
VRRP模块:实现VRRP协议,主备切换
check模块:负责健康检查。检查的是后端真实服务器的健康状态。
脑裂:主和备同时拥有VIP地址。在高可用系统当中,联系两个节点的心跳线,本来是一体的,动作协调的高可用系统。心跳线断开之后,分裂成两个独立的个体,主备之间失去了联系,都以为对方出现了故障。两个调度器就像脑裂人一样,开始抢含主的位置,抢占VIP。主也有vip,备也有vip,导致整个集群失败。
软件层面:
1、配置文件
2、通过tcpdump进行抓包分析
重启
硬件层面:
网络层面:高可用服务器之间,心跳线检测失败,主备之间无法通信
硬件层面:①连接主备之间的心跳线老化;②网卡或者网卡驱动失效;③IP地址配置冲突;④防火墙没有配置心跳线消息的传输通道,导致检测失败;⑤后端服务器的配置问题,心跳方式不同。心跳广播冲突。软件BUG
如何解决leepalive脑裂的问题:
1、硬件: 准备两条心跳线,这样断一条依然能够传送心跳消息
2、设置防火墙,一定要让心跳的消息通过
3、依靠监控软件实时监测(zabbix)
dev开发环境(开发人员专用)
sit测试环境(测试人员使用,开发和运维人员也可以使用)
pre预生产环境(运维和开发人员使用)【和最终的生产环境要保持一致】
prd生产环境(面向用户的最终环境)
第一个keepalive:
工作方式基于VRRP协议:
1、确定主备
2、VIP地址只能有一个,出现在主服务器上
3、VRRP 224.0.0.18 组播地址,发送VRRP报文,检测主的心跳
4、主备切换,主出现故障,vip地址会飘移到备服务器
5、主服务器恢复,VIP地址要回到主
6、脑裂 主备都有vip 软件层面检查配置文件文章来源:https://www.toymoban.com/news/detail-716317.html
7、keepalive不是只能和LVS搭配,也可以和其他服务配合,实现高可用文章来源地址https://www.toymoban.com/news/detail-716317.html
到了这里,关于lvs+keepalived高可用集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!