执行 Red Hat OpenStack Platform 的次要更新
将最新的程序错误修复和安全改进应用到 Red Hat OpenStack Platform
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。
使用 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 章 准备次要更新 复制链接链接已复制到粘贴板!
使用最新的软件包和容器保持您的 Red Hat OpenStack Platform (RHOSP) 17.1 环境更新。
对以下版本使用升级路径:
| 旧的 RHOSP 版本 | 新的 RHOSP 版本 |
|---|---|
| Red Hat OpenStack Platform 17.0.z | Red Hat OpenStack Platform 17.1 latest |
| Red Hat OpenStack Platform 17.1.z | Red Hat OpenStack Platform 17.1 latest |
次要更新工作流
RHOSP 环境的次要更新涉及更新 undercloud 和 overcloud 主机上的 RPM 软件包和容器,以及服务配置(如果需要)。data plane 和 control plane 在次版本更新过程中被完全支持。您必须完成以下步骤来更新 RHOSP 环境:
| 更新步骤 | 描述 |
|---|---|
| Undercloud 更新 | director 软件包已更新,容器会被替换,undercloud 被重启。 |
|
使用 ML2/OVN 的集群的 OVN |
所有 |
| hal-image-update 外部 | 更新 Pacemaker 控制的服务的容器镜像名称。没有服务中断。此步骤只适用于将系统从 17.0.z 更新至最新的 17.1 版本的客户。 |
| Overcloud 更新包含 Pacemaker 服务的 Controller 节点和可组合节点 | 在 Overcloud 更新过程中,每个主机都会停止 Pacemaker 服务。虽然 Pacemaker 服务已停止,但主机上的 RPM、容器配置数据和容器被更新。当 Pacemaker 服务重启时,主机会再次添加。 |
| Overcloud 在没有 Pacemaker 服务的情况下更新可组合节点 | Networker、ObjectStorage、BlockStorage 或其他不包含 Pacemaker 服务的角色都会一次更新一个节点。 |
| Compute 节点的 overcloud 更新 | 多个节点并行更新。并行运行节点的默认值是 25。 |
| Ceph 节点的 overcloud 更新 | Ceph 节点一次更新一个节点。 |
| Ceph 集群更新 |
Ceph 服务通过使用 |
如果您有多堆栈基础架构,请完全更新每个 overcloud 堆栈,一次逐一逐一更新。如果您有分布式计算节点(DCN)基础架构,请在中央位置完全更新 overcloud,然后在每个边缘站点上完全更新 overcloud,一次逐一更新 overcloud。
另外,管理员可以在次版本更新过程中执行以下操作:
- 迁移虚拟机
- 创建虚拟机网络
- 运行额外的云操作
在次版本更新过程中不支持以下操作:
- 替换 Controller 节点
- 缩减或扩展任何角色
更新 RHOSP 环境前的注意事项
要帮助您在更新过程中为您提供指导,请考虑以下信息:
- 红帽建议备份 undercloud 和 overcloud control plane。有关备份节点的更多信息,请参阅 备份和恢复 undercloud 和 control plane 节点。
- 熟悉可能会阻止更新的已知问题。
- 在开始更新前,请熟悉可能的更新和升级路径。更多信息请参阅 第 1.1 节 “长生命版本的升级路径”。
-
要识别您当前的维护版本,请运行
$ cat /etc/rhosp-release。您还可以在更新环境后运行此命令以验证更新。
不支持使用单个 Controller 节点的更新。
流程
要为次版本更新准备 RHOSP 环境,请完成以下步骤:
1.1. 长生命版本的升级路径 复制链接链接已复制到粘贴板!
在开始更新前,请熟悉可能的更新和升级路径。
您可以在 /etc/rhosp-release 和 /etc/redhat-release 文件中查看当前的 RHOSP 和 RHEL 版本。
| 当前版本 | 目标版本 |
|---|---|
| RHOSP 17.0.x on RHEL 9.0 | RHOSP 17.0 latest on RHEL 9.0 latest |
| RHOSP 17.1.x on RHEL 9.2 | RHOSP 17.1 latest on RHEL 9.2 latest |
| 当前版本 | 目标版本 |
|---|---|
| RHEL 7.7 上的 RHOSP 10 | RHOSP 13 最新的 RHEL 7.9 |
| RHEL 7.9 上的 RHOSP 13 | RHOSP 16.1 latest on RHEL 8.2 latest |
| RHEL 7.9 上的 RHOSP 13 | RHOSP 16.2 latest on RHEL 8.4 latest |
| RHEL 8.4 上的 RHOSP 16 | RHOSP 17.1 latest on RHEL 9.0 |
如需更多信息,请参阅升级 框架(16.2 到 17.1)。
1.2. 已知的可能会阻止次版本更新的问题 复制链接链接已复制到粘贴板!
查看可能会影响成功更新的以下已知问题。
在从 Red Hat OpenStack Platform (RHOSP) 17.1 GA、17.1.1 和 17.1.2 更新至 RHOSP 17.1.4 时,当使用 Open Virtual Network (OVN)后端时,外部运行 OVN 更新过程中可能会出现短暂的网络 API 中断。
如果您的 Red Hat OpenStack Platform (RHOSP) 17.0 环境使用 ML2/OVN 部署,则无法直接从 RHOSP 17.0 更新至 17.1.4。您必须先更新至 RHOSP 17.0.1。如需更多信息,请参阅 保持 Red Hat OpenStack Platform 更新。
如果您的 RHOSP 17.1.3 或更早版本的部署在 nftables 或 iptables 中包括带有 LOG 操作的过滤规则,且内核命令行(/proc/cmdline)有 console=tty50,则日志记录操作可能会导致数据包传输造成大量延迟。在升级到 17.1.4 之前,您必须在红帽知识库解决方案中应用临时解决方案: 有时接收数据包(例如 ICMP echo)存在大约 190 (ms)的延迟。
如果您要将 RHOSP 环境更新至 17.1.x,则 pre-update package_version 验证会失败,因为验证无法找到匹配的 podman 版本。
临时解决方案: 要跳过 package_version 验证,在运行预更新验证 时使用--skiplist package-version 选项:
validation run -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml --group pre-update --skiplist package-version
$ validation run -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml --group pre-update --skiplist package-version
-
将
<stack>替换为您的堆栈的名称。
在更新到 RHOSP 17.1.4 时,在运行预更新验证时,undercloud-service-status 验证会失败。发生故障的原因是验证无法找到 undercloud-service-status 服务。
临时解决方案 :在运行预更新验证时跳过 undercloud-service-status 验证:
validation run \ --group pre-update \ --inventory /home/stack/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml
$ validation run \
--group pre-update \
--inventory /home/stack/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml
--skiplist undercloud-service-status
-
将
<stack>替换为您的堆栈的名称。
1.3. 仓库调整 复制链接链接已复制到粘贴板!
您必须根据 Red Hat Enterprise Linux 生命周期的当前阶段调整您启用哪些软件仓库。如果您的权利中有 Enhanced Extended Update Service (EEUS),则应选择 Enhanced Extended Update Service (EEUS),以最大程度降低对将来的调整的需求。如果您没有 EEUS 软件仓库,请选择 Extended Update Support (EUS)软件仓库。如果您的权利目前不提供正确的软件仓库,请联系红帽支持。
根据您的 Red Hat OpenStack Platform 订阅权利,您有以下软件仓库类型之一:
RHEL 8 或多 RHEL 环境:
电信更新服务(TUS)
-
rhel-8-for-x86_64-baseos-tus-rpms -
rhel-8-for-x86_64-appstream-tus-rpms -
rhel-8-for-x86_64-highavailability-tus-rpms
-
高级更新流(AUS)
-
rhel-8-for-x86_64-baseos-aus-rpms -
rhel-8-for-x86_64-appstream-aus-rpms -
rhel-8-for-x86_64-highavailability-aus-rpms
-
RHEL 9 环境:
延长更新支持(EUS)
-
rhel-9-for-x86_64-baseos-eus-rpms -
rhel-9-for-x86_64-appstream-eus-rpms -
rhel-9-for-x86_64-highavailability-eus-rpms
-
增强的扩展更新服务(EEUS)
-
rhel-9-for-x86_64-baseos-e4s-rpms -
rhel-9-for-x86_64-appstream-e4s-rpms -
rhel-9-for-x86_64-highavailability-e4s-rpms
-
高级更新流(AUS)
-
rhel-9-for-x86_64-baseos-aus-rpms -
rhel-9-for-x86_64-appstream-aus-rpms -
rhel-9-for-x86_64-highavailability-aus-rpms
-
要了解更多有关订阅权利中包括的软件仓库的信息,请参阅 Red Hat Enterprise Linux 生命周期。
1.4. 将环境锁定到 Red Hat Enterprise Linux 发行版本 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform (RHOSP) 17.1 支持 Red Hat Enterprise Linux (RHEL) 9.2。在执行更新前,将 undercloud 和 overcloud 存储库锁定到 RHEL 9.2 版本,以避免将操作系统升级到较新的次版本。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑 overcloud 订阅管理环境文件,这是包含
RhsmVars参数的文件。此文件的默认名称为rhsm.yml。 检查您的订阅管理配置是否包含
rhsm_release参数。如果rhsm_release参数不存在,请添加它并将其设置为 9.2 :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存 overcloud 订阅管理环境文件。
创建一个 playbook,其中包含将操作系统版本锁定到所有节点上的 RHEL 9.2 的任务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
set_release.yamlplaybook:ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/set_release.yaml --limit <undercloud>, <Controller>, <Compute>
$ ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/set_release.yaml --limit <undercloud>, <Controller>, <Compute>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<stack>替换为您的堆栈的名称。 -
使用
--limit选项将内容应用到所有 RHOSP 节点。将 <undercloud>, <Controller>, <Compute> 替换为包含这些节点的环境中的 Ansible 组。不要针对 Ceph Storage 节点运行此 playbook,因为您可能具有这些节点的不同订阅。
-
将
要手动将节点锁定到版本,请登录到节点并运行 subscription-manager release 命令:
sudo subscription-manager release --set=9.2
$ sudo subscription-manager release --set=9.2
1.5. 更新 Red Hat Openstack Platform 软件仓库 复制链接链接已复制到粘贴板!
更新您的软件仓库以使用 Red Hat OpenStack Platform (RHOSP) 17.1。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑 overcloud 订阅管理环境文件,这是包含
RhsmVars参数的文件。此文件的默认名称为rhsm.yml。 检查订阅管理配置中的
rhsm_repos参数。如果rhsm_repos参数使用 RHOSP 17.1 存储库,请将存储库改为正确的版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存 overcloud 订阅管理环境文件。
创建一个 playbook,其中包含将软件仓库设置为所有节点上的 RHOSP 17.1 的任务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
update_rhosp_repos.yamlplaybook:ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/update_rhosp_repos.yaml --limit <undercloud>,<Controller>,<Compute>
$ ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/update_rhosp_repos.yaml --limit <undercloud>,<Controller>,<Compute>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<stack>替换为您的堆栈的名称。 -
使用
--limit选项将内容应用到所有 RHOSP 节点。将 <undercloud>、<Controller> 和 <Compute> 替换为包含这些节点的环境中的 Ansible 组。不要针对 Ceph Storage 节点运行此 playbook,因为它们通常使用不同的订阅。
-
将
创建一个 playbook,其中包含一个任务,在所有 ceph 存储节点上将存储库设置为 RHOSP 17.1:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
update_ceph_repos.yamlplaybook:ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/update_ceph_repos.yaml --limit CephStorage
$ ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/update_ceph_repos.yaml --limit CephStorageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--limit选项将内容应用到 Ceph Storage 节点。
1.6. 更新容器镜像准备文件 复制链接链接已复制到粘贴板!
容器准备文件是包含 ContainerImagePrepare 参数的文件。您可以使用此文件定义用于获取 undercloud 和 overcloud 的容器镜像的规则。
在更新环境前,请检查该文件以确保获取正确的镜像版本。
流程
-
编辑容器准备文件。此文件的默认名称为
containers-prepare-parameter.yaml。 确保每个规则集的
tag参数设置为17.1:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您不想将特定的标签用于更新,如
17.1或17.1.1,请删除tag键-值对,并只指定tag_from_label。这使用安装的 Red Hat OpenStack Platform 版本来确定要在更新过程中使用的标签值。如需有关版本标记的更多信息,请参阅自定义 Red Hat OpenStack Platform 部署中的 容器镜像标记指南。- 保存这个文件。
1.7. 在 overcloud 中禁用隔离 复制链接链接已复制到粘贴板!
在更新 overcloud 之前,请确保禁用隔离。
如果在 Controller 节点更新过程中在您的环境中部署隔离,overcloud 可能会检测到某些节点被禁用并尝试隔离操作,这可能会导致意外的结果。
如果您在 overcloud 中启用了隔离功能,则必须在更新期间临时禁用隔离。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于每个 Controller 节点,登录到 Controller 节点,并运行 Pacemaker 命令来禁用隔离:
ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=false"
$ ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=false"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<controller_ip> 替换为 Controller 节点的 IP 地址。您可以在/etc/hosts或/var/lib/mistral中查找 Controller 节点的 IP 地址。
-
将
如果使用 SBD 隔离,请在
pacemaker_remote节点上禁用 SBD 隔离:pcs property set stonith-watchdog-timeout=0 --force
# pcs property set stonith-watchdog-timeout=0 --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保您记下 watchdog 计时器设备间隔的原始值。在升级 control plane 节点后,您必须将 watchdog 计时器设备间隔重置为其原始值。有关更多信息,请参阅 overcloud 中的重新启用隔离。
-
在
fencing.yaml环境文件中,将EnableFencing参数设置为false,以确保隔离在更新过程中保持禁用。
1.8. 防火墙规则更改 复制链接链接已复制到粘贴板!
在 Red Hat OpenStack Platform (RHOSP) 17.1.4 中,iptables 规则被 nftables 规则替代。如果您的 RHOSP 模板包含防火墙规则,如 tripleo::tripleo_firewall::firewall_rules,则必须使用 ExtraFirewallRules 参数重新定义它们。有关使用 ExtraFirewallRules 参数的更多信息,请参阅 强化 Red Hat OpenStack Platform 中的 向 overcloud 防火墙 添加服务。
第 2 章 更新 undercloud 复制链接链接已复制到粘贴板!
您可以使用 director 更新 undercloud 节点上的主软件包。要将 undercloud 及其 overcloud 镜像更新至最新的 Red Hat OpenStack Platform (RHOSP) 17.1 版本,请完成以下步骤:
先决条件
- 在将 undercloud 更新至最新的 RHOSP 17.1 版本前,请确保完成所有更新准备步骤。如需更多信息,请参阅 第 1 章 准备次要更新。
2.1. 在 undercloud 更新前验证 RHOSP 复制链接链接已复制到粘贴板!
在更新 Red Hat OpenStack Platform (RHOSP)环境前,请使用 tripleo-validations playbook 验证 undercloud。
有关验证的更多信息, 请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的使用验证框架。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 安装软件包进行验证:
sudo dnf -y update openstack-tripleo-validations python3-validations-libs validations-common
$ sudo dnf -y update openstack-tripleo-validations python3-validations-libs validations-commonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行验证:
validation run -i ~/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml --group pre-update
$ validation run -i ~/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml --group pre-updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 <stack> 替换为堆栈的名称。
验证
- 要查看验证报告的结果,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 查看验证历史记录。
如果在运行验证时找不到主机,该命令将状态报告为 SKIPPED。SKIPPED 的状态表示不会执行验证,这是预期的。另外,如果没有满足验证的通过标准,该命令将状态报告为 FAILED。FAILED 验证不会阻止您使用更新的 RHOSP 环境。但是,FAILED 验证可能会指示您的环境出现问题。
2.2. 验证 SSH 密钥大小 复制链接链接已复制到粘贴板!
从 Red Hat Enterprise Linux (RHEL) 9.1 开始,至少需要 SSH 密钥大小为 2048 位。如果 Red Hat OpenStack Platform (RHOSP) director 上的当前 SSH 密钥小于 2048 位,您可以丢失对 overcloud 的访问。您必须验证您的 SSH 密钥是否满足所需的位大小。
流程
验证您的 SSH 密钥大小:
ssh-keygen -l -f ~/.ssh/id_rsa.pub
ssh-keygen -l -f ~/.ssh/id_rsa.pubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
1024 SHA256:Xqz0Xz0/aJua6B3qRD7VsLr6n/V3zhmnGSkcFR6FlJw stack@director.example.local (RSA)
1024 SHA256:Xqz0Xz0/aJua6B3qRD7VsLr6n/V3zhmnGSkcFR6FlJw stack@director.example.local (RSA)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果您的 SSH 密钥小于 2048 位,则必须在继续操作前轮转 SSH 密钥。如需更多信息,请参阅 强化 Red Hat OpenStack Platform 中的更新 OpenStack 环境中的 SSH 密钥。
2.3. 执行容器化 undercloud 的次要更新 复制链接链接已复制到粘贴板!
director 提供了用于更新 undercloud 节点上的主软件包的命令。使用 director 在 RHOSP 环境的当前版本中执行次要更新。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
dnf update命令更新 director 主软件包:sudo dnf update -y python3-tripleoclient ansible-*
$ sudo dnf update -y python3-tripleoclient ansible-*Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 undercloud 环境:
openstack undercloud upgrade
$ openstack undercloud upgradeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 等待 undercloud 更新过程完成。
重启 undercloud 以更新操作系统的内核和其他系统软件包:
sudo reboot
$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
2.4. 更新 overcloud 镜像 复制链接链接已复制到粘贴板!
您必须将当前的 overcloud 镜像替换为新版本,以确保 director 可以使用最新版本的 RHOSP 软件内省和置备节点。
先决条件
- 您已将 undercloud 节点更新至最新版本。更多信息请参阅 第 2.3 节 “执行容器化 undercloud 的次要更新”。
-
已安装
rhosp-director-images-uefi-x86_64软件包。有关安装软件包的更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的安装 overcloud 镜像。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从
stack用户的主目录(/home/stack/images)的images中删除任何存在的镜像。rm -rf ~/images/*
$ rm -rf ~/images/*Copy to Clipboard Copied! Toggle word wrap Toggle overflow 解压存档:
cd ~/images for i in /usr/share/rhosp-director-images/ironic-python-agent-latest-17.1.tar /usr/share/rhosp-director-images/overcloud-hardened-uefi-full-latest-17.1.tar; do tar -xvf $i; done cd ~
cd ~/images for i in /usr/share/rhosp-director-images/ironic-python-agent-latest-17.1.tar /usr/share/rhosp-director-images/overcloud-hardened-uefi-full-latest-17.1.tar; do tar -xvf $i; done cd ~Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将最新的镜像导入到 director:
openstack overcloud image upload --update-existing --image-path /home/stack/images/
$ openstack overcloud image upload --update-existing --image-path /home/stack/images/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将您的节点配置为使用新镜像:
openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
$ openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证新镜像是否存在:
ls -l /var/lib/ironic/httpboot /var/lib/ironic/images
$ ls -l /var/lib/ironic/httpboot /var/lib/ironic/imagesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 部署 overcloud 节点时,请确保 overcloud 镜像版本与对应的 heat 模板版本对应。例如,只使用 RHOSP 17.1 heat 模板的 RHOSP 17.1 镜像。
-
如果您部署了使用红帽客户门户网站或 Red Hat Satellite 服务器的连接的环境,overcloud 镜像和软件包存储库版本可能不同步。为确保 overcloud 镜像和软件包存储库版本匹配,您可以使用
virt-customize工具。有关更多信息,请参阅红帽知识库解决方案 使用 virt-customize 修改 Red Hat Linux OpenStack Platform Overcloud 镜像。 -
新的
overcloud-full镜像替换了旧的overcloud-full镜像。如果对旧镜像进行了更改,您必须重复新镜像的更改,特别是在将来部署新节点时。
第 3 章 更新 overcloud 复制链接链接已复制到粘贴板!
更新 undercloud 后,您可以通过运行 overcloud 和容器镜像准备命令并更新节点来更新 overcloud。control plane API 在次版本更新过程中被完全支持。
先决条件
- 您已将 undercloud 节点更新至最新版本。如需更多信息,请参阅 第 2 章 更新 undercloud。
-
如果您在
stack用户主目录中使用一组本地核心模板,请确保更新模板,并使用自定义 Red Hat OpenStack Platform 部署 指南中的 了解 heat 模板中的推荐工作流。您必须先更新本地副本,然后才能升级 overcloud。 将
GlanceApiInternal服务添加到 Controller 角色中:OS::TripleO::Services::GlanceApiInternal
OS::TripleO::Services::GlanceApiInternalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这是镜像服务(glance) API 内部实例的服务,可为管理员提供位置数据,以及需要它的其他服务,如块存储服务(cinder)和计算服务(nova)。
流程
要更新 overcloud,您必须完成以下步骤:
- 第 3.1 节 “运行 overcloud 更新准备”
- 第 3.2 节 “运行容器镜像准备”
- 第 3.3 节 “在所有 overcloud 服务器上更新 ovn-controller 容器”
- 第 3.4 节 “更新 Pacemaker 控制的服务的容器镜像名称”
- 第 3.5 节 “更新所有 Controller 节点”
- 第 3.7 节 “更新所有 Compute 节点”
- 第 3.8 节 “更新所有 HCI Compute 节点”
- 第 3.9 节 “更新所有 DistributedComputeHCI 节点”
- 第 3.10 节 “更新所有 Ceph Storage 节点”
- 第 3.11 节 “更新 Red Hat Ceph Storage 集群”
- 第 3.13 节 “执行在线数据库更新”
- 第 3.14 节 “在 overcloud 中重新启用隔离”
3.1. 运行 overcloud 更新准备 复制链接链接已复制到粘贴板!
要准备 overcloud 以进行更新过程,您必须运行 openstack overcloud update prepare 命令,该命令将 overcloud 计划更新为 Red Hat OpenStack Platform (RHOSP) 17.1,并为更新准备节点。
先决条件
-
如果使用 Ceph 订阅并已将 director 配置为使用 Ceph 存储节点的
overcloud-minimal镜像,您必须确保roles_data.yaml角色定义文件中的rhsm_enforce参数设置为False。 -
如果呈现自定义 NIC 模板,则必须使用
openstack-tripleo-heat-templates集合的更新版本重新生成模板,以避免与 overcloud 版本不兼容。有关自定义 NIC 模板的更多信息,请参阅自定义 Red Hat OpenStack Platform 部署 指南中的定义自定义网络接口模板。
对于带有 OVN 部署的分布式计算节点(边缘)架构,您必须为每个使用计算、分布式计算或 DistributedComputeHCI 节点的堆栈完成此步骤,然后才能在 所有 overcloud 服务器上更新 ovn-controller 容器。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 update 准备命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 包含与您的环境相关的以下选项:
-
如果
overcloud堆栈的名称与默认名称 overcloud 不同,请在更新准备命令中包含--stack选项,并将 <stack_name> 替换为您的堆栈的名称。 -
如果使用自己的自定义角色,请使用
-r选项包含自定义角色(<roles_data_file>)文件。 -
如果使用自定义网络,请使用
-n选项在(<network_data_file>)文件中包含您的可组合网络。 -
如果您部署高可用性集群,请在 update preparation 命令中包含
--ntp-server选项,或者在环境文件中包含NtpServer参数和值。 -
使用
-e选项包括任何自定义配置文件。
-
如果
- 等待更新准备过程完成。
3.2. 运行容器镜像准备 复制链接链接已复制到粘贴板!
在更新 overcloud 之前,您必须准备您的环境所需的所有容器镜像配置,并将最新的 RHOSP 17.1 容器镜像拉取到 undercloud。
要完成容器镜像准备,您必须针对具有 container_image_prepare 标签的任务运行 openstack overcloud external-update run 命令。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对具有
container_image_prepare标签的任务运行openstack overcloud external-update run命令:openstack overcloud external-update run --stack <stack_name> --tags container_image_prepare
$ openstack overcloud external-update run --stack <stack_name> --tags container_image_prepareCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
名称设置为--stack选项,并将 <stack_name> 替换为您的堆栈的名称。
-
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
3.3. 在所有 overcloud 服务器上更新 ovn-controller 容器 复制链接链接已复制到粘贴板!
如果您使用 Modular Layer 2 Open Virtual Network 机制驱动程序(ML2/OVN)部署 overcloud,请将 ovn-controller 容器更新至最新的 RHOSP 17.1 版本。更新发生在每个运行 ovn-controller 容器的 overcloud 服务器上。
-
以下流程更新了分配了 Compute 角色的服务器上的
ovn-controller容器,然后再更新分配了 Controller 角色的服务器上的 ovn-northd 服务。 - 对于分布式计算节点(边缘)架构,您必须为每个带有计算、分布式计算或 DistributedComputeHCI 节点的堆栈完成此步骤,然后才能 更新所有 Controller 节点。
如果在这个过程之前意外更新了 ovn-northd 服务,您可能无法连接到虚拟机或创建新的虚拟机或虚拟网络。以下流程恢复连接。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 针对具有 ovn 标签的任务运行
openstack overcloud external-update run命令:openstack overcloud external-update run --stack <stack_name> --tags ovn
$ openstack overcloud external-update run --stack <stack_name> --tags ovnCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
名称设置为--stack选项,并将 <stack_name> 替换为您的堆栈的名称。
-
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
-
等待
ovn-controller容器更新完成。
3.4. 更新 Pacemaker 控制的服务的容器镜像名称 复制链接链接已复制到粘贴板!
如果您从 Red Hat Openstack Platform (RHOSP) 17 更新至 RHOSP 17.1,您必须更新 Pacemaker 控制的服务的容器镜像名称。您必须执行此更新,以迁移到 Pacemaker 控制服务的新镜像命名模式。
如果您将您的系统从 RHOSP 17.1 的版本更新至 RHOSP 17.1 的最新版本,则不需要更新 pacemaker 控制的服务的容器镜像名称。
流程
- 以 stack 用户身份登录 undercloud 主机。
查找 stackrc undercloud 凭证文件:
source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ha_image_update标签运行openstack overcloud external-update run命令:openstack overcloud external-update run --stack <stack_name> --tags ha_image_update
$ openstack overcloud external-update run --stack <stack_name> --tags ha_image_updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果 undercloud 堆栈的名称与默认堆栈名称 undercloud 不同,请将您的堆栈名称设置为 --stack 选项,并将 <stack_name> 替换为您的堆栈的名称。
3.5. 更新所有 Controller 节点 复制链接链接已复制到粘贴板!
将所有 Controller 节点更新至最新的 RHOSP 17.1 版本。运行 openstack overcloud update run 命令,并包含 --limit Controller 选项,以限制仅限 Controller 节点的操作。control plane API 在次版本更新过程中被完全支持。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 update 命令:
openstack overcloud update run --stack <stack_name> --limit Controller
$ openstack overcloud update run --stack <stack_name> --limit ControllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
名称设置为--stack选项,并将 <stack_name> 替换为您的堆栈的名称。
-
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
- 等待 Controller 节点更新完成。
3.6. 使用非 Pacemaker 服务更新可组合角色 复制链接链接已复制到粘贴板!
使用非 Pacemaker 服务将可组合角色更新至最新的 RHOSP 17.1 版本。一次更新每个可组合角色的节点。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 update 命令:
openstack overcloud update run --stack <stack_name> --limit <non_pcs_role_0> openstack overcloud update run --stack <stack_name> --limit <non_pcs_role_1> openstack overcloud update run --stack <stack_name> --limit <non_pcs_role_2>
$ openstack overcloud update run --stack <stack_name> --limit <non_pcs_role_0> $ openstack overcloud update run --stack <stack_name> --limit <non_pcs_role_1> $ openstack overcloud update run --stack <stack_name> --limit <non_pcs_role_2>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
名称设置为--stack选项,并将 <stack_name> 替换为您的堆栈的名称。 -
将
<non_pcs_role_0> , <non_pcs_role_1> , <non_pcs_role_2> 替换为可组合角色的名称,使用非 Pacemaker 服务。
-
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
- 等待更新完成。
3.7. 更新所有 Compute 节点 复制链接链接已复制到粘贴板!
将所有 Compute 节点更新至最新的 RHOSP 17.1 版本。要更新 Compute 节点,请运行 openstack overcloud update run 命令,并包含 --limit Compute 选项,以限制仅限 Compute 节点的操作。
- 并行化注意事项
当您更新大量 Compute 节点时,您可以在后台运行多个更新任务,并配置每个任务来更新单独的 20 个节点组。例如,如果您的部署中有 80 个 Compute 节点,您可以运行以下命令来并行更新 Compute 节点:
openstack overcloud update run -y --limit 'Compute[0:19]' > update-compute-0-19.log 2>&1 & openstack overcloud update run -y --limit 'Compute[20:39]' > update-compute-20-39.log 2>&1 & openstack overcloud update run -y --limit 'Compute[40:59]' > update-compute-40-59.log 2>&1 & openstack overcloud update run -y --limit 'Compute[60:79]' > update-compute-60-79.log 2>&1 &
$ openstack overcloud update run -y --limit 'Compute[0:19]' > update-compute-0-19.log 2>&1 & $ openstack overcloud update run -y --limit 'Compute[20:39]' > update-compute-20-39.log 2>&1 & $ openstack overcloud update run -y --limit 'Compute[40:59]' > update-compute-40-59.log 2>&1 & $ openstack overcloud update run -y --limit 'Compute[60:79]' > update-compute-60-79.log 2>&1 &Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这种对节点空间进行分区的方法是随机的,您无法控制要更新哪些节点。节点选择取决于运行
tripleo-ansible-inventory命令时生成的清单文件。要更新特定的 Compute 节点,请列出您要用逗号分隔的批处理中更新的节点:
openstack overcloud update run --limit <Compute0>,<Compute1>,<Compute2>,<Compute3>
$ openstack overcloud update run --limit <Compute0>,<Compute1>,<Compute2>,<Compute3>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 update 命令:
openstack overcloud update run --stack <stack_name> --limit Compute
$ openstack overcloud update run --stack <stack_name> --limit ComputeCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
名称设置为--stack选项,并将 <stack_name> 替换为您的堆栈的名称。
-
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
- 等待 Compute 节点更新完成。
3.8. 更新所有 HCI Compute 节点 复制链接链接已复制到粘贴板!
将超融合基础架构(HCI) Compute 节点更新至最新的 RHOSP 17.1 版本。
先决条件
在运行
ceph-mon服务的 Ceph monitor 或 Controller 节点上,检查 Red Hat Ceph Storage 集群状态是否健康,pg 状态为active+clean:sudo cephadm shell -- ceph status
$ sudo cephadm shell -- ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 Ceph 集群处于健康状态,它会返回
HEALTH_OK状态。如果 Ceph 集群状态不健康,它将返回
HEALTH_WARN或HEALTH_ERR的状态。有关故障排除指南,请参阅 Red Hat Ceph Storage 5 故障排除指南 或 Red Hat Ceph Storage 6 故障排除指南
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 update 命令:
openstack overcloud update run --stack <stack_name> --limit ComputeHCI
$ openstack overcloud update run --stack <stack_name> --limit ComputeHCICopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
名称设置为--stack选项,并将 <stack_name> 替换为您的堆栈的名称。
-
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
- 等待节点更新完成。
3.9. 更新所有 DistributedComputeHCI 节点 复制链接链接已复制到粘贴板!
更新特定于分布式计算节点架构的角色。当您升级分布式计算节点时,首先更新 DistributedComputeHCI 节点,然后更新 DistributedComputeHCIScaleOut 节点。
先决条件
在运行
ceph-mon服务的 Ceph monitor 或 Controller 节点上,检查 Red Hat Ceph Storage 集群状态是否健康,pg 状态为active+clean:sudo cephadm shell -- ceph status
$ sudo cephadm shell -- ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 Ceph 集群处于健康状态,它会返回
HEALTH_OK状态。如果 Ceph 集群状态不健康,它将返回
HEALTH_WARN或HEALTH_ERR的状态。有关故障排除指南,请参阅 Red Hat Ceph Storage 5 故障排除指南 或 Red Hat Ceph Storage 6 故障排除指南。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 update 命令:
openstack overcloud update run --stack <stack_name> --limit DistributedComputeHCI
$ openstack overcloud update run --stack <stack_name> --limit DistributedComputeHCICopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
名称设置为--stack选项,并将 <stack_name> 替换为您的堆栈的名称。
-
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
-
等待
DistributedComputeHCI节点更新完成。 -
使用相同的进程更新
DistributedComputeHCIScaleOut节点。
3.10. 更新所有 Ceph Storage 节点 复制链接链接已复制到粘贴板!
将 Red Hat Ceph Storage 节点更新至最新的 RHOSP 17.1 版本。
RHOSP 17.1 在 RHEL 9.2 上被支持。但是,映射到 Ceph Storage 角色的主机会更新到最新的主 RHEL 版本。如需更多信息,请参阅 Red Hat Ceph Storage: 支持的配置。
先决条件
在运行
ceph-mon服务的 Ceph monitor 或 Controller 节点上,检查 Red Hat Ceph Storage 集群状态是否健康,pg 状态为active+clean:sudo cephadm shell -- ceph status
$ sudo cephadm shell -- ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 Ceph 集群处于健康状态,它会返回
HEALTH_OK状态。如果 Ceph 集群状态不健康,它将返回
HEALTH_WARN或HEALTH_ERR的状态。有关故障排除指南,请参阅 Red Hat Ceph Storage 5 故障排除指南 或 Red Hat Ceph Storage 6 故障排除指南。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 update 命令:
openstack overcloud update run --stack <stack_name> --limit CephStorage
$ openstack overcloud update run --stack <stack_name> --limit CephStorageCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
名称设置为--stack选项,并将 <stack_name> 替换为您的堆栈的名称。
-
如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈
- 等待节点更新完成。
3.11. 更新 Red Hat Ceph Storage 集群 复制链接链接已复制到粘贴板!
使用 cephadm 命令将 director 部署的 Red Hat Ceph Storage 集群更新至与 Red Hat OpenStack Platform (RHOSP) 17.1 兼容的最新版本。
如果以下情况之一适用于您的环境,请更新您的 Red Hat Ceph Storage 集群:
- 如果您从 RHOSP 16.2 升级到 RHOSP 17.1,则运行 Red Hat Ceph Storage 5,并更新至 Red Hat Ceph Storage 5 的更新版本。
- 如果您新部署了 RHOSP 17.1,则运行 Red Hat Ceph Storage 6,并更新至 Red Hat Ceph Storage 6 的更新版本。
先决条件
- 完成容器镜像准备 第 3.2 节 “运行容器镜像准备”。
流程
- 登录到 Controller 节点。
检查集群的健康状况:
sudo cephadm shell -- ceph health
$ sudo cephadm shell -- ceph healthCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果 Ceph Storage 集群处于健康状态,命令会返回
HEALTH_OK的结果。如果命令返回不同的结果,请在继续更新前查看集群的状态并联系红帽支持。有关更多信息,请参阅 Red Hat Ceph Storage 升级指南中的使用 cephadm 升级 Red Hat Ceph Storage 集群,或 Red Hat Ceph Storage 6 升级指南中的使用 cephadm 升级 Red Hat Ceph Storage 集群。可选:检查 Ceph Storage 集群更新中应包含哪些镜像:
openstack tripleo container image list -f value | awk -F '//' '/ceph/ {print $2}'$ openstack tripleo container image list -f value | awk -F '//' '/ceph/ {print $2}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将集群更新至最新的 Red Hat Ceph Storage 版本:
sudo cephadm shell -- ceph orch upgrade start --image <image_name>: <version>
$ sudo cephadm shell -- ceph orch upgrade start --image <image_name>: <version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<image_name> 替换为 Ceph Storage 集群镜像的名称。 -
将
<version> 替换为您要更新 Ceph Storage 集群的目标版本。
-
将
等待 Ceph Storage 容器更新完成。要监控更新的状态,请运行以下命令:
sudo cephadm shell -- ceph orch upgrade status
sudo cephadm shell -- ceph orch upgrade statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.12. 升级到 Red Hat Ceph Storage 7 复制链接链接已复制到粘贴板!
Red Hat Ceph Storage 6 默认与 Red Hat OpenStack Platform 17.1 一起部署。部署完成后,可将 Red Hat Ceph Storage 升级到版本 7。有关此过程以及完成升级的流程,请参阅针对升级升级(16.2 到 17.1 )的 将 Red Hat Ceph Storage 6 升级到 7 章节(16.2 到 17.1)。 https://access.redhat.com/documentation/zh-cn/red_hat_openstack_platform/17.1/html/framework_for_upgrades_16.2_to_17.1/assembly_ceph-6-to-7_upgrade_post-upgrade-external-ceph#assembly_ceph-6-to-7_upgrade-internal_post-upgrade-external-ceph
3.13. 执行在线数据库更新 复制链接链接已复制到粘贴板!
有些 overcloud 组件需要在线更新或迁移其数据库表。要执行在线数据库更新,请针对具有 online_upgrade 标签的任务运行 openstack overcloud external-update 命令。
在线数据库更新适用于以下组件:
- OpenStack Block Storage (cinder)
- OpenStack Compute (nova)
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 针对使用
online_upgrade标签的任务运行openstack overcloud external-update run命令:openstack overcloud external-update run --stack <stack_name> --tags online_upgrade
$ openstack overcloud external-update run --stack <stack_name> --tags online_upgradeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.14. 在 overcloud 中重新启用隔离 复制链接链接已复制到粘贴板!
在更新 overcloud 之前,您将 禁用 overcloud 中的隔离功能。在更新 overcloud 后,重新启用隔离来保护您的数据(如果节点失败)。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到 Controller 节点并运行 Pacemaker 命令重新启用隔离:
ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=true"
$ ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<controller_ip> 替换为 Controller 节点的 IP 地址。您可以使用openstack server list命令查找 Controller 节点的 IP 地址。
-
将
如果使用 SBD 隔离,请在禁用 watchdog 计时器设备间隔前将 watchdog 计时器设备间隔重置为其原始值:
pcs property set stonith-watchdog-timeout=<interval>
# pcs property set stonith-watchdog-timeout=<interval>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<interval> 替换为 watchdog 计时器设备的原始值,例如10。
-
将
-
在
fencing.yaml环境文件中,将EnableFencing参数设置为true。
第 4 章 重新引导 overcloud 复制链接链接已复制到粘贴板!
执行小的 Red Hat OpenStack Platform (RHOSP)更新至最新的 17.1 版本后,重启您的 overcloud。重启会使用任何关联的内核、系统级和容器组件更新刷新节点。这些更新提供了性能和安全优势。计划停机时间来执行重启过程。
使用以下指导了解如何重新引导不同的节点类型:
- 如果重新引导一个角色中的所有节点,请单独重新引导每个节点。如果您同时重新引导角色中的所有节点,则重启操作过程中可能会发生服务停机时间。
按照以下顺序在节点上完成重启步骤:
4.1. 重新引导 Controller 和可组合节点 复制链接链接已复制到粘贴板!
根据可组合角色重新引导 Controller 节点和独立节点,并排除 Compute 节点和 Ceph Storage 节点。
流程
- 登录您要重新引导的节点。
可选:如果节点使用 Pacemaker 资源,请停止集群:
sudo pcs cluster stop
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs cluster stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重新引导节点:
sudo reboot
[tripleo-admin@overcloud-controller-0 ~]$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
验证
验证服务是否已启用。
如果该节点使用 Pacemaker 服务,请检查该节点是否已重新加入集群:
sudo pcs status
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果该节点使用 Systemd 服务,请检查是否所有服务都已启用:
sudo systemctl status
[tripleo-admin@overcloud-controller-0 ~]$ sudo systemctl statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果该节点使用容器化服务,则检查节点上的所有容器是否已激活:
sudo podman ps
[tripleo-admin@overcloud-controller-0 ~]$ sudo podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. 重新引导 Ceph Storage (OSD) 集群 复制链接链接已复制到粘贴板!
完成以下步骤以重新引导 Ceph Storage (OSD) 节点集群。
先决条件
在运行
ceph-mon服务的 Ceph monitor 或 Controller 节点上,检查 Red Hat Ceph Storage 集群状态是否健康,pg 状态为active+clean:sudo cephadm shell -- ceph status
$ sudo cephadm shell -- ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 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
$ sudo cephadm shell -- ceph osd set noout $ sudo cephadm shell -- ceph osd set norebalanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您有多堆栈或分布式计算节点(DCN)架构,您必须在设置
noout和norebalance标志时指定 Ceph 集群名称。例如:sudo cephadm shell -c /etc/ceph/<cluster>.conf -k /etc/ceph/<cluster>.client.keyring。- 选择第一个要重新引导的 Ceph Storage 节点并登录到该节点。
重新引导节点:
sudo reboot
$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
登录节点并检查 Ceph 集群状态:
sudo cephadm shell -- ceph status
$ sudo cephadm shell -- ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认
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
$ sudo cephadm shell -- ceph osd unset noout $ sudo cephadm shell -- ceph osd unset norebalanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您有多堆栈或分布式计算节点(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
$ sudo cephadm shell ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.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 节点列表,以识别您要重新引导的节点的主机名:
source ~/overcloudrc openstack compute service list
(undercloud)$ source ~/overcloudrc (overcloud)$ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 识别您要重新引导的 Compute 节点的主机名。
在您要重新引导的 Compute 节点上禁用 Compute 服务:
openstack compute service list openstack compute service set <hostname> nova-compute --disable
(overcloud)$ openstack compute service list (overcloud)$ openstack compute service set <hostname> nova-compute --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<hostname> 替换为 Compute 节点的主机名。
-
将
列出 Compute 节点上的所有实例:
openstack server list --host <hostname> --all-projects
(overcloud)$ openstack server list --host <hostname> --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要将实例迁移到另一个 Compute 节点,请完成以下步骤:
如果您决定将实例迁移至另一个 Compute 节点,则使用以下命令之一:
要将实例迁移到其他主机,请运行以下命令:
(overcloud) $ openstack server migrate <instance_id> --live <target_host> --wait
(overcloud) $ openstack server migrate <instance_id> --live <target_host> --waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<instance_id> 替换为您的实例 ID。 -
将
<target_host> 替换为您要将实例迁移到的主机。
-
将
让
nova-scheduler自动选择目标主机:(overcloud) $ nova live-migration <instance_id>
(overcloud) $ nova live-migration <instance_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一次性实时迁移所有实例:
nova host-evacuate-live <hostname>
$ nova host-evacuate-live <hostname>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意nova命令可能会引发一些弃用警告,这些警告信息可以被安全忽略。
- 稍等片刻,直至迁移完成。
确认迁移成功完成:
(overcloud) $ openstack server list --host <hostname> --all-projects
(overcloud) $ openstack server list --host <hostname> --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 继续迁移实例,直到 Compute 节点上没有保留任何实例。
登录到 Compute 节点并重启节点:
sudo reboot
[tripleo-admin@overcloud-compute-0 ~]$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
重新启用 Compute 节点:
source ~/overcloudrc
$ source ~/overcloudrc (overcloud) $ openstack compute service set <hostname> nova-compute --enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认是否已启用 Compute 节点:
(overcloud) $ openstack compute service list
(overcloud) $ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. 在 overcloud 更新后验证 RHOSP 复制链接链接已复制到粘贴板!
更新 Red Hat OpenStack Platform (RHOSP)环境后,使用 tripleo-validations playbook 验证 overcloud。
有关验证的更多信息, 请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的使用验证框架。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行验证:
validation run -i ~/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml --group post-update
$ validation run -i ~/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml --group post-updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 <stack> 替换为堆栈的名称。
验证
- 要查看验证报告的结果,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 查看验证历史记录。
如果在运行验证时找不到主机,该命令将状态报告为 SKIPPED。SKIPPED 的状态表示不会执行验证,这是预期的。另外,如果没有满足验证的通过标准,该命令将状态报告为 FAILED。FAILED 验证不会阻止您使用更新的 RHOSP 环境。但是,FAILED 验证可能会指示您的环境出现问题。