SlideShare una empresa de Scribd logo
1 de 21
MHA, MURAKUMO, & ME
   Automation Tech Casual Talks #1




             7/17/2012
自己紹介 (@IJIN)

• Michael   H. Oshita

• Japanese American

• In   Japan since 2002

• Software/Infra   Engineer

• http://ijin.github.com
DBの冗長化

• Master   - Slave

• DRBD

• MySQL    Cluster

• MMM

• RDS
DBの冗長化
         (MASTER/SLAVE)


• シンプル


• 手動フェールオーバー対応


• 検知・対応まで数十分単位
DBの冗長化
                       (DBRD)


• 複雑


• sync_binlogでwrite   IO低下
DBの冗長化
            (MYSQL CLUSTER)


• 複雑


• NDB   storage engine。。
DBの冗長化
                                (MMM)

• メンテされてない


• 過去ケースを見ても不安定(Percona)

 •   http://www.xaprb.com/blog/2011/05/04/whats-wrong-with-mmm/
DBの冗長化
             (RDS)

• 楽で好き


• IOがちょっと。


• 政治的な理由で使えなかったり。。
MHA
     (Master High Availability Manager for MySQL)

•   シンプル (Master-slaveそのまま)

•   自動フェールオーバー

    (各サーバで最新のbinlogを適用)

•   安定性(DeNAさんで数百台のDBで運用)
MHA
         Masterで障害発生



                Slave

                        Manager
Master

                Slave
MHA
各slaveに最新binlogを適用し、Master昇格
                                binlog
           binlog

                      Master

                                         Manager
  Master
                               binlog
                      Slave
MHA
             FAILOVERシーケンス
"Starting master failover."
"* Phase 1: Configuration Check Phase..n"
"* Phase 2: Dead Master Shutdown Phase..n"
   ==> ここで旧Master情報削除 (master_ip_failover)
"* Phase 3: Master Recovery Phase..n"
 "* Phase 3.1: Getting Latest Slaves Phase..n"
 "* Phase 3.2: Saving Dead Master's Binlog Phase..n"
 "* Phase 3.3: Determining New Master Phase..n"
   ==> ここで新Master情報登録 (master_ip_failover)
"* Phase 4: Slaves Recovery Phase..n"
MHA
                     切替方法は2種類

                 (master_ip_failoverで定義)

• Virtual   IP

• Catalog    DB Server (DNS)
MHA
                 切替方法は2種類
• Virtual   IP

  → 使えない場合も。。

• Catalog    DB Server (DNS)

 → 内部DNSサーバ運用面倒。。
そこで
By Genki Sugawara @ Cookpad
MURAKUMO
                    分散内部DNS

• Gossip   Protocolで拡散

• ruby製    (1.9.2まで)

• 操作が簡単


• 余分なサーバがいらない
MURAKUMO
   Gossip Protocol


node                 node




node                 node
MURAKUMO
                              Syntax
=== addition of a record

  shell> mrkmctl -A foo.bar,300,master,100
  shell> mrkmctl -L
  IP address        TTL     Priority Weight    Activity   Hostname
  --------------- ------ -------- ------       --------   ----------
  10.11.12.13            60 Origin         -   Active     my-host
  10.11.12.13           300 Master      100    Active     foo.bar


=== deletion of a record

 shell> mrkmctl -D foo.bar
  shell> mrkmctl -L
  IP address        TTL    Priority   Weight   Activity   Hostname
  --------------- ------ --------     ------   --------   ----------
  10.11.12.13           60 Origin          -   Active     my-host
MURAKUMO
              chefで一発登録も



knife bootstrap 10.119.45.233 -N db2 
  -j '{"set_fqdn":"db2"}' 
  -r 'recipe[hostname], role[base], role[db]'
DEMO

Más contenido relacionado

La actualidad más candente

NorikraのJVMチューンで苦労している話
NorikraのJVMチューンで苦労している話NorikraのJVMチューンで苦労している話
NorikraのJVMチューンで苦労している話SATOSHI TAGOMORI
 
これからはじめるCoda2とSublime Text 2
これからはじめるCoda2とSublime Text 2これからはじめるCoda2とSublime Text 2
これからはじめるCoda2とSublime Text 2masaaki komori
 
Reverse proxyによるWebサーバの負荷分散構成
Reverse proxyによるWebサーバの負荷分散構成Reverse proxyによるWebサーバの負荷分散構成
Reverse proxyによるWebサーバの負荷分散構成CLARA ONLINE, Inc.
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Takuya ASADA
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用についてYuuki Namikawa
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
PowerDNSのご紹介
PowerDNSのご紹介PowerDNSのご紹介
PowerDNSのご紹介Akira Matsuda
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」Takuya ASADA
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondTaisuke Yamada
 
Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)Daisuke Ikeda
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたdo_aki
 
VlanManagerを使ってみた
VlanManagerを使ってみたVlanManagerを使ってみた
VlanManagerを使ってみたHiroki Ishikawa
 
RTOS入門 タスク概要
RTOS入門 タスク概要RTOS入門 タスク概要
RTOS入門 タスク概要miwarin
 

