
我已經建立了一個由三個節點組成的小型叢集。我已經創建了一個 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
然後我重新啟動節點 2,pacemaker 接收該節點並將節點 2 的流量分配給節點 1,因此分佈更改為:
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 恢復時,由於克隆資源的資源黏性 = 1,因此沒有任何反應。但如果我隨後為 ClusterIP 設定 resources-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應該優先選擇node1,ClusterIP:1應該優先選擇node2,ClusterIP:2應該優先選擇節點3?由於這是一個克隆資源,我還沒有找到實現此目的的方法。謝謝。