首页 > 系统相关 >在Linux中,keepalive工作原理是什么及如何做到健康检查?

在Linux中,keepalive工作原理是什么及如何做到健康检查?

时间:2024-06-22 12:43:03浏览次数:14  
标签:Keepalived vrrp VRRP MASTER Linux 健康检查 节点 keepalive

Keepalived 是一个用于 Linux 系统的高可用性解决方案,它主要通过 Virtual Router Redundancy Protocol (VRRP) 协议来实现网络服务的高可用性和故障转移。其核心功能包括故障切换和健康检查,广泛应用于 LVS 负载均衡集群以及其他需要高可用性的场景。下面是 Keepalived 工作原理及其健康检查机制的详细介绍:

1. Keepalived 工作原理
  1. VRRP 协议基础

    • VRRP 是一种容错协议,旨在通过创建一个虚拟路由器来提供默认网关的冗余。这个虚拟路由器有一个虚拟 IP 地址(VIP)和一个虚拟 MAC 地址,客户端会将这个 VIP 设置为它们的默认网关。
    • 在 Keepalived 配置中,至少有两个节点:一个是主节点(MASTER),另一个是备份节点(BACKUP)。它们都运行 VRRP 协议,竞争成为 VIP 的拥有者。
    • 主节点周期性地发送 VRRP 通告报文(多播到 224.0.0.18),告诉备份节点它仍在运行。备份节点监听这些报文,以确认主节点的状态。
  2. 优先级与状态转换

    • 每个 VRRP 节点都有一个优先级,优先级高的节点将成为 MASTER。如果 MASTER 节点停止发送 VRRP 报文(比如因为故障或网络问题),BACKUP 节点在超时后(默认3秒)没有收到通告,它会认为 MASTER 故障,并且如果它的优先级足够高(或成为最高),它会接管 VIP,成为新的 MASTER。
  3. 健康检查

    • Keepalived 支持多种健康检查方法,确保真实服务器(real servers)或服务本身的健康状况。
    • 脚本检查:通过 vrrp_script 配置,可以定义一个外部脚本来检测特定服务(如 HTTP、数据库等)的健康状态。脚本定期执行,根据其返回值(0 表示成功,非0 表示失败)调整 VRRP 优先级或直接关闭 Keepalived 进程。
    • HTTP/HTTPS GET:可以直接配置 Keepalived 使用 HTTP 或 HTTPS GET 请求检查指定的 URL,通过响应的状态码来判断服务是否健康。
    • TCP/UDP 连接检查:对于基于 TCP 或 UDP 协议的服务,可以配置 Keepalived 去尝试建立连接或发送数据包,根据响应情况判断服务状态。
  4. 故障恢复与通知

    • 当故障节点恢复并重新上线时,如果它之前是 MASTER,但发现当前已有其他节点作为 MASTER 在运行,它会自动降级为 BACKUP,等待下一次选举机会。
    • 通过配置,Keepalived 可以发送邮件或其他形式的通知给管理员,告知状态变化或故障发生。
2. 如何做到健康检查

健康检查是通过在 Keepalived 配置文件中定义 vrrp_instancevrrp_script 完成的。一个基本步骤如下:

  1. 定义健康检查脚本:编写一个 shell 脚本,该脚本负责检查特定服务的状态,例如检查 Web 服务器的 HTTP 端口是否响应。

  2. 配置 vrrp_script

    vrrp_script chk_http {
        script /path/to/check_http.sh    # 检查脚本路径
        interval 5                      # 执行间隔,单位秒
        timeout 3                       # 超时时间,单位秒
        rise 2 fall 2                   # 成功和失败的阈值
    }
    

    这里,rise 表示连续几次成功即认为服务恢复,fall 表示连续几次失败则认为服务故障。

  3. 在 vrrp_instance 中引用脚本

    vrrp_instance VI_1 {
        state MASTER/BACKUP             # 节点状态
        interface eth0                 # 监听的网络接口
        virtual_router_id 51           # VRRP 组ID
        priority 100                   # 优先级
        advert_int 1                   # 通告间隔
        track_script {
            chk_http                    # 引用健康检查脚本
        }
        # 其他配置...
    }
    

    track_script 指定的脚本状态改变时,会影响 VRRP 优先级,从而触发主备切换。