La actualidad más candente (20)

Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
NorikraのJVMチューンで苦労している話
NorikraのJVMチューンで苦労している話NorikraのJVMチューンで苦労している話
NorikraのJVMチューンで苦労している話
 
Vagrant+Chef
Vagrant+ChefVagrant+Chef
Vagrant+Chef
 
これからはじめるCoda2とSublime Text 2
これからはじめるCoda2とSublime Text 2これからはじめるCoda2とSublime Text 2
これからはじめるCoda2とSublime Text 2
 
Reverse proxyによるWebサーバの負荷分散構成
Reverse proxyによるWebサーバの負荷分散構成Reverse proxyによるWebサーバの負荷分散構成
Reverse proxyによるWebサーバの負荷分散構成
 
JNuma Library
JNuma LibraryJNuma Library
JNuma Library
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用について
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
Varnish
VarnishVarnish
Varnish
 
Bmd
BmdBmd
Bmd
 
PowerDNSのご紹介
PowerDNSのご紹介PowerDNSのご紹介
PowerDNSのご紹介
 
Psql & proctitle
Psql & proctitlePsql & proctitle
Psql & proctitle
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
seccamp21z4 yamaguchi
seccamp21z4 yamaguchiseccamp21z4 yamaguchi
seccamp21z4 yamaguchi
 
Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)Mobageの技術を体験(MyDNS編)
Mobageの技術を体験(MyDNS編)
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
VlanManagerを使ってみた
VlanManagerを使ってみたVlanManagerを使ってみた
VlanManagerを使ってみた
 
RTOS入門 タスク概要
RTOS入門 タスク概要RTOS入門 タスク概要
RTOS入門 タスク概要
 

Similar a MHA, Murakumo & Me

1台から500台までのMySQL運用(YAPC::Asia編)
1台から500台までのMySQL運用(YAPC::Asia編)1台から500台までのMySQL運用(YAPC::Asia編)
1台から500台までのMySQL運用(YAPC::Asia編)Masahiro Nagano
 
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
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
Art of MySQL Replication.
Art of MySQL Replication.Art of MySQL Replication.
Art of MySQL Replication.Mikiya Okuno
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会Mikiya Okuno
 
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSSYahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSSYahoo!デベロッパーネットワーク
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理junichi anno
 
第6回 ZABBIX-JP勉強会
第6回 ZABBIX-JP勉強会第6回 ZABBIX-JP勉強会
第6回 ZABBIX-JP勉強会Kodai Terashima
 
ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化IIJ
 
シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例Naoto MATSUMOTO
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話Yoshinori Matsunobu
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?yoku0825
 
Rubyにおけるトレース機構の刷新
Rubyにおけるトレース機構の刷新Rubyにおけるトレース機構の刷新
Rubyにおけるトレース機構の刷新Koichi Sasada
 
MySQL clients
MySQL clientsMySQL clients
MySQL clientsyoku0825
 
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Japan
 
OpenIndiana vWire Demo (Japanese)
OpenIndiana vWire Demo (Japanese)OpenIndiana vWire Demo (Japanese)
OpenIndiana vWire Demo (Japanese)Shoji Haraguchi
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用についてLINE Corporation
 

Similar a MHA, Murakumo & Me (20)

1台から500台までのMySQL運用(YAPC::Asia編)
1台から500台までのMySQL運用(YAPC::Asia編)1台から500台までのMySQL運用(YAPC::Asia編)
1台から500台までのMySQL運用(YAPC::Asia編)
 
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
 
Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Art of MySQL Replication.
Art of MySQL Replication.Art of MySQL Replication.
Art of MySQL Replication.
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
 
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSSYahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
 
SQL Azure のシームレスな管理
SQL Azure のシームレスな管理SQL Azure のシームレスな管理
SQL Azure のシームレスな管理
 
第6回 ZABBIX-JP勉強会
第6回 ZABBIX-JP勉強会第6回 ZABBIX-JP勉強会
第6回 ZABBIX-JP勉強会
 
ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化ioMemoryとAtomic Writeによるデータベース高速化
ioMemoryとAtomic Writeによるデータベース高速化
 
シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?
 
Rubyにおけるトレース機構の刷新
Rubyにおけるトレース機構の刷新Rubyにおけるトレース機構の刷新
Rubyにおけるトレース機構の刷新
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
 
Introducing MySQL MHA (JP/LT)
Introducing MySQL MHA (JP/LT)Introducing MySQL MHA (JP/LT)
Introducing MySQL MHA (JP/LT)
 
Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料Cloudera Manager4.0とNameNode-HAセミナー資料
Cloudera Manager4.0とNameNode-HAセミナー資料
 
OpenIndiana vWire Demo (Japanese)
OpenIndiana vWire Demo (Japanese)OpenIndiana vWire Demo (Japanese)
OpenIndiana vWire Demo (Japanese)
 
Maatkitの紹介
Maatkitの紹介Maatkitの紹介
Maatkitの紹介
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 

Más de Michael H. Oshita

Aws lambda-beware-of-escapes
Aws lambda-beware-of-escapesAws lambda-beware-of-escapes
Aws lambda-beware-of-escapesMichael H. Oshita
 
