Linux|如何从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7?
https://access.redhat.com/zh_CN/solutions/3293791
如何从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7? SOLUTION 已验证 - 已更新 2019年一月2日09:19 -
中文 (中国)
环境
- Red Hat Enterprise Linux 6.x 到 Red Hat Enterprise Linux 7
产品变体 | x86 架构 | x86_64 架构 | IBM Power | IBM z Systems |
---|---|---|---|---|
Desktop Edition | 不支持 | 不支持 | N/A | N/A |
Workstation Edition | 不支持 | 不支持 | N/A | N/A |
Server Edition | 不支持 | 支持 | 支持[1] | 支持[2] |
HPC Compute Node | 不支持 | 支持 | N/A | N/A |
Server running CloudForms software | N/A | 不支持 | N/A | N/A |
Server running Satellite software | N/A | 不支持[3] | N/A | N/A |
产品变体 | 所有变体 |
---|---|
基于 UEFI 的 RHEL 安装 | 不支持 |
[2] Red Hat Enterprise Linux for IBM z Systems,当使用 Direct Access Storage Device (DASD) with Linux Disk Layout (LDL) 时除外
[3] Red Hat Satellite 6 文档提供了把 Satellite 环境从 RHEL 6 升级到 RHEL 7 的信息以及所需的工具,但是这个升级过程并不支持使用 in-place 升级工具。相关信息请参阅 Satellite 6 Documentation 。
问题
- 如何把最新版本的 Red Hat Enterprise Linux 6 原位升级 (in-place upgrade) 到最新版本的 Red Hat Enterprise Linux 7?
- 如何使用 Preupgrade Assistant 和 Red Hat Upgrade Tool 把 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7?
【Linux|如何从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7?】请注意:这个过程不适用于升级 Amazon Web Services(AWS) 实例、Amazon Machine Image 和 Microsoft Azure。
当您的 RHEL 系统满足以下条件时,这里所介绍的 RHEL 6 升级到 RHEL 7 的过程会被完全支持:
- 最新的 Red Hat Enterprise Linux 6: 在把系统升级到最新的 RHEL 7 版本前,需要对 RHEL 6 系统进行更新以安装最新的 RHEL 6 软件包。下面会对此进行介绍。
- 所有 Server 版本 (除 x86 以外): RHEL 6 的所有 server 版本 (除 x86 以外) 都可以使用这个方法进行升级。这个方法不支持升级 RHEL Workstation 和 Desktop 系统。这个方法支持对 POWER 系统进行升级,请参阅上表。这个方法不支持 32 位系统的升级。
- 有限的软件包组: 这个升级方法只会处理以下软件包组和软件包:Minimal (@minimal)、Base (@base)、Web Server (@web-server)、DHCP Server、File Server (@nfs-server) 、CIFS File Server 和 Print Server (@print-server)。虽然不支持升级其它软件包和软件包组,但是在一些情况下,可以从 RHEL 6 系统中卸载其它软件包,并在升级的 RHEL 7 系统上重新安装卸载的软件包。请参阅下表。
支持 | 不支持 | |
---|---|---|
要升级的系统 | 最新的 RHEL 6.X | 早于最新版本 6.X 的 RHEL 6 |
升级到的系统 | 最新的 RHEL 7.X | 早于最新版本7.X 的 RHEL 7 |
文件系统 | 同类文件系统升级。 例如,ext3 到 ext3、ext4 到 ext4、xfs 到 xfs |
不同类文件系统升级。 例如,ext4 到 xfs |
GNOME, KDE | 无 | 所有 GNOME 和 KDE 的安装 |
软件包/组 | Minimal (@minimal) Base (@base) Web Server (@web-server) DHCP Server File Server (@nfs-server) CIFS File Server Print Server |
其它所有软件包/组 |
Virtualization | KVM, VMware | Microsoft Hyper-V (将来会支持) |
Red Hat Software Collections | 使用测试的过程 | 所有其它 |
High Availability | 无 | 所有 |
升级过程包括以下基本步骤:
- 准备系统
把系统更新到最新的 RHEL 6 次要版本并安装所需工具。 - 执行系统评估
在进行实际升级前,使用 Preupgrade Assistant 对要升级的系统进行评估,找出可能存在的升级问题。这个操作不会对系统进行任何改变,您可以重复这个操作直到解决了所有可能的问题。 - 进行实际的升级
请备份您的系统,并使用 Red Hat Upgrade Tool 进行升级操作。 - 提供反馈意见
请向红帽提供您在升级过程中遇到的问题信息。
- 获得最新的软件包
确保您在运行最新版本的 Red Hat Enterprise Linux,并安装了最新的软件包,注册了系统并具有相关的订阅。然后运行以下命令:
# yum update -y # reboot
- 启用 Extras repository
启用包括 preupgrade-assistant、 preupgrade-assistant-ui、preupgrade-assistant-el6toel7、preupgrade-assistant-el6toel7-data 和 redhat-upgrade-tool 软件包的 repository。这个 repository 的订阅可以通过 RHN Classic获得(系统连接到一个 Red Hat Satellite Server),或通过 Red Hat Subscription Management 获得(系统连接到 CDN):
RHN Classic (Satellite):
# rhn-channel --add --channel rhel-x86_64-server-extras-6
# rhn-channel --add --channel rhel-x86_64-server-optional-6
Red Hat Subscription Management
# subscription-manager repos --enable rhel-6-server-extras-rpms
# subscription-manager repos --enable rhel-6-server-optional-rpms
- 安装所需的软件包
运行以下命令安装升级所需的软件包:
# yum -y install preupgrade-assistant preupgrade-assistant-ui preupgrade-assistant-el6toel7 redhat-upgrade-tool
preupg
命令) 可以对您的系统进行评估,并找出在 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7 的过程中可能会出现的问题。这个操作不会对系统进行任何改变,它可以帮助您在进行实际的升级前,对成功升级到 Red Hat Enterprise Linux 7 的可能性有一个了解。注意: 在进行实际升级前,您可以(并应该)多次运行 Preupgrade Assistant 以帮助提前解决可能的问题。Preupgrade Assistant 不会对您已安装的系统造成任何损害。而如何您对系统执行了原位升级操作,则无法简单恢复到以前的系统。
Preupgrade Assistant 会执行以下任务:
- 对系统进行分析以找出在升级过程中的限制,如删除软件包、不兼容的过期数据、名称的改变、配置文件不兼容的问题等。
- 提供一个评估结果报告。
- 提供一些在升级操作完成后执行的脚本。
- 除了保存一些信息和日志数据外,系统不会有任何改变。这个操作不会对评估的系统进行修改。
在安装了 Preupgrade Assistant 软件包后,您可以选择在被评估系统的本地查看系统评估的结果信息,或通过网络把多个系统的评估结果发送到远程的服务器上。下面对这两种选择进行介绍。
选择 1: 运行 Preupgrade Assistant 来本地查看评估结果报告
- 运行
preupg
命令执行系统评估
# preupgWith no options, produces result.html and tar.gz results files The Preupgrade Assistant is a diagnostics tool and does not perform the actual upgrade. Do you want to continue? [Y/n] y Gathering logs used by the Preupgrade Assistant: All installed packages : 01/10 ...finished (time 00:01s) ... |Removed rpms|needs_inspection| |Content for enabling and disabling services based on RHEL 6 system|needs_inspection| |Python 2.7.5|needs_inspection| |Check for usage of dangerous range of UID/GIDs|needs_inspection| |Packages not signed by Red Hat|needs_action| -------------------------------------------------------------------------------------------------------- The tarball with results is stored in '/root/preupgrade-results/preupg_results-170629152543.tar.gz' . The latest assessment is stored in the '/root/preupgrade' directory. Summary information: We have found some potential risks. Read the full report file '/root/preupgrade/result.html' for more details. Please ensure you have backed up your system and/or data before doing a system upgrade to prevent loss of data in case the upgrade fails and full re-install of the system from installation media is needed. Upload results to UI by the command: e.g. preupg -u http://example.com:8099/submit/ -r /root/preupgrade-results/preupg_results-170629152543.tar.gz .
- 查看评估结果
在 Preupgrade Assistant 对系统进行扫描时,每个执行的测试都会在命令行的标准输出中显示相应的信息,以及测试的结果。另外,这个工具还会产生一个详细的评估报告。
- 命令行: 每个测试的结果关键字和评估的概述信息会在屏幕中显示。查看这些信息可以对评估结果有一个大概的了解。您也可以只查看结果关键字,如需更详细的信息,则可以查看 HTML 格式的评估报告。
- 评估报告文件: 用户可以使用任何网络浏览器打开 /root/preupgrade/result.html 文件。下面是使用 Firefox 浏览器打开这个文件的命令示例:
# firefox file:///root/preupgrade/result.html
- 命令行: 每个测试的结果关键字和评估的概述信息会在屏幕中显示。查看这些信息可以对评估结果有一个大概的了解。您也可以只查看结果关键字,如需更详细的信息,则可以查看 HTML 格式的评估报告。
- 检查每个测试结果
在评估过程中执行的每个测试都会有自己的关键字。下表对所有可能的测试结果关键字进行了介绍:
结果关键字 解释 PASS 一切正常。如果所有的结果关键字都是 PASS,则可以进行升级操作。 FAIL 进行升级操作有极大风险。无法进行原位升级。 NEEDS_ACTION 升级会有很大风险。在运行 Red Hat Upgrade Tool 进行升级前,需要进行一些额外的操作。 NEEDS_INSPECTION 升级有中度或低度风险。这个关键字并不意味着升级将会失败,但升级后的系统可能无法完全正常工作。系统管理员可能需要对系统的一些部分进行检查,如果需要,还需要对相关部分进行修改。 FIXED 升级所需要的系统修改已自动完成,用户不再需要对此进行额外检查。 INFORMATIONAL 有用但并不是非常关键的信息。 NOT_APPLICABLE 要进行测试的软件包没有包括在测试的系统中。 ERROR 这通常意味着测试工具本身有问题。请向红帽的技术支持团队报告这类问题。
- 查看 README 文件
输出目录中 (/root/preupgrade/) 还会包括一个 README 文件。您可以查看这个文件来了解与 preupg 工具相关的测试结果信息。
- 修正发现的问题
解决在评估过程中 Preupgrade Assistant 发现的问题。测试结果报告中会对每个问题提供一段 Solution 信息,您可以参考这些信息解决相关的问题。然后,再次进行评估操作。当没有更多需要解决的问题时,则可以继续 Step 3 的操作对系统进行升级。
警告: 安装并使用 Preupgrade Assistant Web UI 会改变要升级系统的内容,它会在 /etc/httpd/conf.d/ 目录中增加一些文件,并会在那个系统上运行 httpd 服务以实现提供相关内容的功能。如果您不希望要升级系统上的数据暴露在网络中,或不希望在要升级的系统上增加新内容,请不要使用这个方法。一个更安全的、使用图形界面查看 Preupgrade Assistant 评估结果报告的方法是,把 result.html 文件复制到一个远程系统上,并在远程系统上使用网络浏览器打开这个文件进行查看。
如果需要使用 Preupgrade Assistant Web UI 通过网络远程查看评估结果数据,则进行以下操作:
- 安装 httpd 软件包
如果要升级的 RHEL 6 系统上还没有安装 httpd 软件包,运行以下命令安装它:
# yum -y install httpd
- 配置 conf.d 文件
在默认配置中,Preupgrade Assistant Web UI 只可以通过本地系统 (127.0.0.1) 访问。要使它可以通过本地系统中的其它网络接口进行访问(默认 TCP 端口是 8099),运行以下命令:
# cd /etc/httpd/conf.d # cp 99-preup-httpd.conf.public 99-preup-httpd.conf
- 编辑新的 .conf 文件
前一步会创建一个名为 99-preup-httpd.conf 的文件,它将允许通过主机上的一个 IP 地址访问 Preupgrade Assistant UI。如果您希望使用主机名而不是 IP 地址进行访问,您可以修改这个文件中的 "NameVirtualHost" 行中的内容。例如,您所使用的 DNS CNAME 会把 preupg-ui.example.com 指向要升级的系统,则可以使用NameVirtualHost preupg-ui.example.com:8099
来通过主机名访问这个服务。
- 修改防火墙和 SELinux 设置
如果您在使用防火墙,并以 enforcing 模式运行 SELinux,则可以使用以下命令来允许对 Preupgrade Assistant Web UI 服务所需要的端口进行访问:
# setsebool httpd_run_preupgrade on # iptables -I INPUT -m state --state NEW -p tcp --dport 8099 -j ACCEPT
- 重启 httpd 访问加载新的配置
# service httpd restart
- 使用一个网络浏览器访问 Preupgrade Assistant Web UI
在另外一台机器上使用网络浏览器,通过 IP 地址(例如,http://192.168.99.1:8099)或主机名(例如,http://preupg-ui.example.com:8099)访问 Preupgrade Assistant Web UI 服务。
- 添加 Web UI 身份验证信息
在第一次访问 Preupgrade Assistant Web UI 时,需要添加一个用户账户,使用这个用户来对服务进行访问;或禁用身份验证功能。
- 使用用户验证功能
可以使用一个已存在的用户账户,或添加一个新账户。如果选择了 "Submit" 来创建一个新用户,当用户验证功能被禁用时,它会被自动启用。如果您需要在以后编辑用户,使用 UI 中的 User Management 标签页。 - 不使用用户验证功能
如果您不需要进行用户验证,点 "Disable Authentication" 来开始使用图形界面。
- 使用用户验证功能
- 运行
preupg
命令
返回到您需要升级的系统。运行以下命令可以使系统评估结果自动发送到 Preupgrade Assistant Web UI 服务器:
# preupg -u http://localhost:8099/submit/ The Preupgrade Assistant is a diagnostics tool and does not perform the actual upgrade. Do you want to continue? [Y/n] y Gathering logs used by the Preupgrade Assistant: All installed packages : 01/10 ...finished ... ... Report submitted successfully. You can inspect it at http://localhost:8099/1/detail/
- 通过 Web UI 查看评估结果
返回到远程系统中的网络浏览器并再次访问 Web UI,或重新加载这个网页。以下是 Preupgrade Assistant Web UI 的一个示例:
文章图片
- 修复结果报告中的问题
在 Web UI 中,找到并查看相关的评估报告。检查报告中的每个项,并解决相关的问题。然后,再次运行preupg
已重新访问系统,并把报告上传到 Web UI。如果没有新问题,则可以继续 Step 3 的操作。
重要信息: 运行 Red Hat Upgrade Tool 的一个前提条件是已运行了 Preupgrade Assistant。如果在还没有运行 Preupgrade Assistant 的情况下运行 Red Hat Upgrade Tool,则会出现
preupgrade-assistant has not been run
错误信息并退出操作。虽然您可以通过使用 --force
选项来强制进行升级,但使用这个选项进行升级的系统将不被支持。- 备份系统
在使用 Red Hat Upgrade Tool 对系统进行升级前,请备份所有数据以避免出现可能的数据丢失问题。这一点非常重要。
- 先进行测试
请不要马上对生产环境中的系统进行升级。先对系统进行一个克隆并在克隆的环境中对升级过程进行测试。
- 使用 Subscription Management
Red Hat Enterprise Linux 7 需要 Red Hat Subscription Management (RHSM) 工具,而不是 RHN Classic 工具。如果您的 Red Hat Enterprise Linux 6 系统还在使用 RHN Classic 工具进行注册,您需要取消相关的注册(请参阅 How do I delete System Profiles in RHN Classic?),然后使用subscription-manager
命令进行注册。请参阅 Get Started with Red Hat Subscription Management。您也可以使用 一个自动的方法从 RHN 迁移到 RHSM。
- 运行
redhat-upgrade-tool
下载升级到 Red Hat Enterprise Linux 7 所需的软件包,并准备软件包的安装。您可以使用多个方法指定 Red Hat Enterprise Linux 7 软件包的位置:
- 安装软件仓库(repository)
使用--instrepo
选项可以指定包括 Red Hat Enterprise Linux 7 软件包的软件仓库的位置。红帽不会提供这个软件仓库,您需要自己创建它。在这里的示例中,我们使用一个 FTP 服务器,最新的 RHEL 7 DVD 中的内容被复制到这个服务器的一个 rhel7/ 目录中。您也可以使用 HTTP 或 HTTPS 系统来包括最新的 Red Hat Enterprise Linux 7 软件包。
# redhat-upgrade-tool --network
--instrepo ftp://ftp.example.com/pub/rhel7/ example: # redhat-upgrade-tool --network 7.3 --instrepo ftp://ftp.example.com/pub/rhel7/
如果指定了一个无效的 Red Hat Enterprise Linux 7 次版本,升级过程会失败。
- 挂载安装介质
把安装介质挂载到系统上。例如,/dev/sdb 设备中的一个 DVD 或 USB 盘,以 root 身份运行以下命令:
# redhat-upgrade-tool --device /dev/sdb
如果没有在参数中指定一个具体设备,这个工具程序会扫描当前所有已挂载的可删除设备。
- ISO 镜像
如果需要使用一个 ISO 镜像进行升级,在--iso
参数后指定到 ISO 镜像的路径。例如,最新的 RHEL 7 安装 DVD 镜像位于本地系统上的 /var/isos/rhel7dvd.iso,可以使用与以下相似的命令:
# redhat-upgrade-tool --iso /var/isos/rhel7dvd.iso
请注意: 为了使升级可以正常进行,您可以需要访问除 RHEL 7 DVD 所提供的基础软件包以外的其它一些软件仓库。特别是,RHEL 7 的 Extras 软件仓库中包括了一些 RHEL 6 基本系统中的一些软件包(主要是与软件开发相关的软件包),它们没有包括在 DVD 中。如果您的系统升级需要的软件包(用来满足软件包依赖)没有包括在 RHEL 7 Base 软件仓库中,您可以安装一个独立的 RHEL 7 系统作为一个 yum 软件仓库来提供您所需要的软件包(通过 FTP 或 HTTP)。根据使用 createrepo 或 reposync 创建一个本地软件仓库以进行更新 的介绍设置一个在升级过程中可以使用的软件仓库。然后,使用--addrepo
参数为 Red Hat Upgrade Tool 提供额外的软件仓库。这个命令会和以下类似:
# redhat-upgrade-tool --device /dev/sdb --addrepo optional=http://host/repo
- 安装软件仓库(repository)
- 重启
您需要重启系统以完成安装过程。根据您所升级的软件包数量,重启过程可能会需要一定时间完成。如果一切顺利,系统会重启到 Red Hat Enterprise Linux 7,您可以检查系统是否可以正常工作。
- 执行升级后(post-upgrade)任务
Preupgrade Assistant 为那些FIXED
项创建的脚本会在升级后自动运行。 Preupgrade Assistant 中报告的其它升级后的任务需要系统管理员手工运行。
- 检查系统
如果您的系统在使用 RHEL 6 时已被正确注册并订阅,升级过程会自动把它重新订阅到 RHEL 7。运行以下命令检查系统已被正确升级并订阅为 RHEL 7 系统:
# yum repolist Loaded plugins: product-id, subscription-manager repo idrepo namestatus rhel-7-rpmsRed Hat Enterprise Linux 7 Server (RPMs)4,323 # cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo)
- 如果需要,更新软件仓库列表
如果软件仓库列表没有被正确升级到 RHEL 7,取消订阅这个系统,重新把它订阅为一个 RHEL 7 系统,添加您需要的软件仓库。所有可用的软件仓库都应该在 /etc/yum.repos.d/redhat.repo 文件中列出。
# subscription-manager remove --all # subscription-manager unregister # subscription-manager register # subscription-manager attach --pool=poolID # subscription-manager repos --enable=repoID
- 运行
yum update
如果升级过程成功,使用以下命令把所有新的 RHEL 7 软件包升级到最新版本:
# yum update -y # reboot
您也可以提供一个 debug 日志,它位于升级系统的 /var/log/upgrade.log 文件中。
信息更新 现在,原位升级(in-place upgrade)中增加了一个新的回滚功能。请参阅 RHEL 6.10 发行注记 或 Red Hat Upgrade Tool - rollbacks and cleanup after upgrading RHEL 6 to RHEL 7 KBase 中的相关内容。
已知问题 启用 FIPS 模式时将无法使用原位升级的方法把 RHEL 6 系统升级到 RHEL 7.6
当使用 LDL 时,在 IBM Z 系统上进行原位升级将会失败并导致数据丢失
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 一个人的碎碎念
- 我从来不做坏事
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 如何寻找情感问答App的分析切入点
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- 从蓦然回首到花开在眼前,都是为了更好的明天。
- 西湖游
- 改变自己,先从自我反思开始