执行 Red Hat OpenStack Platform 的次要更新


Red Hat OpenStack Platform 17.1

将最新的程序错误修复和安全改进应用到 Red Hat OpenStack Platform

OpenStack Documentation Team

摘要

您可以对 Red Hat OpenStack Platform (RHOSP)环境执行次要更新,使其使用最新的软件包和容器进行更新。

对红帽文档提供反馈

我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。

使用 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 创建一个帐户。

  1. 点击以下链接打开 Create Issue 页面: Create Issue
  2. 完成 SummaryDescription 字段。在 Description 字段中,包含文档 URL、章节或章节号以及问题的详细描述。不要修改表单中的任何其他字段。
  3. Create

第 1 章 准备次要更新

使用最新的软件包和容器保持您的 Red Hat OpenStack Platform (RHOSP) 17.1 环境更新。

对以下版本使用升级路径:

Expand
旧的 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 环境:

Expand
更新步骤描述

Undercloud 更新

director 软件包已更新,容器会被替换,undercloud 被重启。

使用 ML2/OVN 的集群的 OVN -controller 更新

所有 ovn-controller 容器在所有 Compute 和 Controller 主机上并行更新。

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 服务通过使用 cephadm 更新。每个守护进程都会进行更新,从 CephMgrCephMonCephOSD 以及其它守护进程开始。

注意

如果您有多堆栈基础架构,请完全更新每个 overcloud 堆栈,一次逐一逐一更新。如果您有分布式计算节点(DCN)基础架构,请在中央位置完全更新 overcloud,然后在每个边缘站点上完全更新 overcloud,一次逐一更新 overcloud。

另外,管理员可以在次版本更新过程中执行以下操作:

  • 迁移虚拟机
  • 创建虚拟机网络
  • 运行额外的云操作

在次版本更新过程中不支持以下操作:

  • 替换 Controller 节点
  • 缩减或扩展任何角色

更新 RHOSP 环境前的注意事项

要帮助您在更新过程中为您提供指导,请考虑以下信息:

重要

不支持使用单个 Controller 节点的更新。

流程

要为次版本更新准备 RHOSP 环境,请完成以下步骤:

1.1. 长生命版本的升级路径

在开始更新前,请熟悉可能的更新和升级路径。

注意

您可以在 /etc/rhosp-release/etc/redhat-release 文件中查看当前的 RHOSP 和 RHEL 版本。

Expand
表 1.1. 更新版本路径
当前版本目标版本

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

Expand
表 1.2. 升级版本路径
当前版本目标版本

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
Copy to Clipboard Toggle word wrap
  • <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
  --skiplist undercloud-service-status
Copy to Clipboard Toggle word wrap
  • <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 生命周期

Red Hat OpenStack Platform (RHOSP) 17.1 支持 Red Hat Enterprise Linux (RHEL) 9.2。在执行更新前,将 undercloud 和 overcloud 存储库锁定到 RHEL 9.2 版本,以避免将操作系统升级到较新的次版本。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 编辑 overcloud 订阅管理环境文件,这是包含 RhsmVars 参数的文件。此文件的默认名称为 rhsm.yml
  4. 检查您的订阅管理配置是否包含 rhsm_release 参数。如果 rhsm_release 参数不存在,请添加它并将其设置为 9.2 :

    parameter_defaults:
      RhsmVars:
        …​
        rhsm_username: "myusername"
        rhsm_password: "p@55w0rd!"
        rhsm_org_id: "1234567"
        rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd"
        rhsm_method: "portal"
        rhsm_release: "9.2"
    Copy to Clipboard Toggle word wrap
  5. 保存 overcloud 订阅管理环境文件。
  6. 创建一个 playbook,其中包含将操作系统版本锁定到所有节点上的 RHEL 9.2 的任务:

    $ cat > ~/set_release.yaml <<'EOF'
    - hosts: all
      gather_facts: false
      tasks:
        - name: set release to 9.2
          command: subscription-manager release --set=9.2
          become: true
    EOF
    Copy to Clipboard Toggle word wrap
  7. 运行 set_release.yaml playbook:

    $ ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/set_release.yaml --limit <undercloud>, <Controller>, <Compute>
    Copy to Clipboard Toggle word wrap
    • <stack> 替换为您的堆栈的名称。
    • 使用 --limit 选项将内容应用到所有 RHOSP 节点。将 <undercloud>, <Controller>, <Compute> 替换为包含这些节点的环境中的 Ansible 组。不要针对 Ceph Storage 节点运行此 playbook,因为您可能具有这些节点的不同订阅。
