現在位置: 首頁 > MySQL > 正文

架設 HA 高可用性:MySQL Cluster 叢集 – 7.4.11(5.6.29)

前陣子架設了一套 MySQL Cluster 叢集的架構,終於在最近補上了實作過程,叢集的概念就是把一台式架構拆分為多台式架構,並且可以提供 HA 高可用性與負載均衡的需求,更不需要擔心延展性的問題,若是 Loading 加大了只需要增加 node 去分擔 Loading

 

MySQL Cluster Nodes:

  • Manage Nodes:負責監控叢集所有 Nodes 的狀態,並且由此控制所有 Nodes 的替換。
  • Data Nodes:負責所有 SQL Data 的 Nodes,單純儲存資料,將資料寫在 RAM & Disk。
  • SQL Nodes:負責 SQL 的 Table schema 和 Client 連接的空間。

 

MySQL Cluster architecture :

MySQL Cluster

 

 

本次 LAB 的實驗架構:

  • Manage Node:172.10.0.140
  • SQL Node1:172.10.0.141
  • SQL Node2:172.10.0.142
  • Data Node1:172.10.0.143
  • Data Node2:172.10.0.144

 

 

MySQL Cluster 實作

所有的 nodes 都需要安裝 mysql-cluster

 

建立 Manage node

NoOfReplicas=2:是 Cluster 非常重要的參數,代表著存在 2 份一樣的資料在 Data node,所以你的 Data node 允許著 1 台的故障容錯還有另一份資料可以正常運行,在本篇因為 Data node 只有 2 台,所以設定 2 就可以了,再多也沒有意義只是增加 write loading

DataMemory & IndexMemory:代表著資料和索引可以儲存的記憶體容量有多大。

NodeId:每一個 nodes 都必須擁有獨一無二的 id 值

 

這邊記錄著所有 nodes 的訊息,才能進行容錯移轉

 

把 ndb_mgm 和 ndb_mgmd 等工具放到 /usr/local/bin 方便使用

 

 

建立 Data node

 

 

建立 SQL node

 

 

啟動 Cluster 環境

啟動順序 Manager node > Data node > SQL node。

如果是第一次啟動 SQL node 請使用 –initial 初始化,如果已經有資料請絕對不要使用 –initial 否則此 node 的資料全毀

 

匯入資料庫(ndbcluster)

cluster 的資料庫類型都必須為 ndbcluster,在匯入資料庫前必須改為 NDBCLUSTER

 

Cluster 確認

從 Manage node 確認所有 node 狀態

 

容錯測試

  • Data node1 中斷,服務正常
  • SQL node1 中斷,服務正常
  • Manage node 中斷,服務正常
  • Data node1 > SQL node1 順序中斷,服務正常
  • Data node1 > SQL node1 > Manage node 順序中斷,服務正常
  • Manage node > Data node1 順序中斷,服務異常
  • Manage node > SQL node1 順序中斷,服務異常

從上面測試可以理解,由於 Manage node 是所有 node 的管理者,一旦管理者掛了又觸發了容錯事件,就會無法處理而造成 cluster 中斷

 

這篇到結尾,如果你要基本的容錯機制可以允許一台故障的話,至少要 3 台才能建立起 MySQL Cluster 架構

  • Node1 (SQL + Data node)
  • Node2 (SQL + Data node)
  • Node3 (Manage node)

必須注意只擁有一台 Manage node 不能與其他的 node 共用,否則會同時觸發 Manage + node 異常而造成無法容錯的狀況。

 

這樣的架構還可以在無限延伸,包含 Manage node 也可以擁有多台進行容錯。

文章連結: https://shazi.info/%e6%9e%b6%e8%a8%ad-ha-%e9%ab%98%e5%8f%af%e7%94%a8%e6%80%a7%ef%bc%9amysql-cluster-%e5%8f%a2%e9%9b%86-7-4-115-6-29/ | Mr. 沙先生

該文章由 shazi7804 於2016年07月07日發表在 MySQL 分類下, 你可以發表回文,並在保留原文地址及作者的情况下引用到你的網站或部落格。
原文轉載請註明: 架設 HA 高可用性:MySQL Cluster 叢集 – 7.4.11(5.6.29) | Mr. 沙先生
標籤: , , ,

架設 HA 高可用性:MySQL Cluster 叢集 – 7.4.11(5.6.29):給Mr.沙先生一點建議

發表回文