MySQLの負荷分散に関する質問です。


1台のmasterと複数台のslaveにレプリケーションさせているシステムがあるとします。
1台のmasterの後ろにはバックアップ機が待機し、データを同期しているとします。

運用時、シングルポイントであるmasterの負荷分散とダウンタイムの圧縮のために

・masterを何らかの形(ユーザidごとなど)で分割し、複数台運用にする
・masterに障害発生時、できるだけ短い時間で(できれば自動的に)現行masterをサービスアウト、バックアップ機をサービスインする

ということを考えています。
上記のような構成を実現するためのTipsや方法論、あるいはそれらが書かれたURLを教えてください。日本語、英語は問いません。
(すでにそうしたことを実施されていた方の体験談や切り替えスクリプトなどがあればうれしいです)


また、上記以外で、レプリケーションの仕組みを使いつつ、master側の可用性を高めるための方法論をご存じでしたら教えてください。

回答の条件
  • 1人2回まで
  • 登録:2008/01/17 09:36:18
  • 終了:2008/01/24 09:40:02

回答(2件)

id:ffmpeg No.1

ffmpeg回答回数1202ベストアンサー獲得回数92008/01/19 06:28:47

id:biz_tanaka

回答ありがとうございました。

んー、ちょっと求めていた内容とは違いましたが、pgtoolの考え方そのものは役に立つかもしれませんね。

2008/01/19 13:14:32
id:lunlumo No.2

lunlumo回答回数107ベストアンサー獲得回数142008/01/24 01:05:08

ポイント35pt

 詳しくは無いのですが,振り分けはリバースプロクシで,可用性に関してはクラスタを組むかレプリケーションと監視サーバを組み合せる形になるでしょうか。

・MySQLクラスタ

http://www-jp.mysql.com/products/database/cluster/

・はてなのアーキテクチャ

http://blog.livedoor.jp/techblog/archives/64698834.html

http://d.hatena.ne.jp/naoya/20060901/1157109663

 書籍だと,少し古いですが,Web+DB Press vol.33にLivedoorの例が紹介されています。この記事ではO/Rマッパで振り分けが行われています。

ISBN:9784774128108

id:biz_tanaka

nowa での構造について改めて目を通してみると、やはりレプリケーションシステムにおいての最もよい選択は、

・master&slaveの単位をできるだけ小さくし、それを並列に並べる

・master&slave単位でのスタンバイマシンを用意しておく

・masterの振り分けはアプリケーション側で自作

ということになりそうですね。

masterへの振り分けをカバーしてくれるフリー系ツールはあまり見かけないので、これはがんばって作るしかなさそう。

そうでなければ、本格的にMySQLクラスタの導入を検討してみる必要がありそうですね。

Web+DB Pressの件、ありがとうございました。

とりよせて調べてみます。

2008/01/24 02:58:33
  • id:lunlumo
     おっと,思っていたものと違うものを貼り付けてしまいました。

    http://d.hatena.ne.jp/naoya/20061214/1166063145

     実はmasterの監視と障害時のslaveの昇格がLVSでできるものと勘違いしていたので,ついでにこちらのページも紹介しておきます。

    http://www.blogkid.com/weblog/archives/001500.html
  • id:biz_tanaka
    biz_tanaka 2008/01/25 07:27:20
    LVSが便利なのは、slaveの負荷分散ですよね。


    2つめのURLはかなりビンゴに近いですね。
    よい示唆をいただきました。
    ありがとうございます!

    なるほど、なるほど。
    LinuxHAとmonを使うんですね。
    検知側の仕組みが想像できました。


    ・master -> master+slave(複数台) -> slave(複数台) のレプリを準備しておいて、
    ・master の障害状況をLinuxHAとmonで定常監視、
    ・障害発生時はmaster+slaveのうちのどれかを自動的にmasterに昇格
    ・masterが昇格したことをアプリ側へ通知
    ・アプリ側の更新系接続先が自動的に切り替わる

    という感じが良さそうですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません