我在使用起搏器进行以下设置时遇到了问题:
双节点集群,其中主服务器始终具有 IP 地址 A,从属服务器始终具有 IP 地址 B。
这是一个故障转移群集,因此当服务器切换角色时,IP 地址需要相应地改变。
听起来这应该是一个简单的配置,但到目前为止,还没有运气。
答案1
根据您更新的问题和评论,我认为您试图以错误的方式处理这个问题。通常,在故障转移配置中,每个主机都应该有一个固定的 IP,无论其角色如何,该 IP 都不会改变。因此,服务器 A 始终可通过 xxxa 访问,服务器 B 始终可通过 xxxb 访问
如果您想要一个始终可以通过其访问主服务器的 IP,那么您需要向您的 Pacemaker 群集添加一个 IPaddr 资源,对于 IP xxxc,Pacemaker 将在您指定的接口上启动该 IP(或作为现有接口的别名),并且始终可以通过该地址访问主服务器。
您可能还可以在集群中设置另一个 IPaddr 资源,使其始终在辅助节点上运行(只需设置一条规则,即它不能与主 IPaddr 资源位于同一节点上,如果辅助节点已启动,pacemaker 应该会将其推送到辅助节点)。但是,在我设置的任何集群中,我从来没有理由这样做。通常,您感兴趣的服务在主节点上运行,因此这才是您真正关心的。
这几乎是最基本的设置,如下所示例子。如果这不是你想要的,你需要进一步解释一下你的意图。
编辑:
根据您最近的评论,我认为您需要做的基本上是创建两个 IPaddr 资源,一个用于主服务器,一个用于从服务器。在主服务器资源上,与其他集群资源一起添加一个分数为 INFINITY 的共置约束。对于从服务器 IPaddr,添加一个与主服务器 IPaddr 相同的 -INFINITY 共置约束。
这将确保主 IPaddr 始终与集群资源一起运行,并且从属 IPaddr 永远不会与主 IPaddr 位于同一节点上。
答案2
如果某台服务器始终需要某种资源,则无需使用起搏器。这是最简单的配置!