M1
==

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

このアーキテクチャでサブスクリプションのみの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ノードは監視として追加構成されます。これにより、ノードの数が常に奇数になるため、自動フェイルオーバーを有効にする場合に便利です。

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

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:`Configuring lvm-direct for production <Cluster configuration>` 。
  "One of:  * `--failover-manager {efm, repmgr, patroni}` * `--enable-efm` * `--enable-repmgr` * `--enable-patroni`",:ref:`Configuring lvm-direct for production <Configuring EFM>` 、 :ref:`Configuring lvm-direct for production <Configuring repmgr>` 、および :ref:`Configuring lvm-direct for production <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つの追加ノードがロードバランサーレイヤーとして追加されます。フェールオーバーマネージャーとしてPatroniでのみサポートされています。,HAproxy nodes will not be added to the cluster.
  `--patroni-dcs`,patroniの分散構成ストアバックエンドを選択します。現時点では、オプションは`etcd`のみです。フェールオーバーマネージャーとしてPatroniでのみサポートされています。,Defaults to `etcd`.

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

オプションで\ ``--num-cascaded-replicas N``
を指定して、NのカスケードレプリカNoneの0を含む、デフォルト1を要求できます。
