More Related Content
Similar to MHA for MySQL の話
Similar to MHA for MySQL の話 (12)
More from Masahiro Nagano
More from Masahiro Nagano (20)
MHA for MySQL の話
- 2. me
• Masahiro Nagano
• @kazeburo
• NHN Japan
• Operations Engineer
Site Reliability 運用系小姑
Perl Monger
2013年3月8日金曜日
- 3. MHA for MySQLとは
• 元DeNA・現facebookの松信さんによる
MySQLのmaster冗長化ツール
• Master High Availability の略
• MySQLサーバを監視してのフェイルオーバー
とオンラインでのマスター切り替えをサポート
• Proxy型ではないのでSPOFにならない
• サーバの切り替えは別スクリプトを起動
2013年3月8日金曜日
- 4. MHAの構成
mha-node
dbs1
mha-node
dbm mha-node
dbs2
ssh/mysql
manager
masterha-
manager
2013年3月8日金曜日
- 5. MHAの構成
mha-node
dbs1
mha-node
dbm mha-node
dbs2
ssh/mysql
manager
masterha-
manager
2013年3月8日金曜日
- 6. MHAの構成
mha-node
dbs1
mha-node
dbm mha-node
dbs2
ssh/mysql
manager
masterha-
manager
2013年3月8日金曜日
- 7. MHAの構成
mha-node
dbs1
mha-node
dbm mha-node
dbs2
ssh/mysql
manager
masterha-
manager
2013年3月8日金曜日
- 8. MHAの構成
mha-node
dbs1
mha-node
dbm mha-node
dbs2
ssh/mysql
manager
masterha-
master_ip_failover_script!! manager
2013年3月8日金曜日
- 9. MHAの構成
mha-node
dbs1
mha-node
dbm mha-node
dbs2
DNS
ssh/mysql
manager
masterha-
master_ip_failover_script!! manager
2013年3月8日金曜日
- 10. local DNS/PowerDNS
• RDBMSをバックエンドとして使える
• DNS-RRをサポート
• 使いやすい
static build rpm
2013年3月8日金曜日
- 11. local DNS 構成
Compute
Amazon Elastic Compute Cloud (Amazon EC2)
PDNS
Amazon Elastic Instance Instances AMI DB on Instance Instance
Compute Cloud with CloudWatch
(EC2)
tcp/udp 53 replication
Compute
Amazon Elastic MapReduce Auto Scaling
Amazon Elastic Compute Cloud (Amazon EC2)
WebUI/API
server LVS
PDNS
Amazon Elastic Cluster HDFS Cluster Auto Scaling
Amazon Elastic
MapReduce Instance Instances AMI DB on Instance Instance
Compute Cloud with CloudWatch
(EC2)
Storage
Amazon Elastic MapReduce Auto Scaling
Amazon Simple Storage Service (Amazon S3) AWS Import/Export
2013年3月8日金曜日
- 15. MHA configuration
[server default]
user=...
master_ip_failover_script=/home/user/mhaweb/masterha_failover.pl --
app_name=dbm.service --mode=failover --config=/home/user/mhaweb/
config_production.pl
[server1]
hostname=10.xx.xx.77 この中でDNSの書き換え
candidate_master=0
no_master=0
[server2]
hostname=10.xx.xx.49
candidate_master=0
no_master=0
2013年3月8日金曜日
- 16. masterha_manger
$ masterha_manager --conf /var/mha/app21.conf
...
..
.
Tue Dec 11 14:09:22 2012 - [info] Starting ping health
check on 10.xx.xx.xxx(10.xx.xx.xxx:3306)..
Tue Dec 11 14:09:22 2012 - [info] Ping(SELECT)
succeeded, waiting until MySQL doesn't respond..
この状態で動き続ける
わーい起動したー
2013年3月8日金曜日
- 17. Many services
dbs
dbm
dbs dbs
dbm
dbm dbs
dbs
manager
dbm dbs
dbs dbm dbs
dbm
設定とプロセスの管理面倒 dbs
2013年3月8日金曜日
- 18. わたし、Ops も Dev もできる
スーパーエンジニア!
¦
\ __ /
_ (m) _ピコーン
¦ミ¦
/ `́ \
('A`)
ノヽノヽ
くく
2013年3月8日金曜日
- 20. 制御ボタン
オンラインでの
マスター切り替え
sshでの疎通確認
2013年3月8日金曜日
- 22. MHA WebUI&Manager
-+= 70422 perl mhaweb.pl --conf config_mydev.pl
masterha_managerのプロセス
|--- 70424 perl mhaweb.pl --conf config_mydev.pl
|-+- 70425 perl mhaweb.pl --conf config_mydev.pl
| |--- 70440 perl masterha_manager --conf /tmp/app/dbm.sample/app1
| |--- 70440 perl masterha_manager --conf /tmp/app/dbm.sample/app2
| --- 70440 perl masterha_manager --conf /tmp/app/dbm.sample/app3
-+- 70426 perl mhaweb.pl --conf config_mydev.pl
|--- 70427 perl mhaweb.pl --conf config_mydev.pl
|--- 70428 perl mhaweb.pl --conf config_mydev.pl
|--- 70429 perl mhaweb.pl --conf config_mydev.pl
|--- 70430 perl mhaweb.pl --conf config_mydev.pl
--- 70431 perl mhaweb.pl --conf config_mydev.pl
Perl + Proclet + Custom Process Manager
2013年3月8日金曜日
- 24. MHA WebUI&Manager
Pros
• 20+ のサービスで使用中
• オンラインでのマスター変更にも使用
Cons
• Master障害童貞
• sshの設定がいまいち
2013年3月8日金曜日
• オープンソース化は予定nashi..
- 25. まとめ
• MHA for MySQL 便利 & 怖くない
• Perl 萎んでない
2013年3月8日金曜日