スマートスタイル TECH BLOG

Dockerで Percona XtraDB Cluster 環境を構築する方法

概要

Percona XtraDB Cluster (以下、PXC)は、Percona社が開発するクラスタソフトウェアです。全ノードに対して参照・更新が可能な「マルチマスタ構成」を実現でき、オープンソースで提供されているため、気軽に利用することができます。

※ PXCは、「Galera Cluster」をベースとした製品です

しかし、推奨される最小構成が「3台以上」という制限が存在します。そのため、手元の環境で試そうとすると3台のサーバーを用意する必要があり、少々大変です。

そこで、この記事ではDockerを利用して、1台のサーバー上に3ノード構成のPXC環境を構築する手順について紹介したいと思います。

構築手順

1. Linuxサーバーをセットアップ

Dockerをインストールする任意のLinuxサーバーをセットアップします。

※ CentOS 7系でないと以下の手順が上手くいかない可能性があります

2. Docker, docker-compose をセットアップ

以下の手順で、Docker をインストールします。

次に、docker-composeをインストールします。このコマンドを使うと、複数台のコンテナを起動する作業を楽に進めることができます。

3. 各種設定ファイルを用意

以下の docker-compose.yml を作成します。

次に各ノードの設定ファイル(いわゆるmy.cnf)を作成します。
設定の内容は自由ですが、PXCで必須となるパラメータは必ず設定して下さい。
(binlog_format = ROW, wsrep_provider など)

node2, node3 の設定ファイルは、上記の流用で問題ありません。

4. PXCのコンテナを起動

docker-composeコマンドで、PXCのコンテナを起動します。

※ “mysqld: ready for connections.” などのメッセージが出力されたら、
  ノードが正常に起動したと判断してよいです

5. 各ノードにアクセスする

以下のコマンドでPXCのノードにアクセスすることができます。
rootユーザのパスワードは、”password”です(ymlファイル内で設定しています)。

ログインしたら、念のため wsrep_cluster_size 変数の値を確認しましょう。
以下であれば、3ノードが問題なく接続できています。

6. その他

問題なくPXCコンテナが起動していることが確認できたら、自由に操作して構いません。
ベンチマークや機能検証を行ってもよいかと思います。

もし、各ノードで何らかのエラーが発生し、ノードがダウンしてしまった場合は、
以下の手順で全コンテナを再構築することを推奨します。


Percona

 

Return Top