3.4. 升级 Overcloud


重要

确保在以下流程中的任何步骤前读取 第 3.1 节 “重要的 Pre-Upgrade 备注” 中的信息。

本节详细介绍了升级 Overcloud 所需的步骤。确保遵循每个部分,并仅应用与您的环境相关的部分。

此过程要求您多次运行原始的 openstack overcloud deploy 命令,以提供分阶段升级方法。每次运行命令时,都会包含不同的升级环境文件以及现有的环境文件。这些新的升级环境文件包括:

  • major-upgrade-pacemaker-init.yaml - 为升级提供初始化。这包括更新 Overcloud 中每个节点上的 Red Hat OpenStack Platform 存储库,并为某些节点提供特殊的升级脚本。
  • major-upgrade-pacemaker.yaml - 为 Controller 节点提供升级。
  • major-upgrade-pacemaker-converge.yaml - Overcloud 升级的最终化。这会使生成的升级与 director 的最新 Heat 模板集合的内容匹配。

在这些部署命令之间,您可以在各种节点类型上运行 upgrade-non-controller.sh 脚本。此脚本更新非控制器节点上的软件包。

工作流

Overcloud 升级过程使用以下工作流:

  1. 运行包括 major-upgrade-pacemaker-init.yaml 环境文件的部署命令。
  2. 在每个对象存储节点上运行 upgrade-non-controller.sh
  3. 运行包括 major-upgrade-pacemaker.yaml 环境文件的部署命令。
  4. 在每个 Compute 节点上运行 upgrade-non-controller.sh
  5. 在每个 Ceph Storage 节点上运行 upgrade-non-controller.sh
  6. 运行包括 major-upgrade-pacemaker-converge.yaml 环境文件的部署命令。

3.4.1. 包括管理网络

如果使用 Red Hat OpenStack Platform 7 中的自定义 NIC 模板,请将 ManagementSubnetIp 参数添加到 NIC 模板的 parameters 部分。例如:

parameters:
  ManagementIpSubnet: # Only populated when including environments/network-management.yaml
    default: ''
    description: IP address/subnet on the management network
    type: string
Copy to Clipboard Toggle word wrap

3.4.2. 安装升级频道

此步骤在每个非控制器节点上安装脚本。这些脚本执行主要版本软件包的升级和配置。每个脚本因节点类型而异。例如,Compute 节点接收不同的升级脚本到 Ceph Storage 节点。

此初始化步骤还更新所有 overcloud 节点上已启用的存储库。这意味着您不需要禁用旧存储库并手动启用新存储库。

从 Undercloud 运行 openstack overcloud deploy,并包含 major-upgrade-pacemaker-init.yaml 环境文件。确保也包含与环境相关的所有自定义环境文件,如网络隔离和存储。

以下是带有添加文件的 openstack overcloud deploy 命令的示例。例如:

$ openstack overcloud deploy --templates \
  --control-scale 3 \
  --compute-scale 3 \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml  \
  -e /home/stack/templates/network_env.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/major-upgrade-pacemaker-init.yaml
Copy to Clipboard Toggle word wrap

等待 Overcloud 使用新环境文件的配置进行更新。

3.4.3. 升级 Object Storage 节点

director 使用 upgrade-non-controller.sh 命令从 major-upgrade-pacemaker-init.yaml 环境文件传递给每个非Controller 节点的升级脚本。对于此步骤,您可以使用以下命令升级每个 Object Storage 节点:

$ for NODE in `nova list | grep swift | awk -F "|" '{ print $2 }'` ; do upgrade-non-controller.sh --upgrade $NODE ; done
Copy to Clipboard Toggle word wrap

等待每个 Object Storage 节点完成升级。

3.4.4. 升级 Controller 节点

升级 Controller 节点涉及包括另一个环境文件(major-upgrade-pacemaker.yaml),它提供到运行高可用性工具的 Controller 节点的完整升级。

从 Undercloud 运行 openstack overcloud deploy,并包含 major-upgrade-pacemaker.yaml 环境文件。确保也包含与环境相关的所有自定义环境文件,如网络隔离和存储。

以下是带有添加文件的 openstack overcloud deploy 命令的示例。例如:

$ openstack overcloud deploy --templates \
  --control-scale 3 \
  --compute-scale 3 \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \
  -e network_env.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/major-upgrade-pacemaker.yaml
Copy to Clipboard Toggle word wrap

等待 Overcloud 使用新环境文件的配置进行更新。

重要

此步骤在 Controller 升级过程中禁用 Neutron 服务器和 L3 代理。这意味着此步骤中无法使用浮动 IP 地址。

重要

如果 Overcloud 堆栈在这一步中失败,登录到其中一个 Controller 节点,运行 sudo pcs cluster start,然后在 director 上重新运行 openstack overcloud deploy

