MariaDBでクラスターを組む際、
- maxscale
- mariadb-replication-manager
- MariaDB
を使うとよい。
そもそも、MariaDBのクラスターには、
- Spider(マルチマスター、データ分散型)
- Galera(マルチマスター、データ同期型)
- Slave auto promotion(マスタースレーブ、データ同期型)
のような3つの手段があるが(もっとあるかも。。調べてません。)、
GaleraとSlave auto promotionであれば、maxslace & repliacation-managerの監視および発砲でいける。
すいません、Spliderは記載しておきながら、大してわからないので、
GaleraとSlave auto promotionの特徴を書いてみる。
【Galera】
(メリット)
- 全てmasterであるため、障害時のダウンタイムがほぼ0
- 各ノードのデータ状況に差異が出にくい
(デメリット)
- データの同期化のため、ノード数が増えると更新時間がかかる
- テーブルor行ロックは同一ノードのみ有効
【Slave auto promotion】
(メリット)
- データ更新時間はシングル構成と変わらない(うそ、シングルより遅いし、レプリケーションタイプにも影響をうける)
(デメリット)
- Slaveの昇格が完了するまではダウンタイムとなる
- Slave遅延が発生するとデータのロストが発生する
上記のような特徴があるので、
使いどころはサービスに依存するのかもしれない。
私の見解では、
・同一データを更新することがない場合 → Galera
・同一データを更新することが多い場合 → Slave auto promotion
がよいと思う。
決め手は、更新速度とロックの有無かと。
※Spiderは分散データなので、Slave auto promotionと組み合わせないとデータロストしちゃうかも。。
Galeraは結構やっている人がいるから、
Slave auto promotionについて、
maxscaleとreplication-managerを用いた構成の説明(やってみた)を近々で書こうと思う。
以上