web-dev-qa-db-ja.com

LinuxWeb /データベースサーバーのホットスワップ

Linuxで以下を実行する方法はありますか?

  1. メインとバックアップの2つのWebサーバーがあります
  2. メインとバックアップの2つのデータベースサーバー(postgres)があります
  3. Webサーバーは互いに同期しています。構成/コンテンツ/アプリケーションは同じです
  4. バックアップデータベースは、メインデータベースと継続的に同期されます。
  5. メインサーバーのいずれかがダウンした場合、その場でバックアップサーバーに置き換えられます。
  6. メインデータベースサーバーがバックアップされると、バックアップサーバーからのすべてのデータがメインデータベースサーバーにアップロードされます。

さらに複雑にするために、重要な詳細は、2つのサーバーが実際にはVPSであり、異なるプロバイダーによって異なる国でホストされているため、同じサブネット/ラック内のサーバーなどの明白なソリューションはここでは機能しないということです。

基本的に、可能であれば、ユーザーの介入なしまたは最小限の介入でホットスワップが自動的に機能する必要があります。回復手順は自動で行うことが望ましいですが、手動の手順を含めることもできます。

1
Art

http://www.linuxvirtualserver.org/

実稼働サーバーとバックアップサーバーの前にロードバランサー(またはそれ以上、2つ)を配置できます。

ハートビートを単独で使用すると、パブリックIPに2つのIPを提供できます。プライマリまたはセカンダリのダウンを検知してから、そのパブリックIPになるためのアナウンスを送信する必要があります。

あなたは次のようなものを持っているでしょう:

Public IP   1.2.3.4
Primary Server 1.2.3.5
Backup Server 1.2.3.6

誰もが、「アクティブ」なマシンによって仮想的に提供される単一のIPを見るでしょう。

1
deleted

フロントエンドロードバランサーとしてhaproxyまたはNginxを調べてください。これにより、プライマリがダウンした場合、または自動フェイルオーバーとも呼ばれる場合に、プライマリからバックアップサーバーへのトラフィックが監視およびリダイレクトされます。

データベース間のデータ同期については、 マルチマスターレプリケーション を調べてください。

1
cma

おそらく、Web層のDNSフェイルオーバーと、DB層のTungstenClusterを検討する必要があります。

乾杯

0
HTTP500