2014年11月4日火曜日

MySQL Fabricつらい(インストール編)

取り敢えずインストールだけしたメモ。インストール編といいながら続編があるかどうかは定かではない。


$ sudo rpm -i http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
$ sudo yum install mysql-community-server mysql-utilities
$ sudo service mysqld start

MySQL Fabric用のMySQL(Fabric的にはバッキングストアとかストレージって呼んでる)なので、取り敢えずOracle公式のyumリポジトリーで突っ込む。
そのほうがMySQL Utilities(mysqlfabricはコレに入ってる)のインストール(Connector/Pythonを要求してくる)が簡単なので。


$ mysql -uroot
mysql> GRANT ALL ON fabric.* TO fabric@localhost IDENTIFIED BY 'fabric_password';

バッキングストアにはfabricスキーマを作っておく。


$ sudo vim /etc/mysql/fabric.cfg

$ diff -c /etc/mysql/fabric.cfg{.orig,}
*** /etc/mysql/fabric.cfg.orig  2014-09-24 19:08:45.000000000 +0000
--- /etc/mysql/fabric.cfg       2014-11-04 10:14:29.123248604 +0000
***************
*** 17,23 ****
  address = localhost:3306
  connection_delay = 1
  connection_timeout = 6
! password =
  connection_attempts = 6

  [failure_tracking]
--- 17,23 ----
  address = localhost:3306
  connection_delay = 1
  connection_timeout = 6
! password = fabric_password
  connection_attempts = 6

  [failure_tracking]

取り敢えずバッキングストア用のパスワードだけ埋める。


$ sudo touch /var/log/fabric.log
$ sudo chown mysql. /var/log/fabric.log

--daemonizeする場合には/var/log/fabric.log(初期設定)に書き込めないと起動できなかった。
--daemonizeなしで標準出力に書かせてるぶんにはログに書かないぽく、パーミッションなしでも起動できる。


$ mysqlfabric manage setup
[INFO] 1415096154.828998 - MainThread - Initializing persister: user (fabric), server (localhost:3306), database (fabric).
Finishing initial setup
=======================
Password for admin user is not yet set.
Password for admin/xmlrpc:
Repeat Password:
Password set.
Password set.
No result returned

fabricスキーマの初期設定。
気を利かせてGRANTしたときついでに`CREATE DATABASE fabric`したらむしろ怒られた。空っぽの状態でやるのが吉。
adminユーザーのパスワードはFabricサーバーの管理用パスワードで、バッキングストアのパスワードとは何の関係もない。
空パスワードにしようとしたら、ドラクエ3やMother2みたいな感じでひたすら入力しろと迫ってくる。


$ mysqlfabric manage start
[INFO] 1415096186.341115 - MainThread - Initializing persister: user (fabric), server (localhost:3306), database (fabric).
[INFO] 1415096186.347491 - MainThread - Loading Services.
[INFO] 1415096186.356114 - MainThread - MySQL-RPC protocol server started, listening on localhost:32275
[INFO] 1415096186.363849 - MainThread - Fabric node starting.
[INFO] 1415096186.367503 - MainThread - Starting Executor.
[INFO] 1415096186.367640 - MainThread - Setting 5 executor(s).
[INFO] 1415096186.368038 - Executor-0 - Started.
[INFO] 1415096186.369436 - Executor-1 - Started.
[INFO] 1415096186.371009 - Executor-2 - Started.
[INFO] 1415096186.372460 - Executor-3 - Started.
[INFO] 1415096186.373751 - MainThread - Executor started.
[INFO] 1415096186.374267 - Executor-4 - Started.
[INFO] 1415096186.378326 - MainThread - Starting failure detector.
[INFO] 1415096186.379138 - XML-RPC-Server - XML-RPC protocol server ('127.0.0.1', 32274) started.
[INFO] 1415096186.379361 - XML-RPC-Server - Setting 1 XML-RPC session(s).
[INFO] 1415096186.379623 - XML-RPC-Session-0 - Started XML-RPC-Session.

--daemonizeする場合はすぐに制御が返ってきて、出力は全て[logging]セクションで指定したファイルに行く。
しかし、daemonizeしようがするまいがタイムスタンプはUNIXTIMEなのか。。

MySQL Fabricは他の(MHA for MySQL, mysqlfailover, PXC(Galera Cluster), MySQL Cluster)と違ってIPの管理を自分でしない(Fabricノード(とコネクター)に任せる)あたりがちょっと素敵そうなところかと思って手を出してみたい。
バッキングストアの冗長化はkeepalivedでMySQL Cluster全部載せにしちゃうのがいいかな。。
あとは対応コネクターを選ぶのがちょっとアレな感じはするけれど。

次があるかどうかは定かではない。


【2014/11/06 14:51】
次があった。 => MySQL Fabricつらい(HA/登録編)

0 件のコメント :

コメントを投稿