keepalived 迁移未发生

keepalived 迁移未发生

我在使用 Keepalived 时遇到了一个问题。

如果我的应用程序进程由于某种原因停止运行,keepalived 会将 VIP 故障转移到备份节点。但是,如果进程在备份节点上再次失败,它不会重新定位到主节点。从 /var/log/messages 可以清楚地看出它正在记录失败。

以下是我的配置文件:

在节点 1(主节点)上

vrrp_script chk { script "/root/test.sh" interval 2 # check every 2 seconds fall 1 rise 2 weight -60 }

vrrp_instance VRRP1 { state EQUAL priority 110 interface eth0 virtual_router_id 51 advert_int 1 authentication { auth_type PASS auth_pass 1111 }

notify_backup "/etc/keepalived/rtb.sh BACKUP"
notify_fault "/etc/keepalived/rtb.sh FAULT"

virtual_ipaddress {
    10.58.127.80/24
}

notify_master "/etc/keepalived/rtb.sh MASTER"

track_script {
chk
}
}

在节点 2 上(备份)

vrrp_script chk { script "/root/test.sh" interval 2 # check every 2 seconds fall 1 rise 2 weight -50 }

vrrp_instance VRRP1 { state EQUAL priority 101 interface eth0 virtual_router_id 51 advert_int 1 authentication { auth_type PASS auth_pass 1111 }

notify_backup "/etc/keepalived/rtb.sh BACKUP"
notify_fault "/etc/keepalived/rtb.sh FAULT"

virtual_ipaddress {
    10.58.127.80/24
}

notify_master "/etc/keepalived/rtb.sh MASTER"

track_script {
chk
}
}

如果我终止 Node1 上的应用程序进程,VIP 将被重新定位到 Node2。一段时间后,如果我再次终止 Node2 上的应用程序进程,它会记录失败,但不会重新定位 IP。

Dec 11 11:29:50 rtb48 Keepalived_vrrp[25813]: VRRP_Script(chk) failed

此后无任何行动。

Keepalived 版本 :keepalived-1.2.13-5.el6_6.x86_64

有什么线索吗?

答案1

您是否重新启动了节点#1 上的进程以使检查脚本通过?

节点 #1 的优先级为 110,脚本权重为 60。
节点 #2 的优先级为 101,脚本权重为 50。

因此,#1 的失败率为 110 - 60 =50. #2 失败是 101 - 50 =51
在这种情况下,节点 #2 仍然具有更高的优先级并将成为主节点。

另外:你的配置看起来很奇怪,它真的是这么长的一行吗?如果是这样,中间的注释不应该把它打断吗?

相关内容