web-dev-qa-db-ja.com

手動フェイルオーバー用にLinuxWebサーバーをセットアップする最も効果的な方法は何ですか

私は現在、Apache、mysql、およびsshを使用してubuntulinuxを実行している小さなWebサーバーを管理しています。 rsyncを使用して別のサーバーにバックアップしていますが、/ backupディレクトリにバックアップしています。

最初のサーバーがダウンした場合に2番目のサーバーのIPを変更して、すべてのユーザー、ファイル、データベースなどを準備できるように設定したいと思います。

誰かがこれについて行くための最も簡単な/最良の方法について何か提案がありますか?

考慮事項

  • ユーザー
  • データベース
  • Apache構成
  • ファイル
  • 同じソフトウェアが両方のボックスにインストールされていることを確認してください。 (おそらくこれを前もって行う必要があります)
7
ScArcher2
1
Mark Regensberg

rsyncまたはdrbdを使用してバックアップサーバーの同期を維持するか、3番目のサーバーからnfsを介してデータをマウントできます。シンプルにしたい場合は、バックアップサーバー上の同じディレクトリの場所にソースサーバーとしてバックアップします。

heartbeat2は、IPアドレスを管理するための優れたソリューションであり、自動または手動のフェイルオーバー用のツールを提供します。また、arpキャッシュのフラッシュなど、私が考えもしなかったことを考慮に入れています。

1
Brent

ここでは仮想化が役立ちます。 2台のサーバーをホストサーバーとして実行し、両方とも1台の仮想サーバーを使用できるようにすることができます。ライブサーバーでは仮想サーバーが実行されていますが、バックアップサーバーでは仮想サーバーが「オフ」になっていますが、そのサーバーのファイルシステムには引き続きアクセスできます。

次に、ライブ仮想サーバーからバックアップ仮想サーバーへの定期的なrsyncを実行できます。ライブサーバーがダウンした場合は、バックアップ仮想サーバーを起動するだけです。

詳細は、使用する仮想化ソフトウェアによって異なります(以前、linux-vserverでこれを実行しました)が、いくつかの重要なポイントは次のとおりです。

  • 一部の設定(特にIPアドレス)を除外する必要があります。
  • 物事が機能しているときにセットアップをテストします-あなたはする必要があります知っているそれは機能します
  • www1.mysite.comとwww2.mysite.comの両方にDNSを設定し、www.mysite.comをwww1とwww2のラウンドロビンにします。
  • ある種のハートビートサービスを調べてバックアップサーバーを自動的に起動することもできますが、ダウンタイムが本当に高価でない限り、それは非常に複雑になる可能性があります。
0
Hamish Downer

ハートビートでこれができると思いますが、使用しない場合は、Webサーバーの仮想IPを手動で設定することをお勧めします。

各Webサーバーには、独自の実IPと仮想IPがあります。仮想IPは、アクティブなWebサーバーである場合にのみマシンに割り当てられます。

この設定は、ssh、rsync、およびその他すべてのツールが、IPアドレスの変更に混乱することなく実際のIPで実行し続けることができることを意味します。

0
Zan Lynx