MariaDB Galera Cluster 5.5 (kudotty/mariadb-galeracluster-5.5)
- 鍵・証明書関係は、以下のtrustyブランチでBOOTモード起動すれば自動生成してくれる (が、それより先でtrustyブランチは起動にコケる)
https://github.com/nsasikumar/mariadb55/tree/trusty - 2014/5現在では、trustyブランチで鍵・証明書関係を作り、masterブランチというかDocker Indexからのもので運用
- fishで以下のように定義済み
alias dl "docker ps -l -q"
alias dlip "docker inspect (dl) | grep IPAddress | cut -d '\"' -f 4"
-
zsh,bashでは(dl)ではなく`dl`、(hostname -f)ではなく`hostname -f`
-
クラスタ内全ノードで、空の状態からの最初のBOOTモード起動 (初期DBを整えてくれたりする)
docker run --name mariadbgalera_boot -v /srv/mariadbgalera/data:/var/lib/mysql -v /srv/mariadbgalera/ssl:/etc/ssl/mysql -p 3306:3306 -e CLUSTER=BOOT -d kudotty/mariadb-galeracluster-5.5 mariadb-start
-
クラスタ内全ノードで、BOOTモードでの起動をstop
docker stop (dl)
-
クラスタ初期ノードでのみ、INITモードで起動
docker run --name mariadbgalera_init -v /srv/mariadbgalera/data:/var/lib/mysql -v /srv/mariadbgalera/ssl:/etc/ssl/mysql -p 3306:3306 -p 4567:4567 -p 4444:4444 -e CLUSTER=INIT -e NODE_ADDR=(hostname -f) -d kudotty/mariadb-galeracluster-5.5 mariadb-start
-
初期ノード以外の全てのノードで、CLUSTERモードで起動
docker run --name mariadbgalera_clustered -v /srv/mariadbgalera/data:/var/lib/mysql -v /srv/mariadbgalera/ssl:/etc/ssl/mysql -p 3306:3306 -p 4567:4567 -p 4444:4444 -e CLUSTER=ノード1のFQDN,ノード2のFQDN,ノード3のFQDN -e NODE=(date --universal +%Y%m%d%H%M%S%) -e NODE_ADDR=(hostname -f) -d kudotty/mariadb-galeracluster-5.5 mariadb-start
-
初期ノードでINITモードをstopさせ、他のノードと同じくCLUSTERモードで起動 (クラスタ全体で3ノード以上ないとこれは出来ない。だから最低3ノード必要)
docker stop (dl)
docker run --name mariadbgalera_clustered -v /srv/mariadbgalera/data:/var/lib/mysql -v /srv/mariadbgalera/ssl:/etc/ssl/mysql -p 3306:3306 -p 4567:4567 -p 4444:4444 -e CLUSTER=ノード1のFQDN,ノード2のFQDN,ノード3のFQDN -e NODE=(date --universal +%Y%m%d%H%M%S%) -e NODE_ADDR=(hostname -f) -d kudotty/mariadb-galeracluster-5.5 mariadb-start
-
確認は
mysql -h (dlip) -u adminuser --ssl-ca=/srv/mariadbgalera/ssl/ca.pem --ssl-cert=/srv/mariadbgalera/ssl/client-cert.pem --ssl-key=/srv/mariadbgalera/ssl/client-key.pem
MariaDB> show status like 'wsrep_%';
-
Dockerホスト再起動時のDockerコンテナの再起動は、Upstart設定ファイルで。
http://docs.docker.io/use/host_integration/
その際、コンテナ名mariadbgalera_clusteredを起動するようにするとBOOTモード・INITモードが誤起動せず、通常運用のCLUSTERモードで起動する。コンテナ名を起動モードによって使い分けるのがポイント