第11章 RHEL システムロールを使用した高可用性クラスターの設定
ha_cluster システムロールを使用すると、Pacemaker の高可用性クラスターリソースマネージャーを使用する高可用性クラスターを設定し、管理できます。
11.1. ha_cluster RHEL システムロールの変数 リンクのコピーリンクがクリップボードにコピーされました!
ha_cluster システムロール Playbook では、クラスターデプロイメントの要件に従って、高可用性クラスターの変数を定義します。
ha_cluster RHEL システムロールに設定できる変数は次のとおりです。
ha_cluster_enable_repos-
ha_clusterRHEL システムロールに必要なパッケージを含むリポジトリーを有効にするブール値フラグ。この変数がデフォルト値のtrueに設定されている場合、クラスターメンバーとして使用するシステムに RHEL および RHEL High Availability Add-On の有効なサブスクリプションが必要です。サブスクリプションがない場合、システムロールは失敗します。 ha_cluster_enable_repos_resilient_storage-
(RHEL 8.10 以降)
dlmやgfs2などの Resilient Storage パッケージを含むリポジトリーを有効にするブールフラグ。このオプションを有効にするには、ha_cluster_enable_reposをtrueに設定する必要があります。この変数のデフォルト値はfalseです。 ha_cluster_manage_firewall(RHEL 8.8 以降)
ha_clusterRHEL システムロールがファイアウォールを管理するかどうかを決定するブールフラグ。ha_cluster_manage_firewallがtrueに設定されている場合、ファイアウォールの高可用性サービスとfence-virtポートが有効になります。ha_cluster_manage_firewallがfalseに設定されている場合、ha_clusterRHEL システムロールはファイアウォールを管理しません。システムがfirewalldサービスを実行している場合は、Playbook でパラメーターをtrueに設定する必要があります。ha_cluster_manage_firewallパラメーターを使用してポートを追加することはできますが、このパラメーターを使用してポートを削除することはできません。ポートを削除するには、firewallシステムロールを直接使用します。RHEL 8.8 以降では、ファイアウォールは
ha_cluster_manage_firewallがtrueに設定されている場合にのみ設定されるため、デフォルトでは設定されなくなりました。ha_cluster_manage_selinux(RHEL 8.8 以降)
ha_clusterRHEL システムロールがselinuxRHEL システムロールを使用してファイアウォール高可用性サービスに属するポートを管理するかどうかを決定するブールフラグ。ha_cluster_manage_selinuxがtrueに設定されている場合、ファイアウォール高可用性サービスに属するポートは、SELinux ポートタイプcluster_port_tに関連付けられます。ha_cluster_manage_selinuxがfalseに設定されている場合、ha_clusterRHEL システムロールは SELinux を管理しません。システムが
selinuxサービスを実行している場合は、Playbook でこのパラメーターをtrueに設定する必要があります。ファイアウォール設定は、SELinux を管理するための前提条件です。ファイアウォールがインストールされていない場合、SELinux ポリシーの管理はスキップされます。ha_cluster_manage_selinuxパラメーターを使用してポリシーを追加することはできますが、このパラメーターを使用してポリシーを削除することはできません。ポリシーを削除するには、selinuxRHEL システムロールを直接使用します。ha_cluster_cluster_presenttrueに設定すると、ロールに渡された変数に従って HA クラスターがホスト上で設定されることを決定するブール型フラグ。Playbook に指定されておらず、ロールでサポートされていないクラスター設定は失われます。ha_cluster_cluster_presentをfalseに設定すると、すべての HA クラスター設定がターゲットホストから削除されます。この変数のデフォルト値は
trueです。以下の Playbook の例では、
node1およびnode2のすべてのクラスター設定を削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ha_cluster_start_on_boot-
起動時にクラスターサービスが起動するように設定されるかどうかを決定するブール値フラグ。この変数のデフォルト値は
trueです。 ha_cluster_fence_agent_packages-
インストールするフェンスエージェントパッケージのリストこの変数のデフォルト値は
fence-agents-all,fence-virtです。 ha_cluster_extra_packagesインストールする追加パッケージのリストこの変数のデフォルト値はパッケージではありません。
この変数は、ロールによって自動的にインストールされていない追加パッケージをインストールするために使用できます (例: カスタムリソースエージェント)。
フェンスエージェントをこのリストのメンバーとして追加できます。ただし、
ha_cluster_fence_agent_packagesは、フェンスエージェントの指定に使用する推奨されるロール変数であるため、デフォルト値が上書きされます。ha_cluster_hacluster_password-
haclusterユーザーのパスワードを指定する文字列の値。haclusterユーザーには、クラスターへのフルアクセス権が付与されます。機密データを保護するには、Encrypting content with Ansible Vault で説明されているように、パスワードを vault で暗号化します。デフォルトのパスワード値がないため、この変数を指定する必要があります。 ha_cluster_hacluster_qdevice_password-
(RHEL 8.9 以降) クォーラムデバイスの
haclusterユーザーのパスワードを指定する文字列の値。このパラメーターが必要になるのは、ha_cluster_quorumパラメーターがタイプnetのクォーラムデバイスを使用するように設定されており、クォーラムデバイス上のhaclusterユーザーのパスワードがha_cluster_hacluster_passwordパラメーターで指定されたhaclusterユーザーのパスワードと異なる場合のみです。haclusterユーザーには、クラスターへのフルアクセス権が付与されます。機密データを保護するには、Encrypting content with Ansible Vault で説明されているように、パスワードを vault で暗号化します。このパスワードにデフォルト値はありません。 ha_cluster_corosync_key_srcCorosync
authkeyファイルへのパス。これは、Corosync 通信の認証および暗号鍵です。各クラスターに一意のauthkey値を指定することが強く推奨されます。キーは、ランダムなデータの 256 バイトでなければなりません。この変数の鍵を指定する場合は、Ansible Vault を使用したコンテンツの暗号化 で説明されているように、鍵を vault 暗号化することが推奨されます。
鍵が指定されていない場合は、ノードにすでに存在するキーが使用されます。ノードに同じ鍵がない場合、あるノードの鍵が他のノードに分散され、すべてのノードが同じキーを持つようにします。ノードに鍵がない場合は、新しい鍵が生成され、ノードに分散されます。
この変数が設定されている場合は、このキーで
ha_cluster_regenerate_keysが無視されます。この変数のデフォルト値は null です。
ha_cluster_pacemaker_key_srcPacemaker の
authkeyファイルへのパスです。これは、Pacemaker 通信の認証および暗号鍵です。各クラスターに一意のauthkey値を指定することが強く推奨されます。キーは、ランダムなデータの 256 バイトでなければなりません。この変数の鍵を指定する場合は、Ansible Vault を使用したコンテンツの暗号化 で説明されているように、鍵を vault 暗号化することが推奨されます。
鍵が指定されていない場合は、ノードにすでに存在するキーが使用されます。ノードに同じ鍵がない場合、あるノードの鍵が他のノードに分散され、すべてのノードが同じキーを持つようにします。ノードに鍵がない場合は、新しい鍵が生成され、ノードに分散されます。
この変数が設定されている場合は、このキーで
ha_cluster_regenerate_keysが無視されます。この変数のデフォルト値は null です。
ha_cluster_fence_virt_key_srcfence-virtまたはfence-xvmの事前共有鍵ファイルへのパス。これは、fence-virtまたはfence-xvmフェンスエージェントの認証キーの場所になります。この変数の鍵を指定する場合は、Ansible Vault を使用したコンテンツの暗号化 で説明されているように、鍵を vault 暗号化することが推奨されます。
鍵が指定されていない場合は、ノードにすでに存在するキーが使用されます。ノードに同じ鍵がない場合、あるノードの鍵が他のノードに分散され、すべてのノードが同じキーを持つようにします。ノードに鍵がない場合は、新しい鍵が生成され、ノードに分散されます。この方法で
ha_clusterRHEL システムロールが新しい鍵を生成する場合は、鍵をノードのハイパーバイザーにコピーして、フェンシングが機能するようにする必要があります。この変数が設定されている場合は、このキーで
ha_cluster_regenerate_keysが無視されます。この変数のデフォルト値は null です。
ha_cluster_pcsd_public_key_srcr、ha_cluster_pcsd_private_key_srcpcsdTLS 証明書および秘密鍵へのパス。これが指定されていない場合は、ノード上にすでに証明書キーのペアが使用されます。証明書キーペアが存在しない場合は、無作為に新しいキーが生成されます。この変数に秘密鍵の値を指定した場合は、Ansible Vault を使用したコンテンツの暗号化 で説明されているように、鍵を暗号化することが推奨されます。
これらの変数が設定されている場合は、この証明書と鍵のペアで
ha_cluster_regenerate_keysは無視されます。これらの変数のデフォルト値は null です。
ha_cluster_pcsd_certificates(RHEL 8.8 以降)
証明書RHEL システムロールを使用して、pcsd秘密鍵と証明書を作成します。システムに
pcsd秘密鍵と証明書が設定されていない場合は、次の 2 つの方法のいずれかで作成できます。-
ha_cluster_pcsd_certificates変数を設定します。ha_cluster_pcsd_certificates変数を設定すると、certificateRHEL システムロールが内部的に使用され、定義どおりにpcsdの秘密鍵と証明書が作成されます。 -
ha_cluster_pcsd_public_key_src、ha_cluster_pcsd_private_key_src、またはha_cluster_pcsd_certificates変数を設定しないでください。これらの変数をいずれも設定しなかった場合、ha_clusterRHEL システムロールがpcsd自体を使用してpcsd証明書を作成します。ha_cluster_pcsd_certificatesの値は、certificateRHEL システムロールで指定された変数certificate_requestsの値に設定されます。証明書の RHEL システムロールの詳細は、RHEL システムロールを使用した証明書の要求を 参照してください。
-
ha_cluster_pcsd_certificate変数の使用には、次の運用上の考慮事項が適用されます。-
IPA を使用しており、システムを IPA ドメインに参加させていない限り、
certificateRHEL システムロールによって自己署名証明書が作成されます。この場合、RHEL システムロールのコンテキスト外で信頼設定を明示的に設定する必要があります。システムロールは、信頼設定をサポートしていません。 -
ha_cluster_pcsd_certificates変数を設定する場合は、ha_cluster_pcsd_public_key_src変数とha_cluster_pcsd_private_key_src変数を設定しないでください。 -
ha_cluster_pcsd_certificates変数を設定すると、この証明書とキーのペアではha_cluster_regenerate_keysが無視されます。
-
IPA を使用しており、システムを IPA ドメインに参加させていない限り、
この変数のデフォルト値は
[]です。高可用性クラスターで TLS 証明書とキーファイルを作成する
ha_clusterRHEL システムロール Playbook の例については、高可用性クラスター用の pcsd TLS 証明書とキーファイルの作成を 参照してください。ha_cluster_regenerate_keys-
ブール値のフラグ。
trueに設定すると、事前共有鍵と TLS 証明書が再生成されます。鍵と証明書が再生成されるタイミングの詳細は、ha_cluster_corosync_key_src、ha_cluster_pacemaker_key_src、ha_cluster_fence_virt_key_src、ha_cluster_pcsd_public_key_src、およびha_cluster_pcsd_private_key_src変数の説明を参照してください。 -
この変数のデフォルト値は
falseです。 ha_cluster_pcs_permission_listpcsdを使用してクラスターを管理するパーミッションを設定します。この変数を使用して設定するアイテムは以下のとおりです。-
type-userまたはgroup -
name- ユーザーまたはグループの名前 allow_list- 指定されたユーザーまたはグループの許可されるアクション:-
read- クラスターのステータスおよび設定の表示 -
write- パーミッションおよび ACL を除くクラスター設定の変更 -
grant- クラスターパーミッションおよび ACL の変更 -
full- ノードの追加および削除、キーおよび証明書へのアクセスなど、クラスターへの無制限アクセス
-
-
ha_cluster_pcs_permission_list変数の構造とデフォルト値は以下のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ha_cluster_cluster_name-
クラスターの名前。これは、デフォルトが
my-clusterの文字列値です。 ha_cluster_transport(RHEL 8.7 以降) クラスター転送方法を設定します。この変数を使用して設定するアイテムは以下のとおりです。
-
type(オプション) - トランスポートタイプ:knet、udp、またはudpu。udpおよびudpuトランスポートタイプは、1 つのリンクのみをサポートします。udpとudpuの暗号化は常に無効になっています。指定しない場合、デフォルトでknetになります。 -
options(オプション) - トランスポートオプションを含む名前と値のディクショナリーのリスト。 -
links(オプション) - 名前と値のディクショナリーのリスト。名前値ディクショナリーの各リストには、1 つの Corosync リンクのオプションが含まれています。リンクごとにlinknumber値を設定することを推奨します。それ以外の場合、ディクショナリーの最初のリストはデフォルトで最初のリンクに割り当てられ、2 番目のリストは 2 番目のリンクに割り当てられます。 -
compression(オプション) - トランスポート圧縮を設定する名前と値のディクショナリーのリスト。knetトランスポートタイプでのみサポートされます。 -
crypto(オプション) - トランスポートの暗号化を設定する名前と値のディクショナリーのリスト。デフォルトでは、暗号化は有効になっています。knetトランスポートタイプでのみサポートされます。
-
許可されているオプションのリストについては、
pcs -h cluster setupのヘルプページ、またはpcs(8) man ページのclusterセクションにあるsetupの説明を参照してください。詳細な説明については、corosync.conf(5) の man ページを参照してください。ha_cluster_transport変数の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow トランスポート方法を設定する
ha_clusterRHEL システムロール Playbook の例については、高可用性クラスターでの Corosync 値の設定を 参照してください。ha_cluster_totem(RHEL 8.7 以降) Corosync トーテムを設定します。許可されているオプションのリストについては、
pcs -h cluster setupのヘルプページ、またはpcs(8) man ページのclusterセクションにあるsetupの説明を参照してください。詳細な説明については、corosync.conf(5) の man ページを参照してください。ha_cluster_totem変数の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Corosync トーテムを設定する
ha_clusterRHEL システムロール Playbook の例については、高可用性クラスターでの Corosync 値の設定を 参照してください。ha_cluster_quorum(RHEL 8.7 以降) クラスタークォーラムを設定します。クラスタークォーラムには、次の項目を設定できます。
-
options(オプション) - クォーラムを設定する名前と値のディクショナリーのリスト。許可されるオプションは、auto_tie_breaker、last_man_standing、last_man_standing_window、およびwait_for_allです。クォーラムオプションの詳細は、votequorum(5) の man ページを参照してください。 device(オプション) - (RHEL 8.8 以降) クォーラムデバイスを使用するようにクラスターを設定します。デフォルトでは、クォーラムデバイスは使用されません。-
model(必須) - クォーラムデバイスモデルを指定します。netのみがサポートされています。 model_options(オプション) - 指定されたクォーラムデバイスモデルを設定する名前と値のディクショナリーのリスト。モデルnetの場合、hostおよびalgorithmオプションを指定する必要があります。pcs-addressオプションを使用して、qnetdホストに接続するためのカスタムpcsdアドレスとポートを設定します。このオプションを指定しない場合、ロールはhost上のデフォルトのpcsdポートに接続します。-
generic_options(オプション) - モデル固有ではないクォーラムデバイスオプションを設定する名前と値のディクショナリーのリスト。 heuristics_options(オプション) - クォーラムデバイスのヒューリスティックを設定する名前と値のディクショナリーのリスト。クォーラムデバイスオプションの詳細は、
corosync-qdevice(8) の man ページを参照してください。一般的なオプションはsync_timeoutとtimeoutです。モデルnetオプションについては、quorum.device.netセクションを参照してください。ヒューリスティックオプションについては、quorum.device.heuristicsセクションを参照してください。クォーラムデバイスの TLS 証明書を再生成するには、
ha_cluster_regenerate_keys変数をtrueに設定します。
-
-
ha_cluster_quorum変数の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスタークォーラムを設定する
ha_clusterRHEL システムロール Playbook の例については、高可用性クラスターでの Corosync 値の設定を 参照してください。クォーラムデバイスを使用してクラスターを設定するha_clusterRHEL システムロール Playbook の例については、クォーラムデバイスを使用した高可用性クラスターの設定を 参照してください。ha_cluster_sbd_enabled(RHEL 8.7 以降) クラスターが SBD ノードフェンシングメカニズムを使用できるかどうかを決定するブールフラグ。この変数のデフォルト値は
falseです。SBD を有効にする
ha_clusterシステムロール Playbook の例については、SBD ノードフェンシングを使用した高可用性クラスターの設定を 参照してください。ha_cluster_sbd_options(RHEL 8.7 以降) SBD オプションを指定する名前と値の辞書のリスト。これらのオプションの詳細は、
sbd(8) man ページのConfiguration via environmentセクションを参照してください。サポートされているオプションは次のとおりです。
-
delay-start- デフォルトはfalse。SBD_DELAY_STARTとしてドキュメントに記載されています。 -
startmode- デフォルトはalways。SBD_START_MODEとしてドキュメントに記載されています。 -
timeout-action- デフォルトはflush,reboot。SBD_TIMEOUT_ACTIONとしてドキュメントに記載されています。 -
watchdog-timeout- デフォルトは5。SBD_WATCHDOG_TIMEOUTとしてドキュメントに記載されています。
-
SBD オプションを設定する
ha_clusterシステムロール Playbook の例については、SBD ノードフェンシングを使用した高可用性クラスターの設定を 参照してください。SBD を使用する場合、オプションで、インベントリー内のノードごとにウォッチドッグと SBD デバイスを設定できます。インベントリーファイルでウォッチドッグおよび SBD デバイスを設定する方法については、ha_cluster システムロールのインベントリーの指定を 参照してください。
ha_cluster_cluster_propertiesPacemaker クラスター全体の設定のクラスタープロパティーのセットのリスト。クラスタープロパティーのセットは 1 つだけサポートされます。
クラスタープロパティーのセットの構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、プロパティーは設定されません。
次のサンプル Playbook は、
node1とnode2で構成されるクラスターを設定し、stonith-enabledおよびno-quorum-policyクラスタープロパティーを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ha_cluster_node_options(RHEL 8.10 以降) この変数は、クラスターノードごとに異なる設定を定義します。指定されたノードのオプションを設定しますが、どのノードがクラスターを形成するかは指定しません。インベントリーまたは Playbook の
hostsパラメーターを使用して、クラスターを設定するノードを指定します。この変数を使用して設定するアイテムは以下のとおりです。
-
node_name(必須) - Pacemaker ノード属性を定義するノードの名前。ノードに定義された名前と一致する必要があります。 -
attributes(任意) - ノードの Pacemaker ノード属性セットのリスト。現在、1 つのセットのみがサポートされています。最初のセットが使用され、残りは無視されます。
-
ha_cluster_node_options変数の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、ノードオプションは定義されていません。
ノードオプション設定を含む
ha_clusterRHEL システムロール Playbook の例は、ノード属性を使用した高可用性クラスターの設定 を参照してください。ha_cluster_resource_primitivesこの変数は、フェンシングリソースを含む、RHEL システムロールによって設定される Pacemaker リソースを定義します。リソースごとに次の項目を設定できます。
-
id(必須) - リソースの ID。 -
agent(必須) - リソースまたはフェンスエージェントの名前 (例:ocf:pacemaker:Dummyまたはstonith:fence_xvm)。STONITH エージェントには、stonith:を指定する必要があります。リソースエージェントの場合は、ocf:pacemaker:Dummyではなく、Dummyなどの短縮名を使用することができます。ただし、同じ名前の複数のエージェントがインストールされていると、使用するエージェントを決定できないため、ロールは失敗します。そのため、リソースエージェントを指定する場合はフルネームを使用することが推奨されます。 -
instance_attrs(オプション): リソースのインスタンス属性のセットのリスト。現在、1 つのセットのみがサポートされています。属性の名前と値、必須かどうか、およびリソースまたはフェンスエージェントによって異なります。 -
meta_attrs(オプション): リソースのメタ属性のセットのリスト。現在、1 つのセットのみがサポートされています。 -
copy_operations_from_agent(オプション) - (RHEL 8.9 以降) リソースエージェントは通常、特定のエージェント向けに最適化された、intervalやtimeoutなどのリソース操作のデフォルト設定を定義します。この変数がtrueに設定されている場合、それらの設定がリソース設定にコピーされます。そうでない場合、クラスター全体のデフォルトがリソースに適用されます。ha_cluster_resource_operation_defaultsロール変数を使用してリソースのリソース操作のデフォルトも定義する場合は、これをfalseに設定できます。この変数のデフォルト値はtrueです。 operations(任意): リソースの操作のリスト。-
action(必須): pacemaker と、リソースまたはフェンスエージェントで定義されている操作アクション。 -
attrs(必須): 少なくとも 1 つのオプションを指定する必要があります。
-
-
ha_clusterRHEL システムロールで設定するリソース定義の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、リソースは定義されません。
リソース設定を含む
ha_clusterRHEL システムロール Playbook の例については、フェンシングとリソースを使用した高可用性クラスターの設定を 参照してください。ha_cluster_resource_groupsこの変数は、システムロールによって設定される Pacemaker リソースグループを定義します。リソースグループごとに次の項目を設定できます。
-
id(必須): グループの ID。 -
resources(必須): グループのリソースのリスト。各リソースは ID によって参照され、リソースはha_cluster_resource_primitives変数に定義する必要があります。1 つ以上のリソースをリスト表示する必要があります。 -
meta_attrs(オプション): グループのメタ属性のセットのリスト。現在、1 つのセットのみがサポートされています。
-
ha_clusterRHEL システムロールで設定するリソースグループ定義の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、リソースグループが定義されていません。
リソースグループ設定を含む
ha_clusterRHEL システムロール Playbook の例については、フェンシングとリソースを使用した高可用性クラスターの設定を 参照してください。ha_cluster_resource_clonesこの変数は、システムロールによって設定された Pacemaker リソースクローンを定義します。リソースクローンに対して次の項目を設定できます。
-
resource_id(必須): クローンを作成するリソース。リソースはha_cluster_resource_primitives変数またはha_cluster_resource_groups変数に定義する必要があります。 -
promotable(オプション): 作成するリソースクローンが昇格可能なクローンであるかどうかを示します。これは、trueまたはfalseと示されます。 -
id(任意): クローンのカスタム ID。ID が指定されていない場合は、生成されます。このオプションがクラスターでサポートされない場合は、警告が表示されます。 -
meta_attrs(任意): クローンのメタ属性のセットのリスト。現在、1 つのセットのみがサポートされています。
-
ha_clusterRHEL システムロールで設定するリソースクローン定義の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、リソースのクローンが定義されていません。
リソースクローン設定を含む
ha_clusterRHEL システムロール Playbook の例については、フェンシングとリソースを使用した高可用性クラスターの設定を 参照してください。ha_cluster_resource_defaults(RHEL 8.9 以降) この変数は、リソースのデフォルトのセットを定義します。複数のデフォルトのセットを定義し、ルールを使用してそれらを特定のエージェントのリソースに適用できます。
ha_cluster_resource_defaults変数で指定したデフォルトは、独自に定義した値で当該デフォルトをオーバーライドするリソースには適用されません。デフォルトとして指定できるのはメタ属性のみです。
デフォルトセットごとに次の項目を設定できます。
-
id(オプション) - デフォルトセットの ID。指定しない場合は自動生成されます。 -
rule(オプション) - いつ、どのリソースにセットを適用するかを定義するpcs構文を使用して記述されたルール。ルールの指定については、pcs(8)man ページのresource defaults set createセクションを参照してください。 -
score(オプション) - デフォルトセットの重み。 -
attrs(オプション) - デフォルトとしてリソースに適用されるメタ属性。
-
ha_cluster_resource_defaults変数の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースのデフォルトを設定する
ha_clusterRHEL システムロール Playbook の例については、リソースおよびリソース操作のデフォルトを使用した高可用性クラスターの設定 を参照してください。ha_cluster_resource_operation_defaults(RHEL 8.9 以降) この変数は、リソース操作のデフォルトのセットを定義します。複数のデフォルトのセットを定義し、ルールを使用してそれらを特定のエージェントのリソースおよび特定のリソース操作に適用できます。
ha_cluster_resource_operation_defaults変数で指定したデフォルトは、独自に定義した値で当該デフォルトをオーバーライドするリソース操作には適用されません。デフォルトでは、ha_clusterRHEL システムロールは、リソース操作用の独自の値を定義するようにリソースを設定します。これらのデフォルトをha_cluster_resource_operations_defaults変数でオーバーライドする方法については、ha_cluster_resource_primitivesのcopy_operations_from_agentの項目の説明を参照してください。デフォルトとして指定できるのはメタ属性のみです。
ha_cluster_resource_operations_defaults変数の構造は、ルールの指定方法を除き、ha_cluster_resource_defaults変数の構造と同じです。セットが適用されるリソース操作を記述するルールの指定については、pcs(8)man ページのresource op defaults set createセクションを参照してください。ha_cluster_stonith_levels(RHEL 8.10 以降) この変数は、フェンシングトポロジーとも呼ばれる STONITH レベルを定義します。フェンシングレベルは、複数のデバイスを使用してノードをフェンスするようにクラスターを設定します。1 つのデバイスに障害が発生した場合に備えて代替デバイスを定義し、ノードが正常にフェンスされたと見なすために複数のデバイスをすべて正常に実行することを要求できます。フェンシングレベルの詳細は、高可用性クラスターの設定と管理 の フェンシングレベルの設定を 参照してください。
フェンシングレベルを定義するときに、次の項目を設定できます。
-
level(必須) - フェンシングレベルを試行する順序。Pacemaker は、成功するまでレベルを昇順に試します。 -
target(オプション) - このレベルが適用されるノードの名前。 次の 3 つの選択肢のいずれかを指定する必要があります。
-
target_pattern- このレベルが適用されるノードの名前に一致する POSIX 拡張正規表現。 -
target_attribute- このレベルが適用されるノードに設定されているノード属性の名前。 -
target_attributeおよびtarget_value- このレベルが適用されるノードに設定されているノード属性の名前と値。
-
resouce_ids(必須) - このレベルで試行する必要があるフェンシングリソースのリスト。デフォルトでは、フェンシングレベルは定義されていません。
-
ha_clusterRHEL システムロールで設定するフェンシングレベル定義の構造は次のとおりです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow フェンシングのデフォルトを設定する
ha_clusterRHEL システムロール Playbook の例は、フェンシングレベルを使用した高可用性クラスターの設定 を参照してください。ha_cluster_constraints_locationこの変数は、リソースの場所の制約を定義します。リソースの場所の制約は、リソースを実行できるノードを示します。複数のリソースに一致する可能性のあるリソース ID またはパターンで指定されたリソースを指定できます。ノード名またはルールでノードを指定できます。
リソースの場所の制約に対して次の項目を設定できます。
-
resource(必須) - 制約が適用されるリソースの仕様。 -
node(必須) - リソースが優先または回避する必要があるノードの名前。 -
id(オプション) - 制約の ID。指定しない場合、自動生成されます。 options(オプション) - 名前と値のディクショナリーリスト。score- 制約の重みを設定します。-
正の
score値は、リソースがノードでの実行を優先することを意味します。 -
負の
score値は、リソースがノードで実行されないようにする必要があることを意味します。 -
-INFINITYのscore値は、リソースがノードで実行されないようにする必要があることを意味します。 -
scoreが指定されていない場合、スコア値はデフォルトでINFINITYになります。
-
正の
-
デフォルトでは、リソースの場所の制約は定義されていません。
リソース ID とノード名を指定するリソースの場所に対する制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースパターンを指定するリソースの場所の制約に対して設定する項目は、リソース ID を指定するリソースの場所の制約に対して設定する項目と同じです。ただし、リソース仕様そのものは除きます。リソース仕様に指定する項目は次のとおりです。
-
pattern(必須) - POSIX 拡張正規表現リソース ID が照合されます。
-
リソースパターンとノード名を指定するリソースの場所に対する制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソース ID とルールを指定するリソースの場所の制約に対して、次の項目を設定できます。
resource(必須) - 制約が適用されるリソースの仕様。-
id(必須) - リソース ID。 -
role(オプション) - 制約が制限されるリソースのロール。Started、Unpromoted、Promoted。
-
-
rule(必須) -pcs構文を使用して記述された制約ルール。詳細は、pcs(8) の man ページでconstraint locationセクションを参照してください。 - 指定するその他の項目は、ルールを指定しないリソース制約と同じ意味を持ちます。
リソース ID とルールを指定するリソースの場所に対する制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースパターンとルールを指定するリソースの場所の制約に対して設定する項目は、リソース ID とルールを指定するリソースの場所の制約に対して設定する項目と同じです。ただし、リソース仕様そのものは除きます。リソース仕様に指定する項目は次のとおりです。
-
pattern(必須) - POSIX 拡張正規表現リソース ID が照合されます。
-
リソースパターンとルールを指定するリソースの場所に対する制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソース制約のあるクラスターを作成する
ha_clusterRHEL システムロール Playbook の例については、リソース制約のある高可用性クラスターの設定を 参照してください。ha_cluster_constraints_colocationこの変数は、リソースコロケーションの制約を定義します。リソースコロケーションの制約は、あるリソースの場所が別のリソースの場所に依存することを示しています。コロケーション制約には、2 つのリソースに対する単純なコロケーション制約と、複数のリソースに対するセットコロケーション制約の 2 種類があります。
単純なリソースコロケーション制約に対して次の項目を設定できます。
resource_follower(必須) -resource_leaderに関連して配置する必要があるリソース。-
id(必須) - リソース ID。 -
role(オプション) - 制約が制限されるリソースのロール。Started、Unpromoted、Promoted。
-
resource_leader(必須) - クラスターは、最初にこのリソースを配置する場所を決定してから、resource_followerを配置する場所を決定します。-
id(必須) - リソース ID。 -
role(オプション) - 制約が制限されるリソースのロール。Started、Unpromoted、Promoted。
-
-
id(オプション) - 制約の ID。指定しない場合、自動生成されます。 options(オプション) - 名前と値のディクショナリーリスト。score- 制約の重みを設定します。-
正の
score値は、リソースが同じノードで実行される必要があることを示します。 -
負の
score値は、リソースが異なるノードで実行される必要があることを示します。 -
+ INFINITYのscore値は、リソースが同じノードで実行される必要があることを示します。 -
-INFINITYのscore値は、リソースが異なるノードで実行される必要があることを示します。 -
scoreが指定されていない場合、スコア値はデフォルトでINFINITYになります。
-
正の
デフォルトでは、リソースコロケーション制約は定義されていません。
単純なリソースコロケーション制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースセットのコロケーション制約に対して次の項目を設定できます。
resource_sets(必須) - リソースセットのリスト。-
resource_ids(必須) - セット内のリソースのリスト。 -
options(オプション) - セット内のリソースが制約によってどのように扱われるかを微調整する名前と値のディクショナリーリスト。
-
-
id(オプション) - 単純なコロケーション制約の場合と同じ値。 -
options(オプション) - 単純なコロケーション制約の場合と同じ値。
リソースセットに対するコロケーション制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースに制約のあるクラスターを作成する
ha_clusterRHEL システムロール Playbook の例は、リソースに制約のある高可用性クラスターの設定 を参照してください。ha_cluster_constraints_orderこの変数は、リソースの順序に対する制約を定義します。リソース順序の制約は、特定のリソースアクションが発生する順序を示します。リソース順序の制約には、2 つのリソースに対する単純な順序制約と、複数のリソースに対するセット順序制約の 2 種類があります。
単純なリソース順序制約に対して次の項目を設定できます。
resource_first(必須) -resource_thenリソースが依存するリソース。-
id(必須) - リソース ID。 -
action(オプション) -resource_thenリソースに対してアクションを開始する前に完了する必要のあるアクション。許可される値:start、stop、promote、demote。
-
resource_then(必須) - 依存リソース。-
id(必須) - リソース ID。 -
action(オプション) -resource_firstリソースに対するアクションが完了した後にのみリソースが実行できるアクション。許可される値:start、stop、promote、demote。
-
-
id(オプション) - 制約の ID。指定しない場合、自動生成されます。 -
options(オプション) - 名前と値のディクショナリーリスト。
デフォルトでは、リソース順序の制約は定義されていません。
単純なリソース順序の制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースセットの順序制約に対して次の項目を設定できます。
resource_sets(必須) - リソースセットのリスト。-
resource_ids(必須) - セット内のリソースのリスト。 -
options(オプション) - セット内のリソースが制約によってどのように扱われるかを微調整する名前と値のディクショナリーリスト。
-
-
id(オプション) - 単純な順序制約の場合と同じ値。 -
options(オプション) - 単純な順序制約の場合と同じ値。
リソースセットの順序制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースに制約のあるクラスターを作成する
ha_clusterRHEL システムロール Playbook の例は、リソースに制約のある高可用性クラスターの設定 を参照してください。ha_cluster_constraints_ticketこの変数は、リソースチケットの制約を定義します。リソースチケットの制約は、特定のチケットに依存するリソースを示します。リソースチケット制約には、1 つのリソースに対する単純なチケット制約と、複数のリソースに対するチケット順序の制約の 2 種類があります。
単純なリソースチケット制約に対して次の項目を設定できます。
resource(必須) - 制約が適用されるリソースの仕様。-
id(必須) - リソース ID。 -
role(オプション) - 制約が制限されるリソースのロール。Started、Unpromoted、Promoted。
-
-
ticket(必須) - リソースが依存するチケットの名前。 -
id(オプション) - 制約の ID。指定しない場合、自動生成されます。 options(オプション) - 名前と値のディクショナリーリスト。-
loss-policy(オプション) - チケットが取り消された場合にリソースに対して実行するアクション。
-
デフォルトでは、リソースチケットの制約は定義されていません。
単純なリソースチケット制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースセットチケット制約に対して次の項目を設定できます。
resource_sets(必須) - リソースセットのリスト。-
resource_ids(必須) - セット内のリソースのリスト。 -
options(オプション) - セット内のリソースが制約によってどのように扱われるかを微調整する名前と値のディクショナリーリスト。
-
-
ticket(必須) - 単純なチケット制約の場合と同じ値。 -
id(オプション) - 単純なチケット制約の場合と同じ値。 -
options(オプション) - 単純なチケット制約の場合と同じ値。
リソースセットのチケット制約の構造は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースに制約のあるクラスターを作成する
ha_clusterRHEL システムロール Playbook の例は、リソースに制約のある高可用性クラスターの設定 を参照してください。ha_cluster_qnetd(RHEL 8.8 以降) この変数は、クラスターの外部クォーラムデバイスとして機能できる
qnetdホストを設定します。qnetdホストに対して次の項目を設定できます。-
present(オプション) -trueの場合、ホスト上にqnetdインスタンスを設定します。falseの場合、ホストからqnetd設定を削除します。デフォルト値はfalseです。これをtrueに設定する場合は、ha_cluster_cluster_presentをfalseに設定する必要があります。 -
start_on_boot(オプション) - ブート時にqnetdインスタンスを自動的に開始するかどうかを設定します。デフォルト値はtrueです。 -
regenerate_keys(オプション) -qnetdTLS 証明書を再生成するには、この変数をtrueに設定します。証明書を再生成する場合は、各クラスターのロールを再実行してqnetdホストに再度接続するか、手動でpcsを実行する必要があります。
-
フェンシングにより
qnetd操作が中断されるため、クラスターノード上でqnetdを実行することはできません。クォーラムデバイスを使用してクラスターを設定する
ha_clusterRHEL システムロール Playbook の例については、クォーラムデバイスを使用したクラスターの設定 を参照してください。