Architecture¶
フェールオーバーマネージャーは、Postgresストリーミングレプリケーションクラスターの状態を監視し、障害をすばやく検証する高可用性ツールです。データベース障害が発生すると、フェールオーバーマネージャーは、ストリーミングレプリケーションスタンバイノードを書き込み可能なプライマリノードに自動的に昇格できます。この機能により、継続的なパフォーマンスが保証され、サービスの中断を最小限に抑えてデータ損失から保護されます。
フェールオーバーマネージャークラスターは、ネットワーク上の次のホストにあるフェールオーバーマネージャープロセスで構成されています。
プライマリノードは、データベースクライアントにサービスを提供しているプライマリデータベースサーバーです。
1つ以上のスタンバイノードが、プライマリノードに関連付けられたストリーミングレプリケーションサーバーです。
監視ノードは、フェールオーバーシナリオでプライマリまたはスタンバイのいずれかのアサーションを確認します。障害が発生したときに、プライマリが半分以上のノードを持つパーティションにある場合、プライマリはそのままです。このように、フェールオーバーマネージャーは、偶数のエージェントを含むクラスターでの実行をサポートしています。
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 を参照してください。