11.11. 重新引导 overcloud
执行小的 Red Hat OpenStack Platform (RHOSP)更新至最新的 17.1 版本后,重启您的 overcloud。重启会使用任何关联的内核、系统级和容器组件更新刷新节点。这些更新提供了性能和安全优势。计划停机时间来执行重启过程。
使用以下指导了解如何重新引导不同的节点类型:
- 如果重新引导一个角色中的所有节点,请单独重新引导每个节点。如果您同时重新引导角色中的所有节点,则重启操作过程中可能会发生服务停机时间。
按照以下顺序在节点上完成重启步骤:
11.11.1. 重新引导 Controller 和可组合节点
根据可组合角色重新引导 Controller 节点和独立节点,并排除 Compute 节点和 Ceph Storage 节点。
流程
- 登录您要重新引导的节点。
可选:如果节点使用 Pacemaker 资源,请停止集群:
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs cluster stop
重新引导节点:
[tripleo-admin@overcloud-controller-0 ~]$ sudo reboot
- 稍等片刻,直到节点启动。
验证
验证服务是否已启用。
如果该节点使用 Pacemaker 服务,请检查该节点是否已重新加入集群:
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs status
如果该节点使用 Systemd 服务,请检查是否所有服务都已启用:
[tripleo-admin@overcloud-controller-0 ~]$ sudo systemctl status
如果该节点使用容器化服务,则检查节点上的所有容器是否已激活:
[tripleo-admin@overcloud-controller-0 ~]$ sudo podman ps
11.11.2. 重新引导 Ceph Storage (OSD) 集群
完成以下步骤以重新引导 Ceph Storage (OSD) 节点集群。
先决条件
在运行
ceph-mon
服务的 Ceph monitor 或 Controller 节点上,检查 Red Hat Ceph Storage 集群状态是否健康,pg 状态为active+clean
:$ sudo cephadm -- shell ceph status
如果 Ceph 集群处于健康状态,它会返回
HEALTH_OK
状态。如果 Ceph 集群状态不健康,它将返回
HEALTH_WARN
或HEALTH_ERR
的状态。有关故障排除指南,请参阅 Red Hat Ceph Storage 5 故障排除指南 或 Red Hat Ceph Storage 6 故障排除指南。
流程
登录到运行
ceph-mon
服务的 Ceph Monitor 或 Controller 节点,并临时禁用 Ceph Storage 集群重新平衡:$ sudo cephadm shell -- ceph osd set noout $ sudo cephadm shell -- ceph osd set norebalance
注意如果您有多堆栈或分布式计算节点(DCN)架构,您必须在设置
noout
和norebalance
标志时指定 Ceph 集群名称。例如:sudo cephadm shell -c /etc/ceph/<cluster>.conf -k /etc/ceph/<cluster>.client.keyring
。- 选择第一个要重新引导的 Ceph Storage 节点并登录到该节点。
重新引导节点:
$ sudo reboot
- 稍等片刻,直到节点启动。
登录节点并检查 Ceph 集群状态:
$ sudo cephadm -- shell ceph status
确认
pgmap
报告的所有pgs
的状态是否都正常 (active+clean
)。- 注销节点,重新引导下一个节点,并检查其状态。重复此过程,直到您已重新引导所有 Ceph Storage 节点。
完成后,登录到运行
ceph-mon
服务的 Ceph Monitor 或 Controller 节点,并启用 Ceph 集群重新平衡:$ sudo cephadm shell -- ceph osd unset noout $ sudo cephadm shell -- ceph osd unset norebalance
注意如果您有多堆栈或分布式计算节点(DCN)架构,您必须在取消设置
noout
和norebalance
标志时指定 Ceph 集群名称。例如:sudo cephadm shell -c /etc/ceph/<cluster>.conf -k /etc/ceph/<cluster>.client.keyring
执行最后的状态检查,确认集群报告
HEALTH_OK
:$ sudo cephadm shell ceph status
11.11.3. 重新引导 Compute 节点
为确保 Red Hat OpenStack Platform 环境中 实例的停机时间最少,迁移实例工作流 概述了从您要重新引导的 Compute 节点迁移实例的步骤。
迁移实例工作流
- 决定是否在重新引导节点前将实例迁移到另一个 Compute 节点。
- 选择并禁用您要重新引导的 Compute 节点,使其不置备新实例。
- 将实例迁移到另一个 Compute 节点中。
- 重新引导空的 Compute 节点。
- 启用空的 Compute 节点。
先决条件
重启 Compute 节点之前,必须决定是否在节点重启过程中将实例迁移到另一个 Compute 节点。
查看在 Compute 节点之间迁移虚拟机实例时可能会遇到的迁移限制列表。如需更多信息,请参阅为实例创建配置 Compute Service 中的迁移限制。
注意如果您有 Multi-RHEL 环境,并且希望将虚拟机从运行 RHEL 9.2 的 Compute 节点迁移到运行 RHEL 8.4 的 Compute 节点,则只支持冷迁移。有关冷迁移的更多信息,请参阅配置 计算服务 以进行实例创建中的冷迁移实例。
如果您无法迁移实例,则可设置以下核心模板参数以在 Compute 节点重启后控制实例的状态:
NovaResumeGuestsStateOnHostBoot
-
确定重新引导后是否将实例返回 Compute 节点上的相同状态。设为
False
时,实例保持关闭,必须手动启动。默认值为False
。 NovaResumeGuestsShutdownTimeout
重启前等待实例被关闭的时间(以秒为单位)。建议不要将此值设置为
0
。默认值为300
。有关 overcloud 参数及其用法的更多信息,请参阅 Overcloud 参数。
流程
-
以
stack
用户身份登录 undercloud。 检索 Compute 节点列表,以识别您要重新引导的节点的主机名:
(undercloud)$ source ~/overcloudrc (overcloud)$ openstack compute service list
识别您要重新引导的 Compute 节点的主机名。
在您要重新引导的 Compute 节点上禁用 Compute 服务:
(overcloud)$ openstack compute service list (overcloud)$ openstack compute service set <hostname> nova-compute --disable
-
将
<hostname
> 替换为 Compute 节点的主机名。
-
将
列出 Compute 节点上的所有实例:
(overcloud)$ openstack server list --host <hostname> --all-projects
可选: 要将实例迁移到另一个 Compute 节点,请完成以下步骤:
如果您决定将实例迁移至另一个 Compute 节点,则使用以下命令之一:
要将实例迁移到其他主机,请运行以下命令:
(overcloud) $ openstack server migrate <instance_id> --live <target_host> --wait
-
将
<instance_id&
gt; 替换为您的实例 ID。 -
将
<target_host
> 替换为您要将实例迁移到的主机。
-
将
让
nova-scheduler
自动选择目标主机:(overcloud) $ nova live-migration <instance_id>
一次性实时迁移所有实例:
$ nova host-evacuate-live <hostname>
注意nova
命令可能会引发一些弃用警告,这些警告信息可以被安全忽略。
- 稍等片刻,直至迁移完成。
确认迁移成功完成:
(overcloud) $ openstack server list --host <hostname> --all-projects
- 继续迁移实例,直到 Compute 节点上没有保留任何实例。
登录到 Compute 节点并重启节点:
[tripleo-admin@overcloud-compute-0 ~]$ sudo reboot
- 稍等片刻,直到节点启动。
重新启用 Compute 节点:
$ source ~/overcloudrc (overcloud) $ openstack compute service set <hostname> nova-compute --enable
确认是否已启用 Compute 节点:
(overcloud) $ openstack compute service list
11.11.4. 在 overcloud 更新后验证 RHOSP
更新 Red Hat OpenStack Platform (RHOSP)环境后,使用 tripleo-validations
playbook 验证 overcloud。
有关验证的更多信息, 请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的使用验证框架。
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
运行验证:
$ validation run -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml --group post-update
- 将 <stack> 替换为堆栈的名称。
验证
- 要查看验证报告的结果,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 查看验证历史记录。
忽略报告 No host 与唯一返回错误匹配的
FAILED
验证。此错误意味着您没有与验证主机组匹配的主机,这可能是预期的。FAILED
验证不会阻止您使用更新的 RHOSP 环境。但是,FAILED
验证可能会指示您的环境出现问题。