Architecture

フェールオーバーマネージャーは、Postgresストリーミングレプリケーションクラスターの状態を監視し、障害をすばやく検証する高可用性ツールです。データベース障害が発生すると、フェールオーバーマネージャーは、ストリーミングレプリケーションスタンバイノードを書き込み可能なプライマリノードに自動的に昇格できます。この機能により、継続的なパフォーマンスが保証され、サービスの中断を最小限に抑えてデータ損失から保護されます。

フェールオーバーマネージャークラスターは、ネットワーク上の次のホストにあるフェールオーバーマネージャープロセスで構成されています。

  • プライマリノードは、データベースクライアントにサービスを提供しているプライマリデータベースサーバーです。

  • 1つ以上のスタンバイノードが、プライマリノードに関連付けられたストリーミングレプリケーションサーバーです。

  • 監視ノードは、フェールオーバーシナリオでプライマリまたはスタンバイのいずれかのアサーションを確認します。障害が発生したときに、プライマリが半分以上のノードを持つパーティションにある場合、プライマリはそのままです。このように、フェールオーバーマネージャーは、偶数のエージェントを含むクラスターでの実行をサポートしています。

A Failover Manager scenario employing a virtual IP address

A Failover Manager scenario employing a virtual IP address

証人ではないエージェントが起動すると、ローカルデータベースに接続し、データベースの状態を確認します。

  • エージェントがデータベースに到達できない場合、アイドルモードで起動します。

  • データベースが回復中であることが判明した場合、エージェントはスタンバイの役割を引き継ぎます。

  • データベースが復旧していない場合、エージェントはプライマリの役割を引き受けます。

フェールオーバーが発生した場合、フェールオーバーマネージャーは、昇格したスタンバイがクラスター内の最新のスタンバイであることを保証しようとします。スタンバイノードがプライマリノードと同期していない場合、データが失われる可能性があります。

JGroups は、フェールオーバーマネージャーが、メンバーノードが互いに通信し、ノードの障害を検出できるクラスターを作成できるようにするテクノロジを提供します。

この図は、仮想IPアドレスを使用するフェールオーバーマネージャークラスターを示しています。データベースが追加または削除されるたびに独自の script を提供してロードバランサーを再構成する場合、

Using Failover Manager with virtual IP addresses の代わりにロードバランサーを使用できます。高可用性のためにネイティブEFM-Pgpool統合を有効にすることもできます。詳細については、 Choosing a deployment architecture を参照してください。