我想使用 corosync/pacemaker/drbd 设置一个两节点的高可用性集群。为此,当然,我需要击剑。据我了解,所有 IPMI/iLO/... 解决方案都可以完成这项工作,但前提是机箱有电源。在节点 B 断电的情况下,节点 A 没有任何机会对节点 B 使用 STONITH。
什么样的硬件可以解决这个问题?是否有(标准机架)服务器提供 IPMI/iLO/... 使用电池运行的硬件?我应该使用联网的 UPS 吗?
我想使用 corosync/pacemaker/drbd 设置一个两节点的高可用性集群。为此,当然,我需要击剑。据我了解,所有 IPMI/iLO/... 解决方案都可以完成这项工作,但前提是机箱有电源。在节点 B 断电的情况下,节点 A 没有任何机会对节点 B 使用 STONITH。
什么样的硬件可以解决这个问题?是否有(标准机架)服务器提供 IPMI/iLO/... 使用电池运行的硬件?我应该使用联网的 UPS 吗?
据我所知,没有标准的硬件(或软件)解决方案。
如果它不存在,您将无法拍摄头部中的另一个节点。
您可以通过多种不同的方式来处理这个问题——我可以建议使用智能 PDU——作为最后的手段,当没有其他 STONITH 技术起作用时,它会命令其电源插座“关闭”并且您不必担心它会再次出现直到有人再次命令电源“打开”。(这实际上只是为了防止有人意外拉动电源线......)
类似的解决方案也可以使用托管交换机关闭机器连接的端口,或者将它们放入“固定器”VLAN,这样您就可以连接到那里的盒子并准备好重新加入集群。
上述两种想法都依赖于您的数据中心的供电和连接(PDU、交换机等都需要工作,并且需要存在连接,以便您可以向基础设施设备发送命令)。
如果您不能依赖电源,经典解决方案是将服务器配置为在电源故障后不自动开机(IPMI/iLO/等在机箱通电时仍会出现,因此您可以稍后将其作为手动步骤,可能是在如上所述隔离其网络端口之后)。
这避免了“坏”节点重新上线,但确实在流程中添加了手动(或自动)步骤。
如果您的问题是连接性而不是电源问题,那么您将遇到一个更困难的问题 - 断开连接的节点需要向自己的头部开枪。(这个问题就是为什么我的集群配置不会自动重新激活失败的成员:当一个盒子出现故障并返回时,它处于部分在线状态并等待我告诉它重新加入。这是一个手动步骤,但它是一个这不应该以任何频率发生。)
您可以配置基于 iLO/IPMI 的防护,然后使用例如带有 APC 电源开关的 fence_apc 防护代理作为辅助防护设备。这样,如果服务器断电,那么辅助防护代理仍然能够以对集群有意义的方式对服务器进行 STONITH。
就像这里描述的:
您还可以考虑添加fence_manual作为辅助防护代理,这样您就可以随时恢复集群,但当然需要手动干预。