只有两台服务器可以进行故障切换吗?

我试图用HAproxy和mysqlbuild立一个基本的高可用性解决scheme。 目前看起来像这样

host1发生故障的情况下, host2应该获得IP和stream量(使用我的VPS提供商的function称为故障转移IP,我不认为有可能让CARP在那里工作)。

我想在节点上运行监控软件。 这可以工作吗? 我担心,如果节点之间存在链接问题(裂脑情况),监视软件的每个实例都会假设另一个节点已经死亡,并尝试为自己获取浮动IP。

这并不可怕,但似乎变得更糟。 服务器和两台主机之间没有任何联系的思想,他们是唯一活着的数据库将迅速变得不一致。

有没有办法摆脱这种情况,不涉及第三台服务器? 我是否真的应该关心脑裂情况:

  • 两台服务器位于同一提供商的两个数据中心(距离彼此仅3跳)。
  • 似乎(traceroute)用于路由host1host2之间的stream量的机器与用于路由来自互联网的stream量的机器相同。 所以,也许真正的写作(因为互联网是唯一的写作来源)的裂脑情况是不可能的?

这是一个合理的场景,而STONITH(射击头部的其他节点)是专门为帮助而devise的。

如果你打算这么做,而且你想确保不会出现裂脑,那么你需要使用一些带外控制,通常是一个可以远程控制的功率棒,为每个节点提供功率以确保另一个节点在接pipe服务之前确实确实停机(通过拔下插头)。