搜索

10.3. 将 Compute 节点升级到多 RHEL 环境

download PDF

您可以将部分 Compute 节点升级到 RHEL 9.2,而其余的 Compute 节点保留在 RHEL 8.4 上。这个升级过程涉及以下基本步骤:

  1. 选择您要升级到 RHEL 9.2 的节点,以及您希望在 RHEL 8.4 上保留哪些节点。为您要为每个批处理节点创建的每个角色选择一个角色名称,如 ComputeRHEL-9.2ComputeRHEL-8.4
  2. 创建存储要升级到 RHEL 9.2 的节点的角色,或存储您要保留在 RHEL 8.4 上的节点。这些角色可以保持为空,直到您准备好将 Compute 节点移到新角色为止。您可以根据需要创建任意数量的角色,并在决定时划分节点。例如:

    • 如果您的环境使用名为 ComputeSRIOV 的角色,您需要运行 Canary 测试来升级到 RHEL 9.2,您可以创建一个新的 ComputeSRIOVRHEL9 角色,并将 Canary 节点移到新角色。
    • 如果您的环境使用名为 ComputeOffload 的角色,而您想要将该角色中的大多数节点升级到 RHEL 9.2,但在 RHEL 8.4 上保留几个节点,您可以创建一个新的 ComputeOffloadRHEL8 角色来存储 RHEL 8.4 节点。然后,您可以选择原始 ComputeOffload 角色中的节点升级到 RHEL 9.2。
  3. 将节点从每个 Compute 角色移到新角色。
  4. 将特定 Compute 节点上的操作系统升级到 RHEL 9.2。您可以从相同的角色或多个角色升级批处理中的节点。

    注意

    在 Multi-RHEL 环境中,部署应该继续使用 pc-i440fx 机器类型。不要将默认值更新为 Q35。迁移到 Q35 机器类型是在所有 Compute 节点升级到 RHEL 9.2 后要遵循的独立、升级后的步骤。有关迁移 Q35 机器类型的更多信息,请参阅 升级到 RHOSP 17 后为主机更新默认机器类型

    使用以下步骤将 Compute 节点升级到 Multi-RHEL 环境:

10.3.1. 为 Multi-RHEL Compute 节点创建角色

创建新角色以存储您要升级到 RHEL 9.2 或保留在 RHEL 8.4 上的节点,并将节点移到新角色中。

流程

  1. 为您的环境创建相关角色。在 role_data.yaml 文件中,复制源 Compute 角色以用于新角色。

    对所需的每个额外角色重复此步骤。角色可以保持空,直到您准备好将 Compute 节点移到新角色。

    • 如果要创建 RHEL 8 角色:

      name: <ComputeRHEL8>
       description: |
        Basic Compute Node role
       CountDefault: 1
       rhsm_enforce: False
      ...
      ServicesDefault:
      ...
      - OS::TripleO::Services::NovaLibvirtLegacy
      注意

      包含 RHEL 8.4 上剩余的节点的角色必须包含 NovaLibvirtLegacy 服务。

    • <ComputeRHEL8 > 替换为 RHEL 8.4 角色的名称。
    • 如果要创建 RHEL 9 角色:

      name: <ComputeRHEL9>
       description: |
      Basic Compute Node role
       CountDefault: 1
      ...
      ServicesDefault:
      ...
      - OS::TripleO::Services::NovaLibvirt
      注意

      包含升级到 RHEL 9.2 的节点的角色必须包含 NovaLibvirt 服务。将 OS::TripleO::Services::NovaLibvirtLegacy 替换为 OS::TripleO::Services::NovaLibvirt

    • 将 <ComputeRHEL9> 替换为 RHEL 9.2 角色的名称。
  2. overcloud_upgrade_prepare.sh 文件复制到 copy_role_Compute_param.sh 文件中:

    $ cp overcloud_upgrade_prepare.sh copy_role_Compute_param.sh
  3. 编辑 copy_role_Compute_param.sh 文件,使其包含 copy_role_params.py 脚本。此脚本会生成环境文件,其中包含新角色的额外参数和资源。例如:

    /usr/share/openstack-tripleo-heat-templates/tools/copy_role_params.py --rolename-src <Compute_source_role> --rolename-dst <Compute_destination_role> \
     -o <Compute_new_role_params.yaml> \
    
    -e /home/stack/templates/internal.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovs.yaml \
    -e /home/stack/templates/network/network-environment.yaml \
    -e /home/stack/templates/inject-trust-anchor.yaml \
    -e /home/stack/templates/hostnames.yml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
    -e /home/stack/templates/nodes_data.yaml \
    -e /home/stack/templates/debug.yaml \
    -e /home/stack/templates/firstboot.yaml \
       -e /home/stack/overcloud-params.yaml \
     -e /home/stack/overcloud-deploy/overcloud/overcloud-network-environment.yaml \
    -e /home/stack/overcloud_adopt/baremetal-deployment.yaml \
    -e /home/stack/overcloud_adopt/generated-networks-deployed.yaml \
    -e /home/stack/overcloud_adopt/generated-vip-deployed.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/nova-hw-machine-type-upgrade.yaml \
    -e ~/containers-prepare-parameter.yaml
    • <Compute_source_role > 替换为您要复制的源 Compute 角色的名称。
    • <Compute_destination_role > 替换为新角色的名称。
    • 使用 -o 选项定义包含新角色 source Compute 角色的所有非默认值的输出文件的名称。将 <Compute_new_role_params.yaml > 替换为您的输出文件的名称。
  4. 运行 copy_role_Compute_param.sh 脚本:

    $ sh /home/stack/copy_role_Compute_param.sh
  5. 将 Compute 节点从源角色移到新角色中:

    python3
    /usr/share/openstack-tripleo-heat-templates/tools/baremetal_transition.py  --baremetal-deployment /home/stack/tripleo-<stack>-baremetal-deployment.yaml  --src-role <Compute_source_role>  --dst-role <Compute_destination_role> <Compute-0> <Compute-1> <Compute-2>
    注意

    此工具包括您在 undercloud 升级过程中导出的原始 /home/stack/tripleo-<stack>-baremetal-deployment.yaml 文件。该工具在 /home/stack/tripleo-<stack>-baremetal-deployment.yaml 文件中复制并重命名源角色定义。然后,它会更改 hostname_format,以防止与新创建的目标角色冲突。然后,该工具将节点从源角色移到目的地角色,并更改 count 值。

    • <stack> 替换为您的堆栈的名称。
    • 将 < Compute_source_role > 替换为包含您要移至新角色的节点的源 Compute 角色的名称。
    • <Compute_destination_role > 替换为新角色的名称。
    • <Compute-0 > & lt;Compute -1> <Compute-2> 替换为您要移动到新角色的节点的名称。
  6. 重新置备节点,以使用新角色位置更新堆栈中的环境文件:

    $ openstack overcloud node provision --stack <stack> --output /home/stack/overcloud_adopt/baremetal-deployment.yaml /home/stack/tripleo-<stack>-baremetal-deployment.yaml
    注意

    输出 baremetal-deployment.yaml 文件是在 overcloud 采用过程中 overcloud_upgrade_prepare.sh 文件中使用的相同文件。

  7. COMPUTE_ROLES 参数中包含 RHEL 8.4 上剩余的任何 Compute 角色,并运行以下脚本。例如,如果您有一个名为 ComputeRHEL8 的角色,其中包含在 RHEL 8.4 中剩余的节点,COMPUTE_ROLES = --role ComputeRHEL8

    python3
    /usr/share/openstack-tripleo-heat-templates/tools/multi-rhel-container-image-prepare.py \
        ${COMPUTE_ROLES} \
        --enable-multi-rhel \
        --excludes collectd --excludes nova-libvirt \
        --minor-override
        "{${EL8_TAGS}${EL8_NAMESPACE}${CEPH_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" --major-override
        "{${EL9_TAGS}${NAMESPACE}${CEPH_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}"  \
        --output-env-file
    /home/stack/containers-prepare-parameter.yaml
  8. 重复此步骤以创建额外的角色,并将额外的 Compute 节点移到这些新角色中。

