13.11. 使用仲裁设备配置高可用性集群


(RHEL 8.8 及更高版本),当配置单独的仲裁设备时,集群可以保持比标准仲裁规则允许更多的节点故障。仲裁设备充当集群的轻量级仲裁设备。对于偶数节点的集群,建议使用仲裁设备。对于双节点集群,使用仲裁设备可以更好地决定在脑裂情况下保留哪些节点。

有关仲裁设备的详情,请参考 配置仲裁设备

要使用 ha_cluster RHEL 系统角色配置带有独立仲裁设备的高可用性集群,首先请设置仲裁设备。设置仲裁设备后,您可以在任意数量的集群中使用该设备。

13.11.1. 配置仲裁设备

要使用 ha_cluster RHEL 系统角色配置仲裁设备,请按照本例中的步骤操作。请注意,您不能在集群节点上运行仲裁设备。

警告

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

先决条件

步骤

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

    1. 创建密码库:

      $ 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-qdevice.yml

    ---
    - name: Configure a host with a quorum device
      hosts: nodeQ
      vars_files:
        - vault.yml
      tasks:
        - name: Create a quorum device for the cluster
          ansible.builtin.include_role:
            name: rhel-system-roles.ha_cluster
          vars:
            ha_cluster_cluster_present: false
            ha_cluster_hacluster_password: "{{ cluster_password }}"
            ha_cluster_manage_firewall: true
            ha_cluster_manage_selinux: true
            ha_cluster_qnetd:
              present: true

    示例 playbook 中指定的设置包括:

    ha_cluster_cluster_present: false
    如果设为 false,则该变量决定了所有集群配置都将从目标主机中删除。
    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_qnetd: <quorum_device_options>
    配置 qnetd 主机的变量。
  3. 验证 playbook 语法:

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

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

  4. 运行 playbook:

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

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md 文件
  • /usr/share/doc/rhel-system-roles/ha_cluster/ directory

13.11.2. 配置一个集群以使用仲裁设备

要将集群配置为使用仲裁设备,请按照本例流程中的步骤操作。

警告

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

先决条件

步骤

  1. 创建包含以下内容的 playbook 文件,如 ~/playbook-cluster-qdevice.yml

    ---
    - name: Configure a cluster to use a quorum device
      hosts: node1 node2
      vars_files:
        - vault.yml
      tasks:
        - name: Create cluster that uses a quorum device
          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_quorum:
              device:
                model: net
                model_options:
                  - name: host
                    value: nodeQ
                  - name: algorithm
                    value: lms

    示例 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_quorum: <quorum_parameters>
    配置集群仲裁的变量,可以用来指定集群使用仲裁设备。
  2. 验证 playbook 语法:

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

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

  3. 运行 playbook:

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

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.ha_cluster/README.md 文件
  • /usr/share/doc/rhel-system-roles/ha_cluster/ directory
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.