我使用Keepalived在主/从configuration中pipe理两个Redis实例。 我遇到的情况是,如果Keepalived在Master Box(具有较高优先级的那个)上终止,则备份服务器将作为主设备接pipe。 但是,当Keepalived在较高优先级的方框上重新启动时,备份服务器会立即将Master状态切换到较高优先级的方框,从而有效地刷新Rediscaching。
我尝试将nopreempt指令添加到我的keepalived.conf中,但是这种行为仍然在发生。
以下是备份(低优先级)服务器的keepalived.conf。
global_defs{ router_id redis_server_2 } vrrp_script chk_redis { script "killall -0 redis-server" interval 5 } vrrp_instance VI_1{ interface eth0 virtual_router_id 100 priority 200 advert_int 1 state BACKUP nopreempt track_script { chk_redis } virtual_ipaddress { 10.19.105.229 } notify_master "/usr/bin/sudo /var/lib/redis/redis.sh -m" notify_backup "/usr/bin/sudo /var/lib/redis/redis.sh -s" notify_fault "/usr/bin/sudo /var/lib/redis/redis.sh -k"
好吧,我想了几分钟就解决了。
在较高优先级的VRRP实例V1下,我有以下几点:
state MASTER
现在,nopreempt没有被授予,因为更高优先级的盒子开始作为主人。 低优先级的盒子看到一个优先级较高的主机,并切换到从机模式。 通过改变那条线
state BACKUP
优先级较高的框作为从设备启动,看到具有较高优先级的主设备,并保持从属设备。 完成并完成。