天天看点

keepalived instance priority don't impact by track script|interface weight when 255

前面我在写keepalived优先级动态调整时, 写到关于初始优先级设置为255的instance不被动态调整的内容, 原因参考本文末尾部分. 因为

if (vrrp->base_priority == vrrp_prio_owner) {

/* we will not run a prio_owner into a non-prio_owner */

vrrp->effective_priority = vrrp_prio_owner;

本文主要就是实际验证一下.

用的例子参考

http://blog.163.com/digoal@126/blog/static/16387704020147203020835/

把192.168.173.204的初始优先级调整为255.

把192.168.173.203的初始优先级调整为254.

keepalived启动后, 192.168.173.204是master.

当我把192.168.173.204的nag.var调成1, nag.sh脚本检查失败, 日志如下

但是不影响192.168.173.204的优先级, 所以它还是master.

[参考]1. http://blog.163.com/digoal@126/blog/static/16387704020147203020835/

2. http://blog.163.com/digoal@126/blog/static/163877040201472010332545/

动态调整优先级的范围 : 

如果配置的instance的初始优先级是255的话, 则不受track weight的影响. 见vrrp_update_priority函数的内容.

换句话说, 只有初始优先级配置<255的instance, 才可以动态调整优先级. 并且动态调整后的优先级范围是1到254.