第 3 章 准备升级
要防止升级后出现问题,并确保您的系统已准备好升级到 RHEL 的下一个主要版本,请在升级前完成所有必要的准备步骤。
您必须在所有系统上执行 为升级准备 RHEL 8 系统中所描述的准备步骤。此外,在注册到 Satellite 服务器的系统上,您还必须执行 为升级准备一个注册了 Satellite 的系统 中描述的准备步骤。
3.1. 为升级准备 RHEL 8 系统
这个流程描述了在使用 Leapp
工具对 RHEL 9 执行原位升级前必需的步骤。
如果您在升级过程中不计划使用 Red Hat Subscription Manager (RHSM),请参阅在没有 Red Hat Subscription Manager 的情况下升级到 RHEL 9。
先决条件
流程
- 可选:查看 使用 Leapp 执行 RHEL 升级的最佳实践和建议知识库文章中的最佳实践。
- 使用 Red Hat Subscription Manager 确保您的系统已被成功注册到 Red Hat Content Delivery Network (CDN)或 Red Hat Satellite。
如果您已将您的系统注册到 Satellite 服务器,请完成 为升级准备一个注册了 Satellite 的系统 中的步骤,以确保您的系统满足升级要求。
重要如果您的系统已注册到 Satellite 服务器,则您必须完成 为升级准备一个注册了 Satellite 的系统 中的步骤,然后才能继续此流程中的步骤,以防止问题发生。
-
可选:卸载升级不需要的非系统操作系统文件系统(例如,仅包含与系统本身不相关的数据文件的文件系统),并从
/etc/fstab
文件中注释掉它们。这可减少升级过程所需的时间,并防止与自定义或第三方参与者在升级期间未正确迁移的第三方应用程序相关的潜在问题。 使用 subscription-manager 验证系统是否已订阅:
如果您的系统是使用启用了 Simple Content Access (SCA)的帐户注册的,请验证
Content Access Mode is set to Simple Content Access
消息是否出现:# subscription-manager status +-------------------------------------------+ System Status Details +-------------------------------------------+ Overall Status: Disabled Content Access Mode is set to Simple Content Access. This host has access to content, regardless of subscription status. System Purpose Status: Disabled
如果您的系统是使用禁用了 SCA 的帐户注册的,请验证是否已附加了 Red Hat Linux Server 订阅,产品名称为
Server
,其状态为Subscribed
。例如:# subscription-manager list --installed +-------------------------------------------+ Installed Product Status +-------------------------------------------+ Product Name: Red Hat Enterprise Linux for x86_64 Product ID: 479 Version: 8.10 Arch: x86_64 Status: Subscribed
确定启用了适当的存储库。以下命令为 64 位 Intel 架构启用 Base 和 AppStream 软件存储库 ; 对于其他架构,请参阅 RHEL 8 存储库。
# subscription-manager repos --enable rhel-8-for-x86_64-baseos-rpms --enable rhel-8-for-x86_64-appstream-rpms
注意另外,您可以启用 CodeReady Linux Builder (也称为 Optional)或 Supplementary 存储库。有关存储库 ID 的更多信息,请参阅 RHEL 8 存储库。有关这些存储库内容的更多信息,请参阅 软件包清单。
设置系统发行版本:
对于使用 RHSM 订阅的系统,将系统锁定为所需的源操作系统版本:
# subscription-manager release --set <source_os_version>
如果您要在公有云上使用 Red Hat Update Infrastructure (RHUI)升级,请手动设置期望的系统发行版本:
# rhui-set-release --set <source_os_version>
重要如果系统上没有提供
rhui-set-release
命令,您可以通过更新/etc/dnf/vars/release
文件来设置期望的系统发行版本:# echo "<source_os_version>" > /etc/dnf/vars/releasever
将 source_os_version 替换为源 OS 版本,如
8.8
。
- 可选:要使用自定义存储库,请参阅 配置自定义存储库 知识库文章。
如果您使用
dnf versionlock
插件将软件包锁定为特定版本,请运行以下命令清除锁:# dnf versionlock clear
如需更多信息,请参阅 How to restrict dnf to install or upgrade a package to a fixed specific package version?。
如果您要在公有云上使用 Red Hat Update Infrastructure (RHUI)升级,请启用所需的 RHUI 存储库,并安装所需的 RHUI 软件包,以确保您的系统已准备好升级:
对于 AWS:
# dnf config-manager --set-enabled rhui-client-config-server-8 # dnf -y install leapp-rhui-aws
对于 Microsoft Azure:
# dnf config-manager --set-enabled rhui-microsoft-azure-rhel8 # dnf -y install rhui-azure-rhel8 leapp-rhui-azure
- 对于 Google Cloud Platform,请遵循 Google Cloud Platform (GCP) 知识库文章。
安装
Leapp
:# dnf install leapp-upgrade
请注意,您需要最新的
leapp
和leapp-repository
软件包,它们基于安装的哪个 RHEL 8 版本而有所不同。以下是当前最新的软件包版本:注意leapp-repository
软件包包含leapp-upgrade-el8toel9
RPM 软件包。-
RHEL 8.8:
leapp
软件包的版本0.15.1
和leapp-repository
软件包的版本0.18.0
的 RHEL 8.10 :
leapp
软件包的leapp
版本0.17.0
和leapp-repository
软件包的版本0.20.0
注意如果您的系统无法访问互联网,请从红帽客户门户网站下载以下软件包 :
-
leapp
-
leapp-deps
-
python3-leapp
-
leapp-upgrade-el8toel9
-
leapp-upgrade-el8toel9-deps
-
-
RHEL 8.8:
将所有软件包更新到最新的 RHEL 8 版本,并重启:
# dnf update # reboot
-
leapp-upgrade-el8toel9
软件包的最新版本包含所有所需的数据文件。如果您使用旧版本替换了这些数据文件,请删除/etc/leapp/files
目录中的所有 JSON 文件,并重新安装leapp-upgrade-el8toel9
软件包,以确保您的数据文件是最新的。 - 临时禁用防病毒软件以防止升级失败。
确保任何配置管理系统都不会干扰原位升级过程:
-
如果您使用客户端-服务器架构的配置管理系统(如 Puppet、Salt 或 Chef ),请在运行
leapp preupgrade
命令前禁用系统。在升级完成前,请不要启用配置管理系统,以防止升级过程中出现问题。 如果您使用无代理架构的配置管理系统(如 Ansible ),在原位升级过程中不要执行配置和部署文件(如 Ansible playbook),如 执行升级 中所述。
红帽不支持使用配置管理系统进行预升级和升级过程的自动化。如需更多信息,请参阅 使用配置管理系统在 Red Hat Enterprise Linux 上自动化部分 Leapp 预升级和升级过程。
-
如果您使用客户端-服务器架构的配置管理系统(如 Puppet、Salt 或 Chef ),请在运行
-
请确定您的系统没有使用多于一个的、名称基于内核使用的前缀(
eth
)的网络接口卡(NIC)。如需了解如何在原位升级到 RHEL 9 前迁移到另外一个命名模式的更多信息,请参阅 How to perform an in-place upgrade to RHEL 8 when using kernel NIC names on RHEL 7。RHEL 7 到 RHEL 8 升级的过程与从 RHEL 8 升级到 RHEL 9 时,迁移命名方案的过程相同。 - 如果在 RHEL 7 或更早版本中创建您的 NSS 数据库,请验证数据库已从 DBM 数据库格式转换为 SQLite。如需更多信息,请参阅将 NSS 数据库从 DBM 更新到 SQLite。
-
RHEL 9 不支持旧的
network-scripts
软件包,该软件包在 RHEL 8 中已弃用。在升级前,移动自定义网络脚本,并编写执行现有自定义脚本的 NetworkManager 分配程序脚本。如需更多信息,请参阅迁移自定义网络脚本到 NetworkManager 分配程序脚本。 -
如果您要使用 ISO 镜像进行升级,请验证 ISO 镜像是否包含目标操作系统版本,如 RHEL 9.4,并保存到持久本地挂载点,以确保
Leapp
工具可以在升级过程中访问镜像。 确定您有一个完整的系统备份或虚拟机快照。请确定您可以按照您的环境中的标准灾难恢复步骤,把系统恢复到升级前的状态。您可以使用以下备份选项:
- 使用 Relax-and-Recover (ReaR)工具创建一个系统的完整备份。如需更多信息,请参阅 ReaR 文档以及 Relax and Recover (ReaR) 是什么以及如何使用它进行灾难恢复?
使用 LVM 快照 或 RAID 分割 创建一个系统的快照。如果升级虚拟机,您可以创建整个虚拟机的快照。您还可以使用 Boom 工具管理快照和回滚引导条目。如需更多信息,请参阅 什么是 BOOM 以及如何安装它? 以及 使用快照管理系统升级 。
注意因为 LVM 快照不创建系统的完整备份,所以您可能无法在某些升级失败后恢复您的系统。因此,使用 ReaR 工具创建一个完整备份是安全的。