keepalived 配置的 EQUAL 状态是什么意思?

keepalived 配置的 EQUAL 状态是什么意思?

我遇到了对我来说是新的、未知的“状态”变量值 - “EQUAL”。更具体地说:

vrrp_script chk_master {
    script "/var/<path>/scripts/cmaster.sh"
    timeout 25
    interval 30
    weight -120
}

vrrp_instance VI {
        interface eth0
        state EQUAL
        priority 101
        virtual_router_id 68
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass password:
        }
        virtual_ipaddress {
                x.x.x.x/x
        }

        track_script {
            chk_master
        }

        notify /usr/local/bin/keepalived-notify.sh
}

vrrp_script chk_standby {
    script "/var/<path>/scripts/cstandby.sh"
    timeout 25
    interval 30
    weight 20
}

vrrp_instance VI2 {
        interface eth0
        state EQUAL
        priority 100
        virtual_router_id 69
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass password:
        }
        virtual_ipaddress {
                x.x.x.x/x
        }

        track_script {
            chk_standby
        }

        notify /usr/local/bin/keepalived-notify2.sh
}

有人知道这个状态是什么意思吗?“EQUAL”和“MASTER”/“BACKUP”状态之间有什么区别?我在官方文档中没有找到答案。谢谢。

答案1

在 MASTER/BACKUP 中,如果操作成功,则始终选择 MASTER。在 EQUAL 中,不会优先选择任何一方。

如果您拥有 MASTER/BACKUP,而主服务器发生故障,您将故障转移到 BACKUP。但是,当 MASTER 恢复时,您将切换回它。使用 EQUAL,这种情况不会发生。

答案2

根据 @SiHa 在接受的答案中的评论,“EQUAL”不是一种状态,GitHub 社区正在解决这个问题仅仅因为在 keepalived 的特定版本(提交)中 EQUAL 没有报告错误,它并不会神奇地变成一个新的状态,现在如果你尝试相等状态,你会收到一个错误“未知状态‘EQUAL’,默认为 BACKUP”。

相关内容