Custom Non-RDS Multi-AZ Mysql Replication
Custom Non-RDS Multi-AZ Mysql ReplicationCustom Non-RDS Multi-AZ Mysql Replication
Custom Non-RDS Multi-AZ Mysql ReplicationMichael H. Oshita
 
sinsai.infoの裏側(インフラ偏)
sinsai.infoの裏側(インフラ偏)sinsai.infoの裏側(インフラ偏)
sinsai.infoの裏側(インフラ偏)Michael H. Oshita
 
HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2Michael H. Oshita
 

Más de Michael H. Oshita (6)

Aws lambda-beware-of-escapes
Aws lambda-beware-of-escapesAws lambda-beware-of-escapes
Aws lambda-beware-of-escapes
 
My Varnish Setup
My Varnish SetupMy Varnish Setup
My Varnish Setup
 
Server Festa 2013 Autumn
Server Festa 2013 AutumnServer Festa 2013 Autumn
Server Festa 2013 Autumn
 
Custom Non-RDS Multi-AZ Mysql Replication
Custom Non-RDS Multi-AZ Mysql ReplicationCustom Non-RDS Multi-AZ Mysql Replication
Custom Non-RDS Multi-AZ Mysql Replication
 
sinsai.infoの裏側(インフラ偏)
sinsai.infoの裏側(インフラ偏)sinsai.infoの裏側(インフラ偏)
sinsai.infoの裏側(インフラ偏)
 
HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2
 

Último

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Último (9)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

MHA, Murakumo & Me

  • 1. MHA, MURAKUMO, & ME Automation Tech Casual Talks #1 7/17/2012
  • 2. 自己紹介 (@IJIN) • Michael H. Oshita • Japanese American • In Japan since 2002 • Software/Infra Engineer • http://ijin.github.com
  • 3. DBの冗長化 • Master - Slave • DRBD • MySQL Cluster • MMM • RDS
  • 4. DBの冗長化 (MASTER/SLAVE) • シンプル • 手動フェールオーバー対応 • 検知・対応まで数十分単位
  • 5. DBの冗長化 (DBRD) • 複雑 • sync_binlogでwrite IO低下
  • 6. DBの冗長化 (MYSQL CLUSTER) • 複雑 • NDB storage engine。。
  • 7. DBの冗長化 (MMM) • メンテされてない • 過去ケースを見ても不安定(Percona) • http://www.xaprb.com/blog/2011/05/04/whats-wrong-with-mmm/
  • 8. DBの冗長化 (RDS) • 楽で好き • IOがちょっと。 • 政治的な理由で使えなかったり。。
  • 9. MHA (Master High Availability Manager for MySQL) • シンプル (Master-slaveそのまま) • 自動フェールオーバー (各サーバで最新のbinlogを適用) • 安定性(DeNAさんで数百台のDBで運用)
  • 10. MHA Masterで障害発生 Slave Manager Master Slave
  • 11. MHA 各slaveに最新binlogを適用し、Master昇格 binlog binlog Master Manager Master binlog Slave
  • 12. MHA FAILOVERシーケンス "Starting master failover." "* Phase 1: Configuration Check Phase..n" "* Phase 2: Dead Master Shutdown Phase..n" ==> ここで旧Master情報削除 (master_ip_failover) "* Phase 3: Master Recovery Phase..n" "* Phase 3.1: Getting Latest Slaves Phase..n" "* Phase 3.2: Saving Dead Master's Binlog Phase..n" "* Phase 3.3: Determining New Master Phase..n" ==> ここで新Master情報登録 (master_ip_failover) "* Phase 4: Slaves Recovery Phase..n"
  • 13. MHA 切替方法は2種類 (master_ip_failoverで定義) • Virtual IP • Catalog DB Server (DNS)
  • 14. MHA 切替方法は2種類 • Virtual IP → 使えない場合も。。 • Catalog DB Server (DNS) → 内部DNSサーバ運用面倒。。
  • 16. By Genki Sugawara @ Cookpad
  • 17. MURAKUMO 分散内部DNS • Gossip Protocolで拡散 • ruby製 (1.9.2まで) • 操作が簡単 • 余分なサーバがいらない
  • 18. MURAKUMO Gossip Protocol node node node node
  • 19. MURAKUMO Syntax === addition of a record shell> mrkmctl -A foo.bar,300,master,100 shell> mrkmctl -L IP address TTL Priority Weight Activity Hostname --------------- ------ -------- ------ -------- ---------- 10.11.12.13 60 Origin - Active my-host 10.11.12.13 300 Master 100 Active foo.bar === deletion of a record shell> mrkmctl -D foo.bar shell> mrkmctl -L IP address TTL Priority Weight Activity Hostname --------------- ------ -------- ------ -------- ---------- 10.11.12.13 60 Origin - Active my-host
  • 20. MURAKUMO chefで一発登録も knife bootstrap 10.119.45.233 -N db2 -j '{"set_fqdn":"db2"}' -r 'recipe[hostname], role[base], role[db]'
  • 21. DEMO

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n