• Keepalived 角色选举



    简介:

    1、在 Keepalived 集群中,其实并没有严格意思上的主、备节点,虽然可以在 keepalived.conf 中定义 state 选项为 MASTER 状态,
    但是这并不意味着此节点就一直是 MASTER 角色。控制节点角色的是 keepalived.conf 中的 priority 值,还有 vrrp_script 模块中的 weight 值,
    这两个选项对应的是一个整数值,其中 weight 的值可以是正整数,也可以是负整数,一个节点在集群中的角色就是由这两个值来控制的。

    2、在一个一主多备的 Keepalived 集群中,priority 值最大的将成为集群中的 MASTER 角色,其他的都是 BACKUP 角色。
    当 MASTER 节点发生故障时,BACKUP 节点之间将进行角色选举,通过节点优先级 priority 跟 weight 来计算,选出新的 MASTER 节点接管服务。

    3、在 vrrp_script 模块中,如果不设置 weight 值,那么集群优先级的选择将由 keepalived.conf 配置文件中的 priority 值决定。

    weight 值的设定:

    节点 A 、B 组成 Keepalived 集群,A 的 priority 值为 100 ,B 的 priority 值为 80

    正常情况下 A 为 MASTER / B 为 BACKUP

    现加入资源监控 vrrp_script 模块来监控 nginx

    weight 的值,在正整数的情况下必须大于 20

    因为当 A 节点中的 Nginx 无法提供服务时,A 节点的脚本检测将失败,返回 1

    这时 A 节点的权值将保持 priority 的值 100

    而 B 节点的权值将变为 priority + weight 的和,即 80 + weight ,这个和必须大于 100 才会发生主备切换

    weight 的两种情况:

    1、正整数时

    MASTER 节点 vrrp_script 脚本检测失败时,MASTER 节点的 priority 的值小于 BACKUP 节点 priority + weight 的和时,进行主备切换

    MASTER 节点 vrrp_script 脚本检测成功时,MASTER 节点 priority + weight 的值大于 BACKUP 节点 priority + weight 的和时,主节点依然是主节点,不发生切换

    2、负整数时

    MASTER 节点 vrrp_script 脚本检测失败时,MASTER 节点 priority - weight 小于 BACKUP 节点 priority 的值时,进行主备切换

    MASTER 节点 vrrp_script 脚本检测成功时,MASTER 节点 priority 的值大于 BACKUP 节点 priority 的值时,主节点依然是主节点,不发生切换

    总结:weight 值的绝对值必须大于 MASTER 节点的 priority - BACKUP 节点的 priority 的差 !

  • 相关阅读:
    51nod数字1的数量
    bzoj3669: [Noi2014]魔法森林 lct版
    【NOI2014】起床困难综合症 位运算+贪心
    bzoj2631: tree lct
    bzoj2002 弹飞绵羊 lct版
    codevs1245最小的N个和 小根堆
    RTSP/GB28181/SDK协议视频融合平台EasyCVR接口获取协议平台接入参数的调用方法
    RTSP/GB28181/SDK协议视频融合平台EasyCVR上传通道数据库不显示怎么解决?
    基于视频协议融合平台EasyCVR开发的视频综合管理监控平台EasyCVS通道流检查功能的实现
    RTSP/GB28181/HIKSDK/大华SDK协议安防视频云平台EasyCVR新增告警功能介绍
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/5630551.html
Copyright © 2020-2023  润新知