高可用性/故障切换硬件连接

我正在学习有关集群和高可用性技术的知识,并且偶然发现了一篇关于使用一对服务器configurationnetworking的文章,使用DRBD进行复制和心跳以进行监视和故障切换。 文章指出,每台服务器上应该有2个网卡:eth0连接到LAN,两个eth1应通过交叉网线相互连接,如下图所示:

http://i.stack.imgur.com/8BAm6.jpg

图片描述:

为了确保自动故障切换,心跳监视主服务器,如下所示:1.辅助服务器通过连接两台服务器的交叉电缆连续监视与主服务器的连接。 如果主服务器不可访问,则次服务器将采用主服务器的状态。 2.主服务器持续监视与高可用性networking设备(如路由器)的连接。 如果networking设备不可访问,则将控制权交给辅助服务器。 如果发生以下情况,故障切换会自动进行:1.主站的networking故障切换2.硬件故障,如电源,CPU,RAM等

这提出了以下问题:

如果次要/被动服务器上的心跳监视通过eth1监视主节点,如果eth1在任何服务器上出现故障,会发生什么情况?

在我看来,心跳会认为小学已经死了,并会激活中学。 这不会造成“裂脑”的状况吗? 由于主服务器仍然通过eth0连接到局域网并工作,所以它只是心跳/复制链路(eth1)被破坏了。 那么现在我们同时有两台活动的服务器?

我仍然在理解这个概念,请原谅我说废话。

你正在阅读的文章很可能已经过时了。 自2008年起,使用Heartbeat进行资源pipe理(在故障切换时停止并启动资源)已经被弃用。Pacemaker是Linux-HA资源pipe理的新标准解决scheme。 然而,Pacemaker仍然需要一些处理集群通信。 对于通信层,您仍然可以使用Heartbeat ,但是现在最stream行的解决scheme是Corosync 。

至于你原来的问题,简单的答案是,是的。 如果你中断了正在进行群集通信的networking,它可能会导致一个裂脑,除非你使用STONITH, 你应该! 。 关于为什么你需要STONITH的好文章可以在这里和这里find。

抛开STONITH,Heartbeat和Corosync都支持冗余链接/networking。 这意味着您可以使用多个接口来确保单个接口的故障不会干扰群集通信。

希望这可以帮助!