M1
==

プライマリとストリーミングレプリカ、1つのBarmanサーバー、および最初のレプリカからカスケードされた任意の数の追加レプリカを備えたPostgresクラスター。このアーキテクチャは、生産に適しており、そのシンプルさと独自のコンポーネントなしで構成できる機能により、テスト、デモ、学習にも適しています。

このアーキテクチャでサブスクリプション専用のEDBソフトウェアを選択した場合、それはEDB
Repos 2.0から供給され、トークンを提供する必要があります。
 :ref:`How TPA uses 2ndQuadrant and EDB repositories <How TPA uses 2ndQuadrant and EDB repositories>` を参照

このトピックの詳細については。

デフォルトのレイアウト
----------------------

デフォルトでは、プライマリには1つの読み取り専用レプリカが同じ場所に接続されています。レプリカには、別の場所に接続された1つのカスケードレプリカがあり、
Barmanサーバーもプライマリからバックアップを取得するように構成されています。

.. figure:: /images/m1.png
   :width: 70% 
   :alt: Cluster with cascading replication

   Cluster with cascading replication

Postgresノードの数が偶数の場合、
Barmanノードはwitnessとして追加で構成されます。これにより、ノードの数が常に奇数になることが保証され、自動フェールオーバーを有効にする場合に便利です。

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

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

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

クラスター構成
--------------

構成オプションの概要
^^^^^^^^^^^^^^^^^^^^

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

.. code:: shell

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

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

.. code:: shell

   tpaexec configure --architecture M1 --help

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

必須オプション
^^^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Description
  :widths: 10,30
  :align: left
  :class: longtable

  `--architecture` (`-a`),`M1`に設定する必要があります。
  Postgres flavour and version (e.g. `--postgresql 15`),有効な :ref:`tpaexec-configure <Cluster configuration>` 。
  "One of:  * `--failover-manager {efm, repmgr, patroni}` * `--enable-efm` * `--enable-repmgr` * `--enable-patroni`",:ref:`tpaexec-configure <Configuring EFM>` 、 :ref:`tpaexec-configure <Configuring repmgr>` 、および :ref:`tpaexec-configure <Patroni cluster management commands>` からフェールオーバーマネージャーを選択します。

追加オプション
^^^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Description,Behaviour if omitted
  :widths: 12,25,15
  :align: left
  :class: longtable

  `--platform`,`aws`、`docker`、`bare`のいずれか。,Defaults to `aws`.
  `--num-cascaded-replicas`,最初のレプリカからのカスケードレプリカの数。,Defaults to 1.
  `--enable-haproxy`,2つの追加ノードがロードバランサーレイヤーとして追加されます。<br/>フェイルオーバーマネージャーとしてのPatroniでのみサポートされます。,HAproxy nodes will not be added to the cluster.
  `--patroni-dcs`,PataniのDistributed Configuration Storeバックエンドを選択します。<br/>現時点では、オプションのみが`etcd`です。 <br/>フェールオーバーマネージャーとしてのPatroniでのみサポートされています。,Defaults to `etcd`.

M1構成の詳細
^^^^^^^^^^^^

オプションで\ ``--num-cascaded-replicas N``
を指定して、N個のカスケードレプリカを要求できます（ない場合は0を含みます。デフォルト：1）。

 :ref:`tpaexec help configure-options <Cluster configuration>` で説明されているオプションのいずれかを指定することもできます。
