心跳尝试故障切换节点,但主要仍在运行

我有两个使用Heartbeat的服务器上的HAProxy的主要故障转移设置。 现在已经平稳运行了一段时间了。 当辅助服务器认为主服务器出现故障时,我们的服务暂时停止了几分钟。 它试图接pipe共享的IP,但是由于主服务器仍然坚持这个IP,所以无法接pipe。 然而,根据日志,小学似乎与收购方面的第二方进行了沟通,所以没有任何意义。

在通过重新启动Heartbeat来解决问题后,我注意到与Primary相比,Primary上的时间大约减less了5分钟。 心跳是否使用时间来区分资源是否停机?

ServerNode1 syslog:

Jun 8 14:25:51 serverNode heartbeat: [15461]: ERROR: Both machines own our resources! Jun 8 14:25:52 serverNode heartbeat: [15461]: ERROR: Both machines own our resources! Jun 8 14:25:56 serverNode heartbeat: [15461]: info: Received shutdown notice from 'serverNode2'. Jun 8 14:25:56 serverNode heartbeat: [15461]: info: Resources being acquired from serverNode2. Jun 8 14:25:56 serverNode heartbeat: [15461]: debug: StartNextRemoteRscReq(): child count 1 Jun 8 14:25:56 serverNode heartbeat: [18058]: info: acquire local HA resources (standby). Jun 8 14:25:56 serverNode ResourceManager[18087]: info: Acquiring resource group: serverNode xxx.xxx.xxx.88 Jun 8 14:25:56 serverNode IPaddr[18124]: INFO: Running OK Jun 8 14:25:56 serverNode IPaddr[18138]: INFO: Running OK Jun 8 14:25:56 serverNode heartbeat: [18059]: info: Local Resource acquisition completed. Jun 8 14:25:56 serverNode heartbeat: [18058]: info: local HA resource acquisition completed (standby). Jun 8 14:25:56 serverNode heartbeat: [15461]: info: Standby resource acquisition done [foreign]. Jun 8 14:25:56 serverNode heartbeat: [15461]: debug: StartNextRemoteRscReq(): child count 1 Jun 8 14:25:56 serverNode heartbeat: [18184]: debug: notify_world: setting SIGCHLD Handler to SIG_DFL Jun 8 14:25:56 serverNode harc[18184]: info: Running /etc/ha.d//rc.d/status status Jun 8 14:25:56 serverNode mach_down[18199]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired Jun 8 14:25:56 serverNode mach_down[18199]: info: mach_down takeover complete for node serverNode2. Jun 8 14:25:56 serverNode heartbeat: [15461]: info: mach_down takeover complete. 

ServerNode2 syslog:

 Jun 8 14:31:33 serverNode2 heartbeat: [1407]: WARN: node serverNode: is dead Jun 8 14:31:33 serverNode2 heartbeat: [1407]: WARN: No STONITH device configured. Jun 8 14:31:33 serverNode2 heartbeat: [1407]: WARN: Shared disks are not protected. Jun 8 14:31:33 serverNode2 heartbeat: [1407]: info: Resources being acquired from serverNode. Jun 8 14:31:33 serverNode2 heartbeat: [1407]: info: Link serverNode:eth0 dead. Jun 8 14:31:33 serverNode2 heartbeat: [30881]: debug: notify_world: setting SIGCHLD Handler to SIG_DFL Jun 8 14:31:33 serverNode2 harc[30881]: info: Running /etc/ha.d//rc.d/status status Jun 8 14:31:33 serverNode2 heartbeat: [30882]: info: No local resources [/usr/share/heartbeat/ResourceManager listkeys serverNode2] to acquire. Jun 8 14:31:33 serverNode2 heartbeat: [1407]: debug: StartNextRemoteRscReq(): child count 1 Jun 8 14:31:33 serverNode2 mach_down[30909]: info: Taking over resource group xxx.xxx.xxx.88 Jun 8 14:31:33 serverNode2 ResourceManager[30934]: info: Acquiring resource group: serverNode xxx.xxx.xxx.88 Jun 8 14:31:33 serverNode2 IPaddr[30961]: INFO: Resource is stopped Jun 8 14:31:33 serverNode2 ResourceManager[30934]: info: Running /etc/ha.d/resource.d/IPaddr xxx.xxx.xxx.88 start Jun 8 14:31:33 serverNode2 IPaddr[31019]: INFO: Using calculated nic for xxx.xxx.xxx.88: eth0 Jun 8 14:31:33 serverNode2 IPaddr[31019]: INFO: Using calculated netmask for xxx.xxx.xxx.88: 255.255.255.0 Jun 8 14:31:33 serverNode2 IPaddr[31019]: INFO: eval ifconfig eth0:0 xxx.xxx.xxx.88 netmask 255.255.255.0 broadcast xxx.xxx.xxx.255 Jun 8 14:31:33 serverNode2 IPaddr[31007]: INFO: Success Jun 8 14:31:33 serverNode2 mach_down[30909]: info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired Jun 8 14:31:33 serverNode2 heartbeat: [1407]: info: mach_down takeover complete. Jun 8 14:31:33 serverNode2 mach_down[30909]: info: mach_down takeover complete for node serverNode. 

不,时钟closures不会破坏关系。 但是,如果时钟变化剧烈,会导致日志中的错误,他们会看起来像:

 heartbeat: 2004/11/10_21:08:49 info: Clock jumped backwards. Compensating. 

但它不会杀死主要的。

通信在服务器之间断了,看起来像什么。 具体来说,它看起来像server1不能再发送数据或server2没有正确接收。 这可能是由于一些缓冲区问题。 你跟踪networking缓冲区空间吗? (通过SNMP或NETSTAT)或者也许是一个networking问题的地方,交换机端口错误?

当你说站点closures时,你是否有监视testing每台服务器上的服务X到特定于该服务器的IP? 它是否表明在这段时间内,除了VIP不工作之外,其中一台服务器是否出现故障? 交通图或错误/下降计数显示在那段时间有趣的事情?

需要更多的信息。

  1. 物理拓扑。 这些主机如何彼此物理连接?
  2. 每个主机的心跳configuration(ha.cf)和iptables规则。 特别是你使用广播(bcast),多播(mcast)或单播(ucast)。 另外,请指定哪个版本的心跳。

我怀疑是有什么东西在您的听力节点之间过滤stream量。 iptables是一种可能性。 根据您的物理拓扑结构,其他设备也可能会受到怀疑。