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

  • 5
    いいね
  • 0
    コメント

はじめまして、橋口です :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日時点)

この投稿は IDCF Cloud Advent Calendar 201619日目の記事です。