データセンター移行に伴い、                          MySQLをカジュアルに                         アップグレードしたお話                            MySQL C...
自己紹介Thursday, April 19, 12
n         Naoya Nakazawa              n         @n0ts              n         日本語ブログ                         n   http:/...
サーバ/インフラエンジニア養成読本 管理/監視編                                絶賛発売中!!!Thursday, April 19, 12
今日のお話Thursday, April 19, 12
n         大人の事情で、あるサービスをデータセン                         ター移行することになりました              n         そのついでに MySQL をアップグレードし      ...
その前にThursday, April 19, 12
前回のMySQL Casual                         Talks Vol.2Thursday, April 19, 12
「MySQL 5.0 -> 5.5 へのアップグレード プラスなんか」                                        @oranie            http://d.hatena.ne.jp/oranie...
サービスを停止できる場合での、                         MySQL 5.0から5.5に                     アップグレードするための方法Thursday, April 19, 12
はてブお願いします!!!Thursday, April 19, 12
今日は、サービスが止める                          ことができない場合               のMySQLアップグレードについての                           お話をしますThursday,...
サービス規模              n         とある広告系サービス              n         秒間あたりのピーク時のリクエスト数                         n   X000 req/...
サーバ構成                         (簡易版)Thursday, April 19, 12
LVSApplication Server                              Write                            Write                                 ...
MySQL 5.0.51b?Thursday, April 19, 12
InnoDB Deep Talk #1 2012/03/10                                                             5.0.53!                        ...
データセンター移行Thursday, April 19, 12
Thursday, April 19, 12
Thursday, April 19, 12
移行前のサーバ構成Thursday, April 19, 12
旧DC                            新DC                         LVS                        LVS   Application                   ...
旧DC                               新DC                          Master                                 Master   DB1        ...
SSLレプリケーションの失敗              n         MySQL 5.1.58から5.0.51bに接続すると、次のエ                         ラーが発生した                    ...
SSHポートフォワード              n         新DC DB1 Master上で、旧DC DB1 MasterにSSHトンネルを掘る                         n   ssh -f <旧DC DB...
新DCのMySQL              n         MySQL SlaveのみハードウェアRAID0 + SSD x 4              n         XFS, deadlineスケジューラ          ...
DC移行                         -STEP 1-Thursday, April 19, 12
n         DNSラウンドロビンにする(レジストラ                         の仕様でTTLを変更できなかった)              n         新DB1のアプリケーションの書き込み先      ...
旧DC                                     新DC                                        Traffic                         LVS     ...
DC移行                         -STEP 2-Thursday, April 19, 12
n         DNSラウンドロビンをやめて、新DCのみ                         切り替える              n         リクエストが完全に新DCのみになるまで                 ...
DC移行                         -STEP 3-Thursday, April 19, 12
1. リクエストの最も少ない時間帯に、アプリケー                         ションからデータベースへの書き込みを一時的に                         停止する(バッチなどもあわせて)          ...
旧DC                                     新DC                                        Traffic                         LVS     ...
まとめThursday, April 19, 12
n       DC移行中を含めてサービスの停止はなし                         n   移行中もサービス上の大きな遅延はなし            n       SlaveをMasterへ昇格させる数分間だけ、書...
Thanks!Thursday, April 19, 12
Upcoming SlideShare
Loading in...5
×

データセンター移行に伴い、 MySQLをカジュアルにアップグレードしたお話

1,137

Published on

#mysqlcasual #3

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,137
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

