美文网首页
【keepalived】keepalived vip 漂移基本原

【keepalived】keepalived vip 漂移基本原

作者: Bogon | 来源:发表于2022-12-28 09:22 被阅读0次

    keepalived中优先级高的节点为MASTER。

    MASTER其中一个职责就是响应VIP的arp包,将VIP和mac地址映射关系告诉局域网内其 他主机,同时,它还会以多播的形式(目的地址224.0.0.18)向局域网中发送VRRP通告,告知自己的优先级。

    网络中的所有BACKUP节点只负责 处理MASTER发出的多播包,当发现MASTER的优先级没自己高,或者没收到MASTER的VRRP通告时,BACKUP将自己切换到MASTER状 态,然后做MASTER该做的事:1.响应arp包,2.发送VRRP通告。

    MASTER和BACKUP节点的优先级如何调整?
    首先,每个节点有一个初始优先级,由配置文件中的priority配置项指定,MASTER节点的priority应比BAKCUP高。
    运行过程中keepalived根据vrrp_script的weight设定,增加或减小节点优先级。

    规则如下:

    1. 当weight > 0时,vrrp_script script脚本执行返回0(成功)时优先级为priority + weight, 否则为priority。当BACKUP发现自己的优先级大于MASTER通告的优先级时,进行主从切换。

    2. 当weight < 0时,vrrp_script script脚本执行返回非0(失败)时优先级为priority + weight, 否则为priority。当BACKUP发现自己的优先级大于MASTER通告的优先级时,进行主从切换。

    3. 当两个节点的优先级相同时,以节点发送VRRP通告的IP作为比较对象,IP较大者为MASTER。

    主从的优先级初始值priority和变化量weight设置非常关键,配错的话会导致无法进行主从切换。

    比如,当MASTER初始值定 得太高,即使script脚本执行失败,也比BACKUP的priority + weight大,就没法进行VIP漂移了。所以priority和weight值的设定应遵循: abs(MASTER priority - BAKCUP priority) < abs(weight)。

    另外,当网络中不支持多播(例如某些云环境),或者出现网络分区的情况,keepalived BACKUP节点收不到MASTER的VRRP通告,就会出现脑裂(split brain)现象,此时集群中会存在多个MASTER节点。

    参考

    keepalived vip漂移基本原理及选举算法
    https://www.cnblogs.com/pangguoping/p/5721517.html

    天翼云主机高可用的两种办法
    https://www.cnblogs.com/hahaha111122222/p/15547628.html

    Keepalived简介
    https://www.huweihuang.com/linux-notes/keepalived/keepalived-introduction.html

    相关文章

      网友评论

          本文标题:【keepalived】keepalived vip 漂移基本原

          本文链接:https://www.haomeiwen.com/subject/lcoaqdtx.html