簡介
MariaDB Galera Cluster是基於MariaDB系統下的叢集架構 (以下將以Cluster稱之),採用Multi Master設計,在Cluster中每個節點都可以作為Master進行讀寫動作。(注意:現在只支援 InnoDB/XtraDB storage engine。)
相較於傳統Master Slave設計 (例如MySQL Cluster) 提供的讀寫分離,Multi Master可以更彈性的規劃節點數量,加入新的節點而不影響現有規劃。
更能夠搭配 MariaDB MaxScale 提供HA, content routing, querying logging等服務。
安裝與設定
假設現在有三台機器要組成Cluster,資訊分別如下
NodeA 10.10.0.230
NodeB 10.10.0.231
NodeC 10.10.0.232
安裝
以 ubuntu 14.04 為例 (其他版本請用這頁選擇 source list)
加入source list
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu trusty main'
安裝
sudo apt-get update
sudo apt-get install mariadb-galera-server
設定
基本流程只要提供設定檔 + 啟動mariadb,確定有加入cluster,就完成。
加入基本設定檔 cluster.cnf 如下
cat /etc/mysql/conf.d/cluster.cnf
[mysqld]
query_cache_size=0
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
query_cache_type=0
bind-address=0.0.0.0
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="test_cluster"
wsrep_sst_method=rsync
另外在NodeA加上
wsrep_cluster_address="gcomm://"
若是非NodeA則加上
wsrep_cluster_address="gcomm://10.10.0.230"
意思是NodeA會啟動一個新的cluster設定, 為test_cluster
其他機器(NodeB, NodeC)會透過10.10.0.230 即NodeA的IP加入此Cluster
(PS. 若是cluster有兩個以上節點,可以任意指定一個或多個加入cluster)
在NodeA啟動mariadb
sudo service mysql restart
NodeA已經啟動後,其他節點一樣啟動加入
sudo service mysql restart
狀態
此時Cluster已經產生,如果要確定機器已經加入
可以在MariaDB prompt下
MariaDB [(none)]> show status;
wsrep_incoming_addresses | 10.10.0.230:3306,10.10.0.231:3306,10.10.0.232:3306
有出現IP表示已經加入成功