SlideShare a Scribd company logo
“MHA for MySQL”の話
               モニカジ#3
               kazeburo




2013年3月8日金曜日
me
               • Masahiro Nagano
               • @kazeburo
               • NHN Japan
               • Operations Engineer
                 Site Reliability 運用系小姑
                 Perl Monger


2013年3月8日金曜日
MHA for MySQLとは
               • 元DeNA・現facebookの松信さんによる
                MySQLのmaster冗長化ツール

               • Master High Availability の略
               • MySQLサーバを監視してのフェイルオーバー
                とオンラインでのマスター切り替えをサポート

               • Proxy型ではないのでSPOFにならない
               • サーバの切り替えは別スクリプトを起動
2013年3月8日金曜日
MHAの構成
                                             mha-node

                                     dbs1
               mha-node




               dbm                               mha-node


                                          dbs2



               ssh/mysql

                           manager

                                     masterha-
                                     manager



2013年3月8日金曜日
MHAの構成
                                             mha-node

                                     dbs1
               mha-node




               dbm                               mha-node


                                          dbs2



               ssh/mysql

                           manager

                                     masterha-
                                     manager



2013年3月8日金曜日
MHAの構成
                                             mha-node

                                     dbs1
               mha-node




               dbm                               mha-node


                                          dbs2



               ssh/mysql

                           manager

                                     masterha-
                                     manager



2013年3月8日金曜日
MHAの構成
                                             mha-node

                                     dbs1
               mha-node




               dbm                               mha-node


                                          dbs2



               ssh/mysql

                           manager

                                     masterha-
                                     manager



2013年3月8日金曜日
MHAの構成
                                                           mha-node

                                                   dbs1
                         mha-node




                       dbm                                     mha-node


                                                        dbs2



                        ssh/mysql

                                         manager

                                                   masterha-
               master_ip_failover_script!!         manager



2013年3月8日金曜日
MHAの構成
                                                            mha-node

                                                    dbs1
                          mha-node




                        dbm                                     mha-node


                                                         dbs2



          DNS
                         ssh/mysql

                                          manager

                                                    masterha-
                master_ip_failover_script!!         manager



2013年3月8日金曜日
local DNS/PowerDNS
        • RDBMSをバックエンドとして使える
        • DNS-RRをサポート
        • 使いやすい
               static build rpm




2013年3月8日金曜日
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日金曜日
PDNSManager




2013年3月8日金曜日
PDNSManager




2013年3月8日金曜日
PDNSManager API




                MHAからAPIを通してDNSを更新
2013年3月8日金曜日
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日金曜日
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日金曜日
Many services
                                            dbs
                                dbm

                        dbs                 dbs

                dbm
                                                    dbm     dbs
                        dbs


                                    manager




               dbm    dbs
                                      dbs         dbm     dbs

                              dbm
           設定とプロセスの管理面倒               dbs

2013年3月8日金曜日
わたし、Ops も Dev もできる
                 スーパーエンジニア!

                                  ¦
                              \  __  /
                              _ (m) _ピコーン
                                 ¦ミ¦
                               /  `́  \
                                ('A`)
                                ノヽノヽ
                                  くく



2013年3月8日金曜日
MHA WebUI&Manager




2013年3月8日金曜日
制御ボタン




                オンラインでの
               マスター切り替え


                  sshでの疎通確認




2013年3月8日金曜日
レプリケーション構成の確認




               masterha_managerのログ




2013年3月8日金曜日
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日金曜日
MHA WebUI&Manager

               ikachan連携アリ




2013年3月8日金曜日
MHA WebUI&Manager
                       Pros
               • 20+ のサービスで使用中
               • オンラインでのマスター変更にも使用
                          Cons
               • Master障害童貞
               • sshの設定がいまいち
2013年3月8日金曜日
               • オープンソース化は予定nashi..
まとめ


               • MHA for MySQL 便利 & 怖くない
               • Perl 萎んでない


2013年3月8日金曜日

More Related Content

PPT
MHAを検証して導入した話
PDF
MySQL負荷分散の方法
PDF
Introducing MySQL MHA (JP/LT)
PPTX
MySQL 冗長化モデル
PDF
MHAの次を目指す mikasafabric for MySQL
PDF
Art of MySQL Replication.
PDF
ゆるふわMySQLフェイルオーバー
PDF
MySQLの冗長化 2013-01-24
MHAを検証して導入した話
MySQL負荷分散の方法
Introducing MySQL MHA (JP/LT)
MySQL 冗長化モデル
MHAの次を目指す mikasafabric for MySQL
Art of MySQL Replication.
ゆるふわMySQLフェイルオーバー
MySQLの冗長化 2013-01-24

What's hot (20)

