为实例配置高可用性
为 Compute 实例配置高可用性
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。
在 JIRA 中提供文档反馈
使用 Create Issue 表单在 OpenShift (RHOSO)或更早版本的 Red Hat OpenStack Platform (RHOSP)上提供有关 Red Hat OpenStack Services 文档的反馈。当您为 RHOSO 或 RHOSP 文档创建问题时,这个问题将在 RHOSO Jira 项目中记录,您可以在其中跟踪您的反馈的进度。
要完成 Create Issue 表单,请确保您已登录到 JIRA。如果您没有红帽 JIRA 帐户,您可以在 https://issues.redhat.com 创建一个帐户。
- 点击以下链接打开 Create Issue 页面: Create Issue
- 完成 Summary 和 Description 字段。在 Description 字段中,包含文档 URL、章节或章节号以及问题的详细描述。不要修改表单中的任何其他字段。
- 点 Create。
第 1 章 引入和规划实例 HA 部署 复制链接链接已复制到粘贴板!
Compute 实例的高可用性(Instance HA)是一种工具,可用于从故障 Compute 节点上撤离实例,并在不同的 Compute 节点上重新创建实例。
实例 HA 与共享存储或本地存储环境配合使用,这意味着撤离的实例维护相同的网络配置,如静态 IP 地址和浮动 IP 地址。重新创建的实例也维护新 Compute 节点内的相同特征。
1.1. Instance HA 的工作原理 复制链接链接已复制到粘贴板!
当 Compute 节点出现故障时,overcloud 隔离代理隔离节点,然后 Instance HA 代理将实例从故障 Compute 节点撤离到不同的 Compute 节点。
Compute 节点失败时发生以下事件,并触发 Instance HA:
-
在出现故障时,
IPMI代理执行第一层隔离,其中包括物理重置节点以确保其关闭并防止 overcloud 上的数据损坏或多个相同的实例。当节点离线时,它被视为被隔离。 在物理 IPMI 隔离后,
fence-nova代理会自动执行第二层隔离,并通过运行以下命令使用"evacuate=yes"集群来标记隔离的节点:attrd_updater -n evacuate -A name="evacuate" host="FAILEDHOST" value="yes"
$ attrd_updater -n evacuate -A name="evacuate" host="FAILEDHOST" value="yes"Copy to Clipboard Copied! Toggle word wrap Toggle overflow FAILEDHOST是故障 Compute 节点的名称。-
nova-evacuate代理会在后台持续运行,并使用"evacuate=yes"属性定期检查集群是否有节点。当nova-evacuate检测到隔离的节点包含此属性时,代理将启动撤离该节点。撤离过程与您可以在任何时间执行的手动实例撤离过程类似。 -
当故障节点在 IPMI 重置后重新启动时,该节点上的
nova-compute进程也会自动启动。由于之前已隔离该节点,因此在 Pacemaker 取消隔离节点之前,它不会运行任何新实例。 -
当 Pacemaker 检测到 Compute 节点在线时,它会在节点上启动
compute-unfence-trigger资源代理,该代理释放该节点,以便它可以再次运行实例。
1.2. 规划您的实例 HA 部署 复制链接链接已复制到粘贴板!
在部署 Instance HA 之前,请查看合规性的资源名称,并根据您的环境配置您的存储和网络。
- Compute 节点主机名和 Pacemaker 远程资源名称必须符合 W3C 命名约定。如需更多信息,请参阅 W3C 文档中的 Declaring Namespaces 和 Names and Tokens。
通常,Instance HA 要求您为实例的磁盘镜像配置共享存储。因此,如果您尝试使用
no-shared-storage选项,您可能会在撤离过程中收到InvalidSharedStorage错误,并且实例不会在另一个 Compute 节点上启动。但是,如果您的所有实例都被配置为从 OpenStack Block Storage (
cinder)卷引导,则不需要为实例的磁盘镜像配置共享存储,您可以使用no-shared-storage选项撤离所有实例。在撤离过程中,如果您的实例配置为从块存储卷引导,则任何撤离实例都会从另一个 Compute 节点上的同一卷引导。因此,撤离的实例会立即重启其作业,因为操作系统镜像和应用程序数据存储在 OpenStack Block Storage 卷中。
-
如果在 Spine-Leaf 环境中部署 Instance HA,您必须为 Controller 和 Compute 节点定义一个
internal_api网络。然后,您可以为每个叶定义子网。有关配置 Spine-Leaf 网络的更多信息,请参阅 Spine Leaf Networking 指南中的创建角色数据文件。 -
如果使用预置备节点或 director Operator,则必须在所有控制器上安装
fence-agents-computerpm。您可以手动执行此操作,或者在 overcloud 部署期间使用OS::TripleO::ControllerExtraConfigPrehook。如需更多信息,请参阅自定义 Red Hat OpenStack Platform 部署中的 配置 hook。 - 从 Red Hat OpenStack Platform 13 及更高版本,您可以使用 director 升级实例 HA,作为 overcloud 升级的一部分。有关升级 overcloud 的更多信息,请参阅 Red Hat OpenStack Platform 的执行次要更新。
-
您不能使用 vTPM 设备撤离实例。如果您使用 vTPM 设备部署实例,请确保应该撤离的其他实例使用类别,或使用标记为
evacuable属性的镜像。有关将实例设计到撤离的更多信息,请参阅 设计实例以使用实例 HA 进行撤离。 在安装后,不支持使用 director 禁用 Instance HA。有关从部署中手动删除 Instance HA 组件的临时解决方案,请参阅 如何从控制器节点中删除实例 HA 组件?。
重要对于生产环境,不会验证这个临时解决方案。您必须在生产环境中实施前,在测试环境中验证流程。
1.3. 实例 HA 资源代理 复制链接链接已复制到粘贴板!
实例 HA 使用 fence_compute、NovaEvacuate 和 comput-unfence-trigger 资源代理在 Compute 节点出现故障时撤离和重新创建实例。
| 代理名称 | 集群内的名称 | 角色 |
|---|---|---|
|
|
| 当节点不可用时,标记用于撤离的 Compute 节点。 |
|
|
| 从故障节点撤离实例。此代理在其中一个 Controller 节点上运行。 |
|
|
| 释放隔离的节点,并使节点再次运行实例。 |
第 2 章 安装和配置实例 HA 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenStack Platform (RHOSP) director 部署实例高可用性(HA)。但是,您必须执行额外的步骤在新 overcloud 上配置新的 Instance HA 部署。完成这些步骤后,Instance HA 将在具有自定义角色的 Compute 节点上运行。
RHOSP 超融合基础架构(HCI)环境不支持实例 HA。要在 RHOSP HCI 环境中使用实例 HA,您必须使用 ComputeInstanceHA 角色指定 Compute 节点的子集以使用实例 HA。Red Hat Ceph Storage 服务不能托管在托管 Instance HA 的 Compute 节点上。
要在不同的环境中启用实例 HA (如使用标准或自定义角色的现有 overcloud),仅执行与您的部署相关的流程,并相应地调整模板。
2.1. 配置 Instance HA 角色和配置集 复制链接链接已复制到粘贴板!
在部署 Instance HA 之前,请将 Instance HA 角色添加到 roles-data.yaml 文件中,标记您要使用 Instance HA 配置文件管理的每个 Compute 节点,并将它们添加到 overcloud-baremetal-deploy.yaml 文件中或等效项。有关为特定角色设计 overcloud 节点的更多信息,请参阅: 通过匹配配置集为角色指定 overcloud 节点。例如,您可以使用 computeiha 配置集来配置节点。
流程
-
将角色添加到
overcloud-baremetal-deploy.yaml文件中(如果尚未定义)。 编辑
overcloud-baremetal-deploy.yaml,以定义您要分配给该角色节点的配置集:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 置备 overcloud 节点:
openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yaml
(undercloud)$ openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <stack> 替换为您置备裸机节点的堆栈名称。默认值为
overcloud。 -
将 <deployment_file> 替换为您为生成的 heat 环境文件选择的名称,以使用部署命令包括的名称,如
/home/stack/templates/overcloud-baremetal-deployed.yaml。
-
将 <stack> 替换为您置备裸机节点的堆栈名称。默认值为
2.2. 隔离在带有实例 HA 的 overcloud 上启用隔离 复制链接链接已复制到粘贴板!
通过创建具有隔离信息的环境文件,在 overcloud 中的所有 Controller 和 Compute 节点上启用隔离。
流程
在可访问的位置(如 ~/templates )中创建环境文件,并包含以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您将共享存储用于 Compute 实例,请将环境文件中的以下参数设置为
false:parameter_defaults: ExtraConfig: tripleo::instanceha::no_shared_storage: falseparameter_defaults: ExtraConfig: tripleo::instanceha::no_shared_storage: falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. 使用实例 HA 部署 overcloud 复制链接链接已复制到粘贴板!
如果您已经部署了 overcloud,可以使用您创建的额外实例 HA 文件再次运行 openstack overcloud deploy 命令。在创建 undercloud 后,您可以随时为 overcloud 配置实例 HA。
先决条件
- 已配置了一个 Instance HA 角色和配置集。
- 您在 overcloud 上启用隔离。
流程
使用
openstack overcloud deploy命令和-e选项,使其包含compute-instanceha.yaml环境文件,并包含额外的环境文件。openstack overcloud deploy --templates \ -e <fencing_environment_file> \ -r my_roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/compute-instanceha.yaml
$ openstack overcloud deploy --templates \ -e <fencing_environment_file> \ -r my_roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/compute-instanceha.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<fencing_environment_file> 替换为您的环境的适当文件名:
-
不要修改
compute-instanceha.yaml环境文件。 - 包含您要包含在 overcloud 部署中的每个环境文件的完整路径。
部署后,每个 Compute 节点都包含一个 STONITH 设备和一个 pacemaker_remote 服务。
2.4. 测试实例 HA 撤离 复制链接链接已复制到粘贴板!
要正确测试实例 HA 撤离,您可以在 Compute 节点上触发撤离,并检查 Instance HA 代理是否成功撤离并在不同的 Compute 节点上重新创建实例。
以下流程涉及降级 Compute 节点,这会触发实例 HA 自动清空。
前提条件
- 实例 HA 部署在 Compute 节点上。
流程
启动 overcloud 上的一个或多个实例。
stack@director $ . overcloudrc stack@director $ openstack server create --image cirros --flavor 2 test-failover stack@director $ openstack server list -c Name -c Status
stack@director $ . overcloudrc stack@director $ openstack server create --image cirros --flavor 2 test-failover stack@director $ openstack server list -c Name -c StatusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 登录托管实例的 Compute 节点,并更改到
root用户。将compute-n替换为 Compute 节点的名称:stack@director $ . stackrc stack@director $ ssh -l tripleo-admin compute-n tripleo-admin@compute-n $ su -
stack@director $ . stackrc stack@director $ ssh -l tripleo-admin compute-n tripleo-admin@compute-n $ su -Copy to Clipboard Copied! Toggle word wrap Toggle overflow 崩溃 Compute 节点。
root@compute-n $ echo c > /proc/sysrq-trigger
root@compute-n $ echo c > /proc/sysrq-triggerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 等待几分钟,让节点重启,然后验证您在另一个 Compute 节点上重新创建您崩溃的 Compute 节点上的实例:
stack@director $ openstack server list -c Name -c Status stack@director $ openstack compute service list
stack@director $ openstack server list -c Name -c Status stack@director $ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. 设计实例以使用实例 HA 撤离 复制链接链接已复制到粘贴板!
默认情况下,Instance HA 会撤离来自故障节点的所有实例。您可以将 Instance HA 配置为仅撤离具有特定镜像或类别的实例。
前提条件
- 实例 HA 部署在 overcloud 上。
流程
-
以
stack用户身份登录 undercloud。 获取
overcloudrc文件:source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下选项之一:
标记镜像:
(overcloud) $ openstack image set --tag evacuable <image_id>
(overcloud) $ openstack image set --tag evacuable <image_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<image_id> 替换为您要撤离的镜像的 ID。标记类别:
(overcloud) $ openstack flavor set --property evacuable=true <flavor_id>
(overcloud) $ openstack flavor set --property evacuable=true <flavor_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<flavor_id> 替换为您要撤离的类别的 ID。
- 如果您使用主机聚合,请将相同的标签或属性添加到主机聚合中。如需更多信息,请参阅配置 计算服务中的类别元数据 以创建实例。
第 3 章 在 undercloud 和带有实例 HA 的 overcloud 上执行维护 复制链接链接已复制到粘贴板!
要在 undercloud 和 overcloud 上执行维护,您必须按照特定顺序关闭并启动 undercloud 和 overcloud 节点,以确保启动 overcloud 时的最小问题。您还可以通过停止节点并禁用节点上的 Pacemaker 资源,在特定 Compute 或 Controller 节点上执行维护。
3.1. 前提条件 复制链接链接已复制到粘贴板!
- 正在运行的 undercloud 和启用了实例 HA 的 overcloud。
3.2. undercloud 和 overcloud 关闭顺序 复制链接链接已复制到粘贴板!
要关闭 Red Hat OpenStack Platform 环境,您必须按照以下顺序关闭 overcloud 和 undercloud:
- 关闭 overcloud Compute 节点上的实例
- 关闭 Compute 节点
- 停止 Controller 节点上的所有高可用性和 OpenStack Platform 服务
- 关闭 Ceph Storage 节点
- 关闭 Controller 节点
- 关闭 undercloud
3.2.1. 关闭 overcloud Compute 节点上的实例 复制链接链接已复制到粘贴板!
作为关闭 Red Hat OpenStack Platform 环境的一部分,在关闭 Compute 节点之前关闭 Compute 节点上的所有实例。
先决条件
- 具有活跃 Compute 服务的 overcloud
步骤
-
以
stack用户身份登录 undercloud。 提供 overcloud 的凭据文件:
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查看 overcloud 中运行的实例:
openstack server list --all-projects
$ openstack server list --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 停止 overcloud 中的每个实例:
openstack server stop <INSTANCE>
$ openstack server stop <INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对每个实例重复这一步,直到停止 overcloud 中的所有实例。
3.2.2. 停止 overcloud Compute 节点上的实例 HA 服务 复制链接链接已复制到粘贴板!
作为关闭 Red Hat OpenStack Platform 环境的一部分,您必须关闭 Compute 节点上运行的所有实例 HA 服务,然后才能关闭 Compute 节点。
前提条件
- 具有活跃 Compute 服务的 overcloud
- Compute 节点上启用了实例 HA
流程
-
以
root用户身份登录运行 Pacemaker 的 overcloud 节点。 在每个 Compute 节点上禁用 Pacemaker 远程资源:
识别 Compute 节点上的 Pacemaker 远程资源:
pcs resource status
# pcs resource statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这些资源使用
ocf::pacemaker:remote代理,通常以 Compute 节点主机格式命名,如overcloud-novacomputeiha-0。禁用每个 Pacemaker 远程资源。以下示例演示了如何禁用
overcloud-novacomputeiha-0的资源:pcs resource disable overcloud-novacomputeiha-0
# pcs resource disable overcloud-novacomputeiha-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
禁用 Compute 节点 STONITH 设备:
识别 Compute 节点 STONITH 设备:
pcs stonith status
# pcs stonith statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用每个 Compute 节点 STONITH 设备:
pcs stonith disable <STONITH_DEVICE>
# pcs stonith disable <STONITH_DEVICE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. 关闭 Compute 节点 复制链接链接已复制到粘贴板!
作为关闭 Red Hat OpenStack Platform 环境的一部分,登录并关闭每个 Compute 节点。
先决条件
- 关闭 Compute 节点上的所有实例:
步骤
-
以
root用户身份登录 Compute 节点。 关闭该节点:
shutdown -h now
# shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 对每个 Compute 节点执行这些步骤,直到关闭所有 Compute 节点。
3.2.4. 停止 Controller 节点上的服务 复制链接链接已复制到粘贴板!
作为关闭 Red Hat OpenStack Platform 环境的一部分,在关闭 Controller 节点前停止节点上的服务。这包括 Pacemaker 和 systemd 服务。
先决条件
- 具有活跃 Pacemaker 服务的 overcloud
步骤
-
以
root用户身份登录 Controller 节点。 停止 Pacemaker 集群。
pcs cluster stop --all
# pcs cluster stop --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令停止所有节点上的集群。
等待 Pacemaker 服务停止并检查服务是否已停止。
检查 Pacemaker 状态:
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Podman 中没有 Pacemaker 服务在运行:
podman ps --filter "name=.*-bundle.*"
# podman ps --filter "name=.*-bundle.*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
停止 Red Hat OpenStack Platform 服务:
systemctl stop 'tripleo_*'
# systemctl stop 'tripleo_*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待服务停止,检查 Podman 中服务不再运行:
podman ps
# podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.5. 关闭 Ceph Storage 节点 复制链接链接已复制到粘贴板!
作为关闭 Red Hat OpenStack Platform 环境的一部分,禁用 Ceph Storage 服务,然后登录并关闭每个 Ceph Storage 节点。
先决条件
- 正常运行的 Ceph Storage 集群
- Ceph MON 服务在单机 Ceph MON 节点或 Controller 节点上运行
步骤
-
以
root用户身份登录运行 Ceph MON 服务的节点,如 Controller 节点或单机 Ceph MON 节点。 检查集群的运行状况。在以下示例中,
podman命令在 Controller 节点上的 Ceph MON 容器中运行状态检查:sudo podman exec -it ceph-mon-controller-0 ceph status
# sudo podman exec -it ceph-mon-controller-0 ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保状态为
HEALTH_OK。为集群设置
noout、norecover、norebalance、nobackfill、nodown和pause标志。在以下示例中,podman命令通过 Controller 节点上的 Ceph MON 容器设置这些标志:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 关闭每个 Ceph Storage 节点:
-
以
root用户身份登录 Ceph Storage 节点。 关闭该节点:
shutdown -h now
# shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 对每个 Ceph Storage 节点执行这些步骤,直到关闭所有 Ceph Storage 节点。
-
以
关闭任何单机 Ceph MON 节点:
-
以
root用户身份登录单机 Ceph MON 节点。 关闭该节点:
shutdown -h now
# shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 对每个单机 Ceph MON 节点执行这些步骤,直到关闭所有单机 Ceph MON 节点。
-
以
3.2.6. 关闭 Controller 节点 复制链接链接已复制到粘贴板!
作为关闭 Red Hat OpenStack Platform 环境的一部分,登录并关闭每个 Controller 节点。
先决条件
- 停止 Pacemaker 集群
- 停止 Controller 节点上的所有 Red Hat OpenStack Platform 服务
步骤
-
以
root用户身份登录 Controller 节点。 关闭该节点:
shutdown -h now
# shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 对每个 Controller 节点执行这些步骤,直到关闭所有 Controller 节点。
3.2.7. 关闭 undercloud 复制链接链接已复制到粘贴板!
作为关闭 Red Hat OpenStack Platform 环境的一部分,登录到 undercloud 节点并关闭 undercloud。
先决条件
- 正在运行的 undercloud
步骤
-
以
stack用户身份登录 undercloud。 关闭 undercloud:
sudo shutdown -h now
$ sudo shutdown -h nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 执行系统维护 复制链接链接已复制到粘贴板!
在完全关闭 undercloud 和 overcloud 后,对环境中的系统执行任何维护,然后启动 undercloud 和 overcloud。
3.4. undercloud 和 overcloud 启动顺序 复制链接链接已复制到粘贴板!
要启动 Red Hat OpenStack Platform 环境,您必须按照以下顺序启动 undercloud 和 overcloud:
- 启动 undercloud。
- 启动 Controller 节点。
- 启动 Ceph Storage 节点。
- 启动 Compute 节点。
- 启动 overcloud Compute 节点上的实例。
3.4.1. 启动 undercloud 复制链接链接已复制到粘贴板!
作为启动 Red Hat OpenStack Platform 环境的一部分,启动 undercloud 节点,登录到 undercloud,再检查 undercloud 服务。
先决条件
- undercloud 已关闭。
流程
- 打开 undercloud 并等待 undercloud 引导。
验证
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 undercloud 上的服务:
systemctl list-units 'tripleo_*'
$ systemctl list-units 'tripleo_*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证名为
tripleo-ansible-inventory.yaml的静态清单文件:validation run --group pre-introspection -i <inventory_file>
$ validation run --group pre-introspection -i <inventory_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<inventory_file> 替换为 Ansible 清单文件的名称和位置,如~/tripleo-deploy/undercloud/tripleo-ansible-inventory.yaml。注意当您运行验证时,输出中的
Reasons列仅限于 79 个字符。要查看验证结果已满,请查看验证日志文件。
检查所有服务和容器是否活跃且健康:
validation run --validation service-status --limit undercloud -i <inventory_file>
$ validation run --validation service-status --limit undercloud -i <inventory_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. 启动 Controller 节点 复制链接链接已复制到粘贴板!
作为启动 Red Hat OpenStack Platform 环境的一部分,打开每个 Controller 节点电源,并检查节点上的非 Pacemaker 服务。
先决条件
- Controller 节点已关机。
流程
- 打开每个 Controller 节点电源。
验证
-
以
root用户身份登录每个 Controller 节点。 检查 Controller 节点上的服务:
systemctl -t service
$ systemctl -t serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 只有基于非 Pacemaker 的服务正在运行。
等待 Pacemaker 服务启动并检查服务是否已启动:
pcs status
$ pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您的环境使用 Instance HA,Pacemaker 资源不会在您启动 Compute 节点或使用
pcs stonith confirm <compute_node> 命令执行手动unfence 操作前启动。您必须在使用 Instance HA 的每个 Compute 节点上运行此命令。
3.4.3. 启动 Ceph Storage 节点 复制链接链接已复制到粘贴板!
作为启动 Red Hat OpenStack Platform 环境的一部分,打开 Ceph MON 和 Ceph Storage 节点电源,并启用 Ceph Storage 服务。
先决条件
- 已关闭电源的 Ceph Storage 集群
- Ceph MON 服务在已关闭电源的单机 Ceph MON 节点或已打开电源的 Controller 节点上启用
步骤
- 如果您的环境有单机 Ceph MON 节点,请打开每个 Ceph MON 节点电源。
- 打开每个 Ceph Storage 节点电源。
-
以
root用户身份登录运行 Ceph MON 服务的节点,如 Controller 节点或单机 Ceph MON 节点。 检查集群节点的状态:在以下示例中,
podman命令在 Controller 节点上的 Ceph MON 容器中运行状态检查:sudo podman exec -it ceph-mon-controller-0 ceph status
# sudo podman exec -it ceph-mon-controller-0 ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保每个节点都已打开电源并连接。
为集群取消设置
noout、norecover、norebalance、nobackfill、nodown和pause标志。在以下示例中,podman命令通过 Controller 节点上的 Ceph MON 容器取消设置这些标志:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查集群的运行状况。在以下示例中,
podman命令在 Controller 节点上的 Ceph MON 容器中运行状态检查:sudo podman exec -it ceph-mon-controller-0 ceph status
# sudo podman exec -it ceph-mon-controller-0 ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保状态为
HEALTH_OK。
3.4.4. 启动 Compute 节点 复制链接链接已复制到粘贴板!
作为启动 Red Hat OpenStack Platform 环境的一部分,打开每个 Compute 节点电源并检查节点上的服务。
先决条件
- 关闭 Compute 节点电源
步骤
- 打开每个 Compute 节点电源。
验证
-
以
root用户身份登录每个 Compute。 检查 Compute 节点上的服务:
systemctl -t service
$ systemctl -t serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.5. 启动 overcloud Compute 节点上的实例 HA 服务 复制链接链接已复制到粘贴板!
作为启动 Red Hat OpenStack Platform 环境的一部分,启动 Compute 节点上的所有实例 HA 服务。
前提条件
- 带有运行 Compute 节点的 overcloud
- Compute 节点上启用了实例 HA
流程
-
以
root用户身份登录运行 Pacemaker 的 overcloud 节点。 为 Compute 节点启用 STONITH 设备:
识别 Compute 节点 STONITH 设备:
pcs stonith status
# pcs stonith statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 清除 Compute 节点的 STONITH 错误:
pcs stonith confirm <COMPUTE_NODE>
# pcs stonith confirm <COMPUTE_NODE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令将节点返回到干净的 STONITH 状态。
启用 Compute 节点 STONITH 设备:
pcs stonith enable <STONITH_DEVICE>
# pcs stonith enable <STONITH_DEVICE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用 STONITH 为每个 Compute 节点执行这些步骤。
在每个 Compute 节点上启用 Pacemaker 远程资源:
识别 Compute 节点上的 Pacemaker 远程资源:
pcs resource status
# pcs resource statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这些资源使用
ocf::pacemaker:remote代理,通常以 Compute 节点主机格式命名,如overcloud-novacomputeiha-0。启用每个 Pacemaker 远程资源。以下示例演示了如何为
overcloud-novacomputeiha-0启用资源:pcs resource enable overcloud-novacomputeiha-0
# pcs resource enable overcloud-novacomputeiha-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用 Pacemaker 远程管理为每个 Compute 节点执行这些步骤。
等待 Pacemaker 服务启动并检查服务是否已启动:
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果任何 Pacemaker 资源在引导过程中无法启动,请重置状态以及资源的失败计数:
pcs resource cleanup
# pcs resource cleanupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意有些服务可能需要更多时间才能启动,如
fence_compute和fence_kdump。
3.4.6. 启动 overcloud Compute 节点上的实例 复制链接链接已复制到粘贴板!
作为启动 Red Hat OpenStack Platform 环境的一部分,启动 Compute 节点上的实例。
先决条件
- 具有活跃节点的活跃 overcloud
步骤
-
以
stack用户身份登录 undercloud。 提供 overcloud 的凭据文件:
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查看 overcloud 中运行的实例:
openstack server list --all-projects
$ openstack server list --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 overcloud 中的实例:
openstack server start <INSTANCE>
$ openstack server start <INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 在 Compute 节点上通过 Instance HA 执行维护 复制链接链接已复制到粘贴板!
要在 Compute 节点或带有 Instance HA 的 Controller 节点上执行维护,请通过将其设置为 待机模式 并禁用节点上的 Pacemaker 资源来停止该节点。完成维护工作后,您可以启动节点并检查 Pacemaker 资源是否健康。
前提条件
- 已启用实例 HA 的运行的 overcloud
流程
登录到 Controller 节点并停止 Compute 或 Controller 节点:
pcs node standby <node UUID>
# pcs node standby <node UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您必须登录到您要停止的节点的不同节点。
禁用节点上的 Pacemaker 资源:
pcs resource disable <ocf::pacemaker:remote on the node>
# pcs resource disable <ocf::pacemaker:remote on the node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在节点上执行任何维护工作。
- 恢复 IPMI 连接并启动节点。等待节点就绪,然后继续。
在节点上启用 Pacemaker 资源并启动节点:
pcs resource enable <ocf::pacemaker:remote on the node> pcs node unstandby <node UUID>
# pcs resource enable <ocf::pacemaker:remote on the node> # pcs node unstandby <node UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果将节点设置为维护模式,请提供 undercloud 的凭据文件,并从维护模式取消设置节点:
source stackrc openstack baremetal node maintenance unset <baremetal node UUID>
# source stackrc # openstack baremetal node maintenance unset <baremetal node UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查 Pacemaker 资源是否活跃且健康:
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果任何 Pacemaker 资源在启动过程中无法启动,请运行
pcs resource cleanup命令来重置状态以及资源的失败计数。 如果在停止节点前从 Compute 节点撤离实例,请检查实例是否已迁移到其他节点:
openstack server list --long nova migration-list
# openstack server list --long # nova migration-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow