• 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,记得先后顺序,检测是否出现脑裂问题

  • 相关阅读:
    二、MyBatis 框架 XML 标签总结
    The Seven Tools of Causal Inference with Reflections on Machine Learning 文章解读
    【Matplotlib绘制图像大全】(十六):Matplotlib绘制虚线折线图
    黑马点评关键业务流程梳理
    Win11怎么安装语音包?Win11语音包安装教程
    使用 Tesseract 在 C# 中进行光学字符识别(OCR)
    url找不到404的问题,url被拼接
    呼叫系统不能访问怎么回事?
    Shell 学习笔记 - 导读 + 变量定义
    Java-基于SSM的动漫周边商城管理系统
  • 原文地址:https://blog.csdn.net/wutong0824/article/details/134085666