有没有人有在 2 个虚拟 linux 机器(VMWare 基础设施)之间使用心跳配置drbd 的经验?
我遇到的问题是心跳喜欢多个数据路径来查看其对等节点。例如,它喜欢与对等方建立网络连接,可能是与网关建立网络连接,并与对等方建立串行电缆 - 提高了当它检测到对等方中断时,它实际上已关闭的可能性,而不是由于网络拥塞或某物。
然而,在虚拟机上,串行端口和以太网端口(以及所有其他端口)是虚拟的 - 所以实际上,只有一个数据路径(对吗?)
(我知道 VMWare 支持设备之间的物理串行电缆,但我们的 vm 是远程托管的,物理电缆会阻止主机迁移,这是不可接受的。)
在我们的例子中,我们看到心跳对等体之间的超时,即使它们在同一台主机上运行。
在虚拟机上运行时,如何将 drbd / heartbeat 配置为更健壮
您是否查看过虚拟机是否抱怨中断中断或类似的事情 - 主机硬件可能只是过载或没有足够的资源分配给您的虚拟机?
如果它是一个不稳定或过载的网络,那么正确的做法当然是修复它;但是,如果您的托管服务提供商对此不感兴趣,您是否可以通过将多个桥接网络连接到不同的主机设备(希望在不同的交换机上)来使用多个物理路径?
在这种情况下,仅通过 802.3ad 使用冗余网络路径也无妨。
另一个问题的评论者提到了脑裂——这是你要不惜一切代价避免的事情:通常,STONITH 脚本会关闭另一台主机上的联网 PDU 条,这样另一台主机肯定会关闭;在 VM 中,您可以尝试通过 VMware API 关闭另一个 VM 的脚本。
最后 - 也许 DRBD 不适合您的场景。如果您有 SAN,您可能希望在两个 VM 的结构上打开相同的设备作为原始磁盘,然后在其上运行 OCFS2 或类似的集群 FS。朋友们已经看到 OCFS2 可以同时在多达四个节点上稳定运行,这将使您腾出时间来使用 heartbeat2 进行多节点集群,而不是像 drbd 在 heartbeat 1 上那样被锁定在两节点故障转移中。
注意事项:heartbeat 2 使用 XML 配置文件。不是每个人(例如,我)都喜欢这样。
DRBD 不仅不使用串行电缆,而且不能!我不知道你在说什么!
最重要的是,它不会占用多个数据路径,它只是通过普通的旧 TCP 连接与另一个节点通信。内核的路由、交换机、路由器和防火墙处理这个,DRBD与它无关。
拥有多个数据路径的想法并不新鲜。这是避免脑裂情况的基本概念。
但是您在物理服务器上面临完全相同的问题-我不明白您为什么将这个问题与虚拟机联系起来?
可以使用物理上不同的网络硬件建立多个数据路径 - 当您将后端与服务器的前端分开时,这在大型环境中也很有意义。这将为您提供两个网络,您也可以在虚拟机上访问它们。
如果 DRBD 和 heartbeat 发挥作用,则第三个物理上不同的网络可能对高速专用数据复制有意义(通常也推荐用于 iSCSI)——这也可能是第三个 hb 网络。
现在以我自己的经验来看:我们拥有这三个独立的网络——它们存在于 VM 服务器上,并且也被桥接到 VM——因此它们可以跨三个独立的线路运行 heartbeat ......
避免网络故障的另一种可能性是绑定相同网络的设备。如果您的网络系统中没有 SPOF - 也是一个很好的解决方案(它至少为您提供一个 HA 网络)。