Mysql

MariaDB Galera 3 節點集群有時不可用

  • October 12, 2021

我有 3 節點 MariaDB Galera 集群。我使用“mariabackup”作為 wsrep_sst_method,但數據庫系統無法正常工作。我可以說有時每秒有 100 個來自客戶端的連接請求,所以系統有點忙,但有時 db 系統不會服務 2-6 秒。連接失去或數據庫無法訪問,因此當我簽入時,wsrep 狀態未同步。我應該怎麼做才能建構一個可以在繁忙的連接流量下正常工作的 3 節點 MariaDB 系統?一定有什麼?

更多資訊:所有節點都與虛擬機位於同一伺服器中,並且我在每個虛擬機中使用名為 Bonding 的 IP 虛擬化。這意味著每台機器都有兩個乙太網連接,並且綁定創建一個虛擬 IP 來將兩個 IP 地址表示為一個 IP 地址。所以每台機器都有兩個乙太網連接機器人,我們只使用一個代表它們的虛擬 IP。範例 Ethernet1 + Ethernet2 = bond0 我在 machine1 和 machine2 之間使用 Keepalived,因此它也可以為機器使用虛擬 IP。當 machine1 可用時,它將連接路由到此,否則路由到 machine2。所以 Machine1_bond0 + Machine2_bond0 = Keepalived_virtualIP 我在連接問題期間檢查了日誌,但我看不到任何關於 keepalived 或 bond0 的日誌。在繁忙的連接流量中,所有資源使用率都低於 %50,所以資源就足夠了(每台機器200gb磁碟,8gb記憶體,它們只作為數據庫伺服器)所有節點機器都是可寫可讀的。他們都是大師。生產過程中不開啟慢日誌。我認為它僅在備份操作期間有問題。

“與虛擬機在同一台伺服器中”——這意味著它們正在競爭 CPU 和 I/O,尤其是在備份期間。這只是一個測試嗎?我不會一台機器上部署所有節點的 Galera。

當涉及 SST 時,涉及 3 個節點中的 2 個。捐助者正忙於獲取和發送數據;在 SST 完成之前,收件人無法接收連接。

在進行 SST 時保持更多容量的最簡單方法可能是擁有第 4 個節點。然後 4 個節點中的 2 個可以自由處理連接。

Galera 節點需要在不同的機器上,甚至是不同的地理位置。

如果可以的話,兩者都做(第 4 個節點;單獨的機器)。

慢日誌只是一個小負擔。我建議保持它,即使在生產系統上也是如此。作為一種折衷方案,您可以僅在一個節點上啟用它。

引用自:https://dba.stackexchange.com/questions/300864