
Я настроил небольшой кластер из трех узлов. Я создал 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? Поскольку это клонированный ресурс, я не нашел способа добиться этого. Спасибо.