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
$ sudo pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 STONITH 是否已禁用:
sudo pcs property show
$ sudo pcs property showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据您要使用的隔离代理,选择以下选项之一:
如果使用 IPMI 或 RHV 隔离代理,请生成
fencing.yaml环境文件:(undercloud) $ openstack overcloud generate fencing --output fencing.yaml nodes.json
(undercloud) $ openstack overcloud generate fencing --output fencing.yaml nodes.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此命令将
ilo和drac电源管理详细信息转换为 IPMI 等效的详细信息。-
如果您使用不同的隔离代理,如 STONITH 块设备(SBD)、
fence_kdump或 Redfish,或者使用预置备节点,请手动创建fencing.yaml文件。
仅 SBD 隔离:在
fencing.yaml文件中添加以下参数:parameter_defaults: ExtraConfig: pacemaker::corosync::enable_sbd: trueparameter_defaults: ExtraConfig: pacemaker::corosync::enable_sbd: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此步骤仅适用于初始 overcloud 部署。有关如何在现有 overcloud 上启用 SBD 隔离的更多信息,请参阅在 RHEL 7 和 8 中启用 sbd 隔离。
仅限多层隔离:将特定于级别的参数添加到生成的 fence
.yaml文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<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
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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 仅 SBD 隔离 :设置 watchdog 计时器设备间隔,并检查间隔是否已正确设置。
pcs property set stonith-watchdog-timeout=<interval> pcs property show
# pcs property set stonith-watchdog-timeout=<interval> # pcs property showCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 确保所有创建的隔离代理都处于"运行"状态,而不是"停止"状态。处于"停止"状态的隔离代理已被错误配置。
验证
以
tripleo-admin用户身份登录 overcloud,并确保 Pacemaker 配置为资源管理器:source stackrc metalsmith list | grep controller ssh tripleo-admin@<controller-x_ip> sudo pcs status | grep fence
$ source stackrc $ metalsmith list | grep controller $ ssh tripleo-admin@<controller-x_ip> $ sudo pcs status | grep fence stonith-overcloud-controller-x (stonith:fence_ipmilan): Started overcloud-controller-yCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,Pacemaker 配置为对 fence
.yaml文件中指定的每个 Controller 节点使用 STONITH 资源。注意您不能在其控制的同一节点上配置
fence-resource进程。检查隔离资源属性。STONITH 属性值必须与 fence
.yaml 文件中的值匹配:sudo pcs stonith show <stonith-resource-controller-x>
$ sudo pcs stonith show <stonith-resource-controller-x>Copy to Clipboard Copied! Toggle word wrap Toggle overflow