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。
流程
-
以
heat-admin用户身份登录每个 Controller 节点。 验证集群是否正在运行:
$ 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
验证 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
根据您要使用的隔离代理,选择以下选项之一:
如果使用 IPMI 或 RHV 隔离代理,请生成
fencing.yaml环境文件:$ openstack overcloud generate fencing --output fencing.yaml nodes.json
注意此命令将
ilo和drac电源管理详情转换为 IPMI 等效功能。-
如果您使用不同的隔离代理,如 STONITH Block Device (SBD)、
fence_kdump或 Redfish,或者使用预置备节点,请手动创建fence.yaml文件。
仅 SBD 隔离:在
fencing.yaml文件中添加以下参数:parameter_defaults: ExtraConfig: pacemaker::corosync::enable_sbd: true注意此步骤只适用于初始 overcloud 部署。有关如何在现有 overcloud 中启用 SBD 隔离的更多信息,请参阅在 RHEL 7 和 8 中启用 sbd 隔离。
仅多层隔离:将特定于级别的参数添加到生成的
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> 和 <value> 替换为隔离代理需要的实际参数和值。运行
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
仅 SBD 隔离:设置 watchdog timer 设备间隔,并检查是否正确设置了间隔。
# pcs property set stonith-watchdog-timeout=<interval> # pcs property show
验证
以
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进程。检查隔离资源属性。STONITH 属性值必须与
fencing.yaml文件中的值匹配:$ sudo pcs stonith show <stonith-resource-controller-x>