搜索

第 7 章 对高可用性资源进行故障排除

download PDF

如果资源失败,您必须调查问题的原因和位置,修复失败的资源,并选择性地清理资源。根据部署,资源失败有很多可能的原因,您必须调查资源以确定如何解决这个问题。

例如,您可以检查资源限制,以确保资源不会相互中断,并且资源可以相互连接。您还可以检查比其他 Controller 节点频繁隔离的 Controller 节点,以识别可能的通信问题。

根据资源问题的位置,您可以选择以下选项之一:

Controller 节点问题
如果对 Controller 节点的健康检查失败,这可能表示 Controller 节点之间的通信问题。要调查,请登录 Controller 节点,再检查服务是否已正确启动。
单个资源问题
如果控制器上的大多数服务都正确运行,您可以运行 pcs status 命令并检查输出有关特定 Pacemaner 资源失败的信息,或运行 systemctl 命令来调查非 Pacemaker 资源失败。

7.1. 查看高可用性集群中的资源限制

在调查资源问题前,您可以查看服务启动方式的限制,包括与每个资源相关的限制、资源启动的顺序,以及资源是否必须与另一个资源在一起。

流程

  • 使用以下选项之一:

    • 要查看所有资源约束,请登录到任何 Controller 节点并运行 pcs constraint show 命令:

      $ sudo pcs constraint show

      以下示例显示了 Controller 节点上的 pcs constraint show 命令的输出:

      Location Constraints:
        Resource: galera-bundle
          Constraint: location-galera-bundle (resource-discovery=exclusive)
            Rule: score=0
              Expression: galera-role eq true
        [...]
        Resource: ip-192.168.24.15
          Constraint: location-ip-192.168.24.15 (resource-discovery=exclusive)
            Rule: score=0
              Expression: haproxy-role eq true
        [...]
        Resource: my-ipmilan-for-controller-0
          Disabled on: overcloud-controller-0 (score:-INFINITY)
        Resource: my-ipmilan-for-controller-1
          Disabled on: overcloud-controller-1 (score:-INFINITY)
        Resource: my-ipmilan-for-controller-2
          Disabled on: overcloud-controller-2 (score:-INFINITY)
      Ordering Constraints:
        start ip-172.16.0.10 then start haproxy-bundle (kind:Optional)
        start ip-10.200.0.6 then start haproxy-bundle (kind:Optional)
        start ip-172.19.0.10 then start haproxy-bundle (kind:Optional)
        start ip-192.168.1.150 then start haproxy-bundle (kind:Optional)
        start ip-172.16.0.11 then start haproxy-bundle (kind:Optional)
        start ip-172.18.0.10 then start haproxy-bundle (kind:Optional)
      Colocation Constraints:
        ip-172.16.0.10 with haproxy-bundle (score:INFINITY)
        ip-172.18.0.10 with haproxy-bundle (score:INFINITY)
        ip-10.200.0.6 with haproxy-bundle (score:INFINITY)
        ip-172.19.0.10 with haproxy-bundle (score:INFINITY)
        ip-172.16.0.11 with haproxy-bundle (score:INFINITY)
        ip-192.168.1.150 with haproxy-bundle (score:INFINITY)

      此输出显示以下主要约束类型:

      位置约束

      列出可为其分配资源的位置:

      • 第一个约束定义了一个规则,将 galera-bundle 资源设置为在将 galera-role 属性设置为 true 的节点上运行。
      • 第二个位置约束指定 IP 资源 ip-192.168.24.15 仅在将 haproxy-role 属性设置为 true 的节点上运行。这意味着集群将 IP 地址与 haproxy 服务相关联,这是使服务可以被访问所必需的。
      • 第三个位置约束显示 ipmilan 资源在每个 Controller 节点上被禁用。
      排序约束

      列出资源可以启动的顺序。本例演示了一个约束,它会在 HAProxy 服务之前将虚拟 IP 地址资源 IPaddr2 设置为 start。

      注意

      排序约束只适用于 IP 地址资源和 HAproxy。systemd 管理所有其他资源,因为计算等服务应该中断依赖服务,如 Galera。

      共处约束
      列出哪些资源必须放在一起。所有虚拟 IP 地址都链接到 haproxy-bundle 资源。
    • 要查看特定资源的限制,请登录到任何 Controller 节点并运行 pcs property show 命令:

      $ sudo pcs property show

      输出示例:

      Cluster Properties:
       cluster-infrastructure: corosync
       cluster-name: tripleo_cluster
       dc-version: 2.0.1-4.el8-0eb7991564
       have-watchdog: false
       redis_REPL_INFO: overcloud-controller-0
       stonith-enabled: false
      Node Attributes:
       overcloud-controller-0: cinder-volume-role=true galera-role=true haproxy-role=true rabbitmq-role=true redis-role=true rmq-node-attr-last-known-rabbitmq=rabbit@overcloud-controller-0
       overcloud-controller-1: cinder-volume-role=true galera-role=true haproxy-role=true rabbitmq-role=true redis-role=true rmq-node-attr-last-known-rabbitmq=rabbit@overcloud-controller-1
       overcloud-controller-2: cinder-volume-role=true galera-role=true haproxy-role=true rabbitmq-role=true redis-role=true rmq-node-attr-last-known-rabbitmq=rabbit@overcloud-controller-2

      在这个输出中,您可以验证资源限制是否已正确设置。例如,所有 Controller 节点的 galera-role 属性都是 true,这意味着 galera-bundle 资源仅在这些节点上运行。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.