4.2. 在 overcloud 上部署隔离

要在 overcloud 上部署隔离,请首先检查 STONITH 和 Pacemaker 的状态并配置 fence.yaml 文件。然后,部署 overcloud 并配置附加参数。最后,测试 overcloud 上是否正确部署隔离。

先决条件

  • 为您的部署选择正确的隔离代理。有关支持的隔离代理列表,请参考 第 4.1 节 “支持的隔离代理”
  • 确保您可以访问在 director 中注册节点时创建的 nodes.json 文件。此文件是您在部署期间生成的 fencing.yaml 文件的必要输入。
  • nodes.json 文件必须包含节点上其中一个网络接口的 MAC 地址(NIC)。有关更多信息,请参阅为 Overcloud 注册节点
  • 如果使用 Red Hat Virtualization (RHV)隔离代理,使用具有管理虚拟机权限的角色,如 UserVMManager

流程

  1. heat-admin 用户身份登录每个 Controller 节点。
  2. 验证集群是否正在运行:

    $ sudo pcs status

    输出示例:

    Cluster name: openstackHA
    Last updated: Wed Jun 24 12:40:27 2015
    Last change: Wed Jun 24 11:36:18 2015
    Stack: corosync
    Current DC: lb-c1a2 (2) - partition with quorum
    Version: 1.1.12-a14efad
    3 Nodes configured
    141 Resources configured
  3. 验证 STONITH 已被禁用:

    $ sudo pcs property show

    输出示例:

    Cluster Properties:
    cluster-infrastructure: corosync
    cluster-name: openstackHA
    dc-version: 1.1.12-a14efad
    have-watchdog: false
    stonith-enabled: false
  4. 根据您要使用的隔离代理,选择以下选项之一:

    • 如果使用 IPMI 或 RHV 隔离代理,请生成 fencing.yaml 环境文件:

      $ openstack overcloud generate fencing --output fencing.yaml nodes.json
      注意

      此命令将 ilodrac 电源管理详情转换为 IPMI 等效功能。

    • 如果您使用不同的隔离代理,如 STONITH Block Device (SBD)、fence_kdump 或 Redfish,或者使用预置备节点,请手动创建 fence.yaml 文件。
  5. 仅 SBD 隔离:在 fencing.yaml 文件中添加以下参数:

    parameter_defaults:
      ExtraConfig:
        pacemaker::corosync::enable_sbd: true
    注意

    此步骤只适用于初始 overcloud 部署。有关如何在现有 overcloud 中启用 SBD 隔离的更多信息,请参阅在 RHEL 7 和 8 中启用 sbd 隔离

  6. 仅多层隔离:将特定于级别的参数添加到生成的 fencing.yaml 文件中:

    parameter_defaults:
      EnableFencing: true
      FencingConfig:
        devices:
          level1:
          - agent: [VALUE]
            host_mac: aa:bb:cc:dd:ee:ff
            params:
              <parameter>: <value>
          level2:
          - agent: fence_agent2
            host_mac: aa:bb:cc:dd:ee:ff
            params:
              <parameter>: <value>

    < parameter& gt; 和 <value > 替换为隔离代理需要的实际参数和值。

  7. 运行 overcloud deploy 命令,并包含 fencing.yaml 文件以及与部署相关的任何其他环境文件:

    openstack overcloud deploy --templates \
    -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
    -e ~/templates/network-environment.yaml \
    -e ~/templates/storage-environment.yaml --ntp-server pool.ntp.org --neutron-network-type vxlan --neutron-tunnel-types vxlan \
    -e fencing.yaml
  8. 仅 SBD 隔离:设置 watchdog timer 设备间隔,并检查是否正确设置了间隔。

    # pcs property set stonith-watchdog-timeout=<interval>
    # pcs property show

验证

  1. stack 用户身份登录 overcloud,再检查 Pacemaker 是否已配置为资源管理器:

    $ source stackrc
    $ openstack server list | grep controller
    $ ssh heat-admin@<controller-x_ip>
    $ sudo pcs status | grep fence
    stonith-overcloud-controller-x (stonith:fence_ipmilan): Started overcloud-controller-y

    在本例中,Pacemaker 配置为为每个在 fencing.yaml 文件中指定的 Controller 节点使用 STONITH 资源。

    注意

    您不能在其控制的同一节点中配置 fence-resource 进程。

  2. 检查隔离资源属性。STONITH 属性值必须与 fencing.yaml 文件中的值匹配:

    $ sudo pcs stonith show <stonith-resource-controller-x>