【Linux】LVS+Keepalived高可用负载均衡群集

本文介绍了Keepalived的实现原理,包括其在LVS中的角色,通过VRRP协议实现高可用。详细阐述了Keepalived的各个模块和作用,并提供了双机热备的案例。同时,分析了脑裂问题的成因、解决方法以及预防措施,最后讲解了Keepalived在实际部署中的步骤。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、Keepalived实现原理

高可用集群只需要在调度器上多进行一台或两台(服务器本身的价格比较昂贵,一般备用的服务器的数量会和当前业务创造的价值对等)的设置,就可避免因调度器瘫痪业务中断的风险,所以实现了真正的高可用的效果。

1.Keepalived案例分析

  • 企业应用中,单台服务器承担应用存在单点故障的危险
  • 单点故障一旦发生,企业服务将发生中断,造成极大的危害

2.Keepalived工具介绍

专为LVS和HA设计的一款健康检查工具

  • 支持故障自动切换(Failover)
  • 支持节点健康状态检查 (Health Checking)
    判断 LVS 负载调度器、节点服务器的可用性,当 master 主机出现故障及时切换到backup 节点保证业务正常,当 master故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。
  • 官方网站: http://www.keepalived.org

3,Keepalived实现原理剖析

  • Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能
  • VRRP (虚拟路由元余协议)是针对路由器的一种备份解决方案
    由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务
    每个热备组内同时只有一台主路由器提供服务,其他路由器处于几余状态
    若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

在这里插入图片描述

4.Keepalived案例讲解

  • 双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器
  • 实现基于Web服务的双机热备
    漂移地址: 192.168.10.72
    主、备服务器: 192.168.10.73、192.168.10.74
    提供的应用服务: Web

在这里插入图片描述

5.Keepalived体系主要模块及其作用

keepalived体系架构中主要有三个模块,分别是core、check和vrrp。

  • core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析
  • vrrp模块:是来实现VRRP协议的。( 调度器之间的健康检查和主备切换)
  • check模块:负责健康检查,常见的方式有端口检查及URL检查。 (节点服务器的健康检查)

健康检测(探针)
(1)发送心跳消息 ping/pong
(2)TCP端口检查 向一台主机的 IP:PORT 发起 CP三次握手连接
(3) HTTP URL检查 向一台主机的 http:/IP:PORT/… URL路径 发送HTTP GET 请求方法,主机响应返2xx 3xx认为健康检查正常,如响应返回4xx 5xx则认为健康检查异常

6.Keepalived安装与启动

  • 在LVS群集环境中应用时,也需用到ipvsadm管理工具
  • YUM安装Keepalived
  • 启用Keepalived服务

二、脑裂的形成和解决

在"双机热备"高可用(HA)系统中,当联系两个节点的"心跳线"断开时(即两个节点断开联系时),本来为一个整体、动作协调的HA系统,就分裂成为两个独立的节点(即两个独立的个体)。由于相互失去了联系,都以为是对方出了故障,此时备用调度器会运转起来争做主调度器的工作,而主调度器依然保持着
调度工作,两个调度的同时运转导致整个系统的紊乱。

就会发生严重后果:
(1)共享资源被瓜分、两边"服务"都起不来了
(2)或者两边"服务"都起来了,但同时读写"共享存储",导致数据损坏(常见如数据库轮询着的联机日志出错)。

产生脑裂的常见原因及解决方法

硬件原因:

  • 高可用服务器各节点之间心跳线链路发生故障,导致无法正常通信。
  • 因心跳线坏了(包括断了,老化)。
  • 因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)。
  • 因心跳线间连接的设备故障(网卡及交换机)。
  • 因仲裁的机器出问题(采用仲裁的方案)。

运用配置原因:

  • 高可用服务器上开启了iptables防火墙阻挡了心跳消息传输。
  • 高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败。
  • 其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等
  • Keepalived配置里同一VRRP实例如果virtual_router_id两端参数配置不一致也会导致裂脑问题发生。

脑裂的解决方法:

  • 关闭两个都成为master主机中的一个,一般关闭原本就为master的主机

脑裂预防预防措施

针对脑裂现象的产生,运维人员第一时间要做的不是处理发生故障的调度器或则故障线路,而是首先确保业务不会因此中断,进行脑裂的预防尤为重要。出现问题,先保证业务的进行,再进行排障。

方式一:添加冗余的心跳线

添加冗余的心跳线支持HA多线路的进行,在多线路的加持下,一条线路故障后,也会有其余的线路也可传输心跳信息,让主备调度器继续保持正常运转。此方案可减少脑裂产生的概率。

方式二:脚本配合周期任务计划检测,调度器自我裁决

脑裂分析:产生脑裂的最主要最常见的原因是备调度器接收不到主调度器的的心跳信息。首先调度器大多数情况下都会是在统一局域网中,是通过网络来进行心跳信息的传送。所以心跳信息的检测可以基于icmp协

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值