Клонированный кардиостимулятор липкость ресурсов

Клонированный кардиостимулятор липкость ресурсов

Я настроил небольшой кластер из трех узлов. Я создал IPaddr2 (или IPaddr3 от Percona) 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 для клонированных ресурсов. Но если я затем установлю resource-stickiness=0 для моего ClusterIP, распределение изменится на это:

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 должен предпочитать node1, ClusterIP:1 должен предпочитать node2, ClusterIP:2 должен предпочитать node 3? Поскольку это клонированный ресурс, я не нашел способа добиться этого. Спасибо.

Связанный контент