10.3.2. 升级 Compute 节点操作系统

将所选 Compute 节点上的操作系统升级到 RHEL 9.2。您可以同时从不同角色升级多个节点。

先决条件

确保您已为您的环境创建了必要的角色。有关为多 RHEL 环境创建角色的更多信息,请参阅为多 RHEL Compute 节点创建角色

流程

  1. skip_rhel_release.yaml 文件中,将 SkipRhelEnforcement 参数设置为 false

    parameter_defaults:
      SkipRhelEnforcement: false
  2. 运行 openstack overcloud upgrade prepare 命令,以设置新角色所需的参数和资源。

    $ openstack overcloud upgrade prepare --yes \
    ...
    -e /home/stack/system_upgrade.yaml  \
    -e /home/stack/skip_rhel_release.yaml \
    -e /home/stack/<Compute_new_role_params.yaml> \
    ...
    • 使用特定于升级的参数(-e)包括 system_upgrade.yaml 文件。
    • 包含 skip_rhel_release.yaml 文件,其中包含 release 参数。
    • 包含包含新角色所需参数(-e)的环境文件。将 <Compute_new_role_params.yaml > 替换为您为新角色创建的环境文件的名称。
    • 如果您要同时从多个角色升级节点,请包含您创建的每个新角色的环境文件。
  3. 可选:迁移您的实例。有关迁移策略的更多信息,请参阅在 Compute 节点间迁移虚拟机准备迁移
  4. 升级特定 Compute 节点上的操作系统。使用您要升级的节点列表使用 --limit 选项。以下示例将 computerhel9-0, computerhel9-1, computerhel9-2, 和 computesriov-42 节点从 ComputeRHEL9ComputeSRIOV 介绍升级。

    $ openstack overcloud upgrade run --yes --tags system_upgrade --stack <stack> --limit computerhel9-0,computerhel9-1,computerhel9-2,computesriov-42
    • 将 <stack> 替换为您的堆栈的名称。
  5. 将 Compute 节点上的容器升级到 RHEL 9.2。使用您要升级的节点列表使用 --limit 选项。以下示例将 computerhel9-0, computerhel9-1, computerhel9-2, 和 computesriov-42 节点从 ComputeRHEL9ComputeSRIOV 介绍升级。

    $ openstack overcloud upgrade run --yes --stack <stack>  --limit computerhel9-0,computerhel9-1,computerhel9-2,computesriov-42
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.