我开始在亚马逊的Cloud EC2两个实例,第二个实例从第一个实例开始约30秒。
configuration如下所示:
实例2
state BACKUP interface eth0 virtual_router_id 51 priority 100 unicast_peer { 172.17.16.10 }
实例1
state MASTER interface eth0 virtual_router_id 51 priority 100 unicast_peer { 172.17.16.11 }
两者都configuration了相同的健康检查成功。
我设置相同的优先级,以便我没有震动问题(如果MASTERclosures,将BACKUP转换为新的MASTER,但是如果OLD MASTER恢复,保持原样)。
这个问题是在最初的开始阶段发生的:
两者应该有相同的优先权,那为什么?
我注意到,关于内核IPVS和主机指纹计算的日志消息只有在keepalived启动后才会打印。 这使得我认为keepalived是系统中第一个使系统在networking接口上交换数据包的软件,并以某种方式触发不需要的故障转移。
另外,一旦keepalived启动,Instance 2立即进入备份状态:
Nov 17 17:43:58 ip-172-17-16-11 Keepalived_vrrp[2403]: Using LinkWatch kernel netlink reflector... Nov 17 17:43:58 ip-172-17-16-11 Keepalived_vrrp[2403]: VRRP_Instance(VI_1) Entering BACKUP STATE Nov 17 17:43:58 ip-172-17-16-11 Keepalived_vrrp[2403]: VRRP sockpool: [ifindex(2), proto(112), unicast(1), fd(15,16)]
而实例1仅在内核IPVS消息和指纹之后变为MASTER:
Nov 17 17:44:28 ip-172-17-16-10 kernel: [ 157.650360] IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP) Nov 17 17:44:28 ip-172-17-16-10 kernel: [ 157.654035] IPVS: Connection hash table configured (size=4096, memory=64Kbytes) Nov 17 17:44:28 ip-172-17-16-10 kernel: [ 157.658356] IPVS: Creating netns size=2048 id=0 Nov 17 17:44:28 ip-172-17-16-10 kernel: [ 157.661163] IPVS: ipvs loaded. Nov 17 17:44:28 ip-172-17-16-10 Keepalived_healthcheckers[2391]: Opening file '/etc/keepalived/keepalived.conf'. Nov 17 17:44:28 ip-172-17-16-10 Keepalived_healthcheckers[2391]: Configuration is using : 5174 Bytes Nov 17 17:44:28 ip-172-17-16-10 Keepalived_healthcheckers[2391]: Using LinkWatch kernel netlink reflector... Nov 17 17:44:28 ip-172-17-16-10 Keepalived_vrrp[2392]: VRRP_Script(chk_haproxy) succeeded Nov 17 17:44:29 ip-172-17-16-10 ec2: Nov 17 17:44:29 ip-172-17-16-10 ec2: ############################################################# Nov 17 17:44:29 ip-172-17-16-10 ec2: -----BEGIN SSH HOST KEY FINGERPRINTS----- Nov 17 17:44:29 ip-172-17-16-10 ec2: -----END SSH HOST KEY FINGERPRINTS----- Nov 17 17:44:29 ip-172-17-16-10 ec2: ############################################################# Nov 17 17:44:29 ip-172-17-16-10 Keepalived_vrrp[2392]: VRRP_Instance(VI_1) Transition to MASTER STATE
– testingconfiguration:
所以一切看起来不错。
按照devise,在同等优先级的情况下,VRRP将select主地址最高的节点作为MASTER。
https://www.juniper.net/techpubs/en_US/junose11.3/topics/concept/vrrp-router-election-rules.html http://www.ietf.org/rfc/rfc3768.txt
If the Priority in the ADVERTISEMENT is equal to the local Priority and the primary IP Address of the sender is greater than the local primary IP Address, then: o Cancel Adver_Timer o Set Master_Down_Timer to Master_Down_Interval o Transition to the {Backup} state