注意

要手动将节点锁定到版本,请登录到节点并运行 subscription-manager release 命令:

$ sudo subscription-manager release --set=9.2
Copy to Clipboard Toggle word wrap

1.5. 更新 Red Hat Openstack Platform 软件仓库

更新您的软件仓库以使用 Red Hat OpenStack Platform (RHOSP) 17.1。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 编辑 overcloud 订阅管理环境文件,这是包含 RhsmVars 参数的文件。此文件的默认名称为 rhsm.yml
  4. 检查订阅管理配置中的 rhsm_repos 参数。如果 rhsm_repos 参数使用 RHOSP 17.1 存储库,请将存储库改为正确的版本:

    parameter_defaults:
      RhsmVars:
        rhsm_repos:
          - rhel-9-for-x86_64-baseos-e4s-rpms
          - rhel-9-for-x86_64-appstream-e4s-rpms
          - rhel-9-for-x86_64-highavailability-e4s-rpms
          - openstack-17.1-for-rhel-9-x86_64-rpms
          - fast-datapath-for-rhel-9-x86_64-rpms
    Copy to Clipboard Toggle word wrap
  5. 保存 overcloud 订阅管理环境文件。
  6. 创建一个 playbook,其中包含将软件仓库设置为所有节点上的 RHOSP 17.1 的任务:

    $ cat > ~/update_rhosp_repos.yaml <<'EOF'
    - hosts: all
      gather_facts: false
      tasks:
        - name: change osp repos
          command: subscription-manager repos --enable=openstack-17.1-for-rhel-9-x86_64-rpms
          become: true
    EOF
    Copy to Clipboard Toggle word wrap
  7. 运行 update_rhosp_repos.yaml playbook:

    $ ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/update_rhosp_repos.yaml --limit <undercloud>,<Controller>,<Compute>
    Copy to Clipboard Toggle word wrap
    • <stack> 替换为您的堆栈的名称。
    • 使用 --limit 选项将内容应用到所有 RHOSP 节点。将 <undercloud>、<Controller> 和 <Compute> 替换为包含这些节点的环境中的 Ansible 组。不要针对 Ceph Storage 节点运行此 playbook,因为它们通常使用不同的订阅。
  8. 创建一个 playbook,其中包含一个任务,在所有 ceph 存储节点上将存储库设置为 RHOSP 17.1:

    $ cat > ~/update_ceph_repos.yaml <<'EOF'
    - hosts: all
      gather_facts: false
      tasks:
        - name: change ceph repos
          command: subscription-manager repos --enable=openstack-17.1-deployment-tools-for-rhel-9-x86_64-rpms
          become: true
    EOF
    Copy to Clipboard Toggle word wrap
  9. 运行 update_ceph_repos.yaml playbook:

    $ ansible-playbook -i ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml -f 25 ~/update_ceph_repos.yaml --limit CephStorage
    Copy to Clipboard Toggle word wrap

    使用 --limit 选项将内容应用到 Ceph Storage 节点。

1.6. 更新容器镜像准备文件

容器准备文件是包含 ContainerImagePrepare 参数的文件。您可以使用此文件定义用于获取 undercloud 和 overcloud 的容器镜像的规则。

在更新环境前,请检查该文件以确保获取正确的镜像版本。