PDF
MHA for MySQLとDeNAのオープンソースの話
PDF
tcpdump & xtrabackup @ MySQL Casual Talks #1
PDF
MySQL5.7 GA の Multi-threaded slave
PDF
MySQL Casual Talks in Fukuoka vol.2
PDF
MySQLレプリケーションあれやこれや
PPTX
MySQLの運用でありがちなこと
PPTX
初心者向け負荷軽減のはなし
PDF
MySQLトラブル解析入門
PDF
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
PDF
MySQL 5.6新機能解説@dbtechshowcase2012
PPT
実践!データベースリファクタリングツール
PPTX
MySQL Clusterを運用して10ヶ月間
PPT
Handlersocket 20140218
PDF
MySQL ガチBeginnerがやってみたことと反省したこと
PDF
MySQL 5.7とレプリケーションにおける改良
PPTX
POWER8サーバでMariaDBベンチマーク
PDF
What's New in MySQL 5.7 InnoDB
PDF
sysloadや監視などの話(仮)
PDF
hktstudy #01 LT 20120616
PDF
Mysql toranomaki
MHA for MySQLとDeNAのオープンソースの話
tcpdump & xtrabackup @ MySQL Casual Talks #1
MySQL5.7 GA の Multi-threaded slave
MySQL Casual Talks in Fukuoka vol.2
MySQLレプリケーションあれやこれや
MySQLの運用でありがちなこと
初心者向け負荷軽減のはなし
MySQLトラブル解析入門
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL 5.6新機能解説@dbtechshowcase2012
実践!データベースリファクタリングツール
MySQL Clusterを運用して10ヶ月間
Handlersocket 20140218
MySQL ガチBeginnerがやってみたことと反省したこと
MySQL 5.7とレプリケーションにおける改良
POWER8サーバでMariaDBベンチマーク
What's New in MySQL 5.7 InnoDB
sysloadや監視などの話(仮)
hktstudy #01 LT 20120616
Mysql toranomaki
Ad

Similar to MHA for MySQL の話 (12)

KEY
MHA, Murakumo & Me
PDF
PHPで大規模ブラウザゲームを開発してわかったこと
KEY
Web Operations and Perl kansai.pm#14
PDF
AWS Black Belt Tech シリーズ 2015 - Amazon Elastic MapReduce
PDF
第12回CloudStackユーザ会_ApacheCloudStack最新情報
PDF
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
PDF
Mobageの技術を体験(MyDNS編)
PDF
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
PPT
MySQL Multi-master on EC2
PDF
SQL Azure のシームレスな管理
PDF
MySQL de NoSQL Fukuoka
PPTX
Okuyama説明資料 20120119 ss
MHA, Murakumo & Me
PHPで大規模ブラウザゲームを開発してわかったこと
Web Operations and Perl kansai.pm#14
AWS Black Belt Tech シリーズ 2015 - Amazon Elastic MapReduce
第12回CloudStackユーザ会_ApacheCloudStack最新情報
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
Mobageの技術を体験(MyDNS編)
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
MySQL Multi-master on EC2
SQL Azure のシームレスな管理
MySQL de NoSQL Fukuoka
Okuyama説明資料 20120119 ss
Ad

More from Masahiro Nagano (20)

PDF
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
PDF
Rhebok, High Performance Rack Handler / Rubykaigi 2015
PDF
Big Master Data PHP BLT #1
PDF
Stream processing in Mercari - Devsumi 2015 autumn LT
PDF
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
PDF
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
PDF
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
PDF
メルカリでのNorikraの活用、 Mackerelを添えて
PDF
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
PDF
Mackerel & Norikra mackerel meetup #4 LT
PDF
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
PDF
Isucon makers casual talks
PDF
blogサービスの全文検索の話 - #groonga を囲む夕べ
PDF
Gazelle - Plack Handler for performance freaks #yokohamapm
PDF
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
PDF
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
PDF
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
PDF
Webアプリケーションの パフォーマンス向上のコツ 実践編
PDF
Webアプリケーションの パフォーマンス向上のコツ 概要編
PDF
Webアプリケーションとメモリ
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Big Master Data PHP BLT #1
Stream processing in Mercari - Devsumi 2015 autumn LT
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
メルカリでのNorikraの活用、 Mackerelを添えて
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Mackerel & Norikra mackerel meetup #4 LT
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
Isucon makers casual talks
blogサービスの全文検索の話 - #groonga を囲む夕べ
Gazelle - Plack Handler for performance freaks #yokohamapm
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
Webアプリケーションの パフォーマンス向上のコツ 実践編
Webアプリケーションの パフォーマンス向上のコツ 概要編
Webアプリケーションとメモリ

MHA for MySQL の話

  • 1. “MHA for MySQL”の話 モニカジ#3 kazeburo 2013年3月8日金曜日
  • 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日金曜日
  • 14. PDNSManager API MHAからAPIを通してDNSを更新 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日金曜日
  • 21. レプリケーション構成の確認 masterha_managerのログ 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日金曜日
  • 23. MHA WebUI&Manager ikachan連携アリ 2013年3月8日金曜日
  • 24. MHA WebUI&Manager Pros • 20+ のサービスで使用中 • オンラインでのマスター変更にも使用 Cons • Master障害童貞 • sshの設定がいまいち 2013年3月8日金曜日 • オープンソース化は予定nashi..
  • 25. まとめ • MHA for MySQL 便利 & 怖くない • Perl 萎んでない 2013年3月8日金曜日