1.2. 将自托管引擎从 Red Hat Virtualization 4.2 升级到 4.3
将自托管引擎环境从版本 4.2 升级到 4.3 需要以下步骤:
- 确保您满足先决条件,包括启用正确的软件仓库
- 使用 Log Collection Analysis 工具和镜像 Discrepancies 工具检查可能会妨碍成功升级的问题
- 将环境置于全局维护模式
- 将 4.2 Manager 更新至最新版本的 4.2
- 将 Manager 从 4.2 升级到 4.3
- 禁用全局维护模式
- 升级自托管引擎节点和任何标准主机
- 更新集群的兼容性版本
- 重新引导任何正在运行的或暂停的虚拟机以更新其配置
- 更新数据中心的兼容性版本
- 如果您之前在没有使用 SHA-256 证书替换 SHA-1 证书的情况下升级到 4.2,则必须现在替换证书。
1.2.1. 先决条件
- 计划任何需要虚拟机停机的时间。在升级过程中更新集群的兼容性版本后,重启后会自动为每个虚拟机应用新的硬件配置。您必须尽快重新引导任何正在运行的或暂停的虚拟机,才能应用配置更改。
- 确保您的环境满足 Red Hat Virtualization 4.4 的要求。有关先决条件的完整列表,请参阅规划和前提条件指南。
- 在升级 Red Hat Virtualization Manager 时,建议您使用其中一个现有主机。如果您决定使用新主机,则必须为新主机分配唯一名称,然后在开始升级过程前将其添加到现有集群中。
1.2.2. 分析环境
建议您在进行更新和故障排除之前,运行 Log Collection Analysis(日志集合分析)工具和 Image Discrepancies 工具。这些工具分析您的环境以了解可能妨碍您执行更新的已知问题,并提供解决问题的建议。
1.2.3. 日志集合分析工具
在执行更新和故障排除之前,请运行日志集合分析工具。该工具会针对可能妨碍您执行更新的已知问题分析您的环境,并提供解决问题的建议。工具收集有关系统的详细信息,并将其显示为 HTML 文件。
先决条件
确保 Manager 启用了正确的存储库。有关所需存储库的列表,请参阅为 Red Hat Virtualization 4.2 启用 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
向右滚动
-
1.2.3.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
1.2.4. 启用全局维护模式
您必须将自托管引擎环境置于全局维护模式,然后才能在 Manager 虚拟机上执行任何设置或升级任务。
流程
登录到自托管引擎节点并启用全局维护模式:
# hosted-engine --set-maintenance --mode=global
在继续前确认环境处于全局维护模式:
# hosted-engine --vm-status
您应该会看到指示集群处于全局维护模式的消息。
1.2.5. 更新 Red Hat Virtualization Manager
先决条件
确保 Manager 启用了正确的存储库。有关所需存储库的列表,请参阅为 Red Hat Virtualization 4.2 启用 Red Hat Virtualization Manager 存储库。
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 冲突 )。
重要如果更新了任何内核包,请重新引导计算机以完成更新。
1.2.6. 将 Red Hat Virtualization Manager 从 4.2 升级到 4.3
您需要登录到您要升级的机器。
如果升级失败,engine-setup
命令会尝试将 Red Hat Virtualization Manager 安装恢复到之前的状态。因此,在升级完成后,不要删除之前版本的软件仓库。如果升级失败,engine-setup
脚本会说明如何恢复您的安装。
流程
启用 Red Hat Virtualization 4.3 存储库:
# subscription-manager repos \ --enable=rhel-7-server-rhv-4.3-manager-rpms \ --enable=jb-eap-7.2-for-rhel-7-server-rpms
所有其他存储库在 Red Hat Virtualization 版本中保持不变。
更新设置软件包:
# yum update ovirt\*setup\* rh\*vm-setup-plugins
运行
engine-setup
并按照提示升级 Red Hat Virtualization Manager:# engine-setup
当脚本成功完成时,会显示以下信息:
Execution of setup completed successfully
禁用 Red Hat Virtualization 4.2 软件仓库,以确保系统不使用任何 4.2 软件包:
# subscription-manager repos \ --disable=rhel-7-server-rhv-4.2-manager-rpms \ --disable=jb-eap-7-for-rhel-7-server-rpms
更新基础操作系统:
# yum update
重要如果您在更新过程中遇到必要的 Ansible 软件包冲突,请参阅在 RHV 管理器上无法执行 yum update(ansible 冲突 )。
重要如果更新了任何内核软件包,请重启机器来完成升级。
Manager 现已升级到 4.3 版本。
1.2.7. 禁用全局维护模式
流程
- 登录 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"}
如果发生这种情况,请等待几分钟后重试。
现在,您可以更新自托管引擎节点,然后更新任何标准主机。这两种主机类型的步骤都相同。
1.2.8. 更新集群中的所有主机
您可以更新集群中的所有主机,而不是逐一更新主机。这在升级到 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 部分 ( ).
您可以通过
1.2.9. 更改集群兼容性版本
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 窗口提供了额外的验证和警告来显示正确的内容。有时问题会自动解决,虚拟机的配置只需要再次保存。编辑完每个虚拟机后,您将能够更改集群兼容性版本。
1.2.10. 更改虚拟机集群兼容性
更新集群的兼容性版本后,您必须通过从管理门户重启或使用 REST API,或者从客户机操作系统中更新所有正在运行的或暂停虚拟机的集群兼容性版本。需要重新启动的虚拟机将标记为待处理更改图标( )。
无需重启 Manager 虚拟机。
虽然您可以在以后方便的时候重新启动虚拟机,但强烈建议您立即重新启动,以便虚拟机使用最新的配置。任何尚未重启的虚拟机会继续使用先前的配置运行,后续对虚拟机的配置更改可能会覆盖待处理的集群兼容性更改。
流程
-
在管理门户中,点
。 检查哪些虚拟机需要重新启动。在 Vms: 搜索栏中输入以下查询:
next_run_config_exists=True
搜索结果显示所有待处理更改的虚拟机。
- 选择每个虚拟机并点击 Restart。或者,如果需要,您可以从虚拟机中重新启动虚拟机。
虚拟机启动时,会自动应用新的兼容版本。
您无法更改处于预览的虚拟机快照的集群兼容性版本。您必须首先提交或撤销预览。
1.2.11. 更改数据中心兼容性版本
Red Hat Virtualization 数据中心具有兼容性版本。兼容性版本指明了数据中心要与之兼容的 Red Hat Virtualization 版本。数据中心中的所有集群都必须支持所需的兼容性级别。
先决条件
- 要更改数据中心兼容性级别,您必须首先更新数据中心中所有集群和虚拟机的兼容性版本。
流程
-
在管理门户中,点
。 - 选择要更改的数据中心,再单击 。
- 将 Compatibility Version 更改为所需的值。
- 点击 Change Data Center Compatibility Version 确认对话框。 。此时会打开
- 点 确认。
如果您之前在没有使用 SHA-256 证书替换 SHA-1 证书的情况下升级到 4.2,您必须现在升级到 4.2。
1.2.12. 使用 SHA-256 证书替换 SHA-1 证书
Red Hat Virtualization 4.4 使用 SHA-256 签名,它提供了一种比 SHA-1 更安全地签署 SSL 证书的方法。新安装的系统不需要任何特殊步骤即可启用 Red Hat Virtualization 的公钥基础架构 (PKI) 以使用 SHA-256 签名。
不要让 证书过期。如果它们过期,则环境将变得不响应,恢复就容易出错,且消耗了时间。有关 续订证书的详情,请参考管理指南中的在证书过期前 续订证书。
防止在浏览器中出现警告消息
- 以 root 用户身份登录 Manager 计算机。
检查 /etc/pki/ovirt-engine/openssl.conf 是否包含
default_md = sha256
行:# cat /etc/pki/ovirt-engine/openssl.conf
如果它仍然包含
default_md = sha1
,备份现有配置并将默认值改为sha256
:# cp -p /etc/pki/ovirt-engine/openssl.conf /etc/pki/ovirt-engine/openssl.conf."$(date +"%Y%m%d%H%M%S")" # sed -i 's/^default_md = sha1/default_md = sha256/' /etc/pki/ovirt-engine/openssl.conf
定义应已被重新签名的证书:
# names="apache"
登录到自托管引擎节点并启用全局维护:
# hosted-engine --set-maintenance --mode=global
在 Manager 中保存
/etc/ovirt-engine/engine.conf.d
和/etc/pki/ovirt-engine
目录的备份,并重新签名证书:# . /etc/ovirt-engine/engine.conf.d/10-setup-protocols.conf # for name in $names; do subject="$( openssl \ x509 \ -in /etc/pki/ovirt-engine/certs/"${name}".cer \ -noout \ -subject \ -nameopt compat \ | sed \ 's;subject=\(.*\);\1;' \ )" /usr/share/ovirt-engine/bin/pki-enroll-pkcs12.sh \ --name="${name}" \ --password=mypass \ <1> --subject="${subject}" \ --san=DNS:"${ENGINE_FQDN}" \ --keep-key done
- 不要更改此密码值。
重启 httpd 服务:
# systemctl restart httpd
登录到自托管引擎节点之一并禁用全局维护:
# hosted-engine --set-maintenance --mode=none
- 连接到管理门户,以确认不再显示警告。
-
如果您之前将 CA 或 https 证书导入到浏览器中,请查找证书,将其从浏览器中删除,然后重新导入新的 CA 证书。根据浏览器提供的说明安装证书颁发机构。要获取证书颁发机构的证书,请导航到
http://your-manager-fqdn/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
,将 your-manager-fqdn 替换为完全限定域名(FQDN)。
使用 SHA-256 替换所有签名的证书
- 以 root 用户身份登录 Manager 计算机。
检查 /etc/pki/ovirt-engine/openssl.conf 是否包含
default_md = sha256
行:# cat /etc/pki/ovirt-engine/openssl.conf
如果它仍然包含
default_md = sha1
,备份现有配置并将默认值改为sha256
:# cp -p /etc/pki/ovirt-engine/openssl.conf /etc/pki/ovirt-engine/openssl.conf."$(date +"%Y%m%d%H%M%S")" # sed -i 's/^default_md = sha1/default_md = sha256/' /etc/pki/ovirt-engine/openssl.conf
通过备份 CA 证书并在 ca.pem.new 中创建新证书来重新签名 CA 证书:
# cp -p /etc/pki/ovirt-engine/private/ca.pem /etc/pki/ovirt-engine/private/ca.pem."$(date +"%Y%m%d%H%M%S")" # openssl x509 -signkey /etc/pki/ovirt-engine/private/ca.pem -in /etc/pki/ovirt-engine/ca.pem -out /etc/pki/ovirt-engine/ca.pem.new -days 3650 -sha256
将现有证书替换为新证书:
# mv /etc/pki/ovirt-engine/ca.pem.new /etc/pki/ovirt-engine/ca.pem
定义应重新签名的证书:
# names="engine apache websocket-proxy jboss imageio-proxy"
如果在升级后替换了 Red Hat Virtualization Manager SSL 证书,请运行以下命令:
# names="engine websocket-proxy jboss imageio-proxy"
如需了解更多详细信息,请参阅管理指南中的替换 Red Hat Virtualization Manager CA 证书。
登录到自托管引擎节点并启用全局维护:
# hosted-engine --set-maintenance --mode=global
在 Manager 中保存
/etc/ovirt-engine/engine.conf.d
和/etc/pki/ovirt-engine
目录的备份,并重新签名证书:# . /etc/ovirt-engine/engine.conf.d/10-setup-protocols.conf # for name in $names; do subject="$( openssl \ x509 \ -in /etc/pki/ovirt-engine/certs/"${name}".cer \ -noout \ -subject \ -nameopt compat \ | sed \ 's;subject=\(.*\);\1;' \ )" /usr/share/ovirt-engine/bin/pki-enroll-pkcs12.sh \ --name="${name}" \ --password=mypass \ <1> --subject="${subject}" \ --san=DNS:"${ENGINE_FQDN}" \ --keep-key done
- 不要更改此密码值。
重启以下服务:
# systemctl restart httpd # systemctl restart ovirt-engine # systemctl restart ovirt-websocket-proxy # systemctl restart ovirt-imageio
登录到自托管引擎节点之一并禁用全局维护:
# hosted-engine --set-maintenance --mode=none
- 连接到管理门户,以确认不再显示警告。
-
如果您之前将 CA 或 https 证书导入到浏览器中,请查找证书,将其从浏览器中删除,然后重新导入新的 CA 证书。根据浏览器提供的说明安装证书颁发机构。要获取证书颁发机构的证书,请导航到
http://your-manager-fqdn/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
,将 your-manager-fqdn 替换为完全限定域名(FQDN)。 在主机上注册证书。为每个主机重复以下步骤:
-
在管理门户中,点
。 -
选择主机并点
和 . -
当主机处于维护模式后,点
。 -
点
。
-
在管理门户中,点