Compute 实例的高可用性
为 Compute 实例配置高可用性
摘要
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
对红帽文档提供反馈
我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。
使用直接文档反馈(DDF)功能
使用 添加反馈 DDF 功能,用于特定句子、段落或代码块上的直接注释。
- 以 Multi-page HTML 格式查看文档。
- 请确定您看到文档右上角的 反馈 按钮。
- 用鼠标指针高亮显示您想评论的文本部分。
- 点 添加反馈。
- 在添加反馈项中输入您的意见。
- 可选:添加您的电子邮件地址,以便文档团队可以联系您以讨论您的问题。
- 点 Submit。
第 1 章 介绍和规划实例 HA 部署
Compute 实例的高可用性(Instance HA)是一种可用于从故障 Compute 节点撤离实例的工具,并在不同的 Compute 节点上重新创建实例。
实例 HA 使用共享存储或本地存储环境,这意味着撤离实例维护相同的网络配置,如静态 IP 地址和浮动 IP 地址。重新创建的实例还在新 Compute 节点中维护相同的特征。
1.1. 实例 HA 的工作原理
当 Compute 节点出现故障时,overcloud 隔离代理将隔离该节点,然后实例 HA 代理从故障 Compute 节点撤离到不同的 Compute 节点。
当 Compute 节点失败并触发 Instance HA 时,会出现以下事件:
-
在出现故障时,
IPMI
代理执行第一层隔离,包括物理重置节点以确保其关闭并防止数据损坏或 overcloud 上的多个相同实例。当节点离线时,它被视为隔离。 物理 IPMI 隔离后,
fence-nova
代理会自动执行第二层隔离功能,并通过运行以下命令,使用"vacuate=yes"
集群标记隔离的节点:$ attrd_updater -n evacuate -A name="evacuate" host="FAILEDHOST" value="yes"
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 节点上的相同卷引导实例。因此,撤离的实例会立即重启其作业,因为 OS 镜像和应用程序数据存储在 OpenStack Block Storage 卷中。
-
如果在 Spine-Leaf 环境中部署 Instance HA,您必须为 Controller 和 Compute 节点定义单个
internal_api
网络。然后,您可以为每个分支定义子网。有关配置 Spine-Leaf 网络的更多信息,请参阅 Spine Leaf Networking 指南中的 创建角色 数据文件。 - 从 Red Hat OpenStack Platform 13 及之后的版本,使用 director 升级实例 HA 作为 overcloud 升级的一部分。有关升级 overcloud 的更多信息,请参阅 保持 Red Hat OpenStack Platform 更新 指南。
不支持在安装后使用 director 禁用实例 HA。有关从部署中手动删除 Instance HA 组件的一个临时解决方案,请参阅 如何把实例 HA 组件从控制器节点中删除?.
重要在生产环境中不验证这个临时解决方案。在在生产环境中实施前,您必须验证测试环境中的步骤。
1.3. 实例 HA 资源代理
实例 HA 使用 fence_compute
、NovaEvacuate
和 comput-unfence-trigger
资源代理来撤离和重新创建的实例(如果计算节点出现故障)。
代理名称 | 集群内部的名称 | 角色 |
---|---|---|
|
| 在节点不可用时标记用于撤离的 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 前,在 roles-data.yaml
文件中添加 Instance HA 角色,创建 Instance HA 类别,标记您要使用 Instance HA 配置集管理的 Comput 节点,并将 Instance HA 角色映射到 Instance HA 类别。
您可以根据您的环境修改此流程中的示例文件和角色名称。
流程
将
ComputeInstanceHA
角色添加到您的roles-data.yaml
文件中,并重新生成该文件。$ openstack overcloud roles generate -o ~/my_roles_data.yaml Controller Compute ComputeInstanceHA
ComputeInstanceHA
角色包含默认Compute
角色、ComputeInstanceHA
服务和PacemakerRemote
服务中的所有服务。创建
compute-instance-ha
类别来标记计算节点,以管理有实例 HA。$ source ~/stackrc $ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 compute-instance-ha $ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="compute-instance-ha" compute-instance-ha $ openstack flavor set --property resources:VCPU=0 --property resources:MEMORY_MB=0 --property resources:DISK_GB=0 --property resources:CUSTOM_BAREMETAL=1 compute-instance-ha
使用
compute-instance-ha
配置集标记您要使用 Instance HA 管理的每个 Compute 节点,并将 <NODE UUID>
; 替换为实际 UUID:$ openstack baremetal node set --property capabilities='profile:compute-instance-ha,boot_option:local' <NODE UUID>
通过创建包含以下内容的环境文件,将
ComputeInstanceHA
角色映射到compute-instance-ha
类别:parameter_defaults: OvercloudComputeInstanceHAFlavor: compute-instance-ha
其他资源
2.2. 在带有实例 HA 的 overcloud 中启用隔离
通过创建包含隔离信息的环境文件,在 overcloud 中的所有 Controller 和 Compute 节点上启用隔离。
流程
在可访问位置(如 ~/templates )中创建环境文件,并包含以下内容:
parameter_defaults: EnableFencing: true FencingConfig: devices: - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:c7 params: login: admin ipaddr: 192.168.24.1 ipport: 6230 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:cb params: login: admin ipaddr: 192.168.24.1 ipport: 6231 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:cf params: login: admin ipaddr: 192.168.24.1 ipport: 6232 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:d3 params: login: admin ipaddr: 192.168.24.1 ipport: 6233 passwd: password lanplus: 1 - agent: fence_ipmilan host_mac: 00:ec:ad:cb:3c:d7 params: login: admin ipaddr: 192.168.24.1 ipport: 6234 passwd: password lanplus: 1
如果没有将共享存储用于 Compute 实例,请在您创建的环境文件中添加以下参数:
parameter_defaults: ExtraConfig: tripleo::instanceha::no_shared_storage: true
2.3. 使用实例 HA 部署 overcloud
如果您已经部署了 overcloud,请使用您创建的额外 Instance HA 文件重新运行 openstack overcloud deploy
命令。您可以在创建 undercloud 后随时为 overcloud 配置 Instance HA。
前提条件
- 实例 HA 角色、类别和配置文件已配置。
- overcloud 上启用了隔离。
流程
将
openstack overcloud deploy
命令与您创建的每个环境文件以及compute-instanceha.yaml
环境文件的-e
选项一起使用。使用您的环境的具体名称替换<FLAVOR_ENV_FILE>
和<FENCING_ENV_FILE>
:$ openstack overcloud deploy --templates \ -e <FLAVOR_ENV_FILE> \ -e <FENCING_ENV_FILE> \ -r my_roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/compute-instanceha.yaml
注意-
不要修改
compute-instanceha.yaml
环境文件。 - 包括您要包含在 overcloud 部署中的每个环境文件的完整路径。
-
不要修改
部署完成后,每个 Compute 节点都包含 STONITH
设备和 GuestNode
服务。
2.4. 测试实例 HA 撤离
要正确测试 Instance HA 撤离实例,您需要对 Compute 节点上触发撤离,并检查 Instance HA 代理是否成功撤离并在不同的 Compute 节点上重新创建实例。
以下流程涉及有意崩溃 Compute 节点,从而触发使用 Instance 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
登录托管实例的 Compute 节点,并更改为
root
用户。将compute-n
替换为 Compute 节点的名称:stack@director $ . stackrc stack@director $ ssh -l heat-admin compute-n heat-admin@compute-n $ su -
崩溃 Compute 节点。
root@compute-n $ echo c > /proc/sysrq-trigger
等待几分钟,让节点重启,然后验证您在另一个 Compute 节点上重新创建崩溃的 Compute 节点上的实例:
stack@director $ openstack server list -c Name -c Status stack@director $ openstack compute service list
2.5. 使用实例 HA 设计实例
默认情况下,实例 HA 从故障节点中清空所有实例。您可以将实例 HA 配置为仅撤离具有特定镜像或类别的实例。
前提条件
- 实例 HA 部署在 overcloud 上。
流程
-
以
stack
用户身份登录 undercloud。 获取
overcloudrc
文件:$ source ~/overcloudrc
使用以下选项之一:
标记镜像:
(overcloud) $ openstack image set --tag evacuable <image_id>
将
<image_id
> 替换为您要撤离的镜像 ID。标记类别:
(overcloud) $ openstack flavor set --property evacuable=true <flavor_id>
将
<flavor_id
> 替换为您要撤离的类别 ID。
2.6. 其他资源
第 3 章 使用实例 HA 对 undercloud 和 overcloud 执行维护
要对 undercloud 和 overcloud 执行维护,您必须按特定方式关闭并启动 undercloud 和 overcloud 节点,以确保启动 overcloud 时出现最少的问题。您还可以通过停止节点并禁用节点上的 Pacemaker 资源,在特定 Compute 或 Controller 节点上执行维护。
3.1. 前提条件
- 已启用实例 HA 运行 undercloud 和 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
查看 overcloud 中运行的实例:
$ openstack server list --all-projects
停止 overcloud 中的每个实例:
$ openstack server stop <INSTANCE>
对每个实例重复这一步,直到停止 overcloud 中的所有实例。
3.2.2. 停止 overcloud Compute 节点上的实例 HA 服务
作为关闭 Red Hat OpenStack Platform 环境的一部分,您必须关闭在 Compute 节点上运行的所有 Instance HA 服务,然后再停止实例并关闭 Compute 节点。
前提条件
- 具有活跃 Compute 服务的 overcloud
- Compute 节点上启用了实例 HA
流程
-
以
root
用户身份登录运行 Pacemaker 的 overcloud 节点。 在每个 Compute 节点上禁用 Pacemaker 远程资源:
识别 Compute 节点上的 Pacemaker 远程资源:
# pcs resource status
这些资源使用
ocf::pacemaker:remote
代理,通常使用 Compute 节点主机格式命名,如overcloud-novacomputeiha-0
。禁用每个 Pacemaker 远程资源。以下示例演示了如何禁用
overcloud-novacomputeiha-0
资源:# pcs resource disable overcloud-novacomputeiha-0
禁用 Compute 节点 STONITH 设备:
识别 Compute 节点 STONITH 设备:
# pcs stonith status
禁用每个 Compute 节点 STONITH 设备:
# pcs stonith disable <STONITH_DEVICE>
3.2.3. 关闭 Compute 节点
作为关闭 Red Hat OpenStack Platform 环境的一部分,登录并关闭每个 Compute 节点。
先决条件
- 关闭 Compute 节点上的所有实例:
步骤
-
以
root
用户身份登录 Compute 节点。 关闭该节点:
# shutdown -h now
- 对每个 Compute 节点执行这些步骤,直到关闭所有 Compute 节点。
3.2.4. 停止 Controller 节点上的服务
作为关闭 Red Hat OpenStack Platform 环境的一部分,在关闭 Controller 节点前停止节点上的服务。这包括 Pacemaker 和 systemd 服务。
先决条件
- 具有活跃 Pacemaker 服务的 overcloud
步骤
-
以
root
用户身份登录 Controller 节点。 停止 Pacemaker 集群。
# pcs cluster stop --all
此命令停止所有节点上的集群。
等待 Pacemaker 服务停止并检查服务是否已停止。
检查 Pacemaker 状态:
# pcs status
检查 Podman 中没有 Pacemaker 服务在运行:
# podman ps --filter "name=.*-bundle.*"
停止 Red Hat OpenStack Platform 服务:
# systemctl stop 'tripleo_*'
等待服务停止,检查 Podman 中服务不再运行:
# podman ps
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
确保状态为
HEALTH_OK
。为集群设置
noout
、norecover
、norebalance
、nobackfill
、nodown
和pause
标志。在以下示例中,podman
命令通过 Controller 节点上的 Ceph MON 容器设置这些标志:# sudo podman exec -it ceph-mon-controller-0 ceph osd set noout # sudo podman exec -it ceph-mon-controller-0 ceph osd set norecover # sudo podman exec -it ceph-mon-controller-0 ceph osd set norebalance # sudo podman exec -it ceph-mon-controller-0 ceph osd set nobackfill # sudo podman exec -it ceph-mon-controller-0 ceph osd set nodown # sudo podman exec -it ceph-mon-controller-0 ceph osd set pause
关闭每个 Ceph Storage 节点:
-
以
root
用户身份登录 Ceph Storage 节点。 关闭该节点:
# shutdown -h now
- 对每个 Ceph Storage 节点执行这些步骤,直到关闭所有 Ceph Storage 节点。
-
以
关闭任何单机 Ceph MON 节点:
-
以
root
用户身份登录单机 Ceph MON 节点。 关闭该节点:
# shutdown -h now
- 对每个单机 Ceph MON 节点执行这些步骤,直到关闭所有单机 Ceph MON 节点。
-
以
3.2.6. 关闭 Controller 节点
作为关闭 Red Hat OpenStack Platform 环境的一部分,登录并关闭每个 Controller 节点。
先决条件
- 停止 Pacemaker 集群
- 停止 Controller 节点上的所有 Red Hat OpenStack Platform 服务
步骤
-
以
root
用户身份登录 Controller 节点。 关闭该节点:
# shutdown -h now
- 对每个 Controller 节点执行这些步骤,直到关闭所有 Controller 节点。
3.2.7. 关闭 undercloud
作为关闭 Red Hat OpenStack Platform 环境的一部分,登录到 undercloud 节点并关闭 undercloud。
先决条件
- 正在运行的 undercloud
步骤
-
以
stack
用户身份登录 undercloud。 关闭 undercloud:
$ sudo shutdown -h now
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。 检查 undercloud 上的服务:
$ systemctl list-units 'tripleo_*'
提供 undercloud 的凭据文件,并运行验证命令来检查所有服务和容器是否活跃且正常运行。
$ source stackrc $ openstack tripleo validator run --validation service-status --limit undercloud
其他资源
3.4.2. 启动 Controller 节点
作为启动 Red Hat OpenStack Platform 环境的一部分,打开每个 Controller 节点电源,并检查节点上的非 Pacemaker 服务。
先决条件
- 关闭 Controller 节点电源
步骤
- 打开每个 Controller 节点电源。
验证
-
以
root
用户身份登录每个 Controller 节点。 检查 Controller 节点上的服务:
$ systemctl -t service
只有基于非 Pacemaker 的服务正在运行。
等待 Pacemaker 服务启动并检查服务是否已启动:
$ pcs status
注意如果您的环境使用 Instance HA,则在启动 Compute 节点或使用
pcs stonith confirm <compute_node
> 命令执行手动未隔离操作前,Pacemaker 资源才会启动。您必须在使用 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
确保每个节点都已打开电源并连接。
为集群取消设置
noout
、norecover
、norebalance
、nobackfill
、nodown
和pause
标志。在以下示例中,podman
命令通过 Controller 节点上的 Ceph MON 容器取消设置这些标志:# sudo podman exec -it ceph-mon-controller-0 ceph osd unset noout # sudo podman exec -it ceph-mon-controller-0 ceph osd unset norecover # sudo podman exec -it ceph-mon-controller-0 ceph osd unset norebalance # sudo podman exec -it ceph-mon-controller-0 ceph osd unset nobackfill # sudo podman exec -it ceph-mon-controller-0 ceph osd unset nodown # sudo podman exec -it ceph-mon-controller-0 ceph osd unset pause
验证
检查集群的运行状况。在以下示例中,
podman
命令在 Controller 节点上的 Ceph MON 容器中运行状态检查:# sudo podman exec -it ceph-mon-controller-0 ceph status
确保状态为
HEALTH_OK
。
3.4.4. 启动 Compute 节点
作为启动 Red Hat OpenStack Platform 环境的一部分,打开每个 Compute 节点电源并检查节点上的服务。
先决条件
- 关闭 Compute 节点电源
步骤
- 打开每个 Compute 节点电源。
验证
-
以
root
用户身份登录每个 Compute。 检查 Compute 节点上的服务:
$ systemctl -t service
3.4.5. 启动 overcloud Compute 节点上的实例 HA 服务
作为启动 Red Hat OpenStack Platform 环境的一部分,启动 Compute 节点上的所有 Instance HA 服务。
前提条件
- 带有运行 Compute 节点的 overcloud
- Compute 节点上启用了实例 HA
流程
-
以
root
用户身份登录运行 Pacemaker 的 overcloud 节点。 为 Compute 节点启用 STONITH 设备:
识别 Compute 节点 STONITH 设备:
# pcs stonith status
清除 Compute 节点的任何 STONITH 错误:
# pcs stonith confirm <COMPUTE_NODE>
这个命令将节点返回到干净的 STONITH 状态。
启用 Compute 节点 STONITH 设备:
# pcs stonith enable <STONITH_DEVICE>
- 使用 STONITH 对每个 Compute 节点执行这些步骤。
在每个 Compute 节点上启用 Pacemaker 远程资源:
识别 Compute 节点上的 Pacemaker 远程资源:
# pcs resource status
这些资源使用
ocf::pacemaker:remote
代理,通常使用 Compute 节点主机格式命名,如overcloud-novacomputeiha-0
。启用每个 Pacemaker 远程资源。以下示例演示了如何为
overcloud-novacomputeiha-0
启用资源:# pcs resource enable overcloud-novacomputeiha-0
- 通过 Pacemaker 远程管理为每个 Compute 节点执行这些步骤。
等待 Pacemaker 服务启动并检查服务是否已启动:
# pcs status
如果有任何 Pacemaker 资源在引导过程中无法启动,请重置状态以及资源失败计数:
# pcs resource cleanup
注意有些服务可能需要更多时间来启动,如
fence_compute
和fence_kdump
。
3.4.6. 启动 overcloud Compute 节点上的实例
作为启动 Red Hat OpenStack Platform 环境的一部分,启动 Compute 节点上的实例。
先决条件
- 具有活跃节点的活跃 overcloud
步骤
-
以
stack
用户身份登录 undercloud。 提供 overcloud 的凭据文件:
$ source ~/overcloudrc
查看 overcloud 中运行的实例:
$ openstack server list --all-projects
启动 overcloud 中的实例:
$ openstack server start <INSTANCE>
第 4 章 在 Compute 节点上通过 Instance HA 执行维护
要对 Compute 节点或带有 Instance HA 的 Controller 节点执行维护,请通过设置为 待机模式
并禁用节点上的 Pacemaker 资源来停止该节点。完成维护工作后,启动节点并检查 Pacemaker 资源是否健康。
前提条件
- 启用 Instance HA 的正在运行的 overcloud
流程
登录到 Controller 节点并停止 Compute 或 Controller 节点:
# pcs node standby <node UUID>
重要您必须登录到您要停止的节点中的不同节点。
禁用节点上的 Pacemaker 资源:
# pcs resource disable <ocf::pacemaker:remote on the node>
- 在节点上执行任何维护工作。
- 恢复 IPMI 连接并启动节点。等待节点就绪,然后继续。
在节点上启用 Pacemaker 资源并启动该节点:
# pcs resource enable <ocf::pacemaker:remote on the node> # pcs node unstandby <node UUID>
如果将节点设置为维护模式,提供 overcloud 的凭据文件,并从维护模式取消节点:
# source stackrc # openstack baremetal node maintenance unset <baremetal node UUID>
验证
检查 Pacemaker 资源是否活跃且健康:
# pcs status
-
如果有任何 Pacemaker 资源在引导过程中启动失败,请运行
pcs resource cleanup
命令重置状态以及资源失败计数。 如果在停止节点前从 Compute 节点撤离实例,请检查实例是否已迁移到其他节点:
# openstack server list --long # nova migration-list