Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – keepalived VRRP_script没有失败大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

所以我在两台服务器上运行keepalived,我无法让它故障转移到另一台服务器上. 下面我有一个服务器的配置.两者之间唯一不同的是优先号码主人为110而后者为109. 但是当我使用/etc/init.d/process停止我的进程时,keepalived不会故障转移.我只是让VRRP_Script(chk_script)失败而没有别的.没有故障转移或没有. vrrp_script chk_scri
所以我在两台服务器上运行keepalived,我无法让它故障转移到另一台服务器上.

下面我有一个服务器的配置.两者之间唯一不同的是优先号码主人为110而后者为109.

但是当我使用/etc/init.d/process停止我的进程时,keepalived不会故障转移.我只是让VRRP_Script(chk_script)失败而没有别的.没有故障转移或没有.

vrrp_script chk_script {
script "/usr/local/bin/failover.sh"
interval 2
weight 2
}

vrrp_instance HAInstance {
state BACKUP
interface eth0
virtual_router_id 8
priority 109
advert_int 1
nopreempt
vrrp_unicast_bind 10.10.10.8
vrrp_unicast_peer 10.10.10.9
virtual_ipaddress {
  10.10.10.10/16 dev eth0
}
notify /usr/local/bin/keepalivednotify.sh
track_script {
  chk_script weight 20
}
}

这是我下面的chk_script.当我将killall -0进程作为我的脚本时,也会发生同样的问题.

!/bin/bash
SERVICE='process'
STATUS=$(ps ax | grep -v grep | grep $SERVICE)

if [ "$STATUS" != "" ]
then
    exit 0
else
    exit 1
fi

有谁知道解决这个问题?谢谢.

解决方法

我有完全相同的问题,但我的问题不在防火墙或我的以太网适配器,而是在检查脚本的“重量”设置.

这是我的配置:

主:

vrrp_instance haproxy {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1

备份:

vrrp_instance haproxy {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1

Check_script:

vrrp_script chk_haproxy {
   script "python /root/ha_check.py"
   interval 2     # check every 2 seconds
   weight 2
   rise 2
   fall 2

}

主人拒绝释放VIP的原因是因为尽管脚本失败了,但主人仍然从BACKUP服务器获得更高的优先级.发生这种情况是因为check_script上的“权重”设置不足以覆盖优先级编号之间的“GAP”,这意味着将BACKUP服务器的优先级数字提高到MASTER Server的优先级数.我会进一步解释:

根据keepalived手册,“权重”设置中的正数将在检查成功时将该数字添加到优先级.
如果检查失败,负数将从优先级编号中减去该编号.

所以,根据我的配置:

服务器优先级脚本先前失败:
大师:152
备份:100
Failover_IP:MASTER

故障转移ip被主服务器正确“抓取”,因为Master与备份服务器相比具有更高的优先级(152> 100)

服务器优先级在脚本失败后:
MASTER服务器:148
备份服务器:102
Failover_IP:仍然是MASTER

故障转移ip仍然在主服务器上,因为与BACKUP(148> 102)相比,Master再次具有更高的优先级. MASTER服务器拒绝发布IP,因为他的优先级高于其他服务器.

我的情况的解决方案是:

解决方案-1:更改两台服务器的优先级数,使它们没有太多的“GAP”.
例如:
优先级:150
备份优先级:149
Check_script权重:原样(2).

通过上面的配置,当脚本成功(意味着一切正常)时,优先级将是:
师父:152
备份:149
IP_Location:On Master(152> 149)

脚本失败时:
师父:150
备份:151
IP_Location:备份时(151> 150)

解决方案 – 2:将脚本的重量编号从2更改为-60

大佬总结

以上是大佬教程为你收集整理的linux – keepalived VRRP_script没有失败全部内容,希望文章能够帮你解决linux – keepalived VRRP_script没有失败所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: