Architecture Overview

高可用性と読み取りスケーラビリティはEDBPostgresAdvancedServerのコア機能セットの一部ではないため、AdvancedServerはこの機能を提供する外部ツールに依存しています。このドキュメントでは、EDBFailoverManagerおよびPgpool-IIが提供する機能に焦点を当て、これらのツールを中心に形成された高可用性アーキテクチャの意味について説明します。AdvancedServerに提供される利点を活用するために、FailoverManagerとPgpoolを最適に構成する方法を示します。「アーキテクチャ」セクションで説明されているリファレンスアーキテクチャを使用すると、自動フェールオーバーメカニズム(FailoverManagerを使用)を実装することにより高可用性を実現する方法を学ぶことができます。(Pgpoolを使用して)水平スケーリング/読み取りスケーリングを実現します。

このドキュメントで説明するアーキテクチャは、EFM4.1、EDBpgPool、およびAdvancedServer13向けに開発およびテストされています。

AdvancedServerおよびFailoverManagerのドキュメントは、EnterpriseDBから入手できます。

https://www.enterprisedb.com/resources/product-documentation

pgPool-IIのドキュメントは次の場所にあります。

http://www.pgpool.net/docs/latest/en/html

フェールオーバーマネージャーの概要

フェールオーバーマネージャーは、Postgresストリーミングレプリケーションクラスターの状態を監視し、障害を迅速に検証する高可用性モジュールです。データベースの障害が発生すると、フェールオーバーマネージャーはストリーミングレプリケーションスタンバイノードを書き込み可能なプライマリノードに自動的に昇格させ、継続的なパフォーマンスを確保し、最小限のサービス中断でデータ損失を防ぎます。

Basic EFM Architecture Terminology

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

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

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

  • Witness node は、フェールオーバーシナリオでプライマリまたはスタンバイのいずれかのアサーションを確認します。障害が発生した状態で、プライマリが半分以上のノードを持つパーティション内で検出されると、プライマリのままになります。そのため、EFMは、偶数のエージェントを含むクラスターでの実行をサポートしています。

Pgpool-IIの概要

Pgpool-II(Pgpool)は、EPASおよびコミュニティPostgresクラスター内の複数のスタンバイでのSELECTクエリの水平スケーラビリティのための接続プーリングと負荷分散を提供するオープンソースアプリケーションです。すべてのバックエンドで、backend_weightパラメーターは、バックエンドノードに向けられる読み取りトラフィックの比率を設定できます。プライマリノードの読み取りトラフィックを防ぐために、backend_weightパラメーターを0に設定できます。このような場合、データ変更言語(DML)クエリ(つまり、INSERT、UPDATE、DELETE)は、読み取り中にプライマリノードに送信されます。クエリはスタンバイに対して負荷分散され、混合および読み取り集中型のワークロードでスケーラビリティを提供します。

EnterpriseDBは、次のPgpool機能をサポートしています。

  • 負荷分散

  • 接続プーリング

  • 高可用性

  • 接続制限

PCPの概要

Pgpoolは、Pgpoolのステータスの取得やPgpoolプロセスのリモート終了などの管理操作を実行する管理者向けのPCPと呼ばれるインターフェイスを提供します。PCPコマンドは、ネットワーク経由でPgpoolを操作するUNIXコマンドです。

PgpoolWatchdog

watchdog はPgpoolのオプションのサブプロセスであり、高可用性機能を提供します。 watchdog によって追加された機能は次のとおりです。

  • pgpoolサービスのヘルスチェック

  • 他のウォッチドッグプロセスの相互監視

  • 特定の障害が検出された場合のリーダー/スタンバイ状態の変更

  • サーバーの切り替えに同期した自動仮想IPアドレスの割り当て

  • 回復中のスタンバイとしてのサーバーの自動登録

Pgpool watchdog コンポーネントの詳細については、次を参照してください。

http://www.pgpool.net/docs/latest/en/html/tutorial-watchdog.html