2014年12月19日金曜日

DockerでMySQL Fabricをさっくり試すための整備をしたつもり

みんな、僕と地雷友達になってよ!

【2014/12/25 14:03】 リンク間違ってんじゃん。。
https://github.com/yoku0825/my_script/blob/master/make_centos_baseimage_for_docker.sh
https://github.com/yoku0825/my_script/blob/master/make_mysqlfabric_sandbox.sh


MySQL Fabricのファームにすぐに突っ込めるようなDockerイメージ を使ってもろもろ整理した結果、こんなんなりました。

確認した環境は、 どっかのVPS の テンプレートイメージ"CentOS 6.5(64bit)"、epel-releaseは予め入ってました。


# rpm -i http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
# yum install -y mysql-server mysql-utilities docker-io

DockerホストをそのままMySQL Fabricサーバー(バッキングストア相乗り)にするので、そのへんをゴニョゴニョ。
あとそういう趣旨なのでDockerも入れないと。


# vim /etc/mysql/fabric.cfg
..
# diff -C 0 /etc/mysql/fabric.cfg.orig /etc/mysql/fabric.cfg
*** /etc/mysql/fabric.cfg.orig  2014-12-19 17:57:22.512670132 +0900
--- /etc/mysql/fabric.cfg       2014-12-19 17:56:43.957666364 +0900
***************
*** 16 ****
! user = fabric
--- 16 ----
! user = backingstore
***************
*** 20 ****
! password =
--- 20 ----
! password = backingstore
***************
*** 34 ****
! password =
--- 34 ----
! password = fabric_password
***************
*** 45 ****
! disable_authentication = no
--- 45 ----
! disable_authentication = yes
***************
*** 64 ****
! disable_authentication = no
--- 64 ----
! disable_authentication = yes

色々面倒なのでXML経由もMySQLプロトコル経由もdisable_authentication=yesにしてしまう。
バッキングストアのユーザー名を変えてるのは単なる気まぐれ。
Dockerイメージには予めFabric管理用の特権ユーザーとしてfabricユーザーがいるので、なんとなくかぶせたくなかっただけ。


# /etc/init.d/mysqld start
# mysql
mysql> GRANT ALL ON fabric.* TO backingstore@127.0.0.1 IDENTIFIED BY 'backingstore';
Query OK, 0 rows affected (0.02 sec)

# /etc/init.d/docker start
# git clone https://github.com/yoku0825/my_script
# my_script/make_mysqlfabric_sandbox.sh start global shard1 shard2
..
Finishing initial setup
=======================
Password for admin user is not yet set.
Password for admin/xmlrpc:
Repeat Password:
Password set.
Password set.
No result returned
..
# my_script/mysqlfabric_tree.sh
global
        3d2f0764-8760-11e4-baf4-0242ac110002 172.17.0.2 PRIMARY READ_WRITE    1.0
shard1
        4395a789-8760-11e4-baf4-0242ac110003 172.17.0.3 PRIMARY READ_WRITE    1.0
shard2
        4b23890a-8760-11e4-baf4-0242ac110004 172.17.0.4 PRIMARY READ_WRITE    1.0

途中、mysqlfabricを初期化してるところでパスワードは聞かれる(そして空にできない)ので取り敢えず入力するけど、disable_authentication=yesなので実際にコマンドラインクライアントから叩くときには使われない。これだけで1グループ1台構成のシャーディングの準備ができる。そのうち、1グループに2台以上追加する何かも考えようかどうしようか。

大事なことなのでもう一度いいます。
僕と地雷友達になってください :)

さて、やっとここまで来られたので次はシャードの検証しましょうかね。。


【2015/02/23 16:00】
そういえば、コンマ区切りで各グループのインスタンスの数を制御できるようにしてあった。
https://github.com/yoku0825/my_script/commit/6fb06fae6784fe5eb8e2b83b1292a9b7b15f8504

# ./make_mysqlfabric_sandbox.sh start shard1,2 shard2,3
..

# ./mysqlfabric_tree.sh
shard2
        0a3c9c1c-bb2a-11e4-8ca9-0242ac110058 172.17.0.88 SECONDARY  READ_ONLY    1.0
        1265aaa4-bb2a-11e4-8ca9-0242ac110059 172.17.0.89    FAULTY  READ_ONLY    1.0
        1ada394c-bb2a-11e4-8ca9-0242ac11005a 172.17.0.90   PRIMARY READ_WRITE    1.0
shard1
        019dec7f-bb2a-11e4-8ca8-0242ac110057 172.17.0.87 SECONDARY  READ_ONLY    1.0
        fb300b5b-bb29-11e4-8ca8-0242ac110056 172.17.0.86   PRIMARY READ_WRITE    1.0

0 件のコメント :

コメントを投稿