M1#

1つ以上のアクティブなロケーションを持つPostgresクラスター。それぞれに同じ数のPostgresノードと追加のBarmanノードがあります。オプションで、アクティブなロケーションに複数の場合でも、監視ノードのみを含む場所、または単一のノードのみを含むロケーションが存在することもできます。

このアーキテクチャは、運用に適していますが、そのシンプルさと独自のコンポーネントなしで構成できる機能により、テスト、デモンストレーション、学習にも適しています。

このアーキテクチャでサブスクリプション専用のEDBソフトウェアを選択した場合、EDB Repos 2.0からソースされ、 Configuring EDB Repos 2.0 repositories が必要です。

アプリケーションとバックアップのフェイルオーバー#

M1アーキテクチャは、プライマリが使用できなくなった場合に、プライマリの代わりにレプリカが昇格することを保証するという点で、フェールオーバー管理を実装します。ただし、アプリケーショントラフィックをプライマリ*に再ルーティングする自動機能は提供しません。アプリケーショントラフィックの自動フェイルオーバーが必要な場合は、アプリケーション自分自身でこれを構成する必要がありますたとえば、マルチホスト接続を使用して、または適切なプロキシまたはロードバランサーと、選択したフェールオーバーマネージャーが提供する機能を使用して。

上記は、バックアップノードとTPAによって作成されたプライマリ間の接続にも当てはまります。バックアップは、フェールオーバーが発生した場合に新しいプライマリをターゲットに自動的に調整されず、代わりに元のプライマリに接続されたままになります。手動フェイルオーバーを実行しており、バックアップを新しいプライマリに接続する場合は、 tpaexec deploy を再実行するだけです。バックアップソースを自動的に変更する場合は、上記のように、選択したフェールオーバーマネージャーを使用してこれを実装する必要があります。

クラスター構成#

構成オプションの概要#

このアーキテクチャのtpaexec configure の呼び出し例を以下に示します。

tpaexec configure ~/clusters/m1 \
         --architecture M1 \
         --platform aws --region eu-west-1 --instance-type t3.micro \
         --distribution Debian \
         --postgresql 14 \
         --failover-manager repmgr \
         --data-nodes-per-location 3

helpコマンドを使用して、使用可能なすべてのオプションをリストできます。

tpaexec configure --architecture M1 --help

以下の表では、M1の必須オプションと追加の重要なオプションについて説明します。オプションの詳細については、次のセクションで説明します。

必須オプション#

Parameter

Description

--architecture (-a)

`M1`に設定する必要があります。

Postgres flavour and version (e.g. --postgresql 15)

有効な Postgresのフレーバーとバージョン 。

One of: - --failover-manager {efm, repmgr, patroni}- --enable-efm - --enable-repmgr- --enable-patroni

Configuring EFM 、 Configuring repmgr 、および Patroni cluster management commands からフェイルオーバーマネージャーを選択します。

追加オプション#

Parameter

Description

Behaviour if omitted

--platform

aws、docker、`bare`のいずれか。

Defaults to aws.

--location-names

場所名のスペース区切りのリスト。アクティブなロケーションの数は、指定された名前の数から、監視専用ロケーションとシングルノードロケーションが要求された場合にそれぞれ1つを引いたものと同じです。

A single location called "main" is used.

--primary-location

プライマリサーバーが置かれる場所。 `location-names`のメンバーである必要があります。

The first listed location is used.

--data-nodes-per-location

1以上の数字。各場所では、1つのノードがクラスターのプライマリノードから直接ストリーミングするように構成され、他のノードが存在する場合はそのノードからストリーミングします。

Defaults to 2.

--witness-only-location

ロケーション名は、`location-names`のメンバーである必要があります。

No witness-only location is added.

--single-node-location

ロケーション名は、`location-names`のメンバーである必要があります。

No single-node location is added.

--enable-haproxy

2つの追加ノードがロードバランサーレイヤーとして追加されます。フェールオーバーマネージャーとしてPatroniでのみサポートされています。

HAproxy nodes will not be added to the cluster.

--enable-pgbouncer

PgBouncerは、プライマリの接続をプールするようにPostgresノードで構成されます。

PgBouncer will not be configured in the cluster.

--patroni-dcs

patroniの分散構成ストアバックエンドを選択します。現時点では、オプションは`etcd`のみです。 フェールオーバーマネージャーとしてPatroniでのみサポートされています。

Defaults to etcd.

--efm-bind-by-hostname

efmがIPアドレスの代わりにホスト名を使用してクラスター`bind.address`を構成するようにします。

Defaults to use IP addresses

M1構成の詳細#

クラスター構成 で説明されるオプションを指定することもできます。