Upload
fujishiro-takuya
View
818
Download
2
Embed Size (px)
Citation preview
Copyright IDC Frontier Inc. All rights reserved.
1
Percona MeetUP Tokyo Vol.01
MaxScale触ってみた
IDCフロンティア
ソリューションアーキテクト 藤城 拓哉
@tafujish
2015年06月25日
(C) IDC Frontier Inc. All Rights Reserved.
自己紹介
■業務
クラウド前
Unix/Linuxシステム管理者
クラウド後
プラットフォームの
設計、構築、運用
テクニカルサポート
ソリューションアーキテクト
今ココ
■趣味
自宅サーバー/自宅HPC
ベンチマーク
(C) IDC Frontier Inc. All Rights Reserved.
IDCF RDBサービス
クローズドベータなう!
(C) IDC Frontier Inc. All Rights Reserved.
Percona XtraDB Cluster
が動いてます!
マルチマスター構成だよ
(C) IDC Frontier Inc. All Rights Reserved.
藤城
「マルチマスターすげぇ
とゆーことは、IDCF RDBだったら
リードもライトもバランシングしてくれるのね」
IDCF RDB開発者
「バランシングは自分でやってね」
(C) IDC Frontier Inc. All Rights Reserved.
藤城
「じゃ IDCFクラウドの無償LBでバランシングさせるわ」
IDCF RDB開発者
「ノード障害等のVM再作成でIPもVM名も変わるから
ホスト名で登録した方が良いよ」
(C) IDC Frontier Inc. All Rights Reserved.
藤城
「じゃ 自分でVM上でLB立てるということか」
IDCF RDB開発者
「ホスト名でバランシングさせるなら
HAProxyがおすすめだよ」
8 (C) IDC Frontier Inc. All Rights
Reserved.
HAProxy以外の
選択肢
(C) IDC Frontier Inc. All Rights Reserved.
6/8 MariaDB Meetup より
database-centric proxy
つまり、MySQL用のLB
レプリケーション構成でMasterとSlaveのリクエストを
勝手に分けてくれる
(C) IDC Frontier Inc. All Rights Reserved.
もちろんクラスタ構成でも
IDCF RDBサービス(Percona XtraDB Cluster)
を使って試してみた
(C) IDC Frontier Inc. All Rights Reserved.
クライアント MaxScale
RDBノード
RDBノード
RDBノード
IDCF RDB
12 (C) IDC Frontier Inc. All Rights
Reserved.
RDB構築
(C) IDC Frontier Inc. All Rights Reserved.
1) RDBから「インスタンス起動」
DB構築は以上
2) 監視用のユーザー作成
クライアントから作成したRDBに接続
# mysql -h testdb_####_private.rdb.jp-east.idcfcloud.com -u <RDBで作成したユーザ> -p mysql> create user 'maxscale'@'%' identified by 'password'; mysql> GRANT SELECT on mysql.user to 'maxscale'@'%'; mysql> GRANT SELECT ON mysql.db TO 'maxscale'@'%'; mysql> GRANT SHOW DATABASES ON *.* TO 'maxscale'@'%'; mysql> FLUSH PRIVILEGES; mysql> exit
ここではmaxscaleというユーザーを作成、以降の設定でも利用
14 (C) IDC Frontier Inc. All Rights
Reserved.
MaxScale構築
(C) IDC Frontier Inc. All Rights Reserved.
1) MaxScale用のVMを作成
ここではCentOS6.6を利用
2) MaxScaleインストール # rpm -i https://downloads.mariadb.com/software/mariadb-maxscale/configure-maxscale-repo-0.1.2.rpm
# yum -y install maxscale # export PATH=${PATH}:/usr/local/mariadb-maxscale/bin # chkconfig --add maxscale
/usr/local/mariadb-maxscale にインストールされる リポジトリや他のディストロ等の最新の情報は https://mariadb.com/my_portal/download/maxscale ※要サインナップ
(C) IDC Frontier Inc. All Rights Reserved.
ドキュメントはGithubから
https://github.com/mariadb-corporation/MaxScale
Documentationディレクトリの中
(C) IDC Frontier Inc. All Rights Reserved.
3) MaxScaleコンフィグ作成
[maxscale] threads=4 [Galera Service] type=service router=readconnroute router_options=synced servers=dbserv1, dbserv2, dbserv3 user=maxscale passwd=476B3BE7C0D8CEFBC852072E7EA64### [Galera Monitor] type=monitor module=galeramon servers=dbserv1, dbserv2, dbserv3 user=maxscale passwd=476B3BE7C0D8CEFBC852072E7EA64### [Galera Listener] type=listener service=Galera Service protocol=MySQLClient port=3306 socket=/tmp/DB.Cluster
CPUコア数にあわせる(ここでは4コアのVM) RDBへのバランシング設定 serversは3ノード分書いておく userは先ほど監視用に作成したmaxscale パスワードは以下のとおり暗号化して書く RDBへの監視設定 MaxScaleのDBリクエストを受ける設定
/usr/local/mariadb-maxscale/etc/MaxScale.cnf
# maxkeys /usr/local/mariadb-maxscale/etc/.secrets # maxpasswd password 476B3BE7C0D8CEFBC852072E7EA64###
つづく
(C) IDC Frontier Inc. All Rights Reserved.
[CLI] type=service router=cli [CLI Listener] type=listener service=CLI protocol=maxscaled address=localhost port=6603 [dbserv1] type=server address=testdb_###1_private.rdb.jp-east.idcfcloud.com port=3306 protocol=MySQLBackend [dbserv2] type=server address=testdb_###2_private.rdb.jp-east.idcfcloud.com port=3306 protocol=MySQLBackend [dbserv3] type=server address=testdb_###3_private.rdb.jp-east.idcfcloud.com port=3306 protocol=MySQLBackend
MaxScale用の管理ツールの設定 1台目のRDBノードの情報 2台目 3台目 今回の設定の参考元 『Connection Routing with Galera Cluster』
https://github.com/mariadb-corporation/MaxScale/blob/master/Documentation/Tutorials/Galera-Cluster-Connection-Routing-Tutorial.md
つづき
(C) IDC Frontier Inc. All Rights Reserved.
4) MaxScale起動
5) クライアントから接続して動作確認
# service maxscale start 以上で完了 ※もし起動失敗したらログを確認 # cat /usr/local/mariadb-maxscale/log/error1.log
# mysql -h <MaxScaleのIPアドレス> -u tpcc –p 繋がれば後は一緒
(C) IDC Frontier Inc. All Rights Reserved.
6) MaxScale上の接続状態確認
# maxadmin -pmariadb list servers Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- dbserv1 | testdb_###1_private.rdb.jp-east.idcfcloud.com | 3306 | 0 | Master, Synced, Running dbserv2 | testdb_###2_private.rdb.jp-east.idcfcloud.com | 3306 | 0 | Slave, Synced, Running dbserv3 | testdb_###3_private.rdb.jp-east.idcfcloud.com | 3306 | 1 | Slave, Synced, Running -------------------+-----------------+-------+-------------+--------------------
(C) IDC Frontier Inc. All Rights Reserved.
ベンチマーク
間に合わなかった
(C) IDC Frontier Inc. All Rights Reserved.
まとめ
MaxScaleという選択肢
クラスタ構成でも使えました
今後試したい
・ノードのスケールアウト/イン時の動作
・MaxScaleの冗長化
・負荷試験
IDCF RDBもよろしくね!