データセンター移行に伴い、 MySQLをカジュアルにアップグレードしたお話

  1. 1. データセンター移行に伴い、 MySQLをカジュアルに アップグレードしたお話 MySQL Casual Talks Vol.3 ∼カジュアルだよこわくないよ∼ 2012/04/19 Naoya Nakazawa@n0ts 日本オラクル 青山センターThursday, April 19, 12
  2. 2. 自己紹介Thursday, April 19, 12
  3. 3. n Naoya Nakazawa n @n0ts n 日本語ブログ n http://www.sssg.org/blogs/naoya/ n 無所属 n ケーブリングからアプリまでThursday, April 19, 12
  4. 4. サーバ/インフラエンジニア養成読本 管理/監視編 絶賛発売中!!!Thursday, April 19, 12
  5. 5. 今日のお話Thursday, April 19, 12
  6. 6. n 大人の事情で、あるサービスをデータセン ター移行することになりました n そのついでに MySQL をアップグレードし たので、そのお話をしますThursday, April 19, 12
  7. 7. その前にThursday, April 19, 12
  8. 8. 前回のMySQL Casual Talks Vol.2Thursday, April 19, 12
  9. 9. 「MySQL 5.0 -> 5.5 へのアップグレード プラスなんか」 @oranie http://d.hatena.ne.jp/oranie/20110810/1312969238Thursday, April 19, 12
  10. 10. サービスを停止できる場合での、 MySQL 5.0から5.5に アップグレードするための方法Thursday, April 19, 12
  11. 11. はてブお願いします!!!Thursday, April 19, 12
  12. 12. 今日は、サービスが止める ことができない場合 のMySQLアップグレードについての お話をしますThursday, April 19, 12
  13. 13. サービス規模 n とある広告系サービス n 秒間あたりのピーク時のリクエスト数 n X000 req/sec n 物理サーバ1ラック程度 n 超小規模サービスThursday, April 19, 12
  14. 14. サーバ構成 (簡易版)Thursday, April 19, 12
  15. 15. LVSApplication Server Write Write LVS Read Read repl repl Master Slave Master Slave DB1 DB2 MySQL 5.0.51b MySQL 5.0.71Thursday, April 19, 12
  16. 16. MySQL 5.0.51b?Thursday, April 19, 12
  17. 17. InnoDB Deep Talk #1 2012/03/10 5.0.53! https://twitter.com/#!/nobu666/status/178350176719736832Thursday, April 19, 12
  18. 18. データセンター移行Thursday, April 19, 12
  19. 19. Thursday, April 19, 12
  20. 20. Thursday, April 19, 12
  21. 21. 移行前のサーバ構成Thursday, April 19, 12
  22. 22. 旧DC 新DC LVS LVS Application Application Server Server LVS LVS repl repl repl repl DB1 DB2 DB1 DB2Thursday, April 19, 12
  23. 23. 旧DC 新DC Master Master DB1 DB1 repl ×SSL Replication replMySQL 5.0.51b MySQL 5.1.58 SSH Port Forwarding Slave Slave Master Master DB2 DB2 repl repl MySQL 5.0.71 MySQL 5.1.58 Slave SlaveThursday, April 19, 12
  24. 24. SSLレプリケーションの失敗 n MySQL 5.1.58から5.0.51bに接続すると、次のエ ラーが発生した n ERROR 2026 (HY000): SSL connection error n Masterのバージョンを5.1.58にあわせるとうまく いったので、バージョンの問題か、5.0系をSSL対 応ビルドしていなかったことが原因かもしれないThursday, April 19, 12
  25. 25. SSHポートフォワード n 新DC DB1 Master上で、旧DC DB1 MasterにSSHトンネルを掘る n ssh -f <旧DC DB1 Master> -L 13306:localhost:3306 -N -4 -g n LVS経由のため、LVSが切り替わるとSSHトンネルが切れるため、 Monitで定期的にSSHトンネルが閉じているか確認するようにした n pgrepしてなければSSHトンネルを掘る簡単なシェルスクリプト n 新DC DB1 Masterを、一時的にSlaveにする n mysql> CHANGE MASTER TO MASTER_HOST=127.0.0.1, MASTER_PORT=13306 ...;Thursday, April 19, 12
  26. 26. 新DCのMySQL n MySQL SlaveのみハードウェアRAID0 + SSD x 4 n XFS, deadlineスケジューラ n 公式のMySQL 5.1.58 RPM n InnoDB pluginを利用 n InnoDBの設定を全般的に見直したかったので、旧DC上でmysqldumpした データを流し込んで、新DC DB1 Masterをスレーブとした n DB2の方は、完全移行後に停止して移行した n 一部のテーブルにInnoDB Data Compressionを導入Thursday, April 19, 12
  27. 27. DC移行 -STEP 1-Thursday, April 19, 12
  28. 28. n DNSラウンドロビンにする(レジストラ の仕様でTTLを変更できなかった) n 新DB1のアプリケーションの書き込み先 は、SSHトンネル経由で旧DCのDB1 Masterに対して行うThursday, April 19, 12
  29. 29. 旧DC 新DC Traffic LVS LVS Application Application Server Server LVS Write LVS repl repl repl repl DB1 DB2 DB1 DB2Thursday, April 19, 12
  30. 30. DC移行 -STEP 2-Thursday, April 19, 12
  31. 31. n DNSラウンドロビンをやめて、新DCのみ 切り替える n リクエストが完全に新DCのみになるまで しばらく待つThursday, April 19, 12
  32. 32. DC移行 -STEP 3-Thursday, April 19, 12
  33. 33. 1. リクエストの最も少ない時間帯に、アプリケー ションからデータベースへの書き込みを一時的に 停止する(バッチなどもあわせて) 2. 新DC DB1のSlaveをMasterへ昇格させる 3. 昇格後、アプリケーションからデータベースの書 き込みを再開させるThursday, April 19, 12
  34. 34. 旧DC 新DC Traffic LVS LVS Application Application Server Server LVS LVS repl repl repl repl DB1 DB2 DB1 DB2Thursday, April 19, 12
  35. 35. まとめThursday, April 19, 12
  36. 36. n DC移行中を含めてサービスの停止はなし n 移行中もサービス上の大きな遅延はなし n SlaveをMasterへ昇格させる数分間だけ、書き込み は一時停止したけれどサービスの停止はなし n あわせて、MySQL 5.0系から5.1系に安全にかつ問 題なくアップグレードできたThursday, April 19, 12
  37. 37. Thanks!Thursday, April 19, 12
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×