流程

  1. 编辑容器准备文件。此文件的默认名称为 containers-prepare-parameter.yaml
  2. 确保每个规则集的 tag 参数设置为 17.1

    parameter_defaults:
      ContainerImagePrepare:
      - push_destination: true
        set:
          ...
          tag: '17.1'
        tag_from_label: '{version}-{release}'
    Copy to Clipboard Toggle word wrap
    注意

    如果您不想将特定的标签用于更新,如 17.117.1.1,请删除 tag 键-值对,并只指定 tag_from_label。这使用安装的 Red Hat OpenStack Platform 版本来确定要在更新过程中使用的标签值。如需有关版本标记的更多信息,请参阅自定义 Red Hat OpenStack Platform 部署中的 容器镜像标记指南

  3. 保存这个文件。

1.7. 在 overcloud 中禁用隔离

在更新 overcloud 之前,请确保禁用隔离。

如果在 Controller 节点更新过程中在您的环境中部署隔离,overcloud 可能会检测到某些节点被禁用并尝试隔离操作,这可能会导致意外的结果。

如果您在 overcloud 中启用了隔离功能,则必须在更新期间临时禁用隔离。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 对于每个 Controller 节点,登录到 Controller 节点,并运行 Pacemaker 命令来禁用隔离:

    $ ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=false"
    Copy to Clipboard Toggle word wrap
    • <controller_ip > 替换为 Controller 节点的 IP 地址。您可以在 /etc/hosts/var/lib/mistral 中查找 Controller 节点的 IP 地址。
  4. 如果使用 SBD 隔离,请在 pacemaker_remote 节点上禁用 SBD 隔离:

    # pcs property set stonith-watchdog-timeout=0 --force
    Copy to Clipboard Toggle word wrap
    注意

    确保您记下 watchdog 计时器设备间隔的原始值。在升级 control plane 节点后,您必须将 watchdog 计时器设备间隔重置为其原始值。有关更多信息,请参阅 overcloud 中的重新启用隔离

  5. 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 中的使用验证框架

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 安装软件包进行验证:

    $ sudo dnf -y update openstack-tripleo-validations python3-validations-libs validations-common
    Copy to Clipboard Toggle word wrap
  4. 运行验证:

    $ validation run -i ~/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml --group pre-update
    Copy to Clipboard Toggle word wrap
    • 将 <stack> 替换为堆栈的名称。

验证

  1. 要查看验证报告的结果,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 查看验证历史记录
注意

如果在运行验证时找不到主机,该命令将状态报告为 SKIPPEDSKIPPED 的状态表示不会执行验证,这是预期的。另外,如果没有满足验证的通过标准,该命令将状态报告为 FAILEDFAILED 验证不会阻止您使用更新的 RHOSP 环境。但是,FAILED 验证可能会指示您的环境出现问题。

2.2. 验证 SSH 密钥大小

从 Red Hat Enterprise Linux (RHEL) 9.1 开始,至少需要 SSH 密钥大小为 2048 位。如果 Red Hat OpenStack Platform (RHOSP) director 上的当前 SSH 密钥小于 2048 位,您可以丢失对 overcloud 的访问。您必须验证您的 SSH 密钥是否满足所需的位大小。

流程

  1. 验证您的 SSH 密钥大小:

    ssh-keygen -l -f ~/.ssh/id_rsa.pub
    Copy to Clipboard Toggle word wrap

    输出示例:

    1024 SHA256:Xqz0Xz0/aJua6B3qRD7VsLr6n/V3zhmnGSkcFR6FlJw stack@director.example.local (RSA)
    Copy to Clipboard Toggle word wrap
  2. 如果您的 SSH 密钥小于 2048 位,则必须在继续操作前轮转 SSH 密钥。如需更多信息,请参阅 强化 Red Hat OpenStack Platform 中的更新 OpenStack 环境中的 SSH 密钥

2.3. 执行容器化 undercloud 的次要更新

