keepalived & vrrp高可用流程

注意事项

  • 以三个线程来介绍
  • 每个线程忽略一层循环,原因是过多嵌套,不易学习
  • 流程图与keepalived代码不完全一致

流程图

在这里插入图片描述

PlantUML代码


@startuml keepalived
    title keepalived & vrrp
    start
    fork 
        while (接收到包 ?) is (接收到包)
            if (包的优先级 > 自身优先级 ?) then(包的优先级高)
                if (自己状态是主 ?) then (自身是Master)
                    :自身状态从Master从切换成Backup;
                    :自身停止发送vrrp包;
                else (非Master)
                    :保持自身状态,不做处理;
                endif 
            else if (包的优先级 < 自身优先级 ?) then (包优先级小)
                :ignore;
            else (包的优先级相等)
                if (发包主机IP > 本机IP ?) then(发包IP高)
                    if (自己状态是主 ?) then (自身是Master)
                        :自身状态从Master从切换成Backup;
                        :自身停止发送vrrp包;
                    else (自身是Backup)
                        :保持自身状态,不做处理;
                    endif   
                else (发包IP低)
                    :ignore;
                endif
            endif 
        endwhile (未接收到包)
        if (自身是Backup ?) then (Backup)
            if (未收到包的时间 > T1) then (> T1)
                :将自身状态置为Master;
            else (<= T1)
                :ignore;
            endif
        else (Master)
            :ignore;
        endif
        detach
    fork again
        if (自身是Master ?) then (是Master)
            :发送vrrp包;
        else (不是Master)
            :ignore;
        endif
        detach
    fork again
        if (检查脚本返回值为0 ?) then (检查脚本执行成功)
            if (自身是Master ?) then (Master)
                :ignore;
            elseif (自身是FAULT ?) then (FAULT)
                :自身状态改为BACKUP;
            else (BACKUP)
                :自身状态为BACKUP;
            endif
            detach
        else (检查脚本执行失败)
            if (自身是Master ?) then (Master)
                :自身状态改为FAULT;
                :发送优先级为0的通告;
            elseif (自身是FAULT ?) then (FAULT)
                :自身状态为FAULT;
            else (BACKUP)
                :自身状态改为FAULT;
            endif
        endif
        detach
    endfork

end
@enduml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值