第 4 章 次发行版本之间的更新
4.1. 在次发行版本间更新 Red Hat Virtualization
要从您的当前版本 4.4 更新至最新版本 4.4,请更新 Manager,更新主机,然后更改集群的兼容性版本、虚拟机和数据中心。
如果从 4.4.9 升级到 RHVH 上的版本失败,请运行 dnf reinstall redhat-virtualization-host-image-update
命令来修复问题。
升级注意事项
- 计划升级时,请参阅 Red Hat Virtualization 4.4 升级注意事项和已知问题。
当从 Open Virtual Network (OVN)和 Open vSwitch (OvS) 2.11 升级到 OVN 2021 和 OvS 2.15 时,只要满足以下条件,进程就可以对用户透明。
- 管理器首先升级。
- 在主机升级前,需要禁用 ovirt-provider-ovn 安全组,对于预期在带有 OVN/OvS 版本 2.11 的主机间工作的所有 OVN 网络。
- 主机已升级为与 OVN 版本 2021 或更高版本和 OvS 版本 2.15 匹配。您必须在管理门户中完成此步骤,以便正确重新配置 OVN 并刷新证书。
- 升级后会重启主机。
要验证供应商和 OVN 是否在主机上配置成功,请检查主机 常规选项卡中 的 OVN 配置 标记。如果 OVN Configured 设为 No,请单击
4.1.1. 分析环境
建议您在进行更新和故障排除之前,运行 Log Collection Analysis(日志集合分析)工具和 Image Discrepancies 工具。这些工具分析您的环境以了解可能妨碍您执行更新的已知问题,并提供解决问题的建议。
4.1.2. 日志集合分析工具
在执行更新和故障排除之前,请运行日志集合分析工具。该工具会针对可能妨碍您执行更新的已知问题分析您的环境,并提供解决问题的建议。工具收集有关系统的详细信息,并将其显示为 HTML 文件。
先决条件
确保 Manager 启用了正确的存储库。有关所需存储库列表,请参阅为 Red Hat Virtualization 4.4 启用 Red Hat Virtualization Manager 存储库。
Red Hat Virtualization Manager 的更新将通过内容交付网络发布。
流程
在 Manager 机器上安装 Log Collection Analysis 工具:
# yum install rhv-log-collector-analyzer
运行工具:
# rhv-log-collector-analyzer --live
此时会显示详细的报告。
默认情况下,报告被保存到名为
analyzer_report.html
的文件中。要将文件保存到特定位置,请使用
--html
标志并指定位置:# rhv-log-collector-analyzer --live --html=/directory/filename.html
您可以使用 ELinks 文本模式 Web 浏览器在终端中读取分析器报告。安装 ELinks 浏览器:
# yum install -y elinks
启动 ELinks 并打开
analyzer_report.html
。# elinks /home/user1/analyzer_report.html
在 ELinks 中使用以下命令浏览报告:
-
Insert
向上滚动 -
Delete
向下滚动 -
PageUp
向上一页 -
PageDown
向下一页 -
Left Bracket
向左滚动 -
Right Bracket
向右滚动
-
4.1.2.1. 使用镜像差异工具监控快照健康状况
RHV 镜像离散工具分析存储域和 RHV 数据库中的镜像数据。如果发现卷和卷属性的差异,它会警告您,当不会修复这些差异。在各种情况下使用该工具,例如:
- 在升级版本之前,为了避免将损坏的卷或链移至新版本。
- 出现失败的存储操作后,用于检测处于错误状态的卷或属性。
- 从备份中恢复 RHV 数据库或存储后。
- 在潜在问题发生之前定期对其进行检测。
- 要分析快照或实时迁移相关的问题,并在修复这些类型的问题后验证系统健康状况。
先决条件
-
所需版本:此工具是在 RHV 版本 4.3.8 中引入的,它带有
rhv-log-collector-analyzer-0.2.15-0.el7ev
。 - 由于数据收集在不同位置上同时运行且并不具有原子性,因此请停止环境中可以修改存储域的所有活动。也就是说,请勿创建或删除快照、编辑、移动、创建或删除磁盘。否则,可能会出现错误检测不一致的情况。虚拟机可以在此过程中保持正常运行。
流程
要运行该工具,在 RHV Manager 中输入以下命令:
# rhv-image-discrepancies
- 如果工具发现差异,则重新运行以确认结果,特别是工具运行时可能会执行一些操作。
此工具包含任何导出和 ISO 存储域,并可报告它们的差异。如果是这样,可以忽略它们,因为这些存储域没有 RHV 数据库中镜像的条目。
了解结果
工具报告以下内容:
- 如果在存储中显示但没有在数据库中,或者卷显示在数据库中,但没有出现在存储中。
- 如果存储和数据库之间有一些卷属性不同:
输出示例:
Checking storage domain c277ad93-0973-43d9-a0ca-22199bc8e801 Looking for missing images... No missing images found Checking discrepancies between SD/DB attributes... image ef325650-4b39-43cf-9e00-62b9f7659020 has a different attribute capacity on storage(2696984576) and on DB(2696986624) image 852613ce-79ee-4adc-a56a-ea650dcb4cfa has a different attribute capacity on storage(5424252928) and on DB(5424254976) Checking storage domain c64637b4-f0e8-408c-b8af-6a52946113e2 Looking for missing images... No missing images found Checking discrepancies between SD/DB attributes... No discrepancies found
要更新独立管理器,请按照标准流程进行更新:
4.1.3. 更新 Red Hat Virtualization Manager
先决条件
确保 Manager 启用了正确的存储库。有关所需存储库列表,请参阅为 Red Hat Virtualization 4.4 启用 Red Hat Virtualization Manager 存储库。
注意如果您要从 RHV 版本 4.4.0 到 4.4.8 升级到 RHV 版本 4.4.9 或更高版本,您必须将 EAP 7.4 频道添加到订阅存储库的
jb-eap-7.4-for-rhel-8-x86_64-rpms
中,并在升级后删除jb-eap-7.3-for-rhel-8-x86_64-rpms
。Red Hat Virtualization Manager 的更新将通过内容交付网络发布。
流程
在 Manager 机器中检查更新的软件包是否可用:
# engine-upgrade-check
更新设置软件包:
# yum update ovirt\*setup\* rh\*vm-setup-plugins
使用
engine-setup
脚本更新 Red Hat Virtualization Manager。engine-setup
脚本会提示您显示一些配置问题,然后停止ovirt-engine
服务,下载并安装更新的软件包,备份和更新数据库,执行安装后配置,以及启动ovirt-engine
服务。# engine-setup
当脚本成功完成时,会显示以下信息:
Execution of setup completed successfully
注意Red Hat Virtualization Manager 安装过程中也会使用
engine-setup
脚本,并存储提供的配置值。在更新过程中,在预览配置时会显示存储的值,如果安装后使用engine-config
更新配置,则可能不会更新。例如,如果在安装后使用engine-config
将SANWipeAfterDelete
更新为true
,engine-setup
会在配置预览中输出 "Default SAN wipe after delete: False"。但是engine-setup
不会覆盖更新的值。重要更新过程可能需要一些时间。在进程完成之前,请勿停止该进程。
更新基本操作系统以及在 Manager 中安装的任何可选软件包:
# yum update --nobest
重要如果您在更新过程中遇到必要的 Ansible 软件包冲突,请参阅在 RHV 管理器上无法执行 yum update(ansible 冲突 )。
重要如果更新了任何内核包,请重新引导计算机以完成更新。
4.1.4. 更新自托管引擎
要将自托管引擎从当前版本更新到最新版本,您必须将环境置于全局维护模式,然后按照标准流程在次版本间更新。
确保 Manager 启用了正确的存储库。有关所需存储库列表,请参阅更新 Red Hat Virtualization Manager 部分。
启用全局维护模式
您必须将自托管引擎环境置于全局维护模式,然后才能在 Manager 虚拟机上执行任何设置或升级任务。
流程
登录到自托管引擎节点并启用全局维护模式:
# hosted-engine --set-maintenance --mode=global
在继续前确认环境处于全局维护模式:
# hosted-engine --vm-status
您应该会看到指示集群处于全局维护模式的消息。
更新 Red Hat Virtualization Manager
先决条件
确保 Manager 启用了正确的存储库。有关所需存储库列表,请参阅为 Red Hat Virtualization 4.4 启用 Red Hat Virtualization Manager 存储库。
注意如果您要从 RHV 版本 4.4.0 到 4.4.8 升级到 RHV 版本 4.4.9 或更高版本,您必须将 EAP 7.4 频道添加到订阅存储库的
jb-eap-7.4-for-rhel-8-x86_64-rpms
中,并在升级后删除jb-eap-7.3-for-rhel-8-x86_64-rpms
。Red Hat Virtualization Manager 的更新将通过内容交付网络发布。
流程
在 Manager 机器中检查更新的软件包是否可用:
# engine-upgrade-check
更新设置软件包:
# yum update ovirt\*setup\* rh\*vm-setup-plugins
使用
engine-setup
脚本更新 Red Hat Virtualization Manager。engine-setup
脚本会提示您显示一些配置问题,然后停止ovirt-engine
服务,下载并安装更新的软件包,备份和更新数据库,执行安装后配置,以及启动ovirt-engine
服务。# engine-setup
当脚本成功完成时,会显示以下信息:
Execution of setup completed successfully
注意Red Hat Virtualization Manager 安装过程中也会使用
engine-setup
脚本,并存储提供的配置值。在更新过程中,在预览配置时会显示存储的值,如果安装后使用engine-config
更新配置,则可能不会更新。例如,如果在安装后使用engine-config
将SANWipeAfterDelete
更新为true
,engine-setup
会在配置预览中输出 "Default SAN wipe after delete: False"。但是engine-setup
不会覆盖更新的值。重要更新过程可能需要一些时间。在进程完成之前,请勿停止该进程。
更新基本操作系统以及在 Manager 中安装的任何可选软件包:
# yum update --nobest
重要如果您在更新过程中遇到必要的 Ansible 软件包冲突,请参阅在 RHV 管理器上无法执行 yum update(ansible 冲突 )。
重要如果更新了任何内核软件包:
- 禁用全局维护模式
- 重启计算机以完成更新。
相关信息
禁用全局维护模式
流程
- 登录 Manager 虚拟机,并将它关闭。
登录到自托管引擎节点之一并禁用全局维护模式:
# hosted-engine --set-maintenance --mode=none
当您退出全局维护模式时,ovirt-ha-agent 会启动 Manager 虚拟机,然后 Manager 会自动启动。管理器最多可能需要十分钟才能启动。
确认环境正在运行:
# hosted-engine --vm-status
列出的信息包括引擎状态。引擎状态的值应该是:
{"health": "good", "vm": "up", "detail": "Up"}
注意当虚拟机仍在引导且管理器尚未启动时,引擎状态为:
{"reason": "bad vm status", "health": "bad", "vm": "up", "detail": "Powering up"}
如果发生这种情况,请等待几分钟后重试。
4.1.5. 更新集群中的所有主机
您可以更新集群中的所有主机,而不是逐一更新主机。这在升级到 Red Hat Virtualization 的新版本时特别有用。如需有关用于自动化更新的 Ansible 角色的更多信息,请参阅 oVirt Cluster Upgrade。
一次更新一个集群。
限制
-
在 RHVH 上,更新仅保留
/etc
和/var
目录中的修改内容。更新期间会覆盖其他路径中的修改数据。 - 如果启用了迁移,则虚拟机将自动迁移到集群中的另一主机上。
- 在自托管引擎环境中,管理器虚拟机只能在同一集群中自托管引擎节点之间迁移。它不能迁移到标准主机。
- 集群必须有足够的内存供其主机执行维护。否则,虚拟机迁移将挂起且失败。您可以通过在更新主机前关闭部分或所有虚拟机来减少主机更新的内存使用。
- 您无法将固定的虚拟机(如使用 vGPU 的虚拟机)迁移到另一台主机。固定虚拟机会在更新过程中关闭,除非您选择跳过该主机。
流程
-
在管理门户中,点
并选择集群。Upgrade status 列显示集群中任何主机的升级是否可用。 - 单击 Upgrade。
- 选择要更新的主机,然后单击 Next。
配置选项:
- Stop Pinned VMs 会关闭固定到集群中主机的任何虚拟机,这个选项被默认选择。您可以清除此复选框以跳过更新这些主机,从而使固定虚拟机保持运行,例如当固定虚拟机运行重要服务或进程时,您不希望它在更新过程中在未知时间关闭。
-
Upgrade Timeout (Minutes) 设置在集群升级失败并显示超时前等待各个主机更新的时间。默认值为
60
。您可以为可能不足 60 分钟的大型集群增加它,或者为主机快速更新的小型集群减少它。 - Check Upgrade 会在运行升级过程前,检查每个主机是否有可用的更新。默认情况下不选择它,但如果您需要确保包括最新的更新,例如当您配置了 Manager 以检查主机更新少于默认值时,您可以选择它。
- Reboot After Upgrade 会在更新后重新启动,这会默认选择。如果您确定没有需要主机重新引导的待定更新,您可以清除此复选框来加快进程。
-
在更新过程中,使用 Maintenance Policy 将集群的调度策略设置为
cluster_maintenance
。默认情况下会选择它,因此活动有限,除非为高可用,虚拟机不会启动。如果您有一个自定义调度策略要在更新过程中一直使用,但这可能会产生未知的后果,您可以清除此复选框。在禁用这个选项前,请确保您的自定义策略与集群升级活动兼容。
- 点 Next。
- 检查受影响的主机和虚拟机的摘要。
- 单击 Upgrade。
- 集群升级状态屏幕会显示进度条,显示完成的情况,以及升级过程中的步骤列表。您可以点击 Go to Event Log 打开升级的日志条目。关闭此屏幕不会中断升级过程。
您可以跟踪主机更新的进度:
-
在
视图中,Upgrade Status 列会显示一个进度条,显示完成的百分比。 -
在
视图中 - 在 Notification Drawer 的Events 部分 ( ).
您可以通过
现在,您可以更新集群兼容性版本。
4.1.6. 更改集群兼容性版本
Red Hat Virtualization 集群有一个兼容版本。集群兼容性版本表示集群中所有主机支持的 Red Hat Virtualization 的功能。集群兼容性根据集群中功能最低的主机操作系统版本来设置。
先决条件
- 要更改集群兼容性级别,您必须首先将集群中的所有主机更新为支持您需要的兼容性级别。检查主机旁边是否存在指示有可用的更新的图标。
限制
在将集群兼容性级别升级到 4.6 后,virtio NIC 会作为不同的设备枚举。因此,可能需要重新配置 NIC。红帽建议您在升级集群前测试虚拟机,方法是在虚拟机上将集群兼容性级别设置为 4.6 并验证网络连接。
如果虚拟机的网络连接失败,在升级集群前,使用与当前模拟机器匹配的自定义模拟机器配置虚拟机,例如 pc-q35-rhel8.3.0 适用于 4.5 兼容性版本。
流程
-
在管理门户中,点
。 - 选择要更改的集群并点击 。
- 在 General 选项卡中,将 Compatibility Version 更改为所需的值。
- 点击 Change Cluster Compatibility Version 确认对话框。 。此时会打开
- 点 确认。
错误消息可能会警告某些虚拟机和模板配置不正确。要修复此错误,请手动编辑每个虚拟机。Edit Virtual Machine 窗口提供了额外的验证和警告来显示正确的内容。有时问题会自动解决,虚拟机的配置只需要再次保存。编辑完每个虚拟机后,您将能够更改集群兼容性版本。
现在,您可以为集群中的虚拟机更新集群兼容性版本。
4.1.7. 更改虚拟机集群兼容性
更新集群的兼容性版本后,您必须通过从管理门户重启或使用 REST API,或者从客户机操作系统中更新所有正在运行的或暂停虚拟机的集群兼容性版本。需要重新启动的虚拟机将标记为待处理更改图标( )。
虽然您可以在以后方便的时候重新启动虚拟机,但强烈建议您立即重新启动,以便虚拟机使用最新的配置。任何尚未重启的虚拟机会继续使用先前的配置运行,后续对虚拟机的配置更改可能会覆盖待处理的集群兼容性更改。
流程
-
在管理门户中,点
。 检查哪些虚拟机需要重新启动。在 Vms: 搜索栏中输入以下查询:
next_run_config_exists=True
搜索结果显示所有待处理更改的虚拟机。
- 选择每个虚拟机并点击 Restart。或者,如果需要,您可以从虚拟机中重新启动虚拟机。
虚拟机启动时,会自动应用新的兼容版本。
您无法更改处于预览的虚拟机快照的集群兼容性版本。您必须首先提交或撤销预览。
现在,您可以更新数据中心兼容性版本。
4.1.8. 更改数据中心兼容性版本
Red Hat Virtualization 数据中心具有兼容性版本。兼容性版本指明了数据中心要与之兼容的 Red Hat Virtualization 版本。数据中心中的所有集群都必须支持所需的兼容性级别。
先决条件
- 要更改数据中心兼容性级别,您必须首先更新数据中心中所有集群和虚拟机的兼容性版本。
流程
-
在管理门户中,点
。 - 选择要更改的数据中心,再单击 。
- 将 Compatibility Version 更改为所需的值。
- 点击 Change Data Center Compatibility Version 确认对话框。 。此时会打开
- 点 确认。
您还可以单独更新主机:
4.1.9. 更新单个主机
使用主机升级管理器直接从管理门户更新各个主机。
升级管理器仅检查状态为 Up 或 Non-operational,但不是 Maintenance 的主机。
限制
-
在 RHVH 上,更新仅保留
/etc
和/var
目录中的修改内容。更新期间会覆盖其他路径中的修改数据。 - 如果启用了迁移,则虚拟机将自动迁移到集群中的另一主机上。在主机使用量相对较低时更新主机。
- 在自托管引擎环境中,管理器虚拟机只能在同一集群中自托管引擎节点之间迁移。它不能迁移到标准主机。
- 集群必须有足够的内存供其主机执行维护。否则,虚拟机迁移将挂起且失败。您可以通过在更新主机前关闭部分或所有虚拟机来减少主机更新的内存使用。
- 您无法将固定的虚拟机(如使用 vGPU 的虚拟机)迁移到另一台主机。在更新主机之前,必须关闭固定虚拟机。
流程
确保启用了正确的存储库。要查看当前启用的存储库列表,请运行
dnf repolist
。对于 Red Hat Virtualization 主机:
# subscription-manager repos --enable=rhvh-4-for-rhel-8-x86_64-rpms
对于 Red Hat Enterprise Linux 主机:
# subscription-manager repos \ --enable=rhel-8-for-x86_64-baseos-eus-rpms \ --enable=rhel-8-for-x86_64-appstream-eus-rpms \ --enable=rhv-4-mgmt-agent-for-rhel-8-x86_64-rpms \ --enable=advanced-virt-for-rhel-8-x86_64-rpms \ --enable=fast-datapath-for-rhel-8-x86_64-rpms # subscription-manager release --set=8.6
-
在管理门户中,点
并选择要更新的主机。 点
并点 。 打开 Notification Drawer ( ) ,展开 Events 项查看结果。
-
如果有可用更新,点
。 点
来更新主机。运行的虚拟机会根据其迁移策略迁移。如果对任何虚拟机禁用迁移,则会提示您将其关闭。主机详情会在
中更新,其状态会经历以下阶段: Maintenance > Installing > Reboot > Up
注意如果更新失败,主机的状态将变为 Install Failed。在 Install Failed
。
对 Red Hat Virtualization 环境中的每一主机重复此步骤。
您应该从管理门户更新主机。但是,您可以使用 dnf upgrade
来更新主机。
4.1.10. 手动更新主机
此信息适用于需要手动更新主机的高级系统管理员。红帽不支持此方法。本节中描述的程序并没有完全包括重要的步骤,如证书续订。假设对其已有了解。红帽支持使用管理门户更新主机。详情请参阅 Administration Guide 中的 Updating individual hosts 或 Updating all hosts in a cluster。
您可以使用 dnf
命令更新您的主机。定期更新您的系统以确保及时应用安全和漏洞修复。
限制
-
在 RHVH 上,更新仅保留
/etc
和/var
目录中的修改内容。更新期间会覆盖其他路径中的修改数据。 - 如果启用了迁移,则虚拟机将自动迁移到集群中的另一主机上。在主机使用量相对较低时更新主机。
- 在自托管引擎环境中,管理器虚拟机只能在同一集群中自托管引擎节点之间迁移。它不能迁移到标准主机。
- 集群必须有足够的内存供其主机执行维护。否则,虚拟机迁移将挂起且失败。您可以通过在更新主机前关闭部分或所有虚拟机来减少主机更新的内存使用。
- 您无法将固定的虚拟机(如使用 vGPU 的虚拟机)迁移到另一台主机。在更新主机之前,必须关闭固定虚拟机。
流程
确保启用了正确的存储库。您可以通过运行
dnf repolist
来检查当前启用了哪些存储库。对于 Red Hat Virtualization 主机:
# subscription-manager repos --enable=rhvh-4-for-rhel-8-x86_64-rpms
对于 Red Hat Enterprise Linux 主机:
# subscription-manager repos \ --enable=rhel-8-for-x86_64-baseos-eus-rpms \ --enable=rhel-8-for-x86_64-appstream-eus-rpms \ --enable=rhv-4-mgmt-agent-for-rhel-8-x86_64-rpms \ --enable=advanced-virt-for-rhel-8-x86_64-rpms \ --enable=fast-datapath-for-rhel-8-x86_64-rpms # subscription-manager release --set=8.6
-
在管理门户中,点
并选择要更新的主机。 -
点
和 。 对于 Red Hat Enterprise Linux 主机:
确定 Red Hat Enterprise Linux 的当前版本:
# cat /etc/redhat-release
检查哪个版本的 redhat-release 软件包可用:
# dnf --refresh info --available redhat-release
此命令显示任何可用的更新。例如,当从 Red Hat Enterprise Linux 8.2.z 升级到 8.3,比较软件包版本和当前安装的版本:
Available Packages Name : redhat-release Version : 8.3 Release : 1.0.el8 …
小心Red Hat Enterprise Linux Advanced Virtualization 模块通常比 Red Hat Enterprise Linux y-stream 晚发布。如果没有新的 Advanced Virtualization 模块可用,或者有启用它的错误,在此停止并取消升级。否则,您将面临损坏主机的风险。
如果 Red Hat Enterprise Linux 8.3 或更高版本有 Advanced Virtualization 流,请重置
virt
模块:# dnf module reset virt
注意如果在 Advanced Virtualization 流中已启用此模块,则不需要这一步骤,但它不会造成负面影响。
您可以输入以下内容来查看流的值:
# dnf module list virt
使用以下命令在高级虚拟化流中启用
virt
模块:RHV 4.4.2:
# dnf module enable virt:8.2
RHV 4.4.3 到 4.4.5:
# dnf module enable virt:8.3
对于 RHV 4.4.6 到 4.4.10 :
# dnf module enable virt:av
对于 RHV 4.4 及更新的版本:
# dnf module enable virt:rhel
注意从 RHEL 8.6 开始,高级虚拟化软件包将使用标准的
virt:rhel
模块。对于 RHEL 8.4 和 8.5,只使用一个高级虚拟化流,即rhel:av
。
启用
nodejs
模块的版本 14:# dnf module -y enable nodejs:14
更新主机:
# dnf upgrade --nobest
重新启动主机,以确保正确应用所有更新。
注意检查基于 img 的日志,以查看是否有其他软件包更新针对 Red Hat Virtualization 主机失败。如果在更新后成功重新安装某些软件包,请检查 /var/imgbased/perted-rpms 中是否列出了软件包。添加任何缺少的软件包,然后运行
rpm -Uvh /var/imgbased/persisted-rpms/*
。
对 Red Hat Virtualization 环境中的每一主机重复此过程。