4.2. 在 overcloud 上部署隔离
要在 overcloud 上部署隔离,首先检查 STONITH 和 Pacemaker 的状态并配置 fencing.yaml
文件。然后,部署 overcloud 并配置其他参数。最后,测试 overcloud 上是否正确部署了隔离。
先决条件
- 为您的部署选择正确的隔离代理。有关支持的隔离代理列表,请参阅 第 4.1 节 “支持的隔离代理”。
-
确保您可以访问在 director 中注册节点时创建的
nodes.json
文件。此文件是您部署期间生成的fence.yaml
文件所需的输入。 -
nodes.json
文件必须包含节点上其中一个网络接口的 MAC 地址。有关更多信息 ,请参阅为 Overcloud 注册节点。
流程
-
以
tripleo-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
环境文件:(undercloud) $ openstack overcloud generate fencing --output fencing.yaml nodes.json
注意此命令将
ilo
和drac
电源管理详细信息转换为 IPMI 等效的详细信息。-
如果您使用不同的隔离代理,如 STONITH 块设备(SBD)、
fence_kdump
或 Redfish,或者使用预置备节点,请手动创建fencing.yaml
文件。
仅 SBD 隔离:在
fencing.yaml
文件中添加以下参数:parameter_defaults: ExtraConfig: pacemaker::corosync::enable_sbd: true
注意此步骤仅适用于初始 overcloud 部署。有关如何在现有 overcloud 上启用 SBD 隔离的更多信息,请参阅在 RHEL 7 和 8 中启用 sbd 隔离。
仅限多层隔离:将特定于级别的参数添加到生成的 fence
.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
命令,并包含 fence.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 计时器设备间隔,并检查间隔是否已正确设置。
# pcs property set stonith-watchdog-timeout=<interval> # pcs property show
验证
以
heat-admin
用户身份登录 overcloud,并确保 Pacemaker 配置为资源管理器:$ source stackrc $ openstack server list | grep controller $ ssh tripleo-admin@<controller-x_ip> $ sudo pcs status | grep fence stonith-overcloud-controller-x (stonith:fence_ipmilan): Started overcloud-controller-y
在本例中,Pacemaker 配置为对 fence
.yaml
文件中指定的每个 Controller 节点使用 STONITH 资源。注意您不能在其控制的同一节点上配置
fence-resource
进程。检查隔离资源属性。STONITH 属性值必须与 fence
.yaml 文件中的值匹配
:$ sudo pcs stonith show <stonith-resource-controller-x>