13.13. 使用 RHEL ha_cluster RHEL 系统角色为高可用性集群配置放置策略


(RHEL 9.5 及更高版本) Pacemaker 集群根据资源分配分数分配资源。默认情况下,如果所有节点上的资源分配分数都相同,则 Pacemaker 会将资源分配给具有最少分配资源的节点。如果集群中的资源使用的节点容量(如内存或 I/O)的比例差异很大,则默认行为可能不是平衡系统工作负载的最佳策略。在这种情况下,您可以通过为节点和资源配置使用属性和放置策略来自定义分配策略。

有关配置使用属性和放置策略的详细信息,请参阅 配置节点放置策略

这个示例流程使用 ha_cluster RHEL 系统角色,以自动的方式创建高可用性集群,其配置使用属性来定义放置策略。

警告

ha_cluster RHEL 系统角色替换指定节点上任何现有的集群配置。playbook 中未指定的任何设置都将丢失。

先决条件

流程

  1. 将您的敏感变量存储在一个加密文件中:

    1. 创建 vault :

      $ ansible-vault create vault.yml
      New Vault password: <vault_password>
      Confirm New Vault password: <vault_password>
    2. ansible-vault create 命令打开编辑器后,以 <key>: <value> 格式输入敏感数据:

      cluster_password: <cluster_password>
    3. 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
  2. 创建一个包含以下内容的 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: 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_cluster RHEL 系统角色是否管理防火墙的变量。
    ha_cluster_manage_selinux: true
    确定 ha_cluster RHEL 系统角色是否使用 selinux RHEL 系统角色管理防火墙高可用性服务的端口的变量。
    ha_cluster_cluster_properties: <cluster properties>
    Pacemaker 集群范围配置的集群属性集列表。要使利用率生效,必须设置 placement-strategy 属性,并且其值必须与值 default 不同。
    ha_cluster_node_options: <node options>
    定义因集群节点而异的不同设置的变量。
    ha_cluster_resource_primitives: <cluster resources>

    ha_cluster RHEL 系统角色配置的 Pacemaker 资源的资源定义的列表,包括隔离资源。

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md 文件。

  3. 验证 playbook 语法:

    $ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  4. 运行 playbook:

    $ ansible-playbook --ask-vault-pass ~/playbook.yml

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md 文件
  • /usr/share/doc/rhel-system-roles/ha_cluster/ 目录
  • Ansible vault
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.