director 提供了用于更新 undercloud 节点上的主软件包的命令。使用 director 在 RHOSP 环境的当前版本中执行次要更新。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 使用 dnf update 命令更新 director 主软件包:

    $ sudo dnf update -y python3-tripleoclient ansible-*
    Copy to Clipboard Toggle word wrap
  4. 更新 undercloud 环境:

    $ openstack undercloud upgrade
    Copy to Clipboard Toggle word wrap
  5. 等待 undercloud 更新过程完成。
  6. 重启 undercloud 以更新操作系统的内核和其他系统软件包:

    $ sudo reboot
    Copy to Clipboard Toggle word wrap
  7. 稍等片刻,直到节点启动。

2.4. 更新 overcloud 镜像

您必须将当前的 overcloud 镜像替换为新版本,以确保 director 可以使用最新版本的 RHOSP 软件内省和置备节点。

先决条件

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. stack 用户的主目录(/home/stack/images)的 images 中删除任何存在的镜像。

    $ rm -rf ~/images/*
    Copy to Clipboard Toggle word wrap
  4. 解压存档:

    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 Toggle word wrap
  5. 将最新的镜像导入到 director:

    $ openstack overcloud image upload --update-existing --image-path /home/stack/images/
    Copy to Clipboard Toggle word wrap
  6. 将您的节点配置为使用新镜像:

    $ openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
    Copy to Clipboard Toggle word wrap
  7. 验证新镜像是否存在:

    $ ls -l /var/lib/ironic/httpboot /var/lib/ironic/images
    Copy to Clipboard Toggle word wrap
重要
  • 部署 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
    Copy to Clipboard Toggle word wrap

    这是镜像服务(glance) API 内部实例的服务,可为管理员提供位置数据,以及需要它的其他服务,如块存储服务(cinder)和计算服务(nova)。

流程

要更新 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 容器

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行 update 准备命令:

    $ openstack overcloud update prepare \
        --templates \
        --stack <stack_name> \
        -r <roles_data_file> \
        -n <network_data_file> \
        -e <environment_file> \
        -e <environment_file> \
        ...
    Copy to Clipboard Toggle word wrap

    包含与您的环境相关的以下选项:

    • 如果 overcloud 堆栈的名称与默认名称 overcloud 不同,请在更新准备命令中包含 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。
    • 如果使用自己的自定义角色,请使用 -r 选项包含自定义角色(<roles_data_file>)文件。
    • 如果使用自定义网络,请使用 -n 选项在(<network_data_file>)文件中包含您的可组合网络。
    • 如果您部署高可用性集群,请在 update preparation 命令中包含 --ntp-server 选项,或者在环境文件中包含 NtpServer 参数和值。
    • 使用 -e 选项包括任何自定义配置文件。
  4. 等待更新准备过程完成。

3.2. 运行容器镜像准备

在更新 overcloud 之前,您必须准备您的环境所需的所有容器镜像配置,并将最新的 RHOSP 17.1 容器镜像拉取到 undercloud。

要完成容器镜像准备,您必须针对具有 container_image_prepare 标签的任务运行 openstack overcloud external-update run 命令。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 对具有 container_image_prepare 标签的任务运行 openstack overcloud external-update run 命令:

    $ openstack overcloud external-update run --stack <stack_name> --tags container_image_prepare
    Copy to Clipboard Toggle word wrap
    • 如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈 名称设置为 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。

如果您使用 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 服务,您可能无法连接到虚拟机或创建新的虚拟机或虚拟网络。以下流程恢复连接。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 针对具有 ovn 标签的任务运行 openstack overcloud external-update run 命令:

    $ openstack overcloud external-update run --stack <stack_name> --tags ovn
    Copy to Clipboard Toggle word wrap
    • 如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈 名称设置为 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。
  4. 等待 ovn-controller 容器更新完成。

3.4. 更新 Pacemaker 控制的服务的容器镜像名称

如果您从 Red Hat Openstack Platform (RHOSP) 17 更新至 RHOSP 17.1,您必须更新 Pacemaker 控制的服务的容器镜像名称。您必须执行此更新,以迁移到 Pacemaker 控制服务的新镜像命名模式。

如果您将您的系统从 RHOSP 17.1 的版本更新至 RHOSP 17.1 的最新版本,则不需要更新 pacemaker 控制的服务的容器镜像名称。

流程

  1. 以 stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 使用 ha_image_update 标签运行 openstack overcloud external-update run 命令:

    $ openstack overcloud external-update run --stack <stack_name> --tags ha_image_update
    Copy to Clipboard Toggle word wrap
    • 如果 undercloud 堆栈的名称与默认堆栈名称 undercloud 不同,请将您的堆栈名称设置为 --stack 选项,并将 <stack_name> 替换为您的堆栈的名称。

3.5. 更新所有 Controller 节点

将所有 Controller 节点更新至最新的 RHOSP 17.1 版本。运行 openstack overcloud update run 命令,并包含 --limit Controller 选项,以限制仅限 Controller 节点的操作。control plane API 在次版本更新过程中被完全支持。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行 update 命令:

    $ openstack overcloud update run --stack <stack_name> --limit Controller
    Copy to Clipboard Toggle word wrap
    • 如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈 名称设置为 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。
  4. 等待 Controller 节点更新完成。

3.6. 使用非 Pacemaker 服务更新可组合角色

使用非 Pacemaker 服务将可组合角色更新至最新的 RHOSP 17.1 版本。一次更新每个可组合角色的节点。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行 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>
    Copy to Clipboard Toggle word wrap
    • 如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈 名称设置为 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。
    • <non_pcs_role_0 &gt ; , <non_pcs_role _1> , <non_pcs_role_ 2> 替换为可组合角色的名称,使用非 Pacemaker 服务。
  4. 等待更新完成。

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 &
Copy to Clipboard Toggle word wrap

这种对节点空间进行分区的方法是随机的,您无法控制要更新哪些节点。节点选择取决于运行 tripleo-ansible-inventory 命令时生成的清单文件。

要更新特定的 Compute 节点,请列出您要用逗号分隔的批处理中更新的节点:

$ openstack overcloud update run --limit <Compute0>,<Compute1>,<Compute2>,<Compute3>
Copy to Clipboard Toggle word wrap

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行 update 命令:

    $ openstack overcloud update run --stack <stack_name> --limit Compute
    Copy to Clipboard Toggle word wrap
    • 如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈 名称设置为 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。
  4. 等待 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
    Copy to Clipboard Toggle word wrap

    如果 Ceph 集群处于健康状态,它会返回 HEALTH_OK 状态。

    如果 Ceph 集群状态不健康,它将返回 HEALTH_WARNHEALTH_ERR 的状态。有关故障排除指南,请参阅 Red Hat Ceph Storage 5 故障排除指南Red Hat Ceph Storage 6 故障排除指南

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行 update 命令:

    $ openstack overcloud update run --stack <stack_name> --limit ComputeHCI
    Copy to Clipboard Toggle word wrap
    • 如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈 名称设置为 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。
  4. 等待节点更新完成。

3.9. 更新所有 DistributedComputeHCI 节点

更新特定于分布式计算节点架构的角色。当您升级分布式计算节点时,首先更新 DistributedComputeHCI 节点,然后更新 DistributedComputeHCIScaleOut 节点。

先决条件

  • 在运行 ceph-mon 服务的 Ceph monitor 或 Controller 节点上,检查 Red Hat Ceph Storage 集群状态是否健康,pg 状态为 active+clean

    $ sudo cephadm shell -- ceph status
    Copy to Clipboard Toggle word wrap

    如果 Ceph 集群处于健康状态,它会返回 HEALTH_OK 状态。

    如果 Ceph 集群状态不健康,它将返回 HEALTH_WARNHEALTH_ERR 的状态。有关故障排除指南,请参阅 Red Hat Ceph Storage 5 故障排除指南Red Hat Ceph Storage 6 故障排除指南

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行 update 命令:

    $ openstack overcloud update run --stack <stack_name> --limit DistributedComputeHCI
    Copy to Clipboard Toggle word wrap
    • 如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈 名称设置为 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。
  4. 等待 DistributedComputeHCI 节点更新完成。
  5. 使用相同的进程更新 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
    Copy to Clipboard Toggle word wrap

    如果 Ceph 集群处于健康状态,它会返回 HEALTH_OK 状态。

    如果 Ceph 集群状态不健康,它将返回 HEALTH_WARNHEALTH_ERR 的状态。有关故障排除指南,请参阅 Red Hat Ceph Storage 5 故障排除指南Red Hat Ceph Storage 6 故障排除指南

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行 update 命令:

    $ openstack overcloud update run --stack  <stack_name> --limit CephStorage
    Copy to Clipboard Toggle word wrap
    • 如果 overcloud 堆栈的名称与默认堆栈名称 overcloud 不同,请将您的堆栈 名称设置为 --stack 选项,并将 < stack_name& gt; 替换为您的堆栈的名称。
  4. 等待节点更新完成。

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 的更新版本。

先决条件

流程

  1. 登录到 Controller 节点。
  2. 检查集群的健康状况:

    $ sudo cephadm shell -- ceph health
    Copy to Clipboard Toggle word wrap
    注意

    如果 Ceph Storage 集群处于健康状态,命令会返回 HEALTH_OK 的结果。如果命令返回不同的结果,请在继续更新前查看集群的状态并联系红帽支持。有关更多信息,请参阅 Red Hat Ceph Storage 升级指南中的使用 cephadm 升级 Red Hat Ceph Storage 集群,或 Red Hat Ceph Storage 6 升级指南中的使用 cephadm 升级 Red Hat Ceph Storage 集群

  3. 可选:检查 Ceph Storage 集群更新中应包含哪些镜像:

    $ openstack tripleo container image list -f value |  awk -F '//' '/ceph/ {print $2}'
    Copy to Clipboard Toggle word wrap
  4. 将集群更新至最新的 Red Hat Ceph Storage 版本:

    $ sudo cephadm shell -- ceph orch upgrade start --image <image_name>: <version>
    Copy to Clipboard Toggle word wrap
    • <image_name > 替换为 Ceph Storage 集群镜像的名称。
    • &lt;version> 替换为您要更新 Ceph Storage 集群的目标版本。
  5. 等待 Ceph Storage 容器更新完成。要监控更新的状态,请运行以下命令:

     sudo cephadm shell -- ceph orch upgrade status
    Copy to Clipboard Toggle word wrap

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)

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 针对使用 online_upgrade 标签的任务运行 openstack overcloud external-update run 命令:

    $ openstack overcloud external-update run --stack <stack_name> --tags online_upgrade
    Copy to Clipboard Toggle word wrap

3.14. 在 overcloud 中重新启用隔离

在更新 overcloud 之前,您将 禁用 overcloud 中的隔离功能。在更新 overcloud 后,重新启用隔离来保护您的数据(如果节点失败)。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 登录到 Controller 节点并运行 Pacemaker 命令重新启用隔离:

    $ ssh tripleo-admin@<controller_ip> "sudo pcs property set stonith-enabled=true"
    Copy to Clipboard Toggle word wrap
    • <controller_ip > 替换为 Controller 节点的 IP 地址。您可以使用 openstack server list 命令查找 Controller 节点的 IP 地址。
  4. 如果使用 SBD 隔离,请在禁用 watchdog 计时器设备间隔前将 watchdog 计时器设备间隔重置为其原始值:

    # pcs property set stonith-watchdog-timeout=<interval>
    Copy to Clipboard Toggle word wrap
    • <interval > 替换为 watchdog 计时器设备的原始值,例如 10
  5. fencing.yaml 环境文件中,将 EnableFencing 参数设置为 true

第 4 章 重新引导 overcloud

执行小的 Red Hat OpenStack Platform (RHOSP)更新至最新的 17.1 版本后,重启您的 overcloud。重启会使用任何关联的内核、系统级和容器组件更新刷新节点。这些更新提供了性能和安全优势。计划停机时间来执行重启过程。

使用以下指导了解如何重新引导不同的节点类型:

4.1. 重新引导 Controller 和可组合节点

根据可组合角色重新引导 Controller 节点和独立节点,并排除 Compute 节点和 Ceph Storage 节点。

流程

  1. 登录您要重新引导的节点。
  2. 可选:如果节点使用 Pacemaker 资源,请停止集群:

    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs cluster stop
    Copy to Clipboard Toggle word wrap
  3. 重新引导节点:

    [tripleo-admin@overcloud-controller-0 ~]$ sudo reboot
    Copy to Clipboard Toggle word wrap
  4. 稍等片刻,直到节点启动。

验证

  1. 验证服务是否已启用。

    1. 如果该节点使用 Pacemaker 服务,请检查该节点是否已重新加入集群:

      [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs status
      Copy to Clipboard Toggle word wrap
    2. 如果该节点使用 Systemd 服务,请检查是否所有服务都已启用:

      [tripleo-admin@overcloud-controller-0 ~]$ sudo systemctl status
      Copy to Clipboard Toggle word wrap
    3. 如果该节点使用容器化服务,则检查节点上的所有容器是否已激活:

      [tripleo-admin@overcloud-controller-0 ~]$ sudo podman ps
      Copy to Clipboard Toggle word wrap

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
    Copy to Clipboard Toggle word wrap

    如果 Ceph 集群处于健康状态,它会返回 HEALTH_OK 状态。

    如果 Ceph 集群状态不健康,它将返回 HEALTH_WARNHEALTH_ERR 的状态。有关故障排除指南,请参阅 Red Hat Ceph Storage 5 故障排除指南Red Hat Ceph Storage 6 故障排除指南

流程

  1. 登录到运行 ceph-mon 服务的 Ceph Monitor 或 Controller 节点,并临时禁用 Ceph Storage 集群重新平衡:

    $ sudo cephadm shell -- ceph osd set noout
    $ sudo cephadm shell -- ceph osd set norebalance
    Copy to Clipboard Toggle word wrap
    注意

    如果您有多堆栈或分布式计算节点(DCN)架构,您必须在设置 nooutnorebalance 标志时指定 Ceph 集群名称。例如: sudo cephadm shell -c /etc/ceph/<cluster>.conf -k /etc/ceph/<cluster>.client.keyring

  2. 选择第一个要重新引导的 Ceph Storage 节点并登录到该节点。
  3. 重新引导节点:

    $ sudo reboot
    Copy to Clipboard Toggle word wrap
  4. 稍等片刻,直到节点启动。
  5. 登录节点并检查 Ceph 集群状态:

    $ sudo cephadm shell -- ceph status
    Copy to Clipboard Toggle word wrap

    确认 pgmap 报告的所有 pgs 的状态是否都正常 (active+clean)。

  6. 注销节点,重新引导下一个节点,并检查其状态。重复此过程,直到您已重新引导所有 Ceph Storage 节点。
  7. 完成后,登录到运行 ceph-mon 服务的 Ceph Monitor 或 Controller 节点,并启用 Ceph 集群重新平衡:

    $ sudo cephadm shell -- ceph osd unset noout
    $ sudo cephadm shell -- ceph osd unset norebalance
    Copy to Clipboard Toggle word wrap
    注意

    如果您有多堆栈或分布式计算节点(DCN)架构,您必须在取消设置 nooutnorebalance 标志时指定 Ceph 集群名称。例如: sudo cephadm shell -c /etc/ceph/<cluster>.conf -k /etc/ceph/<cluster>.client.keyring

  8. 执行最后的状态检查,确认集群报告 HEALTH_OK

    $ sudo cephadm shell ceph status
    Copy to Clipboard Toggle word wrap

4.3. 重新引导 Compute 节点

为确保 Red Hat OpenStack Platform 环境中 实例的停机时间最少,迁移实例工作流 概述了从您要重新引导的 Compute 节点迁移实例的步骤。

迁移实例工作流

  1. 决定是否在重新引导节点前将实例迁移到另一个 Compute 节点。
  2. 选择并禁用您要重新引导的 Compute 节点,使其不置备新实例。
  3. 将实例迁移到另一个 Compute 节点中。
  4. 重新引导空的 Compute 节点。
  5. 启用空的 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 参数

流程

  1. stack 用户的身份登录 undercloud。
  2. 检索 Compute 节点列表,以识别您要重新引导的节点的主机名:

    (undercloud)$ source ~/overcloudrc
    (overcloud)$ openstack compute service list
    Copy to Clipboard Toggle word wrap

    识别您要重新引导的 Compute 节点的主机名。

  3. 在您要重新引导的 Compute 节点上禁用 Compute 服务:

    (overcloud)$ openstack compute service list
    (overcloud)$ openstack compute service set <hostname> nova-compute --disable
    Copy to Clipboard Toggle word wrap
    • <hostname > 替换为 Compute 节点的主机名。
  4. 列出 Compute 节点上的所有实例:

    (overcloud)$ openstack server list --host <hostname> --all-projects
    Copy to Clipboard Toggle word wrap
  5. 可选: 要将实例迁移到另一个 Compute 节点,请完成以下步骤:

    1. 如果您决定将实例迁移至另一个 Compute 节点,则使用以下命令之一:

      • 要将实例迁移到其他主机,请运行以下命令:

        (overcloud) $ openstack server migrate <instance_id> --live <target_host> --wait
        Copy to Clipboard Toggle word wrap
        • <instance_id& gt; 替换为您的实例 ID。
        • <target_host > 替换为您要将实例迁移到的主机。
      • nova-scheduler 自动选择目标主机:

        (overcloud) $ nova live-migration <instance_id>
        Copy to Clipboard Toggle word wrap
      • 一次性实时迁移所有实例:

        $ nova host-evacuate-live <hostname>
        Copy to Clipboard Toggle word wrap
        注意

        nova 命令可能会引发一些弃用警告,这些警告信息可以被安全忽略。

    2. 稍等片刻,直至迁移完成。
    3. 确认迁移成功完成:

      (overcloud) $ openstack server list --host <hostname> --all-projects
      Copy to Clipboard Toggle word wrap
    4. 继续迁移实例,直到 Compute 节点上没有保留任何实例。
  6. 登录到 Compute 节点并重启节点:

    [tripleo-admin@overcloud-compute-0 ~]$ sudo reboot
    Copy to Clipboard Toggle word wrap
  7. 稍等片刻,直到节点启动。
  8. 重新启用 Compute 节点:

    $ source ~/overcloudrc
    (overcloud) $ openstack compute service set <hostname>  nova-compute --enable
    Copy to Clipboard Toggle word wrap
  9. 确认是否已启用 Compute 节点:

    (overcloud) $ openstack compute service list
    Copy to Clipboard Toggle word wrap

4.4. 在 overcloud 更新后验证 RHOSP

更新 Red Hat OpenStack Platform (RHOSP)环境后,使用 tripleo-validations playbook 验证 overcloud。

有关验证的更多信息, 请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的使用验证框架

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 运行验证:

    $ validation run -i ~/overcloud-deploy/<stack>/config-download/<stack>/tripleo-ansible-inventory.yaml --group post-update
    Copy to Clipboard Toggle word wrap
    • 将 <stack> 替换为堆栈的名称。

验证

  1. 要查看验证报告的结果,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 查看验证历史记录
注意

如果在运行验证时找不到主机,该命令将状态报告为 SKIPPEDSKIPPED 的状态表示不会执行验证,这是预期的。另外,如果没有满足验证的通过标准,该命令将状态报告为 FAILEDFAILED 验证不会阻止您使用更新的 RHOSP 环境。但是,FAILED 验证可能会指示您的环境出现问题。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat