Posted at

IDCFクラウド で MariaDB Galera Cluster を組んでみる

More than 1 year has passed since last update.

はじめまして、橋口です :bow:

今回は、IDCFクラウド 上で MariaDB 10 以降に取り込まれた MariaDB Galera Cluster を使い、マルチマスタDBを作成します :tada:


Step0) 環境

VM(仮想マシン)を構築するまでの流れはご利用の流れめちゃ楽ガイド(PDF)をご覧下さい :bow:

データベース用セグメントとして追加ネットワークを作成するのもオススメです :thumbsup:

:information_desk_person: 環境が異なる場合は適宜読み替えて下さい。


Step1) リポジトリ追加


/etc/yum.repos.d/MariaDB.repo

# MariaDB 10.1 CentOS repository list

# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgcheck=1
enable=1


  • 必要に応じてリポジトリの鍵を登録しましょう :key2:

sudo rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB


Step2) インストール

sudo yum install MariaDB-server MariaDB-client


Step3) 初期設定 :wrench:

各VMに設定をしてゆきます。


/etc/my.cnf.d/server.cnf

[galera]

wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=GALERA
wsrep_cluster_address="gcomm://192.168.10.1,192.168.10.2,192.168.11.1"
wsrep_node_address=192.168.0.1
wsrep_slave_threads=2
binlog_format=row



  • wsrep_provider が見つからない場合は /usr/{lib|lib64}/{mysql|galera}/libgalera_smm.so を探してみてください。


  • wsrep_cluster_name では名前を定義します。デフォルト値は my_wsrep_cluster です。


  • wsrep_cluster_address では参加するノードのIPアドレスを定義します。


  • wsrep_node_address では設定を行うノードのIPアドレスを定義します。デフォルト値は eth0 のIPアドレスです。


  • wsrep_slave_threads ではスレッド数を定義します。CPUの倍または書き込むクライアント数の1/4を設定するとよいようです。

  • 詳細は https://mariadb.com/kb/en/mariadb/galera-cluster-system-variables/ を参照してください。


Step4) 起動 :tada:


1台目


CentOS5,CentOS6

service mysql bootstrap



CentOS7

galera_new_cluster



2台目以降


CentOS5,CentOS6

service mysql start



CentOS7

systemctl start mriadb



Step5) 接続する

各アプリケーションサーバの内部にHAProxyを置いて分散するのがよいのではないでしょうか :thinking:

アプリケーションサーバーが多い場合は別途内部LBを作成する方が管理は楽かな? :sob:


install

yum install haproxy



/etc/haproxy/haproxy.cfg

listen galera *:3306

balance source
mode tcp
option tcpka
option mysql-check user haproxy
server node1 192.168.10.1:3306 check weight 1
server node2 192.168.10.2:3306 check weight 1
server node3 192.168.11.1:3306 check weight 100


さいごに

このほかには、MariaDB 10以降ではmroongaがバンドルされていたりしていて個人的にうれしいです。

あまり、IDCFクラウド関係なくない?といわれたら悲しいので宣伝しておきます。

IDCFクラウドには、月500円の仮想マシンからデータベースサーバに最適な超高速I/O処理が可能なioMemoryを搭載したハードウェア占有マシンなど、幅広いラインナップの仮想サーバーがあります。

また、追加ネットワーク間を相互に接続できるプライベートコネクトL3(type3)というWANサービスがあります。

IDCFクラウドのゾーン間はもとよりリージョン間接続も基本無料※なサービスなため、DBを簡単に東日本、西日本に配置することができBCP対策にも有効です。

※ 一部有料になることがあります。詳しくはサービス仕様書をご覧いただくかお問い合わせください。

※ 追加ネットワークは月額1万円(税別)です(2016/12/19日時点)