Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

如何在带有 pacemaker 的 RHEL 7、8 或 9 High Availability 集群中使用代理 fence_vmware_rest 配置 stonith 设备?

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux (RHEL) 7 Update 5 (带有 High Availability Add On)
  • Red Hat Enterprise Linux (RHEL) 8 或 9 (带有 High Availability Add On)

Issue

如何在带有 pacemaker 的 RHEL 7、8 或 9 High Availability 集群中使用代理 fence_vmware_rest 配置 stonith 设备?

Resolution

假设如下的集群架构

  • 集群节点主机名是 node1node2
  • vmware hypervisor (vCenter) 看到的集群节点名称是 node1-vmnode2-vm

列出虚拟机名称

  • 检查集群节点是否可以访问 VMware vCenter,并列出由 VMware vCenter 管理的虚拟机。以下命令将尝试使用提供的凭证连接到 VMware vCenter,并列出由 VMware VCenter 管理的所有虚拟机。

     # fence_vmware_rest -a <vCenter IP address> -l <vcenter_username> -p <vcenter_password> --ssl-insecure -z -o list | egrep "(node1-vm|node2-vm)"
     node1-vm,
     node2-vm,
     # fence_vmware_rest -a <vCenter IP address> -l <vcenter_username> -p <vcenter_password> --ssl-insecure -z -o status -n node1-vm
     Status: ON
    

验证作为集群节点的每个虚拟机的状态是成功的,并测试 fence_vmware_rest 命令可以在作为集群节点的每个虚拟机上正常工作。如果上述命令没有列出任何虚拟机,或者命令出错,请验证以下条件。

  • 验证运行 fence_vmware_rest 命令的主机(集群节点之一)可以通过端口 443/tcp (使用 SSL)或端口 80/tcp (没有 SSL)与 VMware vCenter 进行通信。
  • 确保该用户具有 VMware vCenter 上进行隔离的权限
  • 检查 VMware vCenter 是否有可信的 SSL 证书。如果无法信任地检查证书,请参阅以下解决方案:放宽一些 SSL 检查

将 stonith 设备添加到 pacemaker

如果 fence_vmware_rest 命令成功列出了 VMware vCenter 管理的所有虚拟机,并获得了作为集群节点的虚拟机的状态,则继续将由 VMware vCenter 管理的虚拟机添加到 pacemaker

隔离代理 fence_vmware_rest 是一个共享的隔离代理,它使用 pcmk_host_map 属性来正确隔离群集节点。pcmk_host_map 属性用于将 pacemaker 看到的主机名映射为 VMware vCenter 中看到的主机名。

pcmk_host_map 中的第一个属性是集群节点名称(/etc/corosync/corosync.conf 文件中的名称),下一个属性(分号后面的值)是 vmware hypervisor 看到的集群节点的名称。

    # cat /etc/corosync/corosync.conf
    [...]
    nodelist {
        node {
            ring0_addr: node1  <=== Cluster node name
            nodeid: 1
        }

        node {
            ring0_addr: node2  <=== Cluster node name
            nodeid: 2
        }
    }

fence_vmware_rest stonith 添加到 pacemaker

# pcs stonith create vmfence fence_vmware_rest pcmk_host_map="node1:node1-vm;node2:node2-vm" ipaddr=<vCenter IP address> ssl=1 login=<vcenter_username> passwd=<vcenter_password> ssl_insecure=1

检查 stonith 设备的状态

请注意,在 RHEL 8 之前,将pcs stonith status 替换为 pcs stonith show,将 pcs stonith config vmfence 替换为 pcs stonith show vmfence --full

  • 要检查 stonith 设备及其配置的状态,请使用以下命令。

    # pcs stonith status
    * vmfence   (stonith:fence_vmware_rest):    Started node1
    
  • 显示 stonith 设备的配置属性。

    # pcs stonith config vmfence 
     Resource: vmfence (class=stonith type=fence_vmware_rest)
      Attributes: pcmk_host_map=node1:node1-vm;node2:node2-vm ipaddr=<vCenter IP address> ssl=1 login=<vcenter_username> passwd=<vcenter_password> ssl_insecure=1
    

测试集群节点已被隔离

在添加了 stonith 设备后,应测试 stonith 设备可以成功隔离群集节点。如需更多信息,请参阅以下文章:
如何在 Red Hat High Availability 集群中测试隔离设备和隔离配置?

其他备注和建议

Root Cause

Diagnostic Steps

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments