Multi-DC for high availability#
複数のデータセンターマルチDCにわたってハイブリッドマネージャーHMを展開すると、Postgresデータベースクラスターの高可用性とディザスターリカバリーが提供されます。この設定により、単一のインターフェイスから異なる地理的な場所にあるデータベースを管理できます。
!!!重要 これは、HMインストール自分自身のリカバリーを除きます。これは、 back up and restore separately する必要があります。
複数のデータセンターにHMを展開すると、Postgresデータベースクラスターの高可用性とディザスターリカバリーが得られます。それにより、次のことができます。
データベース損失DRを生き延びる — 1つまたは2つのウォームセカンダリPostgresデータベースを準備しておきます。プライマリデータセンターが利用できない場合は、セカンダリの場所でレプリカをプロモートし、サービスを復元します。
ダウンタイムRTOの最小化 —複数の地理的に分散した書き込みエンドポイントDHA Postgresクラスターを使用するか、迅速なフェイルオーバーシングルノード、HA、およびAHA Postgresクラスターを活用して、メンテナンスまたは計画外のサイトの停止中にサービスを迅速に復元します。
データの保護RPO - 2番目のデータセンターへの継続的レプリケーションにより、単一サイトのバックアップのみと比較して、潜在的なデータ損失が削減されます。
爆風半径を縮小します —一方のデータセンターの障害、構成ミス、またはノイジーネイバーは、他方のデータセンターをダウンさせません。
コンプライアンス/主権を満たす —制御を集中させながら、特定の地域または施設にコピーを保持します。
大規模な運用 —読み取りトラフィックを分割し、アップグレードを段階的に行うか、データセンター全体でブルー/グリーンのカットオーバーを実行します。
一元管理—単一のプライマリHMがすべてのリモートKubernetesクラスターにわたってデータベースを管理し、地理的冗長性を提供しながら管理を簡素化します。
アーキテクチャとロール ハブアンドスポーク#
HMは、ハブアンドスポークモデルを使用して、マルチプルのデータセンターを管理します。コントロールプレーン管理ソフトウェアとデータプレーン実際のPostgresデータベースを区別することが重要です。
プライマリザ・ハブ#
プライマリロケーションは「真実のソース」であり、完全なHMコントロールプレーンがアクティブな唯一のサイトです。次のプロセスは、プライマリまたはハブが所有しています。
HMコンソールUI 単一のウィンドウ。プライマリのURLにログインして、すべてのリージョンのデータベースを管理します。
セントラルスケジューラー プライマリは、データベースノードが存在する場所を決定し、セカンダリにプロビジョニング指示を送信します。
IDプロバイダー SPIREの信頼のルートとして機能し、すべてのセカンダリの場所に安全なIDを発行します。
オブザーバビリティハブ ThanosとLokiを使用して、すべての場所からメトリックとログを単一のビューに集約します。
セカンダリスポーク#
セカンダリは、管理ではなく実行のために設計された「リーン」インストールです。これらは独自の独立したコンソールを実行しませんが、プライマリまたはハブからの通信と管理を促進するコンポーネントを実行します。
HM内部ビーコンエージェント UIの代わりに、セカンダリはHM内部ビーコンエージェントを実行します。このエージェントはプライマリにハートビートを返し、ローカルKubernetesリソースノード、ストレージを中央スケジューラーで利用できるようにします。
ローカル実行 クラスターをセカンダリの場所に展開すると、プライマリはセカンダリのローカルオペレータにPostgresポッドをプロビジョニングするように指示します。
データプレーンとストレージ#
コントロールプレーンはハブアンドスポークですが、データは環境全体で同期されたままです。
Postgresクラスター DC-AにプライマリPostgresクラスターを展開し、DC-BおよびDC-Cに非同期レプリカを展開できます。分散高可用性PGDの場合、データグループとWitnessノードを3つの場所すべてに分散できます。
ユニファイドストレージ すべての場所は、一貫したオブジェクトストア構成を共有する必要があります。これにより、あるデータセンターで生成されたバックアップとWALファイルは、別のデータセンターでリカバリーにすぐに利用できます。
トポロジ#
次のトポロジを使用してマルチDCセットアップを展開できます。
プライマリおよびデータのみのHM これは、1つのプライマリHMと少なくとも1つのデータ専用HMを使用した基本的なセットアップです。これにより、2つの場所にPostgresクラスターを展開できます。
複数のデータ専用HMを使用した統合管理 単一のプライマリHMから複数のリモートKubernetesクラスターにわたってデータベースを管理します。このアーキテクチャは、各ターゲットの場所で軽量のデータ専用のフットプリントを維持しながら、統合されたコントロールプレーンを提供します。
PGD用の3つのHM 最適なPGD展開分散および高度な高可用性Postgresクラスター、特に2つのデータグループと1つの監視グループを使用する場合、3ロケーショントポロジをお勧めします。この構成により、適切な分散コンセンサスのためのクォーラムが保証されます。
復元力とフェイルオーバー#
データセンター全体でさまざまなデータベーストポロジを組み合わせて使用できるため、サイトに障害が発生した場合の影響は異なります。フェールオーバーは、ハイブリッドマネージャー環境全体を一度に実行するのではなく、データベースクラスターごとに実行されます。次にいくつかの例を示します。
Database topology |
Setup |
Recovery action |
RTO (Time) |
RPO (Data) |
|---|---|---|---|---|
Single-Node |
No replicas, located in DC-A. |
Full restore: Must recreate the cluster from object storage/backup. |
High: depends on DB size and restore speed. |
Medium: Up to the last backup/WAL archive. |
Single-Node + Replica |
Single-node in DC-A, replica in DC-B. |
Manual promotion: Promote the replica in DC-B to a standalone primary. |
Low: is driven by runbook and DNS updates. |
Very low: Seconds (based on async replication lag). |
HA cluster |
Primary/Replicas in DC-A, replica in DC-B. |
Manual promotion: Promote the cross-DC replica in DC-B to primary. |
Low: is driven by runbook and DNS updates. |
Very low: Seconds (based on async replication lag). |
DHA cluster |
Data Groups in DC-A and DC-B, witness in DC-C. |
Automatic: PGD maintains quorum; surviving nodes stay writable. |
Near zero: Instant, limited only by DNS/LB TTL. |
Zero: If using sync commit, otherwise near-zero. |
リカバリーの違いは、マルチDCセットアップと、特定のデータベースクラスターごとに選択したトポロジの両方に依存します。
ローカルHAとマルチDCフェールオーバー ディザスターリカバリーの観点から、シングルインスタンスとHAクラスターは両方とも、プライマリサイトに障害が発生した場合、セカンダリの場所へのプロモーションが必要です。ただし、 HAクラスターローカルレプリカを使用すると、内部復元力が提供されます。同じデータセンター内のプライマリインスタンスの障害から自動的に復旧できます。ローカルスタンバイがない単一インスタンス展開では、データベースを完全に再起動するか、完全なクロスロケーションフェールオーバーを実行して、ローカルの中断から復旧する必要があります。
RTO目標復旧時間 これはダウンタイムです。手動プロモーションシングルノード+レプリカまたはHAクラスターの場合、RTOはフェールオーバープレイブックを実行できる速度によって制限されます。
RPO目標復旧ポイント これは、データの損失です。マルチDCの標準である非同期レプリケーションの場合、これは通常数秒のRPOになります。同期レプリケーションの場合、ゼロRPOを達成できますが、これにより、リモートデータセンターがデータを確認するのを待機するため、すべての書き込みに遅延が追加されます。
分散高可用性DHAクラスターのネットワーク遅延#
分散高可用性クラスターPGDを搭載したクラスターがコンセンサスの問題に対応する速さと、存在するネットワーク遅延の量の間には、固有のトレードオフがあります。レイテンシーが長くなると、より緩やかなコンセンサス設定が必要になり、障害の検出と対応に時間がかかる可能性があります。一部のRaft設定は、HMコンソールから直接構成できない場合があります。
リージョンをまたがるクラウド環境と比較して、オンプレミスの密結合環境では、遅延はあまり問題になりません。高レイテンシーシナリオに対応するように、よりリラックスしたRaft設定を構成できます。
pg
CLIを使用して、クラスターと対話し、コンソールに公開されていない構成設定、特にRaft設定を調整できます。
bdr run on nodes
ファンクションを使用して、他のノードでコマンドを実行します。
マルチDC環境のHMバックアップとDR#
HMは2つの方法を使用してデータを保護しますマルチDCセットアップでは、これらのロールは固有です。
Barman (Cross-DC) バックアップはグローバルオブジェクトストアに保存されます。これは、場所を超えたディザスターリカバリーのための主要なツールです。
ボリュームスナップショットローカル 特定のデータセンターにローカルなディスクベースのバックアップ。これらは、正常なサイト内での高速な「ポイントインタイム」リカバリーに使用します。
サイトの停止中にHybrid ManagerコントロールプレーンとPostgresデータベースの両方を復旧できるように保証には、以下を確認してください。
プライマリHMメタデータ構成、ユーザー、クラスター定義がバックアップされ、プライマリデータセンターの外部に保存されていることを確認します。
共有バックアップにライブでアクセスするには、すべてのHMインスタンスプライマリおよびセカンダリに同一の
edb-object-storageシークレットが必要です。場所ごとに automated backup schedules を個別に構成する必要があります。設定はサイト間で自動的に同期しません。
組織は、プライマリサイトの停止のためにHMコンソールがダウンしている場合に restore a database using the CLI の方法を知っています。
現在の制限#
これらは、マルチDC展開の現在の制限です。
最大3つの場所プライマリと1つのセカンダリ、またはプライマリと2つのセカンダリ。
手動フェイルオーバー プライマリがダウンしている場合、セカンダリの場所のいずれかでレプリカを昇格させます。
同じクラウド/オンプレミスファミリー クロスCSPマルチDCはサポートされていません。