DRBD / Heartbeat在虚拟机上

有没有人有经验configurationdrbd心跳之间2虚拟Linux机器(VMWare基础设施)?

我遇到的问题是心跳喜欢多个数据path来查看其对等节点。 例如,它喜欢与对等体build立networking连接,可能是一个网关连接到对等体,从而提高了检测到对等体中断时可能性降低的可能性,而不是由于networking拥塞或一些东西。

然而,在虚拟机上,串口和以太网端口(以及所有其他端口)是虚拟的 – 确实,只有一个数据path(正确的)?

(我知道VMWare支持设备之间的物理串行电缆,但是我们的vm是远程托pipe的,而物理电缆会阻止主机迁移,这是不可接受的。)

在我们的例子中,即使它们在同一主机上运行,​​我们也会在心跳对等体之间看到超时。

如何在虚拟机上运行时将drbd / heartbeatconfiguration为更加健壮

你看过虚拟机是否抱怨丢失的中断或类似的东西 – 也许主机硬件超载或没有足够的资源分配给你的虚拟机?

如果它是一个片状或超负荷的networking,那么正确的做法当然是固定的; 但如果你的托pipe服务提供商不热衷于这一点,你可以通过将多个桥接networking连接到不同的主机设备(希望在不同的交换机上)使用多个物理path?

在这种情况下,仅仅通过802.3ad使用冗余的networkingpath也是不可能的。

一个关于另一个问题的评论者提到裂脑 – 这是你想要不惜一切代价避免的一件事情:通常STONITH脚本会例如closures另一个主机上的networking化PDU条,以便另一个主机确实closures; 在虚拟机中,您可以尝试通过VMware API切换另一台虚拟机的脚本。

最后 – 也许DRBD是不适合你的情况。 如果您有SAN,则可能需要在两个VM上将同一台设备作为裸盘打开,然后在其上运行OCFS2或类似的集群FS。 朋友们已经看到,OCFS2可以同时在最多四个节点上运行,这将使您可以释放心跳2的多节点群集,而不是像drbd的heartbeat 1那样通过双节点故障转移locking。

警告emptor:心跳2使用XMLconfiguration文件。 不是每个人(比如我)都喜欢这个。

DRBD不仅不使用串行电缆,它不能 ! 我不知道你在说什么!

最重要的是,它不会对多个数据path进行蹲坐,它只是通过普通的旧TCP连接与另一个节点通信。 内核的路由,交换机,路由器和防火墙处理这个,DRBD与它无关

拥有多个数据path的想法并不新鲜。 避免脑裂情况是一个基本的概念。

但是你在物理服务器上面对同样的问题 – 我不明白你为什么把这个问题链接到虚拟机?

可以使用物理上独特的networking硬件build立多个数据path – 当您将后端与服务器的字体端分开时,在大环境中也是有意义的。 这会给你两个networking,你也可以在虚拟机上访问。

如果DRBD和心跳起作用,第三个不同的networking可能对高速专用数据复制(通常也推荐用于iSCSI)有意义 – 这也可能是第三个HBnetworking。

现在以我自己的经验:我们有这三个分离的networking – 这是在虚拟机服务器上,并正在桥接到虚拟机,以便他们可以在三个独立的线路上运行心跳…

避免networking故障的另一种可能性是绑定相同networking的设备。 如果您的networking系统中没有SPOF,也是一个很好的解决scheme(至less可以为您提供一个HAnetworking)。