web-dev-qa-db-ja.com

Postgresqlレプリケーション-PacemakerとDRBD

高可用性Postgresqlクラスターをセットアップする必要があります。したがって、Pacemakerとpgpoolロードバランサーを備えたDRBDが最良のオプションであることがわかりました。

したがって、アーキテクチャは次のようになります。

enter image description here

私の知る限り、DRBDはブロックレベルのレプリケーション(ストレージで動作)用であり、Pacemakerはサービスクラスター(サービスレベルで動作)です。それでは、どちらが使用に最適で、最高のHAソリューションですか?

そして、もう1つの質問は、AWS EC2を使用しているイムです。どうすれば管理できますかVIP(つまり、プライマリがダウンした場合、PGpoolがVIPをスタンバイに切り替える方法また、AWSでも)?

1
Bhuvanesh

通常は、両方を使用します。データを同期的に複製するDRBD、およびサービスがアクティブになる場所を管理するPacemaker。 Pacemakerは、DRBDの昇格/降格、およびデータベースと仮想IPアドレスの開始を制御します。

Pacemakerはresource-agentsクラスターサービスを管理します。それらの1つは、AWSノード間でセカンダリIPを移動するためのリソースエージェントです。 https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/awsvip

それがあなたを正しい道に導くことを願っています。

3
Matt Kereczman

フェンシングを完全に信頼していない限り、共有ストレージはpostgresで非常に悪い考えです。

DRBDはシングルマスターのようですので、おそらく大丈夫です。

マスター以外のpostgresが完全にダウンしていることを確認することは絶対に重要です。2つのpostgresインスタンスが同じデータディレクトリを共有する可能性のあるオーバーラップはありません。そうでない場合、大規模なデータ破損willが発生します。 PostgreSQLはnot共有ストレージデータベースです。

STONITHとフェンシングを正しく取得します。

個人的には、ブロックデバイスレプリケーションではなくPostgreSQLのレプリケーションを使用することをお勧めしますが、私はPostgreSQL開発者なので、驚くにはあたりません。

2
Craig Ringer