综上所述,通过上述配置,Keepalived 不仅实现了高可用性,还通过健康检查机制确保了服务的稳定性和可靠性。

标签:Keepalived,vrrp,VRRP,MASTER,Linux,健康检查,节点,keepalive
From: https://www.cnblogs.com/huangjiabobk/p/18262155

相关文章

  • 在Linux中,如何重置 mysql root 密码?
    在Linux系统中重置MySQL的root密码通常有几种方法,以下是一些常见的步骤:1.使用mysqladmin命令首先,停止MySQL服务:sudosystemctlstopmysql以安全模式启动MySQL,允许root用户无密码登录:sudomysqld_safe--skip-grant-tables&连接到MySQL服务器:mysql-uroot选......
  • 在Linux中,mysql 如何减少主从复制延迟?
    主从复制延迟是MySQL数据库中一个常见但关键的问题,它直接影响到数据的实时性和系统的响应速度。在企业生产环境中,解决此问题能显著提高数据库的性能和稳定性。下面将详细探讨如何减少主从复制延迟:查看同步延迟状态使用SHOWSLAVESTATUS命令:该命令可提供关于从库复制状态的详......
  • Linux 服务器如何安全地清理垃圾文件
    Linux服务器如何安全的清理垃圾文件在这现代的岁月,数码世界日益发展,凡是涉及计算,必然离不开那浩如烟海的数据,庞大如巨鲸的文件。若将目光转向我们的服务器,尤其是Linux服务器,垃圾文件的积累便如那墙角的蛛网,初时无人觉察,久之则令人难以忍受。清理这些垃圾文件,虽说并非什......
  • Linux下JDK 安装
    1.环境检测 (1)查看现有包:      rmp-qa|grepjava (2)删除之前安装的包:      rmp-e--nodeps包全名2.JDK下载安装 (1)下载jdktar.gz格式压缩包,放入目录 (2)解压压缩包      tar-zxvfjdk-8u241-linux-x64.tar.gz  (3)移动......
  • Rockchip RK3588 - Rockchip Linux Recovery升级
    ----------------------------------------------------------------------------------------------------------------------------开发板:ArmSoM-Sige7开发板eMMC:64GBLPDDR4:8GB显示屏:15.6英寸HDMI接口显示屏u-boot:2017.09linux:5.10-------------------------------......
  • 【Linux基础】基础环境配置
    设置APT源进入源文本设置:vim/etc/apt/sources.list配置源:#中科大debhttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontribdeb-srchttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontrib#阿里云debhttp://mirrors.aliyun.com/kali......
  • 解决Linux中出现Too many open files
    Too many open files  问题出现有两种情况:一种是在搜索的时候出现,多半是由于索引创建完毕之后被移动过,如果创建索引的时候不出现该错误,搜索的时候也一般是不会出现的。如果出现了,有两种处理办法,一种是修改合并因子和最小合并因子,并且使用IndexWriter.Optimize()  优化索引,......
  • Linux命令之vim指令——小白必备指南
    Vim编辑器的三种工作模式:命令模式(默认模式):复制,粘贴,剪切,切换到其他模式输入模式(编辑模式):a\\i\\o,针对每个字符进行编辑,删除末行模式(扩展模式):保存,退出,保存并退出,字符替换等光标方向移动操作类型剪切(删除)        删除当前光标处单个字符:x或者Del剪切当前行:dd  ......
  • 【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(三)-shell语法
    主要通过讲解shell中的一些基本语法,可以当作日常的笔记来进行查询和记忆。文章目录前言一、shell二、shell语法1.运行方式2.注释3.变量4.默认变量 5.数组 总结前言主要通过讲解shell中的一些基本语法,可以当作日常的笔记来进行查询和记忆。提示:以下是本篇......
  • Rocky Linux捣鼓记录(一):如何安装使用中文输入法
    linux的常见输入法方案有fcitx、ibus,fcitx类型的输入法我没找到合适方案,ibus提供了一个智能拼音中文输入法比较顺手,安装简单。我使用的系统版本为RockyLinux9.4,已经自带ibus中文输入法,从设置——keyboard中选择输入源,新增——汉语(中国)选择——中文(智能拼音)即可若系统中没有,......