前面我在写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.