SlideShare a Scribd company logo
1 of 25
Download to read offline
“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

What's hot

MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話Yoshinori Matsunobu
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveTakanori Sejima
 
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2学 松崎
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやyoku0825
 
MySQLの運用でありがちなこと
MySQLの運用でありがちなことMySQLの運用でありがちなこと
MySQLの運用でありがちなことHiroaki Sano
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなしOonishi Takaaki
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門Mikiya Okuno
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06Mikiya Okuno
 
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012Mikiya Okuno
 
実践!データベースリファクタリングツール
実践!データベースリファクタリングツール実践!データベースリファクタリングツール
実践!データベースリファクタリングツールTatsunori Matoba
 
MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間hiroi10
 
Handlersocket 20140218
Handlersocket 20140218Handlersocket 20140218
Handlersocket 20140218akirahiguchi
 
MySQL ガチBeginnerがやってみたことと反省したこと
MySQL ガチBeginnerがやってみたことと反省したことMySQL ガチBeginnerがやってみたことと反省したこと
MySQL ガチBeginnerがやってみたことと反省したことSatoshi Suzuki
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良Shinya Sugiyama
 
What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBMikiya Okuno
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)Takanori Sejima
 
hktstudy #01 LT 20120616
hktstudy #01 LT 20120616hktstudy #01 LT 20120616
hktstudy #01 LT 20120616学 松崎
 

What's hot (20)

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

Similar to MHA for MySQL の話

PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことKentaro Matsui
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
AWS Black Belt Tech シリーズ 2015 - Amazon Elastic MapReduce
AWS Black Belt Tech シリーズ 2015 - Amazon Elastic MapReduceAWS Black Belt Tech シリーズ 2015 - Amazon Elastic MapReduce
AWS Black Belt Tech シリーズ 2015 - Amazon Elastic MapReduceAmazon Web Services Japan
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報Midori Oge
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)Daisuke Ikeda
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandMasakazu Matsushita
 
MySQL Multi-master on EC2
MySQL Multi-master on EC2MySQL Multi-master on EC2
MySQL Multi-master on EC2Shinji Tanaka
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssOkuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssTakahiro Iwase
 

Similar to MHA for MySQL の話 (12)

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

More from Masahiro Nagano

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

More from Masahiro Nagano (20)

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