3.4.5. 升级 Compute 节点

director 使用 upgrade-non-controller.sh 命令从 major-upgrade-pacemaker-init.yaml 环境文件传递给每个非Controller 节点的升级脚本。

获取 Compute 节点及其 UUID 列表:

$ nova list | grep "compute"
Copy to Clipboard Toggle word wrap

我们在每个节点上单独执行以下任务,以确保零停机时间。选择要升级的 Compute 节点。

  1. 迁移其工作负载。请参阅 Red Hat OpenStack Platform Director 安装和使用指南中的 "从 Overcloud Compute 节点迁移虚拟机 "。
  2. 确保所选节点的 Compute 服务被禁用:

    $ source ~/overcloudrc
    $ nova service-list
    $ nova service-disable [hostname] nova-compute
    Copy to Clipboard Toggle word wrap
  3. 使用以下命令升级每个 Compute 节点:

    $ source ~/stackrc
    $ upgrade-non-controller.sh --upgrade NODE_UUID
    Copy to Clipboard Toggle word wrap

    NODE_UUID 替换为所选 Compute 节点的 UUID

  4. 等待 Compute 节点完成升级。升级完成后,使用以下命令确保启用了 Compute 节点:

    $ source ~/overcloudrc
    $ nova service-list
    $ nova service-enable [hostname] nova-compute
    Copy to Clipboard Toggle word wrap

在每个 Compute 节点上重复这些步骤。

3.4.6. 升级 Ceph Storage 节点

director 使用 upgrade-non-controller.sh 命令从 major-upgrade-pacemaker-init.yaml 环境文件传递给每个非Controller 节点的升级脚本。在这一步中,您可以使用以下命令升级每个 Ceph Storage 节点:

升级每个 Ceph Storage 节点:

$ for NODE in `nova list | grep ceph | awk -F "|" '{ print $2 }'` ; do upgrade-non-controller.sh --upgrade $NODE ; done
Copy to Clipboard Toggle word wrap

3.4.7. 最终调整升级

director 需要通过升级最终化运行,以确保 Overcloud 堆栈与当前的 Heat 模板集合同步。这包括一个环境文件(primary-upgrade-pacemaker-converge.yaml),您可以使用 openstack overcloud deploy 命令包含该文件。

从 Undercloud 运行 openstack overcloud deploy,并包含 major-upgrade-pacemaker-converge.yaml 环境文件。确保也包含与环境相关的所有自定义环境文件,如网络隔离和存储。

以下是带有添加文件的 openstack overcloud deploy 命令的示例。例如:

$ openstack overcloud deploy --templates \
  --control-scale 3 \
  --compute-scale 3 \
  -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \
  -e network_env.yaml \
  -e /usr/share/openstack-tripleo-heat-templates/environments/major-upgrade-pacemaker-converge.yaml
Copy to Clipboard Toggle word wrap

等待 Overcloud 使用新环境文件的配置进行更新。

此操作完成 Overcloud 升级流程。

3.4.8. 升级后备注

在将 Overcloud 升级到 Red Hat OpenStack Platform 8 后请注意以下几点:

  • Compute 节点可能会报告使用 neutron-openvswitch-agent 失败。如果发生了这种情况,请登录每个 Compute 节点并重启该服务。例如:

    $ sudo systemctl restart neutron-openvswitch-agent
    Copy to Clipboard Toggle word wrap
  • 更新过程不会自动重新引导 Overcloud 中的任何节点。如果需要,在 update 命令完成后手动执行重启。确保单独重新引导基于集群的节点(如 Ceph Storage 节点和 Controller 节点),并等待节点重新加入集群。对于 Ceph Storage 节点,检查 ceph 健康状态,并确保集群状态为 HEALTH OK。对于 Controller 节点,使用 pcs 资源 检查并确保每个节点都运行所有资源。
  • 在某些情况下,corosync 服务可能无法在重启 Controller 节点后在 IPv6 环境中启动。这是因为 Corosync 在 Controller 节点配置静态 IPv6 地址之前启动。在这些情况下,在 Controller 节点上手动重启 Corosync:

    $ sudo systemctl restart corosync
    Copy to Clipboard Toggle word wrap
  • 如果您为 Controller 节点配置了隔离功能,更新过程可能会禁用它。更新过程完成后,在其中一个 Controller 节点上使用以下命令重新启用隔离:

    $ sudo pcs property set stonith-enabled=true
    Copy to Clipboard Toggle word wrap
  • 下一次更新或扩展 Overcloud 堆栈(即运行 openstack overcloud deploy 命令时),您需要重置触发 Overcloud 中软件包更新的标识符。在环境文件中添加空白 UpdateIdentifier 参数,并在运行 openstack overcloud deploy 命令时包括它。以下是此类环境文件的示例:

    parameter_defaults:
      UpdateIdentifier:
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat