M1
==

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

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

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

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

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

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 \
            --data-nodes-per-location 3

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`.
  `--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.
  `--patroni-dcs`,patroniの分散構成ストアバックエンドを選択します。現時点では、オプションは`etcd`のみです。フェールオーバーマネージャーとしてPatroniでのみサポートされています。,Defaults to `etcd`.

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

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