Configuring HARP#

failover_manager がharp に設定されている場合、TPAはHARPをインストールおよび構成します。これは、 BDR-Always-ONクラスターのデフォルトです。

HARPのインストール#

harp-manager およびharp-proxy パッケージを提供する必要があります。これらのパッケージへのアクセスを取得するには、EDBに連絡してください。

HARP構成の変数#

HARP documentation を参照してください

HARP構成の詳細については、

Variable

Default value

Description

cluster_name

``

クラスターの名前。

harp_consensus_protocol

``

使用するコンセンサスレイヤー etcd`または`bdr

harp_location

location

このインスタンスの場所 デフォルトは`location`パラメーター

harp_ready_status_duration

10

ノードの準備ができている時間秒更新されない場合、ステータスは持続します。

harp_leader_lease_duration

6

リードマスターの秒単位の時間リースは、更新されない場合は持続します。

harp_lease_refresh_interval

2000

ミリ秒単位の時間リードマスターリースの更新。

harp_dcs_reconnect_interval

1000

ミリ秒単位で測定される間隔、切断されたノードがDCSへの再接続を試行する間隔。

harp_dcs_priority

500

2つのノードが等しい量の遅延とリードマスターリースを取得するその他の修飾基準がある場合、これは追加のランキング値として機能し、1つのノードを別のノードより優先します。

harp_stop_database_when_fenced

false

考えられるすべてのルーティングからノードを単に削除するのではなく、ノードがフェンスされたときにデータベースを停止します。

harp_fenced_node_on_dcs_failure

false

HARPがDCSに到達できない場合は、ノードをフェンスします。

harp_maximum_lag

1048576

リードマスターロックを取られる前に、以前のリードマスターとこのノードのLSNを記録した間の最大許容分散バイト単位。

harp_maximum_camo_lag

1048576

このノードとそのCAMOパートナー間で最後に受信したLSNと適用されたLSN間の最大許容分散バイト単位。

harp_camo_enforcement

lag_only

CAMOキュー状態を厳密に適用するかどうか。

harp_use_unix_sock

false

マネージャーデータベースアクセスにはUNIXドメインソケットを使用します。

harp_request_timeout

250

ミリ秒単位の時間DCSへのクエリーが成功するまでの時間。

harp_watch_poll_interval

500

ポーリングDCS間のスリープするミリ秒。 `harp_consensus_protocol`が`bdr`の場合にのみ適用されます。

harp_proxy_timeout

1

Lead Masterへのビルトインプロキシ接続タイムアウト秒単位。

harp_proxy_keepalive

5

ビルトインプロキシがキープアライブpingを送信する前に、リードマスターへのアイドル接続で待機する時間。

harp_proxy_max_client_conn

75

harp-プロキシによって受け入れられるクライアントの最大数 max_client_conn

harp_ssl_password_command

None

難読化されたsslパスワードをstdinで受信し、処理されたsslパスワードをstdout経由で提供するカスタムコマンド。

harp_db_request_timeout

10s

dcs -> request_timeoutに似ていますが、データベース自分自身への接続用です。

harp_local_etcd_only

None

すべてのetcdノードではなくローカルetcdノードのみを含むようにharp managerエンドポイントリストを制限する

harp-config hook を使用できます

HARP構成ファイルがインストールされた後にタスクを実行するには追加の構成ファイルをインストールします。

コンセンサスレイヤー#

tpaexec configure への--harp-consensus-protocol 引数は、 BDR-Always-ONアーキテクチャでは必須です。

etcd#

--harp-consensus-protocol etcd オプションがtpaexec configure に指定されている場合、TPAはconfig.ymlでharp_consensus_protocol をetcd に設定し、選択したレイアウトに応じてインスタンスの適切なサブセットにetcd ロールを付与します。

HARPおよびharp_consensus_protocol: etcd でBDR 4を使用する場合、少なくとも1つのインスタンスにconfig.ymlで定義されたetcd ロールが必要です。通常、etcd ロールはBDRプライマリインスタンスに追加されます。 TPAは、プロビジョニング中にこの要件を検証し、etcdロールが見つからない場合は明確なエラーメッセージで失敗します。

HARP v2には、etcd v3.5.0以降が必要です。これは、EDBが提供するproducts/harp/releaseパッケージリポジトリで入手できます。

etcdの次のパラメーターを構成できます。

Variable

Default value

Description

etcd_peer_port

2380

etcdがピア通信に使用するポート

etcd_client_port

2379

クライアントがetcdに接続するために使用するポート

bdr#

tpaexec configure に--harp-consensus-protocol bdr オプションが指定されている場合、TPAはconfig.ymlでharp_consensus_protocol からbdr を設定します。 この場合、既存のPGDインスタンスはコンセンサスに使用され、追加の構成は必要ありません。

harpプロキシの別のユーザーの構成#

harpプロキシで別の読み取り専用ユーザーを使用する場合は、 cluster_varsの下でharp_dcs_user: username を設定することにより、それを指定できます。 TPAはharp_dcs_user 設定を使用して読み取り専用ユーザーを作成し、DCS構成で設定します。

harp manager用の別のユーザーの設定#

harp managerで別のユーザーを使用する場合は、 cluster_vars の下でharp_manager_user: username を設定することにより、それを指定できます。 TPAexecはその設定を使用して、新しいユーザーを作成し、bdr_superuser ロールを付与します。

カスタムSSLパスワードコマンド#

harp_ssl_password_command が提供するコマンドは、 HARPが使用して、接続文字列で指定されたsslpassword の難読化を解除します。 sslpassword が存在しない場合、 harp_ssl_password_command は無視されます。 sslpassword が難読化されていない場合、 harp_ssl_password_command は必要なく、指定しないでください。

harpサービスの構成#

harpサービスの次のパラメーターを構成できます。

Variable

Default value

Description

harp_manager_restart_on_failure

false

`true`の場合、 `harp-manager`サービスはオーバーライドされるため、失敗時に再起動されます。デフォルトは`false`で、`harp-manager`パッケージによってインストールされるサービスに準拠します。

harp http(s)ヘルスプローブの構成#

サービスの状態を監視するためのAPIエンドポイントを提供するharpのhttp(s)サービスを有効にして構成できます。

Variable

Default value

Description

harp_http_options

<br />`enable: false`<br />`secure: false`<br />`host: <inventory_hostname>`<br />`port: 8080`<br />`probes:<br />  `timeout: 10s`<br />`endpoint: "host=<proxy_name> port=<6432> dbname=<bdrdb> user=<username>"

http(s) API設定を定義するharp config.ymlのhttpセクションを構成します。

変数には、次のキーを含めることができます。

enable: false
secure: false
cert_file: "/etc/tpa/harp_proxy/harp_proxy.crt"
key_file: "/etc/tpa/harp_proxy/harp_proxy.key"
host: <inventory_hostname>
port: 8080
probes:
  timeout: 10s
endpoint: "<valid dsn>"

cert_file およびkey_file キーは、 secure: true を使用し、独自の証明書とキーを使用する場合に必要です。

deploy を実行する前に、証明書とキーの両方がターゲットノードの指定された場所で利用できることを確認する必要があります。

クラスター固有のCA証明書を使用してTPAに証明書とキーを生成する場合、 cert_file およびkey_file の両方を空のままにします。 TPA CA証明書は「ウェルノウン」になりません。この証明書を、エンドポイントをプローブする各マシンの信頼ストアに追加する必要があります。 CA証明書は、TPAノードのクラスターディレクトリで deploy の後の<cluster_dir>/ssl/CA.crt にあります。

使用可能なAPIエンドポイントの詳細については、 harpドキュメントを参照してください。