11.14. ha_cluster RHEL システムロールを使用して高可用性クラスターの配置ストラテジーを設定する
(RHEL 9.5 以降) Pacemaker クラスターは、リソース割り当てスコアに従ってリソースを割り当てます。デフォルトでは、すべてのノードのリソース割り当てスコアが等しい場合、Pacemaker は割り当てられたリソースの数が最も少ないノードにリソースを割り当てます。クラスター内のリソースが、大きく異なる割合のノードの容量 (メモリーや I/O など) を使用する場合、デフォルトの動作は、システムのワークロードのバランスをとるのに最適なストラテジーではない可能性があります。このような場合、ノードとリソースの使用率属性と配置ストラテジーを設定することで、割り当てストラテジーをカスタマイズできます。
使用率属性と配置ストラテジーの設定の詳細は、ノード配置ストラテジーの設定 を参照してください。
この手順の例では、ha_cluster RHEL システムロールを使用して、配置ストラテジーを定義するために使用率属性を設定する高可用性クラスターを自動的に作成します。
ha_cluster RHEL システムロールは、指定されたノードの既存のクラスター設定を置き換えます。Playbook に指定されていない設定はすべて失われます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。 - クラスターメンバーとして使用するシステムには、RHEL および RHEL High Availability Add-On のアクティブなサブスクリプションがある。
- ha_cluster RHEL システムロールのインベントリーの指定 で説明されているように、インベントリーファイルでクラスターノードが指定されている。インベントリーファイルの作成に関する一般的な情報については、RHEL 9 でのコントロールノードの準備 を参照してください。
手順
機密性の高い変数を暗号化されたファイルに保存します。
vault を作成します。
$ ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>ansible-vault createコマンドでエディターが開いたら、機密データを<key>: <value>形式で入力します。cluster_password: <cluster_password>- 変更を保存して、エディターを閉じます。Ansible は vault 内のデータを暗号化します。
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。--- - name: Create a high availability cluster hosts: node1 node2 vars_files: - ~/vault.yml tasks: - name: Configure a cluster with utilization attributes ansible.builtin.include_role: name: redhat.rhel_system_roles.ha_cluster vars: ha_cluster_cluster_name: my-new-cluster ha_cluster_hacluster_password: "{{ cluster_password }}" ha_cluster_manage_firewall: true ha_cluster_manage_selinux: true ha_cluster_cluster_properties: - attrs: - name: placement-strategy value: utilization ha_cluster_node_options: - node_name: node1 utilization: - attrs: - name: utilization1 value: 1 - name: utilization2 value: 2 - node_name: node2 utilization: - attrs: - name: utilization1 value: 3 - name: utilization2 value: 4 ha_cluster_resource_primitives: - id: resource1 agent: 'ocf:pacemaker:Dummy' utilization: - attrs: - name: utilization1 value: 2 - name: utilization2 value: 3サンプル Playbook で指定されている設定は次のとおりです。
ha_cluster_cluster_name: <cluster_name>- 作成するクラスターの名前。
ha_cluster_hacluster_password: <password>-
haclusterユーザーのパスワード。haclusterユーザーには、クラスターへのフルアクセス権が付与されます。 ha_cluster_manage_firewall: true-
ha_clusterRHEL システムロールがファイアウォールを管理するかどうかを決定する変数。 ha_cluster_manage_selinux: true-
ha_clusterRHEL システムロールがselinuxRHEL システムロールを使用してファイアウォール高可用性サービスのポートを管理するかどうかを決定する変数。 ha_cluster_cluster_properties: <cluster properties>-
Pacemaker クラスター全体の設定のクラスタープロパティーのセットのリスト。使用率を有効にするには、
placement-strategyプロパティーを設定し、その値をdefault値と異なるものにする必要があります。 - `ha_cluster_node_options: <node options>
- クラスターノードごとに異なるさまざまな設定を定義する変数。
ha_cluster_resource_primitives: <cluster resources>ha_clusterRHEL システムロールによって設定される Pacemaker リソース (フェンシングリソースを含む) のリソース定義のリストPlaybook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.mdファイルを参照してください。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.ymlこのコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook --ask-vault-pass ~/playbook.yml