Configuring HARP for cluster management¶
HARP構成ファイルは、読みやすいように簡素化された標準のYAMLスタイルのフォーマットに従います。このファイルはデフォルトで/etc/harp
ディレクトリにあり、config.yml という名前です
-f /--config
引数を使用して、すべてのHARP実行可能ファイルに構成ファイルの場所を明示的に提供できます。
標準構成¶
HARPは基本的に3つのコンポーネントとして動作します。
HARPマネージャー
HARPプロキシ
harpctl
これらはそれぞれ、同じ標準のconfig.yml
構成フォーマットを使用します。これには、常に次のセクションが含まれます。
cluster.name—すべてのオペレーションの対象となるクラスターの名前。dcs—すべてのエンドポイントのDCSドライバーと接続構成。
これは、次のようなHARP操作には常に標準のプリアンブルが含まれることを意味します。
cluster:
name: mycluster
dcs:
...
他のセクションは、オプションまたは名前付けたHARPコンポーネントに固有です。
クラスター名¶
cluster 見出しの下のname エントリーは、
HARPとのすべての相互作用に必要です。各HARPクラスターには、特定のクラスターのDCS内の明確化とデータのラベル付けの両方の名前があります。
HARPマネージャーは、
HARPプロキシとharpctlが使用するクラスターに関する情報をここに書き込みます。
HARPプロキシサービスは、このクラスター内のノードにトラフィックを誘導します。
harpctl 管理ツールはこのクラスターと対話します。
DCS設定¶
コンセンサスレイヤーの構成は、 HARP機能のキーとなります。 DCSがなければ、 HARPにはクラスターメタデータを保存する場所がなく、リーダーシップ選挙を行うこともできません。したがって、構成のこの部分は必須であり、特定の要素はオプションです。
次の複数の補助エントリを使用して、 dcs
という名前のセクションの下のすべての要素を指定します。
``driver`` :使用するコンセンサスレイヤーの必須タイプ。現在は
etcdまたはbdrです。コンセンサスレイヤーとしてのbdrのサポートは実験的です。コンセンサスレイヤーとしてbdrを使用すると、コンセンサスストレージ用の追加ソフトウェアが削減されますが、データベースのメンテナンス中にクォーラムを維持するために少なくとも3つの完全なBDRメンバーノードが必要です。``endpoints`` :DCSに接続するために必要な接続文字列のリスト。可能であれば、ここにDCSのすべてのノードをリストします。これにより、DCSの大部分が引き続き動作し、ネットワークが到達できる限り、 HARPが機能し続けます。
etcd
をコンセンサスレイヤーとして使用する場合のフォーマットは次のとおりです。
edb_notranlate_1 実験的なbdr
コンセンサスレイヤーを使用する場合のフォーマットは次のとおりです。
edb_notranlate_2 現在、 bdr
コンセンサスレイヤーは最初のエンドポイントがローカルのpostgresインスタンスを指す必要があります。
``request_timeout`` :要求が失敗したと見なされる時間(ミリ秒)。 HARPはDCSに要求を行い、この時間内に応答を受信しない場合、操作は失敗したと見なされます。これにより、要求の性質に応じて、問題がエラーとしてログに記録されるか、再試行されます。デフォルト:250。
次のDCS SSL設定は、 edb_notranlate_3 yaml dcs:driver:etcd endpoints: - host1:2379 - host2:2379 - host3:2379 edb_notranlate_4 yamlクラスター:名前:
dcs:ドライバー:etcdエンドポイント: - host1:2379 - host2:2379 - host3:2379
manager:名前:node1 log_level:INFO edb_notranlate_5 yaml cluster:名前:mycluster
dcs:ドライバー:etcdエンドポイント: - host1:2379 - host2:2379 - host3:2379
proxy:名前:proxy1場所:dc1 pgbouncer_bin_dir:/usr/sbin edb_notranlate_6 bash harpctl set node node1 lease_refresh_interval=100 edb_notranlate_7 bash harpctl set proxy global max_client_conn=1000 ```