生产环境里,我们经常把其中的一台Nexus交换机从vPC domain中独立出来,比如升级或灾备演练等情况。但是其中一个细节即Sticky Master的状态很少有人会注意到,因此这可能导致网络中断。
在vPC环境中,两台vPC会进行role选举,通过优先级配置,假设N7K-1为primary
,N7K-2为secondary
。
当我们把N7K-2从vPC环境中独立出来,即断掉N7K-2的peer-link、keepalive以及所有上下行接口。
这时候两台设备处于双活状态,N7K-1为primary
,N7K-2为secondary,operational primary
。
当然由于N7K-2并未接入网络,网络也没有任何影响。
等我们对N7K-2的操作完成后,将N7K-2接入回网络,这时候一般会看到,N7K-1成为了primary,operational secondary
的vPC接口都suspend了。
为什么在N7K-1明明为primary
,N7K-2为secondary,operational primary
的情况下,两台设备连接后N7K-1却成为了primary,operation secondary
?
这是由于在vPC里面,有一个参数叫Sticky Master,当一台Secondary成为operational primary
的时候,会将自身的Sticky Master设置为True。
N7K-1由于一直是Primary,Sticky Master一直是FALSE,N7K-2由于role由Secondary
切换为Secondary, operational primary
,Sticky Master被置成了TRUE。
这种情况下,当两台设备一旦重新建立vPC关系,Sticky Master被置成了True的设备会保持Role不变,Sticky Master被置成了False的设备会选择另外一个可用角色,也就是primary,operation secondary
。
因此,N7K-1将会进行收敛,suspend所有vPC接口,重新检查接口状态,恢复接口。在这时,如果N7K-2上的vPC接口有没有起来的情况,将导致网络中断。
这种情况是可以避免的,主要是在新设备加入vPC域之前进行Sticky Master检查,使用show system internal vpcm info global | i Sticky
命令,可以看到以下两种情况:
NX-OS# show system internal vpcm info global | i StickySticky Master: TRUE
这时候是不能入网的,否则会抢占目前Primary的Role。
NX-OS# show system internal vpcm info global | i StickySticky Master: FALSE
这时候是可以入网的,会自动成为Secondary。
入网前一旦检查到Sticky Master为TRUE,需要重置该状态为FALSE。
重置有两种方法:
1.重新配置优先级,哪怕优先级一样也可以。
vpc domain 110 priority 32768
2.如果配置优先级无法重置,那只有重启设备了。
本文出自 “菠萝味咖啡的领地” 博客,转载请与作者联系!
原文地址:http://ccies.blog.51cto.com/717209/1947874