Ubuntu
LXD + Galera Cluster + Max Scale:關閉伺服器!=停止容器
我有一個有 4 個節點的 galera 集群。2 個在一個伺服器(伺服器主)和 2 個在另一個伺服器(伺服器從)。
集群通過“Max Scale”進行控制。
所有設置似乎都是正確的,因為複制工作正常,
SHOW STATUS LIKE 'wsrep_cluster_size'
報告所有節點的大小正確,關閉主節點成功轉移到下一個節點等。maxscale 伺服器狀態報告:(為簡單起見進行了總結)
Master, Synced, Running | Slave, Synced, Running | Slave, Synced, Running
如果我在“server-master”中同時執行停止兩個容器,則主數據庫成功分配給“slave”中的第一個容器。
maxscale 伺服器狀態報告:
Down | Down | Master, Synced, Running | Slave, Synced, Running
問題是:如果我關閉 server-master,
maxscale 伺服器狀態報告:
Down, Down, Running, Running
並嘗試連接到集群導致連接失敗。一段時間後,報告所有節點
Down
。我不明白為什麼關閉伺服器不能按預期工作。
更新
我發現如果我關閉“server-master”中的第二個節點,然後關閉伺服器,“master”會成功分配給“server-slave”,但是幾分鐘後所有節點都關閉了。:/
Servers: Ubuntu Servers 16.04 x64 MaxScale version: 2.0.5 LXD version: 2.13 Galera version (3): 25.3.20-xenial Guide followed: https://www.digitalocean.com/community/tutorials/how-to-configure-a-galera-cluster-with-mariadb-10-1-on-ubuntu-16-04-servers
它與 galera 集群行為有關。
- 您在 1 個節點中關閉 mysql,然後在節點中關閉 mysql 發送離開請求並優雅地離開集群。您的集群檢測到 2 個節點已離開,並且仍然可以使用 2 個節點。
- 你關閉主機,mysql被殺死,當然不能發送請假請求。集群檢測到 2 個節點已死亡,並且只剩下 2 個節點,<= 集群大小總數的 50%。集群處於失敗狀態,無法接受連接。
因此,您無法從客戶端連接到 maxscale —> 集群。
參考: http: //galeracluster.com/documentation-webpages/weightedquorum.html