Pacemaker 克隆资源粘性

Pacemaker 克隆资源粘性

我已经设置了一个由三个节点组成的小型集群。我创建了一个 IPaddr2(或来自 Percona 的 IPaddr3)VIP,一切正常。最初,我有以下分布:

Full List of Resources:
  * Clone Set: ClusterIP-clone [ClusterIP] (unique):
    * ClusterIP:0       (ocf::percona:IPaddr3):  Started node1
    * ClusterIP:1       (ocf::percona:IPaddr3):  Started node2
    * ClusterIP:2       (ocf::percona:IPaddr3):  Started node3

然后我重新启动 node2,pacemaker 获取该节点并将 node2 的流量分配给 node1,因此分布变为:

Full List of Resources:
  * Clone Set: ClusterIP-clone [ClusterIP] (unique):
    * ClusterIP:0       (ocf::percona:IPaddr3):  Started node1
    * ClusterIP:1       (ocf::percona:IPaddr3):  Started node1
    * ClusterIP:2       (ocf::percona:IPaddr3):  Started node3

现在,当 node2 恢复时,由于克隆资源的 resource-stickiness=1,什么也不会发生。但如果我随后为 ClusterIP 设置 resource-stickiness=0,分布将变为这样:

Full List of Resources:
  * Clone Set: ClusterIP-clone [ClusterIP] (unique):
    * ClusterIP:0       (ocf::percona:IPaddr3):  Started node2
    * ClusterIP:1       (ocf::percona:IPaddr3):  Started node1
    * ClusterIP:2       (ocf::percona:IPaddr3):  Started node3

因此,现在不再有“node1、node2、node3”,而是“node2、node1、node3”,这会导致所有客户与底层服务器断开连接,因为现在 node2 不再为第二组客户提供 IP 数据包,而是为第一组客户提供服务。这会导致 TCP 断开连接然后重新连接。

有没有办法指定 ClusterIP:0 应该优先选择节点 1、ClusterIP:1 应该优先选择节点 2、ClusterIP:2 应该优先选择节点 3?由于这是一个克隆资源,我还没有找到实现这一点的方法。谢谢。

相关内容