好きなおでんの具材ドラフト会議しましょう

Linux系のレンタルサーバーをミラーリングして、メインのサーバーに何らかの障害が発生した場合、予備のサーバーに自動的に切り替えることは可能でしょうか。

現在、某ホスティング会社の専用サーバープランをメインのサーバーとして主にデータベース(MySQL)を利用しています。データはほぼ毎日、頻繁に更新されています。このデータは別の会社のレンタルサーバーへ「SQLYog(http://www.webyog.com/sqlyog/)」を利用して定期的(5~10分間隔程度)に差分バックアップを取ってはいるのですが、それでもバックアップを取るまで多少のタイムラグがあるため、その間のデータが消失する可能性は常にあります。

それに現在の仕様では、メインのサーバーに障害が発生した場合でも予備のサーバーへ自動的に切り替えてくれるわけではなく、メイン→予備を、予備→メイン、に手動で切り替える必要があり、ネットワーク管理者が手近にいない場合などには障害復旧にある程度時間もかかってしまいます。

レンタルサーバーを利用する場合、上記のような問題を解決して冗長性を確保するにはどうしたら良いのでしょうか。

もし共用サーバーで実現するのが難しければ、メイン・予備とも、ユーザーが自由にインストール可能な専用サーバーを使用しても良いと思っています。現在、使用しているのがLAMPベースなのでLinuxサーバーでの利用を前提としています。可能なら(NetVault等)高価なサーバー用のバックアップソフトを使用せずに実現したいのですが、どうしたら良いでしょうか(社内サーバーではなくレンタルサーバーにこだわるのは、サーバーの保守管理業務をできるだけ省力化したいと思っているからです)。

よろしければ、皆さんのお知恵を拝借できれば幸いです。

A 回答 (2件)

MySQLのレプリケーションを使えればデータ不整合はかなり防げると思います。

が、マスターが消失した場合の運用(DB更新など)を考える必要があるかもしれませんし、共用サーバでは無理と思います。たぶん。

障害時の自動切換えについては、例えば5分ごとにpingやhttpポートに接続する監視スクリプトを動かし、異常があった場合はDNSのゾーンを書き換えるとかが考えられますが、ダウンタイムを短くするにはTTLを短くする必要があり、アクセスの多いサイトだとDNSにも負担がかかる可能性があります。

お金をかけない方法はいろいろ考えられますが、突き詰めて考えるとNo1の方も仰るとおり結局どこかで妥協を迫られます。
例えば上記DNSの仕組みも、「じゃあDNSサーバのトラブル時はどうするのよ」とか。

私の構築したシステムの一例ですが、Webサーバの裏にMySQLサーバが2台あり、別のMySQLサーバ(更新管理用マスター)のスレーブになっています。Webサーバは通常スレーブの1台のみに接続していますが、こちらに異常があるともう一台のスレーブに自動的に接続先を切り替えます。これはWebサーバからスクリプトでSQL接続を試行し、異常があるとhostsを書き換えることで実現してます。
(実際にはWebサーバも2台、その上にバランサーが2台、WebサーバとMySQLサーバの間もスイッチ2台+bondingで冗長化されています)

HAてのは金がかかりますよねぇ・・・
    • good
    • 0
この回答へのお礼

ご丁寧な回答に感謝します。レプリケーションについては検討したのですが、下記にもあるように自動切換えでないために断念しておりました。

「残念ながら、マスタの切り替えを自動で行う機能はMySQL本体には実装されていません(注1)ので、切り替え処理は手動で行うか、切り替えプログラムを自作する必要があります。 とはいえ、バックアップをレストアして復旧する方法に比べれば、かなり短い時間で復旧できるはずです。」

http://www.irori.org/doc/mysql-rep.html

lowrider_2005様はそのあたりをスクリプトで自動化なさったわけですね。構築システムの例は大変、参考になりました。ありがとうございます。

お礼日時:2006/06/13 23:49

高価なシステムと言うのは高い信頼性を保証するための


ものです。
質問者さんはおっしゃっていることが中途半端です。
手間も金は掛けたくないが、信頼性はべらぼうに
高めたいというのは理屈に合いません。
ソレほどまでに障害への対応が必要ならMySQLを
選択するコト自体が正しくないでしょう。
リアルタイムにシンクロを取れる仕組みを探して
ください。

一応対策テキなはなしでは・・・
冗長性と言うイミでは、ミドルウェアレベルで、
更新をマルチにおこなうシステムが有効かも
しれません。
    • good
    • 0
この回答へのお礼

仰るとおりかと思います。ご指摘の「リアルタイムにシンクロを取れる仕組み」については、現状ではお金をかけるしかないということなのですね。

お礼日時:2006/06/13 23:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報