从不同的子网Ping Linux虚拟IP HA集群不起作用

我已经使用Corosync / Pacemaker设置了一个Linux集群,并且这两个集群节点位于共享一个虚拟IP的同一个子网中。 对于同一个子网内的机器,他们可以成功地ping虚拟IP“135.121.192.104”。

但是,如果我试图从另一个子网上的机器ping虚拟IP“135.121.192.104”,那么它不响应我的ping。 其他机器驻留在子网“135.121.196.x”上。

在我的机器上,我的ifcfg-eth0文件中有以下子网掩码:

NETMASK = 255.255.254.0

下面是我的输出为crmconfiguration显示:

[root@h-008 crm]# crm configure show node h-008 \ attributes standby="off" node h-009 \ attributes standby="off" primitive GAXClusterIP ocf:heartbeat:IPaddr2 \ params ip="135.121.192.104" cidr_netmask="23" \ op monitor interval="30s" clusterip_hash="sourceip" clone GAXClusterIP2 GAXClusterIP \ meta globally-unique="true" clone-node-max="2" property $id="cib-bootstrap-options" \ dc-version="1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87" \ cluster-infrastructure="openais" \ expected-quorum-votes="2" \ no-quorum-policy="ignore" \ stonith-enabled="false" rsc_defaults $id="rsc-options" \ resource-stickiness="100" 

和crm_mon状态的输出:

 [root@h-009 crm]# crm_mon status --one-shot non-option ARGV-elements: status ============ Last updated: Thu Jun 23 08:12:21 2011 Stack: openais Current DC: h-008 - partition with quorum Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2 Nodes configured, 2 expected votes 1 Resources configured. ============ Online: [ h-008 h-009 ] Clone Set: GAXClusterIP2 (unique) GAXClusterIP:0 (ocf::heartbeat:IPaddr2): Started h-008 GAXClusterIP:1 (ocf::heartbeat:IPaddr2): Started h-009 

我是Linux HA群集设置的新手,无法找出问题的根本原因。 有什么configuration我可以检查来诊断这个问题?

补充评论:

 Below is the output of "route -n" [root@h-008 crm]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 135.121.192.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 135.121.192.1 0.0.0.0 UG 0 0 0 eth0 

下面是从群集机器到群集外机器的traceroute输出:

 [root@h-008 crm]# traceroute 135.121.196.122 traceroute to 135.121.196.122 (135.121.196.122), 30 hops max, 40 byte packets 1 135.121.192.1 (135.121.192.1) 6.750 ms 6.967 ms 7.634 ms 2 135.121.205.225 (135.121.205.225) 12.296 ms 14.385 ms 16.101 ms 3 s2h-003.hpe.test.com (135.121.196.122) 0.172 ms 0.170 ms 0.170 ms 

下面是从群集外的机器到虚拟IP 135.121.192.104的traceroute输出:

 [root@s2h-003 ~]# traceroute 135.121.192.104 traceroute to 135.121.192.104 (135.121.192.104), 30 hops max, 40 byte packets 1 135.121.196.1 (135.121.196.1) 10.558 ms 10.895 ms 11.556 ms 2 135.121.205.226 (135.121.205.226) 11.016 ms 12.797 ms 14.152 ms 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 * 

但是当我尝试对其中一个节点的群集的真实IP地址执行traceroute时,traceroute成功,即:

 [root@s2h-003 ~]# traceroute 135.121.192.102 traceroute to 135.121.192.102 (135.121.192.102), 30 hops max, 40 byte packets 1 135.121.196.1 (135.121.196.1) 4.994 ms 5.315 ms 5.951 ms 2 135.121.205.226 (135.121.205.226) 3.816 ms 6.016 ms 7.158 ms 3 h-009.msite.pr.hpe.test.com (135.121.192.102) 0.236 ms 0.229 ms 0.216 ms 

您错误地认为您的群集configuration与您所看到的问题有任何关系,只是因为它对您而言是一个新的领域。 所有集群软件正在pipe理(和监视)资源,在这种情况下,它将在集群中的主机上configuration一个IP地址。 您可以轻松地删除整个群集configuration,并将IP地址添加到其中一个节点上,您将看到完全相同的问题。

显然,如果你可以从同一个networking到达IP而不是从另一个networking到达IP,那么就有路由问题。 检查您的路由器configuration。

顺便说一句,在集群中禁用stonith是数据丢失或损坏的单向票据。 我希望你只在testing期间禁用它。

什么是群集节点上指向的默认路由? 或者,更具体地说,群集节点在哪里尝试将stream量路由到135.121.196.x子网?

它看起来像客户端(s2h-003)上的默认路由是135.121.205.226,并且该计算机似乎没有您的目标的路由,所以它要么丢弃数据包,要么通过它自己的默认网关发送出去永远不会回来)。

考虑到这个IP地址与集群的默认路由非常相似,是否可能有拼写错误? 显然,群集和客户端都可以访问135.121.205.x子网。 也许你应该设置你的客户端的默认网关是135.121.205.225而不是135.121.205.226?