Failover Manager

Failover Manager(EFM)は、 EnterpriseDBの高可用性モジュールであり、プライマリでソフトウェアまたはハードウェアに障害が発生したイベント、 Postgresプライマリノード(またはエージェント)がスタンバイノードに自動的にフェイルオーバーできるようにします。

従来、クラスターはマルチプルのデータベースを管理するPostgresの単一インスタンスです。この文書では、クラスターという用語はフェールオーバーマネージャークラスターを指します。フェールオーバーマネージャークラスターは、クラウド内のサーバーまたは従来のネットワーク上に存在し、JGroupsツールキットを使用して通信する以下のノード(またはエージェント)で構成されます。

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

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

  • 監視ノード-監視ノードは、フェイルオーバーシナリオでプライマリまたはスタンバイのアサーションを確認します。クラスターに3つ以上のノードが含まれる場合、クラスターには専用の監視ノードは必要ありません。データベースホストである3番目のクラスタメンバがいない場合、専用の監視ノードを追加できます。クラスターには、複数の監視ノードを含めることができます。

A Failover Manager scenario employing a virtual IP address

A Failover Manager scenario employing a virtual IP address

非監視エージェントが起動すると、ローカルデータベースに接続し、データベースの状態を確認します。

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

  • データベースがリカバリ中であることがわかると、エージェントはスタンバイのロールを引き受けます。

  • データベースがリカバリ中でない場合、エージェントはプライマリのロールを引き受けます。

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

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

この図は、仮想IPアドレスを使用するFailover Managerクラスターを示しています。データベースを追加または削除するたびにロードを再構成するために独自のロードバランサーを提供する場合は、代わりにロードを使用できます。また、高可用性のためにネイティブEFM-Pgpool統合を有効にすることもできます。