Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

迁移规划指南

Red Hat Enterprise Linux 7

Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间的主要区别

摘要

本文档概述了 Red Hat Enterprise Linux 6 后 Red Hat Enterprise Linux 7 的变化,以帮助您评估迁移到 Red Hat Enterprise Linux 7。

第 1 章 如何升级

原位升级(in-place upgrade)是把系统升级到下一个主要 RHEL 版本的推荐并支持的方法。

1.1. 如何从 Red Hat Enterprise Linux 6 升级

从 RHEL 6 升级到 RHEL 7 指南介绍了从 RHEL 6 升级到 RHEL 7 的步骤。支持的原位升级路径是从 RHEL 6.10 升级到 RHEL 7.9。

如果您正在使用 SAP HANA,请参阅如何将使用 SAP HANA 的 RHEL 6 升级到 RHEL 7。请注意,使用 SAP HANA 的 RHEL 的升级路径可能会有所不同。

从 RHEL 6 升级到 RHEL 7 的过程包括以下步骤:

  1. 检查红帽是否支持您的升级系统。
  2. 准备系统升级:安装所需的软件仓库和软件包,删除不受支持的软件包。
  3. 使用 Preupgrade Assistant 检查您的系统是否存在可能会影响升级的问题。
  4. 运行 Red Hat Upgrade Tool 来升级您的系统。

第 2 章 主要变化和迁移注意事项

本章讨论可能会影响从 Red Hat Enterprise Linux 6 迁移到 Red Hat Enterprise Linux 7 的主要变化和功能。请仔细阅读每个部分,以明确了解升级到 Red Hat Enterprise Linux 7 将会对您的系统产生什么影响。

2.1. 系统限制

Red Hat Enterprise Linux 支持的系统限制在版本 6 和版本 7 之间有所变化。

Red Hat Enterprise Linux 7 现在需要至少 1 GB 磁盘空间安装。但是,红帽建议在所有支持的构架中,至少有 5 GB 磁盘空间。

AMD64 和 Intel 64 系统现在需要至少有 1 GB 内存。红帽建议每个逻辑 CPU 至少有 1 GB 内存。在以下限制范围内支持 AMD64 和 Intel 64 系统:

  • 最多 3TB 内存(理论上的限制: 64 TB)
  • 最多 160 个逻辑 CPU(理论上的限制: 5120 逻辑 CPU)

64 位 Power 系统现在需要至少 2 GB 内存才能运行。在以下限制范围内支持它们:

  • 最多 2TB 内存(理论上的限制: 64 TB)
  • 最多 128 个逻辑 CPU(理论上的限制: 2048 个逻辑 CPU)

IBM System z 系统现在需要至少 1 GB 内存才能运行,且理论上可以支持限制在以下限制:

  • 最多 3TB 内存
  • 最多101 个逻辑 CPU

有关 Red Hat Enterprise Linux 7 要求和限制的最新信息请参考 https://access.redhat.com/site/articles/rhel-limits。要检查您的硬件或软件是否经过认证,请参阅 https://access.redhat.com/certifications

2.2. 安装和引导

本部分介绍了在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间对安装工具和进程所做的更改。

2.2.1. 新的 Boot Loader

Red Hat Enterprise Linux 7 引进了 GRUB2 引导装载程序(boot loader),它在 Red Hat Enterprise Linux 7.0 及之后的版本中替换了旧的 GRUB。和之前的版本相比,GRUB2 支持更多的文件系统和虚拟块设备。它会自动扫描并配置可用操作系统。用户界面也有改进,用户可以选择跳过引导装载程序安装。

但是,迁移到 GRUB2 后,将不支持将引导装载程序安装到带有 MBR 风格的分区表的 BIOS 机器中的格式化分区。进行这个变化的原因是,有些文件系统具有自动优化功能,这些功能可移动核心引导装载程序镜像的部分,这可能会破坏以前版本的 GRUB 的引导装载程序。使用 GRUB2 时,启动加载器在分区表和带有 MBR(主引导记录)风格的分区表的 BIOS 机器上的第一个分区中安装。带有 GPT(GUID 分区表)样式的分区表的 BIOS 机器必须为引导装载程序创建特殊的 BIOS 引导分区。UEFI 机器将继续在 EFI 系统分区安装引导装载程序。

对于新的引导装载程序,推荐的最小分区大小也会改变。表 2.1 “推荐的最小分区大小” 提供新建议的摘要。如需更多信息,请参阅 MBR 和 GPT 注意事项

表 2.1. 推荐的最小分区大小

分区BIOS 和 MBRBIOS 和 GPTUEFI 和 GPT

/boot

500 MB

/

10 GB

swap

至少 RAM 的两倍。详情请查看 推荐 的分区方案。

引导装载程序

不适用(在分区表和第一个分区间安装)

用户可以使用 force 选项手动将 GRUB2 安装到格式化的分区中,从而造成文件系统损坏的风险,也可以使用其它引导装载程序。有关替代引导装载程序的列表,请参阅 安装指南

如果您有一个双引导系统,使用 GRUB2 的操作系统检测来自动写入可引导操作系统的配置文件:

# grub2-mkconfig -o /boot/grub2/grub.cfg
重要

请注意,如果您有一个基于使用 UEFI 的双引导系统,则会使用与传统的 MBR 所基于的不同的其他机制。这意味着,您不需要使用特定于 EFI 的 grub2 命令:

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

2.2.1.1. 用于调试的默认引导条目

systemd 的默认引导条目已添加到 /etc/grub.cfg 文件中。现在,不再需要手动启用调试。默认引导条目允许您在引导时在不影响选项的情况下调试系统。

2.2.2. 新的 Init 系统

Systemd 是系统和服务管理程序,它替换在以前的 Red Hat Enterprise Linux 版本中使用的 SysV init。

systemd 是在引导过程中启动的第一个进程,在关闭时终止的最后一个过程。它协调引导过程的剩余部分并为用户配置系统。在 systemd 下,相互依赖的程序可以并行加载,从而加快了引导过程的速度。

在用户体验和脚本 API 方面,Systemd 与 SysV 基本兼容。然而,有一些例外情况存在。详情请查看 第 2.2.2.1 节 “后向兼容性”

移动到 systemd 还涉及更改 Red Hat Enterprise Linux 的管理工具。详情请查看 systemctl man page 或 System Administrator 的指南

有关引导过程的详情,请查看 安装指南。有关 systemd 的详情,请查看 系统管理员指南

2.2.2.1. 后向兼容性

在用户体验和脚本 API 方面,Systemd 与 SysV 基本兼容。然而,在有些情况下兼容性会有一些限制。

  • 标准 /etc/init.d/servicename 命令(启动停止状态)仍然可以工作。但是,红帽建议 /usr/sbin/service servicename 命令,因为它们直接转发到 systemd,而不是使用旧的初始化脚本。
  • 运行级别支持有限。所有 SysV 运行级别都映射到 systemd 目标(target),但不是所有的 systemd 目标都映射到 SysV 运行级别。因此,对当前运行级别进行的一些检查将返回 N (未知运行级别)。红帽建议避免运行级别检查,而是推荐使用 systemd 目标。
  • 旧的运行级别 2、3 和 4 都默认映射到 multi-user.target systemd 目标。用户可以通过配置不同的 systemd 目标来修改此行为。
  • 服务会以“干净”的形式执行,且不会继承调用用户的任何上下文。依赖于继承上下文的初始化脚本将无法正常工作。
  • systemd 不支持 init 脚本中的附加操作动词。如果您需要 启动停止status 以外的操作动词,请将其移动到辅助脚本。
  • 现在 systemd 在运行时会完全解析并使用 Linux Standard Base 标头信息。
  • 现在,所有初始化脚本操作都会有 5 分钟的超时时间,以防止因为 init 脚步出现挂起情况而导致系统停机。
  • systemd 只停止正在运行的服务 ; 没有启动的服务也不会在关闭过程中停止。
  • chkconfig 工具只显示 SysV 服务和运行级别信息,并可能会输出误导信息。红帽建议使用 systemctl 命令替代它。
  • 在启用 CPUAccounting 选项时,SysV 服务(即使具有 root 权限的服务)也无法获得实时调度。为任何服务启用 CPUAccounting 后,systemd 会在全局范围内使用 CGroup CPU 带宽控制器,后续的 sched_setscheduler() 系统调用会因为实时调度优先级意外终止。要避免出现这个错误,可以使用 service 为实时 CPU.rt_runtime_us 选项设置 CGroup cpu.rt_runtime_us 选项。
  • 服务无法从标准输入(stdin)读取。如果您需要交互式脚本,请考虑 systemd 支持的最小密码查询框架。有关这个功能的更多信息,请参阅 man page:

    $ man systemd-ask-password
  • 以前的 Red Hat Enterprise Linux 版本包括一个特定于 System z 的预安装脚本(linuxrc.s390),它在引导时启动 System z 系统。新的 init 系统已过时了这个安装脚本,System z 系统现在以与 AMD64、Intel 64 和 Power 系统相同的方式引导。

2.2.2.2. systemd-debug-generator

systemd-debug-generator 是一个生成器,用于启用一个运行时的 debug shell,并在引导时屏蔽(mask)特定单元。它读取内核命令行并接受以下三个选项:

systemd.mask=
如果指定了这个选项,并跟一个单元名称,则会在运行时屏蔽这个单元。为了调试系统的启动,在引导时可以从初始引导事务中的删除特定单元是非常有用的。这个选项可以多次指定。
systemd.wants=
如果指定了这个选项,并跟一个单元名称,则会在初始事务中为这个单元添加一个启动作业。如果您需要在引导时启动一个或多个额外的单元,这个选项非常有用。这个选项可以多次指定。
systemd.debug_shell
如果指定了这个选项,则 debug-shell.service 会拉取到引导事务中。它将在早期系统启动过程中在 tty9 上生成一个调试 shell。请注意,shell 也可以使用 systemctl enable 命令永久打开。

2.2.2.3. 新的安装程序

为了改进 Red Hat Enterprise Linux 7 的安装过程,Red Hat Enterprise Linux 安装程序 Anaconda 已被重新设计并增强。

更新的安装程序特性:

  • 重新设计的图形用户界面,它更快、更灵活,减少了对用户输入的需要。
  • 支持 LVM 精简置备。
  • btrfs 的安装支持。(请注意,在 Red Hat Enterprise Linux 7 中,btrfs 只是一个技术预览。)
  • 改进了本地化支持。
  • 支持直接格式化的设备,而非分区的设备。
  • 支持合作和绑定网络技术。
  • 支持自动选择适当的键盘布局、语言和时区。(这需要互联网连接。) 这些基于自动检测的值都会可以被手动设置的值覆盖。
  • 现在,会自动使用由 DHCP 公告的 NTP 服务器。
  • realmd D-Bus 服务、Active Directory 和 FreeIPA 的 Kickstart 集成。
  • 一个新的文本模式,适用于 IBM System z 和 PowerPC 系统,以及串口控制台。文本模式提供了图形安装程序提供的功能的一个子集。

这个新安装程序也有一些重要的更改。

  • 在以前的版本中,存储配置要求用户对存储系统进行详细技术知识。在 Red Hat Enterprise Linux 7 中,存储配置已被重新设计,用户只需要输入较少的信息来配置存储。
  • Anaconda 现在使用 inst.repo 参数设置网络和其它安装位置,而不是使用 inst.root 参数。
  • 图形化安装程序界面中的详细软件包选择已被 Software Selection 屏幕替代。软件被分成多个 环境,并且是 Addons 中。用户可以选择一个环境,以及任意数量的附加组件。Kickstart 安装将继续完全控制安装时选择的软件包。

有关这些功能的详情,请参考 安装指南

2.2.2.4. 引导参数的变化

2.2.2.4.1. 指定引导参数

特定于安装程序的引导选项使用前缀 inst。 在本指南中。目前,这个前缀在 Red Hat Enterprise Linux 7 中是可选的: resolution=1024x768inst.resolution=1024x768 完全相同。但是,在以后的发行版本中这个前缀预期会成为是必需的,没有这个前缀的参数将被视为弃用。

2.2.2.4.2. 引导参数的变化

新的安装程序使用 dracut 配置磁盘和网络。因此,一些内核命令行引导参数在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间有所变化。

新参数

inst.stage2
指定要载入的安装程序运行时镜像的位置。其语法与 inst.repo 参数的语法相同。这个选项会忽略除镜像外的所有内容。它不能被用来指定软件包的位置。
inst.dd
使用指定位置中的软件包更新驱动程序软件包。这个选项可多次使用。位置语法与 inst.repo 参数的位置语法相同。
inst.geoloc

在安装程序中配置地理位置,以预设置语言和时区。默认值为 provider_fedora_geoip。此参数的有效值包括以下内容。

表 2.2. 地理位置值

效果

0

禁用地理位置。

provider_fedora_geoip

使用 Fedora GeoIP API。

provider_hostip

使用 Hostip.info GeoIP API。

inst.usefbx
指定应使用帧缓冲 X 驱动程序而不是硬件特定驱动程序。这个选项等同于 inst.xdriver=fbdev
bootdev
指定引导接口。如果多次指定 ip,则这个选项是必须的。
inst.multilib
为 multilib 软件包配置系统,例如允许在 64 位系统中安装 32 位软件包。
gpt
将分区信息安装到 GUID 分区表(GPT)而不是主引导记录(MBR)。
inst.virtiolog
指定用于转发日志的 virtio 端口。默认值为 org.fedoraproject.anaconda.log.0。如果存在这个端口,则会使用它。
rd.dasd
使用一个 Direct Access Storage Device(DASD)适配器设备总线标识符,并可选择使用逗号分开的 sysfs 参数和值对。激活带有指定设备总线 ID 的 DASD,并将上述 sysfs 参数设置为指定的值。例如: rd.dasd=adaptor_id,readonly=0。可多次指定这个参数激活多个 DASD。
rd.zfcp

使用 SCSI over FCP(zFCP)adaptor 设备总线标识符、世界范围内的端口名称(WWPN)和 FCP LUN。激活带有指定设备总线标识符、端口名称和 LUN 的 zFCP 设备。可多次指定这个参数激活多个 zFCP 设备。

rd.zfcp=0.0.4000,0x5005076300C213e9,0x5022000000000000
rd.znet

采用网络协议类型、以逗号分隔的子通道列表,并可选择使用逗号分开的 sysfs 参数和值对。激活指定协议的 System z 网络设备驱动程序,设置指定的子频道,并设置指定的参数。可多次指定这个参数激活多个网络设备。

rd.znet=qeth,0.0.0600,0.0.0601,0.0.0602,layer2=1,portname=foo
rd.znet=ctc,0.0.0600,0.0.0601,protocol=bar

更改的参数

inst.ks.sendmac
之前 kssendmac.为外向的 HTTP 请求添加标头,包括所有网络接口的 MAC 地址。这在使用 inst.ks=http 置备系统时非常有用。
name server
之前 dns。指定名称服务器的地址。这个选项可多次使用。

弃用的参数

此列表中的选项已弃用。它们仍可正常工作,但存在其它选项可以提供相同的功能。不建议使用弃用的选项,它们将会在以后的版本中被删除。

updates
指定安装程序的更新位置。使用 inst.updates 选项。
method
配置的安装方法。使用 inst.repo= 选项替代。
repo
在 NFS 安装中,指定目标是一个位于 NFS 服务器中的 ISO 镜像,而不是一个可安装的树。现在会自动探测到不同不同,使这个选项与 inst.repo=nfs:server:/path 相同。
dns
配置域名服务器(DNS)。改为使用 nameserver= 选项。
netmask, gateway, hostname, ip, ipv6
这些选项已合并到 ip 选项下。
ip=bootif
指定从 PXE 服务器安装时使用的 BOOTIF 选项。现在会自动探测。
ksdevice

配置的在 Kickstart 安装过程中使用的网络设备。如下表所示,这个参数的不同值已被替换为不同的参数。

表 2.3. Kickstart 参数值

当前行为

不存在

尝试激活所有使用 DHCP 的设备,除非使用 ipBOOTIF 选项指定了设备和配置。

ksdevice=link

忽略(这与默认行为相同)。

ksdevice=bootif

忽略(如果指定,则使用BOOTIF )。

ksdevice=ibft

使用 dracut 选项 ip=ibft 替换。

ksdevice=MAC

使用 BOOTIF=MAC 替换。

ksdevice=device

使用 dracut ip 选项中的设备规格替换。

blacklist

用于禁用指定的驱动程序。现在,它由 rd.driver.blacklist dracut 选项处理,语法如下:

rd.driver.blacklist=mod1,mod2,...
nofirewire

禁用了对 FireWire 接口的支持。您可以使用 rd.driver.blacklist 选项禁用 FireWire 驱动程序(firewire_ohci):

rd.driver.blacklist=firewire_ohci

删除的参数

删除了以下选项。存在于之前的 Red Hat Enterprise Linux 版本中,但现在无法再使用它们。

serial
这个选项强制 Anaconda 使用 /dev/ttyS0 控制台作为输出。使用 console 参数指定 /dev/ttyS0 控制台(或类似控制台)。
essid, wepkey, wpakey
配置的无线网络访问。网络配置现在由 dracut 处理,它不支持无线网络,从而使这些选项没有用。
ethtool
过去用于配置其他低级网络设置。现在,所有网络设置都由 ip 选项处理。
gdb
允许调试加载程序。使用 rd.debug 替代。
inst.mediacheck
在开始安装前验证安装介质。使用 rd.live.check 选项替换。
ks=floppy
指定一个 diskette 作为 Kickstart 文件源。floppy 驱动器不再是受支持的引导介质。
display
配置的远程显示。使用 inst.vnc 选项替换。
utf8
添加了在使用文本模式安装时对 UTF8 的支持。UTF8 支持现在可以自动正常工作。
noipv6
在安装程序中禁用了 IPv6 支持。IPv6 现在内置在内核中,因此该驱动程序无法列入黑名单,但可以使用 ipv6.disable dracut 选项禁用 IPv6。
upgradeany
Red Hat Enterprise Linux 7 中的升级变化。如需更多信息,请参阅 第 1 章 如何升级第 3.1.1 节 “Preupgrade Assistant”第 3.1.2 节 “Red Hat Upgrade Tool”
vlanid
配置 VLAN 设备。使用 dracut vlan 选项替换。

2.2.3. 对首次启动实现的更改

在 Red Hat Enterprise Linux 7 中,firstboot 被替换为 Initial Setup 工具( initial-setup), 以便与新安装程序更好地互操作。基本的 firstboot 功能已移到安装程序和 initial-setup 中。

firstboot 编写的第三方模块在 Red Hat Enterprise Linux 7 中可以继续工作。但是,在以后的版本中,firstboot 将会被弃用。因此,第三方模块的维护者应考虑更新其模块以使用安装程序或 Initial Setup 工具。

2.2.4. 更改了引导时的挂载行为

早期版本的 Red Hat Enterprise Linux 会引导,无论 /etc/fstab 中指定的所有分区都可以挂载。这可能会出现系统显示为上线并处于健康状态,但引导时没有需要的分区。

要防止这种情况,在 Red Hat Enterprise Linux 7 中,如果 /etc/fstab 中定义的分区无法在引导时挂载,引导会失败。如果分区在无法挂载时不应该导致引导失败,请在 /etc/fstab 中使用新的 nofail 参数。

/dev/critical   /critical  xfs  defaults     1 2
/dev/optional   /optional  xfs  defaults,nofail  1 2

在这个示例中,挂载到 /optional 的设备如果无法成功挂载,则不会导致引导失败。

2.2.5. 对 /etc/issue 文件的更改

在之前的 Red Hat Enterprise Linux 版本中,/etc/issue 文件包含产品名称和机器的发行号。从 Red Hat Enterprise Linux 7 开始,产品名称和发行号已移到 /etc/os-release 文件中,/etc/issue 的第一行现在包含一个 agetty 转义代码 \S\S 转义代码在显示产品名称和机器的发行号的控制台中展开。代码由 PRETTY_NAME 变量表示,该变量在 /etc/os-release 文件中定义。

重要

\S 转义代码的扩展仅适用于控制台。在不支持的环境中使用扩展时,将只打印"\S"。

有关 \S 的详情请参考 agetty man page。

2.3. 文件系统布局

Red Hat Enterprise Linux 7 对文件系统的布局进行了两个主要更改。

  • /bin/sbin/lib/lib64 目录现在位于 /usr 目录中。
  • /tmp 目录现在可以用作临时文件存储系统(tmpfs)。
  • /run 目录现在用作临时文件存储系统(tmpfs)。应用程序现在可以使用 /run 与使用 /var/run 目录相同的方式。

2.3.1. root 文件系统的新布局

通常,/bin/lib 目录中仅包括最小的必要的内容,以避免减慢引导过程的速度。有些实用程序需要位于根(/)级别才能挂载 /usr 分区。这样一来,其他实用程序会将其内容分散到多个目录级别,例如在 /bin/usr/bin 中。

Red Hat Enterprise Linux 7 将 /bin/sbin/lib/lib64 目录移动到 /usr 中。因为 /usr 文件系统现在可以由 initramfs 而不是由 root 级别目录中的实用程序挂载,所以不再需要在两个不同的目录级别间分割软件包内容。这可实现更小的根文件系统,启用可以更有效地共享磁盘空间的系统,以及更容易维护、更灵活和更安全的系统。

要减少这个更改的影响,以前的 /bin 目录现在是 /usr/bin 的符号链接,/sbin/usr/sbin,以此类推。

2.3.1.1. 为升级准备文件系统

警告

请注意,如果 /usr 位于独立分区,则无法进行原位升级。如果您决定将 /usr 从独立分区中移出,请注意这是您自己的风险。

如果 /var 位于独立分区中,则必须手动将 /var/run/var/lock 转换为符号链接:

# mv -f /var/run /var/run.runmove~
# ln -sfn ../run /var/run
# mv -f /var/lock /var/lock.lockmove~
# ln -sfn ../run/lock /var/lock
重要

您必须确保解决有关分区方案的所有 preupgrade-assistant 结果。

完成准备后,请参阅 安装指南 以了解执行升级过程的更多详情。

2.3.1.2. 验证升级是否成功

执行升级过程后,务必要验证升级是否按预期工作。

  1. 检查是否存在以下符号链接:

    • /bin/usr/bin的符号链接
    • /sbin/usr/sbin的符号链接
    • /lib/usr/lib的符号链接
    • /lib64/usr/lib64的符号链接
    • /var/run/run的符号链接
    • /var/lock/run/lock的符号链接

      如果列出的目录是符号链接的,则需要两个额外的检查。

  2. 检查以下 find 命令的输出结果:

    # find /usr/{lib,lib64,bin,sbin} -name '.usrmove'

    响应此命令时显示的文件或目录无法复制到 /usr,因为 /usr 中已存在具有相同名称的文件和目录。您需要手动解决这些命名冲突。

  3. 检查以下要保留的文件的目录:

    • /var/run.runmove~
    • /var/lock.lockmove~

如果列出的任何目录不是符号链接,则需要遵循 第 2.3.1.3 节 “从失败的升级中恢复” 中介绍的恢复过程。

2.3.1.3. 从失败的升级中恢复

升级过程可能会因为多个原因失败。检查以下命令的输出结果以查看出错信息:

# dmesg
# journalctl -ab --full

如果没有错误信息,请检查:

  • / 为可写
  • /usr 是可写
  • / 有足够的空间
  • /usr 有足够的空间
  • /varrhelup 工具中挂载

如果您需要进一步帮助,请联系红帽支持团队。

2.3.2. /tmp 目录的更改

Red Hat Enterprise Linux 7 提供了将 /tmp 用作临时文件存储系统的挂载点(tmpfs)的功能。

启用后,这个临时存储显示为挂载的文件系统,但将其内容存储在易失性内存中,而不是存储在持久性存储设备中。/tmp 中的文件不会存储在硬盘上,但当内存较低时,将使用交换空间。这意味着 /tmp 的内容在重启后不会被保留。

要启用此功能,请执行以下命令:

# systemctl enable tmp.mount

要禁用这个功能,请执行以下命令:

# systemctl disable tmp.mount

红帽建议在 Red Hat Enterprise Linux 7 中为各种临时存储空间使用。

  • 特权进程(如守护进程)应使用 /run/processname 来存储临时数据。
  • 存储大量数据或需要临时数据在重新引导后持久保留的进程应使用 /var/tmp
  • 所有其他进程都应该使用 /tmp 来存储临时数据。

2.3.3. /run 目录的变化

重要

在 Red Hat Enterprise Linux 7.0 的初始发行版本中,Preupgrade Assistant 还没有检查这些变化的影响。RHBA-2014:1627 解决了这个问题,https://rhn.redhat.com/errata/RHBA-2014-1627.html

以前的 Red Hat Enterprise Linux 版本允许一些程序在早期引导时将运行时数据存储在 /dev 目录中,然后再挂载 /var 目录。在主要的 Linux 发行版之间认为 /run 应该被使用,因为 /dev 目录应该只用于设备节点。

因此,在 Red Hat Enterprise Linux 7 中,/run 目录是一个临时文件存储系统(tmpfs),它绑定挂载 /var/run 目录。同样,/run/lock 目录现在绑定挂载 /var/lock 目录。存储在 /run/run/lock 中的文件不再是持久性,重启后不会保留。这意味着,应用程序必须在启动时重新创建自己的文件和目录,而不是在安装时重新创建这些文件和目录。一个 /etc/app_name 目录是理想的选择。

有关如何在启动时重新创建文件和目录的详情,请查看 tmpfiles.d man page: man tmpfiles.d。有关配置示例,请查看 /etc/tmpfiles.d 中的配置文件。

2.4. 系统管理

本部分介绍了在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间对系统管理工具和流程所做的更改。

2.4.1. 默认进程最大值(ulimit)

在 Red Hat Enterprise Linux 6 中,非 root 用户对于每个 PAM 会话限制为总计 1024 个进程。在 Red Hat Enterprise Linux 7 中,这个数量被默认增加到每个 PAM 会话限制为总计 4096 个进程。

默认值在 Red Hat Enterprise Linux 7 上的 /etc/security/limits.d/*-nproc.conf 文件中指定(通常为 /etc/security/limits.d/20-nproc.conf )。如果没有此文件,非 root 用户可以拥有的最大进程数是通过编程方式确定的,如 什么中所述决定了 Red Hat Enterprise Linux 上的 nproc(ulimit -u)的默认值?

您可以通过运行 ulimit -u 命令,查找每个 PAM 会话非 root 用户当前可用的进程数。

2.4.2. 配置文件同步

在 Red Hat Enterprise Linux 6 中,export 命令在配置文件中用于导出这些文件中定义的值。未使用 export 命令的变量没有导出,且只用作对应初始化脚本的配置值。这是 /etc/sysconfig/sshd 文件示例:

AUTOCREATE_SERVER_KEYS=YES
export SSH_USE_STRONG_RNG=1
export OPENSSL_DISABLE_AES_NI=1

在 Red Hat Enterprise Linux 6 中,只有 SSH_USE_STRONG_RNGOPENSSL_DISABLE_AES_NISABLE_AES_NI 的值被导出到 ssh 守护进程的环境。变量 AUTOCREATE_SERVER_KEYS 用于告知初始化脚本自动创建 RSA 和 DSA 服务器私钥和公钥。

在 Red Hat Enterprise Linux 7 中,不再需要 export 命令将这些值导出到要配置的服务的环境中。因此,以下示例 /etc/sysconfig/sshd 文件会将所有三个值导出到 ssh 守护进程的环境:

AUTOCREATE_SERVER_KEYS=YES
SSH_USE_STRONG_RNG=1
OPENSSL_DISABLE_AES_NI=1

2.4.3. 新的日志记录框架

Red Hat Enterprise Linux 7 引入了一个新的日志记录守护进程 journald,作为迁移到 systemd 的一部分。journald 捕获所有服务的以下类型信息:

  • syslog 信息
  • 内核信息
  • 初始 RAM 磁盘和早期引导信息
  • 发送到标准输出和标准错误输出的消息

然后,它会将这些消息存储在原生日志文件中:结构化的索引的二进制文件,其中包含有用的元数据,而且可以更快地搜索。

默认情况下,日志文件不会持久存储。记录的数据量取决于可用内存量 ; 当系统内存或 /run/log/journal 目录中空间不足时,会删除最旧的日志文件以继续记录。

在 Red Hat Enterprise Linux 7 中,rsyslogjournald 可以共存。journald 收集的数据转发到 rsyslog,它可以执行进一步处理和存储基于文本的日志文件。默认情况下,rsyslog 只存储着 syslog 消息的典型日志字段,但可以配置为存储所有可用于 journald 的字段。因此,Red Hat Enterprise Linux 7 与依赖 rsyslog 的应用程序和系统配置保持兼容。

有关日志记录子系统的详情,请查看 系统管理员指南

2.4.4. 本地化设置

作为迁移到新 init 系统的一部分,本地化设置已从 /etc/sysconfig/i18n 移到 /etc/locale.conf/etc/vconsole.conf

2.4.5. 主机名定义

在 Red Hat Enterprise Linux 6 中,hostname 变量在 /etc/sysconfig/network 配置文件中定义。在 Red Hat Enterprise Linux 7 中,作为迁移到新 init 系统(systemd)的一部分,主机名 变量在 /etc/hostname 中定义。

2.4.6. Yum 的更新

Red Hat Enterprise Linux 7 包括了 yum 的更新版本,其中包括很多更改和功能增强。这部分列出了可能会影响从 Red Hat Enterprise Linux 6 迁移到 Red Hat Enterprise Linux 7 的 yum 用户的更改。

  • yum groupyum 组 现在是顶层命令,以提高命令行 yum 使用的一致性。例如,在之前使用 yum groupinfo 的位置,您现在可以使用 yum group info
  • yum group list 现在包含其他可选参数来更改其输出。新选项为 语言和 ids
  • /etc/yum.conf 中的 group_command 参数的默认值已从 compat 更改为 对象。在以前的版本中,yum group install 的默认行为是安装软件包组的所有成员,并在以前的升级前升级之前安装的软件包和软件包。新的默认行为是 yum 会跟踪之前安装的组,并区分作为组的一部分安装的软件包和单独安装的软件包。
  • yum-securityyum-presto 插件已集成到 yum 中。
  • yum 现在可以同时下载多个软件包。
  • yum 现在包括对环境组的支持。这可让您作为单一实体安装和删除在环境组中列出的多个软件包组。
  • yum 现在可以将存储库视为一组软件包,允许用户将存储库中的所有软件包视为单个实体,例如,安装或删除该存储库中的所有软件包。这个功能由 repository-packages 子命令提供。
  • yum 现在包含一个 --disableincludes 选项,它允许您禁用配置文件中定义的 include 语句。您可以禁用所有 包含 语句 及所有 值,或者通过提供该存储库标识符来禁用为特定存储库定义的 include 语句。
  • yum 现在包含一个 --assumeno 选项,它假定 yum 提出问题的答案为"no"。这个选项会覆盖 --assumeyes 选项,但仍然会受 alwaysprompt 规定的行为。

有关 yum 的详情,请查看 man page:

$ man yum

2.4.7. RPM Package Manager(RPM)的更新

Red Hat Enterprise Linux 7 提供 RPM Package Manager 的更新版本。这个版本包括对可能会影响迁移行为的很多更改。

  • 现在,冲突检测更为严格且更为正确。因为存在冲突问题,在 Red Hat Enterprise Linux 6 中安装的一些软件包可能无法在 Red Hat Enterprise Linux 7 中安装。
  • 现在,可以使用 alternatives 将与其他版本本身冲突的软件包设置为单例,以便单个软件包的多个版本可以相互一起安装。
  • 如果安装的软件包列出另一个软件包已过时,则不会安装第二个软件包。
  • 过时的规则现在包括所有匹配的软件包,无论其他属性是什么,比如架构。
  • 依赖项计算不再考虑没有安装的文件或被替换的文件,如 --nodocs--noconfig--force 选项。
  • 重建一个崩溃(DB _RUNRECOVER )RPM Package Manager 数据库时,不再需要手动执行 rm -f /var/lib/rpm/_db.
  • 不再支持通过 OpenPGP 3 创建的公钥。
  • 现在,- info 选项会每行输出单独的标签值对,以提高人类可读性。任何依赖前 --info 格式的脚本都需要被重写。
  • 现在,spec 解析程序更为严格且更为准确,因此一些之前被接受的 spec 文件可能无法解析或会出现警告。
  • %license 现在可以用来将 spec 文件中的 %files 部分中的文件标记为许可证,即使指定了 --nodocs
  • 版本比较现在支持 dpkg 风格的波形符(~)运算符以更好地处理预发布软件。例如: foo-2.0~beta1 被视为比 foo-2.0 旧,删除 Release 项处理这些常见上游版本实践的需要。
  • 自动依赖项生成器已重写为可扩展、基于可定制规则的系统,并带有过滤中的内置功能。

这个版本还包括以下改进:

  • 现在,可以从软件包(INSTFILENAMES)中查询安装的文件、指向文件的硬链接的数量(FILENLINKS)、软件包版本控制系统详细信息(VCS)和已格式化的依赖关系字符串快捷键(PROVIDENEVRS )、REQUIRENEVRS、CONFLICTNEVRS、CONFLICTNEVRSOBSOVEVRS
  • 提供了很多新命令,其中包括:

    • rpmkeys
    • rpmdb
    • rpmspec
    • rpmsign
  • RPM Package Manager 现在包含多个新的参数用于脚本,以启用运行时的宏扩展或者运行时查询格式扩展。
  • 现在,预处理和 post-transaction scriptlet 依赖项可以使用 Requires(pretrans)Requires(posttrans) 正确表达。
  • RPM Package Manager 现在包含 OrderWithRequires 标签,允许用户提供额外的排序信息。这个新标签的语法与 Requires 标签相同,但不会生成依赖项。如果同一事务中提到的软件包,则在计算事务顺序时,排序提示被视作 Requires
  • spec 文件中的行继续和宏扩展不再仅限于指定长度。
  • RPM Package Manager 现在允许用户指定上游版本控制存储库信息。
  • RPM Package Manager 现在包含一个 %autosetup 宏,以帮助自动化应用补丁的过程。

2.4.8. ifconfig 的新格式

在 Red Hat Enterprise Linux 7 中,已弃用的 ifconfig 工具的输出格式已改变。解析 ifconfig 输出的脚本可能会受到这些更改的影响,可能需要重写。

红帽建议使用 ip 实用程序及其子命令(ip addr,ip link),而不是已弃用的 ifconfig 工具。

2.4.9. 控制组群更改

内核使用控制组群来对进程进行分组以进行系统资源管理。Red Hat Enterprise Linux 7 对控制组群引进了大量更改。

  • 控制组现在挂载到 /sys/fs/cgroup 而不是 /cgroup
  • 现在默认挂载一些文件系统。
  • systemd 尚不支持从 libcgroup 迁移到 systemd。因此,应该只使用 cgred 服务将进程移到不由 systemd 管理的组。cgconfig.conf 文件应该用于为不是由 systemd 管理的文件系统或文件控制器配置控制组层次结构。

有关这些更改的详情,请查看 资源管理指南

2.4.10. 对 Kernel Crash Collection 的更改(Kdump)

内核崩溃收集工具( kdump )以前使用自定义 mkdumprd 脚本为 kdump 捕获内核生成初始 RAMDisk(initrd)。在 Red Hat Enterprise Linux 7 中,初始 RAMDisk 使用 dracut 生成,使生成初始 RAMDisk 的过程更易于维护。

因此,在 kdump 及其配置文件中进行了以下更改。

  • net 指令不再被支持。用户现在必须明确定义 sshnfs
  • 不再支持 黑名单 选项。相反,用户可以将 rd.driver.blacklist 指定为捕获内核的 /etc/sysconfig/kdump 文件中的参数。
  • 默认的 mount_root_run_init 操作(在转储到预期的目标失败时)已被 dump_to_rootfs 操作替代。这个新操作会挂载根文件系统,而不是挂载真实根文件系统,而是运行初始化脚本,并在 kdump 服务启动时尝试保存 vmcore。这个新操作会挂载 root 文件系统并将 vmcore 保存到其中。
  • 新的指令 dracut_args 允许您在配置 kdump 时指定额外的 dracut 参数。
  • kdump 不再包含 debug_mem_level 选项。这个功能已移至 dracut。用户可以通过在其捕获内核的 /etc/sysconfig/kump 文件中指定 rd.memdebug 作为参数来实现相同的功能。
  • options 指令之前被用来在初始 RAM 文件系统(initramfs)中包含与内核模块相关的参数。Red Hat Enterprise Linux 7 不支持这个方法。用户可以在捕获内核的 /etc/sysconfig/kdump 文件中指定相关参数。
  • link_delaydisk_timeout 参数不再是必需的或支持,因为 dracut 包含 udev,它解决了之前需要这些参数的用例。
  • 在启动 kdump 服务并创建初始 RAMDdisk 镜像前,所有文件系统后端转储目标都必须挂载到崩溃的内核中。您可以将这些目标添加到 /etc/fstab,以便在引导时自动挂载这些目标。
  • 如果您指定路径但没有指定目标,并且您指定的路径中的任何目录都是单独设备的挂载点,则 vmcore 将保存到路径中,而不是与该路径挂载的设备。因此,当您的系统重启以及设备挂载时,vmcore 无法访问,因为该设备已经挂载到其位置的顶部。现在,当您指定路径而不指定目标时,Red Hat Enterprise Linux 7 会警告此问题。

有关 kdump 的详情,请查看 内核管理指南

2.4.11. usermod 行为的更改

在 Red Hat Enterprise Linux 6 中,usermod 命令的 -g 选项没有操作组所有权。从 Red Hat Enterprise Linux 7.0 到 Red Hat Enterprise Linux 7.2,-g 选项修改了 /home 目录树中的文件的组所有权。从 Red Hat Enterprise Linux 7.3 开始,只有主目录用户 ID 与要修改的用户 ID 匹配时,usermod 才会更改用户主目录内的文件的组所有权。

2.4.12. 系统帐户的更改

Red Hat Enterprise Linux 7 发行版本中更改了系统用户的默认 ID 范围,如下所示:

表 2.4. ID 布局

范围Red Hat Enterprise Linux 6Red Hat Enterprise Linux 7

系统帐户

0-499

0-999

用户帐户

500-60,000

1,000-60,000

因为这个变化,当迁移到 Red Hat Enterprise Linux 7 时,如果有用户的 UID 和 GID 在 500 到 999 之间,则可能会造成问题。可在 /etc/login.defs 文件中手动更改默认的 UID 和 GID 范围。

2.4.13. 对 hwclock 的更改行为

在 Red Hat Enterprise Linux 6 中,用于访问硬件时钟的 hwclock 命令在每次系统关闭或重启时自动运行。该行为与 Red Hat Enterprise Linux 7 进行了改变。现在,当 网络时间协议(NTP)或 Precision Time Protocol (PTP)同步系统时钟时,内核每 11 分钟会自动将硬件时钟同步到系统时钟。

有关配置 NTPPTP 和设置硬件时钟的详情,请查看 系统管理员指南

2.5. 文件系统格式

本部分提供了在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 间对文件系统格式支持的更改概述。

2.5.1. 新默认文件系统: XFS

XFS 是一个高性能,可扩展的文件系统,它通常会在负载要求高的应用程序中使用。在 Red Hat Enterprise Linux 7 中,XFS 是默认的文件系统,在所有构架中都受支持。

ext4(无法扩展到 XFS 相同的大小)在所有构架中仍被完全支持,并将继续会有活跃的开发和支持。

红帽对 XFS 的支持限制详情,请参考 https://access.redhat.com/site/articles/rhel-limits

有关使用和管理 XFS 文件系统的详情,请查看 存储管理指南

2.5.1.1. 对挂载选项的更改

与 ext3 和 ext4 不同,XFS 文件系统默认启用 user_xattracl 挂载选项。这意味着,如果您在命令行或 /etc/fstab 中包含这些选项,您将遇到类似如下的错误。

$ mount -o acl /dev/loop0 test
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
    missing codepage or helper program, or other error

    In some cases useful info is found in syslog - try
    dmesg | tail or so.

Ext3 和 ext4 文件系统默认不启用这些属性,在使用 mount 命令或通过 /etc/fstab 挂载这些选项时接受这些选项。

2.5.2. btrfs 技术预览

Red Hat Enterprise Linux 7 引进 btrfs 作为技术预览。btrfs 是下一代 Linux 文件系统,它提供了高级管理功能,具有可靠性和可扩展性功能。btrfs 提供文件和元数据的 checksum 验证。它还提供了快照和压缩功能,以及集成的设备管理。

有关 btrfs 红帽支持限制的详情,请参考 https://access.redhat.com/site/articles/rhel-limits。有关技术预览功能支持级别的更多信息,请参阅 https://access.redhat.com/site/support/offerings/techpreview/

有关使用和管理 btrfs 的详情,请查看 存储管理指南

2.5.2.1. Kickstart btrfs

在 kickstart 文件中,要在系统上创建分区,通常使用带有 --fstypepart 命令创建使用特定文件系统的分区,如下所示:

part /mnt/example --fstype=xfs

但是,在 Red Hat Enterprise Linux 7.0 和 7.1 中,btrfs 被视为设备类型要多于文件系统类型。因此,btrfs 并不是 --fstype 参数的有效值。反之,使用 btrfs 命令定义 btrfs 卷,如下所示:

btrfs mount_point --data=level --metadata=level --label=label partitions

2.5.3. 扩展的文件系统支持

Red Hat Enterprise Linux 7 引进了一个统一的扩展文件系统驱动程序,它支持 Ext2、Ext3 和 Ext4。

但是,Ext2 在 Red Hat Enterprise Linux 7 中被视为已弃用,并应该尽可能避免使用。

有关这些文件系统的详情,请查看 存储管理指南

2.6. 物理存储

本部分包括了在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 间支持物理存储和相关配置工具的更改。

2.6.1. 更改了引导时的挂载行为

如果将存储设备配置为在引导时挂载,且无法找到该设备,或者无法正确挂载,Red Hat Enterprise Linux 7 将无法引导。这个更改是有意进行的,它可以防止在缺少了重要存储设备的情况下系统引导。对于早期版本的 Red Hat Enterprise Linux,无论是否正确找到或挂载了在引导时需要挂载的所有存储设备,系统都会被引导。

如果设备不应该阻止系统引导,您可以使用 nofail 选项进行标记,如下所示。

/dev/essential-disk			/essential			xfs	auto,defaults				0 0
/dev/non-essential-disk		/non-essential		xfs	auto,defaults,nofail		0 0

2.6.2. 使用 LVM 快照作为回滚机制

警告

不建议使用 LVM 快照作为主要回滚方法。在升级过程中,整个系统(用户文件除外)会被覆盖。因此,系统快照的大小与原始数据集的大小基本相同。

另外,与典型的备份过程相比,快照更容易出错,因为它们不包含 /boot 分区。

当从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7 时,红帽建议使用完整备份,并使用备份作为主要回滚方法。LVM 快照应该只用作二级回滚方法。

从 Red Hat Enterprise Linux 6.3 开始,用户可以在逻辑卷上保留空间,以用作快照的存储空间。然后,当升级或迁移失败时,系统就可以回滚到快照。

如果要使用 LVM 快照作为二级回滚方法,可能需要添加空间以允许完成快照的空间。要添加更多空间,您可以执行以下操作:

  • 添加另一个磁盘。《 存储管理指南》 中提供了说明。
  • 使用 parted 检查没有分配给现有分区的空闲空间。
  • 使用 lsblk 检查空白分区,或者可以删除以释放更多空间的分区。
  • 使用 vgdisplay 检查没有分配给逻辑卷的卷组中可用空间。
  • 使用 df 检查有空闲空间并可缩小的文件系统,以便其逻辑卷或分区可以被缩小以释放更多可用空间。

请注意,使用 LVM 快照进行回滚的潜在限制:

  • 快照大小不会被自动调整。如果您的快照对于它的分区来讲太大,则可能会变得无效,且回滚将失败。因此,在创建该快照前,必须为整个系统的快照分配足够大的空间。如果您需要重新定义根快照大小,则需要一个额外的设备,比如 Live CD,可在卸载和重新定义原始根设备时用作 root 设备。
  • 快照的 copy-on-write 设备不会被镜像,无论您的系统是否被镜像,它都会位于单一设备中。如果设备失败且您丢失了快照,则无法回滚。红帽建议您使用带有 mdraid 的物理卷或使用多个快照来分离磁盘。使用多个快照会较慢。
  • 在安装过程中崩溃时,系统可能无法引导。在这种情况下,红帽建议使用 Live CD 或 PXE 进行引导,并在系统成功引导时合并您的快照。Red Hat Enterprise Linux 7 LVM 文档 提供了合并说明。
  • 回滚会将 /var/log 返回到升级前的状态。为了进行审核,,红帽建议在启动回滚前,将日志文件从安装的系统复制到一个独立的位置。

2.6.3. 使用 targetcli 的目标管理

之前的 Red Hat Enterprise Linux 版本使用 tgtd 作为 iSCSI 目标的,LIO(Linux 内核目标)只用于通过 fcoe-target-utils 软件包的 Fibre-Channel over Ethernet(FCoE)目标。

Red Hat Enterprise Linux 7 现在将 LIO 内核目标子系统用于 FCoE、iSCSI、iSER(Mellanox InfiniBand)和 SRP(Mellanox InfiniBand)存储光纤。现在,所有 fabrics 都可通过 targetcli 工具进行管理。

2.6.4. 设备名称的持久性

Red Hat Enterprise Linux 7 在内核消息中存储设备名称(如 sda、sdb 等)和持久设备名称(由 udev/dev/disk/by-*/中提供)可更轻松地管理设备。这可让系统管理员识别与设备关联的信息,即使设备名称已在不同的引导中有所变化。

kernel /dev/kmsg 日志(可通过 dmesg 命令显示)现在显示符号链接的消息,其 udev 已针对内核设备创建。这些消息以以下格式显示: udev-alias: device_name (symbolic_link symbolic link …​)。例如:

udev-alias: sdb (disk/by-id/ata-QEMU_HARDDISK_QM00001)

任何日志分析器都可以显示这些消息,它们也会通过 syslog 保存在 /var/log/messages 中。

要启用此功能,请将 udev.alias=1 添加到 /etc/default/grub 中的内核命令行。

2.6.5. LVM 缓存卷

从 Red Hat Enterprise Linux 7.1 开始,完全支持 LVM 缓存卷功能。这个功能允许用户使用小的、快速的设备创建逻辑卷,作为一个大的、速度较慢的设备的缓存。有关创建缓存逻辑卷的详情,请查看 lvmcache 手册页。

2.7. 网络

本小节概述了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间的网络、网络协议支持和相关配置工具的更改。

2.7.2. NetworkManager 更新

Red Hat Enterprise Linux 7 包括了一个 NetworkManager 的更新版本,它提供了很多改进和一些新功能。

  • nmcli 工具现在支持使用 nmcli con editnmcli con modify 命令编辑连接。
  • 新的基于文本的用户界面(nmtui)提供了基于控制台的简化工具来编辑网络配置和控制网络连接。它用于替代 system-config-network-tui 工具。
  • 在以前的版本中,NetworkManager 会忽略它无法识别的网络接口(以太网、Infiniband、WiFi、Bridge、Bond 和 VLAN 以外的接口)。NetworkManager 现在识别由 ip 链接 获取的任何网络接口,并通过 D-Bus 接口和 nmcli 等客户端公开这些接口。这可让 NetworkManager 更接近 ip 等工具。
  • NetworkManager 现在可以以一个非破坏性的方式,获得它可以原生配置的接口(如以太网、InfiniBand、Bridge、Bond、VLAN 和团队接口)的所有权。如果在 NetworkManager 启动或重启前配置了这些接口,则之前配置的连接不会中断。这意味着不再需要 NM_CONTROLLED 选项。
  • 支持检查网络连接、热点和门户。默认禁用此行为。
  • 支持团队接口。
  • 对 GRE、macvlan、macvtap、tun、tap、veth 和 vxlan 设备的基本、非原生支持。
  • 新的 NetworkManager-config-server 软件包提供适合服务器的默认值,如忽略载体更改或不创建默认 DHCP 连接。
  • NetworkManager.conf 的新 dns=none 配置选项可防止 NetworkManagerresolv.conf 文件进行修改。
  • 支持快速用户切换。
  • 支持除接口外还锁定到接口名称的连接,而不是接口的 MAC 地址。

这个版本还会更改配置文件监控行为。NetworkManager 不再监控磁盘上的配置文件以进行更改。相反,用户必须使用 nmcli con reload 命令手动重新加载更改的配置文件。

2.7.3. 新的网络命名规范

Red Hat Enterprise Linux 7 提供可以实现网络接口的一致性和可预测的网络设备命名方法。这些功能更改了系统中网络接口名称,以便更轻松地查找和区分接口。

通常,Linux 中的网络接口枚举为 eth[0123…​],但这些名称不一定与机箱上的实际标签对应。具有多个网络适配器的现代服务器平台,可能会遇到这些接口的命名不明确的情况。这会影响在主板上嵌入的网络适配器(Lan-on-Motherboard 或 LOM)和附加(单一和多端口)适配器。

在 Red Hat Enterprise Linux 7 中,systemdudevd 支持很多不同的命名方案。默认行为是根据固件、拓扑和位置信息分配固定名称。它具有完全自动且完全可预测的名称的优点。即使添加或删除硬件(不会重新定义),并且有问题的硬件可以被无缝地替换,仍然可以保持固定的名称。这个行为的缺点是,名称有时比之前使用的名称更难于读,例如,enp5s0 代替 eth0

udevd 现在原生支持以下网络接口命名方案。

方案 1
使用固件或 BIOS 为板上设备提供的索引号,例如 eno1。如果来自固件的信息可用,则默认情况下systemd 会使用这个方案命名接口,方案 2 作为一个备用方案。
方案 2
使用固件或 BIOS 提供的 PCI Express 热插槽索引号命名,例如 ens1。如果来自固件的信息可用,则默认情况下systemd 会使用这个方案命名接口,方案 3 作为一个备用方案。
方案 3
使用硬件连接器的物理位置命名,例如 enp2s0。如果来自固件的信息可用,则默认情况下systemd 会使用这个方案命名接口,方案 5 作为一个备用方案。
方案 4
使用 MAC 地址进行命名,例如 enx78e7d1ea46da。默认情况下,systemd 不会根据这个方案命名接口,但在需要时可以启用它。
方案 5
传统的无法预计的内核原生 ethX 命名,如 eth0。如果所有其他方法都失败,则systemd 根据这个方案进行接口命名。

如果系统启用了 BIOSDEVNAME,或者用户添加了更改内核设备名称的 udevd 规则,则这些规则优先于默认的 systemd 策略。

有关此新命名系统的详情,请查看 网络指南

2.7.4. 新的网络工具程序(ncat)

在 Red Hat Enterprise Linux 7 中使用一个新的网络工具程序 ncat 替换 netcatncat 是一个可靠的后端工具,它为其他应用程序和用户提供网络连接。它从命令行读取和写入数据,并使用 TCP 和 UDP 进行通信。

ncat 中的一些命令与之前由 netcat 提供的命令不同,或者使用相同的选项但提供的功能有所不同。这些区别在以下列表中概述。

  • netcat -P 选项使用指定的用户名来提供给需要身份验证的代理服务器。这个行为的 ncat 选项是 --proxy-auth 用户 [:pass]
  • netcat -X 选项使用指定的协议,供联网实用程序在与代理服务器通信时使用。这个行为的 ncat 选项是 --proxy-type
  • netcat -x 选项使用一个地址以及联网实用程序的可选端口来连接到代理服务器。这个行为的 ncat 选项是 --proxy,它采用 IP 地址和可选端口,如 --proxy host[:port]
  • netcat -d 选项禁用从 stdin 读取。ncat -d 选项允许用户指定读取或写入操作之间的等待时间。但是 ncat 提供 --recv-only 选项,它提供了与 netcat -d 类似的行为。
  • netcat -i 选项指定发送和接收文本行之间或者到多个端口的连接之间的间隔。ncat -i 选项指定连接在连接超时并被终止前可以闲置的时间。ncat 中没有与 netcat -i 选项的等效。
  • netcat -w 选项指定无法建立的连接在连接超时并被终止前可以闲置的时间。ncat -w 选项指定在超时前尝试连接的时间。

netcat 中的一些选项在 ncat 中没有对应的选项。ncat 目前无法执行以下操作。

  • 在 socket 上启用调试(以前由 netcat -D提供)。
  • 指定 TCP 发送和接收缓冲区的大小(以前由 netcat -Inetcat -O提供)。
  • 指定源端口或目的地端口是随机选择的(以前由 netcat -r提供)。
  • 通过 TCP MD5 签名选项(RFC 2385)启用 BGP 会话保护(以前由 netcat -S提供)。
  • 指定服务的 IPv4 类型(以前由 netcat -T提供)。
  • 指定使用 UNIX 域套接字(以前由 netcat -U提供)。
  • 指定要使用的路由表(以前由 netcat -V提供)。
  • 在不传送数据的情况下扫描侦听守护进程。
  • 指定发送和接收文本行之间或者到多个端口的连接之间的间隔。

ncat 工具程序由 nmap-ncat 软件包提供。更多信息,请参阅 ncat man page:

$ man ncat

2.7.5. Postfix 的更改

Red Hat Enterprise Linux 7 将 postfix 从版本 2.6 升级到 2.10。在从 Red Hat Enterprise Linux 6 升级到 7 时,Preupgrade Assistant 会处理主要的兼容性问题,但用户应该了解以下非主要的兼容性问题。

  • 在使用 postscreen 守护进程前,请确保先执行 postfix stoppostfix start 命令,以避免 通过 master 服务出现问题。
  • 默认由系统提供的 CA 证书不再添加到 *_tls_CAfile*_tls_CApath 列表中。这意味着使用 allow _tls_all_clientcerts 时第三方证书不再接收邮件中继权限。如果您的配置需要证书验证,请通过设置 tls_append_default_CA = yes 来启用向后兼容的行为。
  • 验证 服务现在使用默认启用定期清理的持久缓存。需要支持 delete 和 sequence 操作。要禁用缓存,在 main.cf 中指定一个空白 address_verify_map 参数。要禁用定期清理,将 address_verify_cache_cleanup_interval 设置为 0。
  • 在以前的版本中,当过滤的 next-hop 目的地没有指定时,使用默认的 next-hop 目的地是 $myhostname 的值。现在默认是接收者域。要更改默认的 next-hop 目的地,请指定 default_filter_nexthop = $myhostname。在基于 pipe 的过滤中,这也启用了 FIFO 发送顺序,而不是使用 round-robin 域选择。
  • postmulti -e destroy 命令不再尝试删除执行 postmulti -e create 命令后创建的文件。
  • 现在,当添加带有 Milter smfi_addrcpt 操作的接收者时,Postfix 会请求默认的发送状态通知。
  • 当虚拟别名扩展超过虚拟别名递归或扩展限制时,Postfix 现在报告临时发送错误,而不是静默丢弃过量收件人并传递邮件。
  • 现在,当向一个没有 owner-alias 的子别名发送邮件时,本地发送代理会保留父别名的 owner-alias 属性。这会减少重复发送到邮件列表的可能性。要启用旧的行为,请指定 reset_owner_alias = yes
  • 当在没有 " 的 DNS 名称的情况下,Postfix SMTP 客户端不再附加 本地域。要启用旧的行为,请指定 smtp_dns_resolver_options = res_defnames。请注意,这可能会导致意外的结果。
  • postfix/smtpd[pid]: queueid: client=host[addr] 日志文件记录的格式已更改。可用的 before-filter 客户端信息和 before-filter 队列 ID 现在会附加至记录末尾。
  • 默认情况下,postfix 不再将未公开的接收者标头添加到没有指定接收方的消息中。要启用旧的行为,在 mail.cf 中指定以下内容:

    undisclosed_recipients_header = To: undisclosed-recipients:;
  • 现在,在每次成功完成 STARTTLS 后,SASL 机制列表会被重新计算。
  • smtpd_starttls_timeout 默认值现在依赖于压力。
  • DNSBL 查询域名中带有 secret 的 DNSBL 查询现在必须从创建后 SMTP 回复隐藏该 secret。例如,在 main.cf 中指定:

    postscreen_dnsbl_reply_map = texthash:/etc/postfix/dnsbl_reply

    dnsbl_reply 中,指定单独的 DNSBL 名称:

    # Secret DNSBL name    Name in postscreen(8) replies
    secret.zen.spamhaus.org  zen.spamhaus.org
  • 所有使用 postfix VSTREAMs 的程序都必须被重新编译,因为 VSTREAM 错误现在使用单独的标记进行读写错误。
  • smtp_line_length_limit 的默认值为 999,与 SMTP 标准保持一致。
  • Sendmail 现在会将以 < CR><LF& gt; 结尾的所有输入行转换为 UNIX 格式(<LF>)。
  • 默认情况下,SMTP 客户端不再将 AUTH=<> 附加到 MAIL FROM 命令。
  • 有些之前归类为 致命 的日志消息现在被归类为 error。基于日志文件的警报系统可能需要相应更新。要重新启用旧的行为,请将 daemon_table_open_error_is_fatal 设置为 yes
  • 在 Postfix 2.9 之前不支持新支持的长队列文件名。要迁移到 Postfix 2.8 或更早版本,必须转换任何长队列文件名称。为此,请停止 postfix,将 enable_long_queue_ids 设置为 no,然后运行 postsuper 命令,直到它不再导出队列文件名更改。
  • Postfix 现在记录带有 TLS 日志记录级别 0 的 TLS 协商的结果。详情请查看 postconf man page 中的日志级别描述。
  • postfix SMTP 服务器现在总是检查 smtpd_sender_login_maps 表。
  • 现在,默认的 inet_protocols 值都为 all (使用 IPv4 和 IPv6)。为了避免在没有全局 IPv6 连接的站点出现意外的性能损失,在不存在显式设置时,进行 postfix upgrade-configuration 命令当前会将 inet_protocols = ipv4 附加到 main.cf
  • 默认的 smtp_address_preference 值现在 是任意的 (随机选择 IPv4 或 IPv6)。
  • SMTP 服务器不再报告因为查询表不可用而拒绝客户端命令的会话记录。要继续接收这样的报告,请将 data 类添加到 notify_classes 参数的值中。
  • 添加了一个新的 smtpd_relay_restrictions 参数。默认情况下,这启用了 allow_mynetworksallow_sasl_authenticateddefer_unauth_destination。这可防止因为 smtpd_recipient_restrictions 中的 spam 过滤规则出错而打开转发问题。但是,如果您的站点在 smtpd_recipient_restrict ion 下配置了复杂的邮件转发策略,则可能会错误地延迟一些邮件。要修正它,可以删除 smtpd_relay_restrictions 配置并使用 smtpd_recipient_restrictions 中的现有策略,或从 smtpd_recipient_restrictions 复制到 smtpd_relay_restrictions 的现有策略。

2.7.6. 网络协议

本部分包括了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 间的网络协议更改概述。

2.7.6.1. 网络文件系统 (NFS)

Red Hat Enterprise Linux 7 支持 NFS 3、NFS 4.0 和 NFS 4.1。从 Red Hat Enterprise Linux 7 开始,不再支持 NFS 2。

NFS 4.1 提供了很多性能和安全增强,包括对 Parallel NFS(pNFS)的客户端支持。另外,回调不再需要单独的 TCP 连接,允许 NFS 服务器授权委派,即使它无法联系客户端,例如:当 NAT 或防火墙干扰时。

服务器支持 NFS 3、NFS 4.0 和 NFS 4.1。通过更改 RPCNFSDARGS 参数的值,可以在 /etc/sysconfig/nfs 文件中启用或禁用对特定版本的支持。例如,RPCNFSDARGS="-N4.1 -V3" 启用 NFS 3 支持并禁用对 NFS 4.1 的支持。详情请查看 man page:

$ man rpc.nfsd

默认情况下,NFS 客户端尝试使用 NFS 4.0 挂载,如果挂载操作不成功,则回退到 NFS 3。通过编辑 /etc/nfsmount.conf 文件并使用命令行选项来更改默认行为。详情请查看 man page。

$ man nfs
$ man nfsmount.conf
2.7.6.1.1. 并行 NFS(pNFS)

Red Hat Enterprise Linux 7 为 Parallel NFS(pNFS)提供客户端支持。pNFS 提高了 NFS 的可扩展性并可能提高性能。当 Red Hat Enterprise Linux 7 客户端挂载支持 pNFS 的服务器时,该客户端可以同时通过多个服务器访问数据。请注意,Red Hat Enterprise Linux 7 支持文件布局类型,对象和块布局类型作为技术预览包含。有关此协议及其功能的更多信息,请参阅 存储管理指南

2.7.6.2. Apache Web 服务器(httpd)

Red Hat Enterprise Linux 7 提供 Apache Web Server 的更新版本。此新版本(2.4)包括一些重要的打包更改,以及许多新功能。

更改了代理配置
使用 SSL 后端的 Apache Web 服务器(httpd)配置现在必须使用 SSLProxyCheckPeerName 指令,如果 SSL 证书与配置的主机名不匹配。在以前的版本中,不会验证代理后端的 SSL 证书中的主机名。
新的控制机制
因为 Red Hat Enterprise Linux 将系统从 SysV init 脚本中移出,所以控制 httpd 服务的命令已更改。红帽现在推荐使用 apachectlsystemctl 命令而不是 service 命令。例如,如果您之前运行了 service httpd 安全,红帽现在推荐使用 apachectl graceful
更改了默认子命令的行为
httpdsystemd 单元文件定义了 reloadstop 子命令的不同行为。具体来说,reload 子命令现在会正常重新加载该服务,stop 命令现在默认正常停止该服务。
硬编码的默认配置
以前的 httpd 版本提供了一个完整的配置文件,它列出了所有配置设置及其默认值。现在,一些常见的配置设置不再在默认配置文件中明确配置,而是默认设置是硬编码的。现在,默认配置文件具有最少的内容,因此更易于管理。所有设置的硬编码默认值都在手册中指定,默认情况下会安装到 /usr/share/httpd 中。
新的多功能模型模块
以前的 Red Hat Enterprise Linux 版本提供了几个多功能模型(fork 和 worker)作为不同的 httpd 二进制文件。Red Hat Enterprise Linux 7 使用单一二进制文件,并提供这些多处理模型作为可加载模块: workerprefork (default)和 事件。编辑 /etc/httpd/conf.modules.d/00-mpm.conf 文件,以选择载入哪个模块。
目录更改

在这个更新版本中,大量目录已移动或 不再提供

  • 以前在 /var/cache/mod_proxy 中安装的内容已移到 proxyssl 子目录下的 /var/cache/httpd
  • 之前在 /var/www 中安装的内容已移至 /usr/share/httpd
  • 之前在 /var/www/icons 中安装的内容已移至 /usr/share/httpd/icons。该目录包含与目录索引搭配使用的一组图标。
  • 之前在 /var/www/manual 中安装的 httpd 手册的 HTML 版本已移至 /usr/share/httpd/manual
  • 之前在 /var/www/error 中安装的自定义多语言 HTTP 错误页面已移至 /usr/share/httpd/error
对 suexec 的更改
suexec 二进制文件在安装时将用户标识符设置为 root。相反,使用文件系统功能位应用一组限制的权限集。这提高了 httpd 服务的安全性。另外,suexec 现在会向 syslog 发送日志信息,而不是使用 /var/log/httpd/suexec.log 文件。默认情况下,发送到 syslog 的信息会出现在 /var/log/secure 中。
更改了模块接口兼容性
httpd 模块界面的更改意味着这个更新版本的 httpd 与之前版本的 httpd (2.2)构建的第三方二进制模块不兼容。此类模块需要根据需要调整 httpd 2.4 模块接口,然后重新构建。有关版本 2.4 中的 API 更改的详情,请查看 Apache 文档。
apxs 二进制位置的变化
用于从源构建模块的 apxs 二进制文件已从 /usr/sbin/apxs 移到 / usr/bin/apxs
新配置文件及移动的配置文件

加载模块的配置文件现在放在 /etc/httpd/conf.modules.d 目录中。为 httpd 提供附加可加载模块的软件包(如 php 软件包)将文件添加到此目录中。conf.modules.d 目录中的所有配置文件都会在 httpd.conf 的主正文之前处理。/etc/httpd/conf.d 目录中的配置文件现在在 httpd.conf 的主正文后进行处理。

httpd 软件包提供了一些额外的配置文件:

  • /etc/httpd/conf.d/autoindex.conf 配置 mod_autoindex 目录索引。
  • /etc/httpd/conf.d/userdir.conf 配置对用户目录(http://example.com/~username/)的访问。默认情况下,因为安全原因,这个访问会被禁用。
  • /etc/httpd/conf.d/welcome.conf 在没有内容时 http://localhost/ 会显示 "welcome page"。
更改配置兼容性
此版本的 httpd 与之前版本(2.2)的配置语法不兼容。在与 httpd 的这个更新版本搭配使用时需要配置文件来更新相关的语法。有关版本 2.2 和版本 2.4 之间的语法变化的详情,请查看 Apache 文档。

2.7.6.3. Samba

Red Hat Enterprise Linux 7 提供 Samba 4。它是一组守护进程、客户端实用程序和 Python 绑定,允许使用 SMB1、SMB2 和 SMB3 协议进行通信。

Kerberos 的当前实现不支持 Samba 4 Active Directory 域控制器功能。这个功能没有包括在 Red Hat Enterprise Linux 7.0 中,但预计会包含在以后的版本中。包括了不依赖于 Active Directory DC 的所有其他功能。

Red Hat Enterprise Linux 6.4 及之后的版本提供了 Samba 4 作为技术预览,并将其打包为一系列 [package]*samba4- 软件包, 以避免与稳定的 Samba 3 软件包([package]*samba- )冲突。由于 Samba 4 现在被完全支持,并提供了多个对 Samba 3 的改进,Red Hat Enterprise Linux 7 提供 Samba 4 作为标准 [package]*samba- 软件包。特殊 [package]*samba4- 软件包已过时。

有关 Samba 的详情,请查看 系统管理员指南

2.7.6.4. BIND

在 Red Hat Enterprise Linux 6 中,安装 bind-chroot 软件包更改了 /etc/sysconfig/named 中的 ROOTDIR 环境变量,以指向 chroot 环境位置。要正常运行 指定服务 (不在 chroot 环境中),需要删除 bind-chroot 软件包或在 /etc/sysconfig/named 文件中手动编辑 ROOTDIR 环境变量。

在 Red Hat Enterprise Linux 7 中,安装 bind-chroot 软件包不会改变 named 服务的运行方式。相反,它会安装 一个名为-chroot 的新服务,该服务通过 systemctl 命令单独启动和停止,例如:

# systemctl start named-chroot.service
# systemctl stop named-chroot.service

named -chroot 服务不能与指定服务同时运行。

2.7.7. 默认产品证书

从 Red Hat Enterprise Linux 7.2 版本开始,已将默认证书添加到 redhat-release 软件包中。此默认证书保存在 /etc/pki/product-default/ 目录中。

Subscription Manager 现在会在 /etc/pki/product/ 目录中搜索证书列表,然后在 /etc/pki/product-default/ 目录中搜索证书列表。/etc/pki/product-default/ 目录中的内容由 redhat-release 软件包提供。/etc/pki/product-default/ 目录中的任何证书都被视为安装 /etc/pki/product/ 目录中。默认产品证书在 Subscription Manager 从订阅的频道获取产品证书前使用。

2.8. 集群和高可用性

本小节概述了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间的集群和高可用性支持以及相关的配置工具。

2.8.1. 影响替换限制(pcs)

在 Red Hat Enterprise Linux 6 中,luci 同时控制了 Red Hat Enterprise Linux 5 和 Red Hat Enterprise Linux 6 高可用性集群。

Red Hat Enterprise Linux 7 会删除 luci,并使用 pcs 替代它。pcs 只能控制基于 Red Hat Enterprise Linux 7 pacemaker 的集群。它无法控制基于 Red Hat Enterprise Linux 6 rgmanager 的高可用性集群。

2.8.2. keepalived 替换 Piranha

Red Hat Enterprise Linux 7 的 Load Balancer Add-On 现在包含 keepalived 服务,它提供 piranha 和其他功能。因此,Piranha 已被 Red Hat Enterprise Linux 7 中的 keepalived 服务取代。

因此,配置文件及其格式已改变。keepalived 默认在 /etc/keepalived/keepalived.conf 文件中配置。有关此文件预期的配置格式和语法的详情,请参考 keepalive.conf man page:

$ man keepalived.conf

2.8.3. 在线迁移限制

集群不支持从 Red Hat Enterprise Linux 6 在线迁移到 Red Hat Enterprise Linux 7。

另外,Red Hat Enterprise Linux 6 高可用性集群与 Red Hat Enterprise Linux 7 高可用性堆栈不兼容,因此不支持从 Red Hat Enterprise Linux 6 迁移到 Red Hat Enterprise Linux 7 高可用性集群的在线迁移。

2.8.4. 新的资源管理器(Pacemaker)

从 Red Hat Enterprise Linux 7 开始,rgmanagercman 将被 pacemakercorosync 取代。

Pacemaker 是一个具有许多有用功能的高可用性资源管理器。

  • 从机器和应用程序级别的失败中检测和恢复。
  • 支持多个冗余配置。
  • 支持基于配额和基于资源的集群。
  • 处理仲裁丢失的可配置策略(当多台计算机出现故障时)。
  • 支持指定应用程序启动和关闭顺序,无论应用程序所在的机器是什么。
  • 支持指定应用程序必须或不能在同一台机器中运行。
  • 支持指定应用程序在多个机器上应活跃。
  • 支持应用程序的多种模式,如 master 和 slave。
  • 对任何故障或集群状态做出正确响应。
  • 对任何情况的响应可在情况存在前进行离线测试。

有关 Pacemaker 的详情,请查看 高可用性附加组件文档

2.8.5. 新功能:资源代理

Red Hat Enterprise Linux 7 引进了用于 Pacemaker 资源管理器的资源代理。资源代理提取集群资源,为管理集群环境中的资源提供了一个标准接口。有关 Red Hat Enterprise Linux 7 中资源代理的详情,请查看 高可用性附加组件文档

Red Hat Enterprise Linux 7.2 添加了对 IBM DB2 资源代理的支持,它将 DB2 作为集群资源在高可用性环境中驱动和管理。

2.8.6. 更改了仲裁实施

Red Hat Enterprise Linux 6 提供的 qdiskd 已从 Red Hat Enterprise Linux 7 中删除。新仲裁的实现由 votequorum (包含在 corosync 软件包中)提供,并已扩展为替换 qdiskdvotequorum.5 man page 中的扩展(wait_for_allauto_tie_breakerlast_man_standing.

$ man 5 votequorum

2.9. Desktop

本部分包括了在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间支持的桌面用户环境的更改概述。

本节只涵盖用户从 Red Hat Enterprise Linux 7 中的新桌面环境预期的主要更改。有关详细信息,请参阅 桌面迁移和管理指南

2.9.1. 新默认桌面环境(GNOME Classic)

GNOME Classic 是 Red Hat Enterprise Linux 7 中 GNOME 3 桌面环境的默认会话。此环境作为 GNOME 3 桌面环境的一组扩展提供,包括其强大的新功能,同时保留了 GNOME 2 的熟悉外观和感觉。

在 GNOME Classic 中,用户界面有两个主要组件:

顶部栏

屏幕顶部的这个栏会显示 Applications 和 Places 菜单。

Applications 菜单可让用户访问系统中的应用程序,这些应用程序在菜单中被分为多个类别。此菜单还提供对新 活动概览 的访问,可让您轻松查看您的打开窗口、工作区以及任何消息或系统通知。

Places 菜单在顶部的 Applications 菜单旁显示。它允许用户快速访问重要的文件夹,如 DownloadsPictures

任务栏
任务栏显示在屏幕底部,它带有一个窗口列表、通知图标、当前工作区以及可用工作区总数的简短标识符。

有关 GNOME Classic 及其功能的完整指南,以及 Red Hat Enterprise Linux 7 中的其他桌面环境,请参见 桌面迁移和管理指南

2.9.2. 新桌面环境(GNOME 3)

Red Hat Enterprise Linux 7 还支持 GNOME 3 桌面环境的 GNOME 3 会话。这种环境旨在方便使用和用户生产率。它为您提供了大量与在线文档存储服务、日历和联系列表的集成,因此您始终保持最新状态。

在 GNOME 3 中,用户界面有三个主要组件:

顶部栏
屏幕顶部的这个横向栏提供了对一些基本的 GNOME Shell 功能的访问,如 Activities Overview、时钟、日历、系统状态图标和系统菜单。
活动概述
"活动概览" 可让您轻松查看您的打开窗口、工作区以及任何消息或系统通知。搜索栏是查找文件、启动应用程序或打开配置工具的最简单方法。左侧的横线显示您的程序,因此您可以更快地访问您最常用的工具。
消息栏
消息栏在您的屏幕底部以栏的形式出现。它显示待处理的通知,因此您总是知道系统中的真实情况。

有关 GNOME 3 及其功能的完整指南,以及 Red Hat Enterprise Linux 7 中的其他桌面环境,请参见 桌面迁移和管理指南

2.9.3. KDE Plasma Workspaces(KDE)

Red Hat Enterprise Linux 7 提供 KDE Plasma Workspaces(KDE)版本 4.10,以前称为 K 桌面环境。KDE 的这个更新版本提供很多改进,其中包括:

  • 一个改进的、与默认的 Oxygen 风格一致的外观。
  • 更新的通知系统(可删除和可操作的通知,具有速度图形),并可在面板中显示进度。
  • 系统设置 中现在可用的工作区配置。
  • 活动管理器 提供在活动之间添加、删除、保存、恢复和切换的功能。
  • 优化核心和用户界面元素,以提高性能。
  • 自适应电源管理,具有简化的用户界面和简单的配置集切换。
  • 新的 Print Manager,它简化了打印机配置,并快速、准确报告打印机状态。
  • 更新了 Dolphin File Manager,带有导航按钮、标签式浏览以及对元数据处理的改进。
  • 更新的终端模拟器(Konsole),它改进了标签页和窗口控制,并改进了互操作性。
  • KScreen 的新显示管理器,它会自动记住和恢复显示配置,包括解析和相对路径。
  • 个新的小程序,Plasma Network Manager 可以轻松控制网络并配置网络连接。

但是,用户应该注意 Kmail 不再包含在 Red Hat Enterprise Linux 7 中。

2.10. 开发人员工具

本部分介绍了对开发人员工具的支持和可能会影响 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间的开发人员进行的更新。

2.10.1. Red Hat Developer Toolset

Red Hat Developer Toolset 可在单独的加速生命周期内访问开源开发工具的最新稳定版本。它可供具有有效 Red Hat Developer 订阅的红帽客户使用。

Red Hat Developer Toolset 2 目前不支持在 Red Hat Enterprise Linux 7 中开发应用程序。但是,Red Hat Developer Toolset 支持在 Red Hat Enterprise Linux 6 中开发应用程序,并在支持的 Red Hat Enterprise Linux 6 或者 Red Hat Enterprise Linux 7 的次发行版本中进行部署。

2.10.2. 兼容性库

Red Hat Enterprise Linux 7 包含一些支持之前 Red Hat Enterprise Linux 版本中的接口的兼容性库。这些库由红帽的兼容性政策包括在内,由红帽自由裁量。详情请查看 应用程序兼容性指南

以下兼容性库包括在 Red Hat Enterprise Linux 7 中。

表 2.5. 兼容性库

程序库此接口为默认的最后一个发行版本

compat-db47

Red Hat Enterprise Linux 6

compat-libcap1

Red Hat Enterprise Linux 5

compat-libf2c-34

Red Hat Enterprise Linux 4

compat-libgfortran-41

Red Hat Enterprise Linux 5

compat-openldap

Red Hat Enterprise Linux 5

libpng12

Red Hat Enterprise Linux 5

openssl098e

Red Hat Enterprise Linux 5

compat-dapl

Red Hat Enterprise Linux 5

compat-libtiff3

Red Hat Enterprise Linux 6

compat-libstdc++-33

Red Hat Enterprise Linux 3(仅适用于可选软件仓库)

Red Hat Enterprise Linux 7 还包含 compat-gcc-44compat-gcc-44-c++ 软件包,它们代表了在 Red Hat Enterprise Linux 6 中提供的系统编译器,并可与 compat-glibc 软件包一起用于构建和连接旧的软件。

2.11. 安全性和访问控制

本部分介绍了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 间的安全性、访问控制和相关配置工具的更改。

2.11.1. 新防火墙(firewalld)

在 Red Hat Enterprise Linux 6 中,防火墙功能由 iptables 程序提供,并通过命令行或通过图形配置工具 system-config-firewall 进行配置。在 Red Hat Enterprise Linux 7 中,防火墙功能仍由 iptables 提供。但是,管理员现在通过动态防火墙守护进程、firewalld 及其配置工具: firewall-configfirewall-cmdfirewall-appletiptables 交互,这些守护进程没有包括在 Red Hat Enterprise Linux 7 的默认安装中。

由于 firewalld 是动态的,因此可以随时更改其配置,并且会立即实施。防火墙不需要重新载入,因此现有网络连接不会意外中断。

Red Hat Enterprise Linux 6 和 7 中防火墙之间的主要区别是:

  • firewalld 配置详情不会存储在 /etc/sysconfig/iptables 中。相反,配置详情保存在 /usr/lib/firewalld/etc/firewalld 目录中的各种文件中。
  • 在 Red Hat Enterprise Linux 6 中,防火墙系统在每次进行配置更改时被删除并重新应用所有规则,firewalld 只应用配置差异。因此,firewalld 可以在运行时更改设置,而不会丢失现有连接。

有关在 Red Hat Enterprise Linux 7 中配置防火墙的详情和帮助,请参阅 安全指南

2.11.1.1. 将规则迁移到 firewalld

重要

如果您将 Red Hat Enterprise Linux 7 与另一个红帽产品(如 Red Hat Enterprise Linux OpenStack 平台)搭配使用,则最好继续使用 iptablesip6tables,而不是移至 firewalld

如果您不能确定要使用哪个防火墙工具,请参阅您的产品文档或联系红帽支持团队。

有关如何禁用 firewalld 并继续使用 iptablesip6tables 的说明 :https://access.redhat.com/articles/1229233。

Red Hat Enterprise Linux 6 提供了两个防火墙配置方法:

  • 使用图形化 system-config-firewall 工具来配置规则。此工具将配置详情保存在 /etc/sysconfig/system-config-firewall 文件中,并在 /etc/sysconfig/ iptables /etc/sysconfig/ ip6tables 文件中为 iptables 和 ip6tables 服务创建配置。
  • 手动编辑 /etc/sysconfig/iptables/etc/sysconfig/ip6tables 文件(从头开始),或编辑 system-config-firewall创建的初始配置。

如果您使用 system-config-firewall 配置了 Red Hat Enterprise Linux 6 防火墙,在升级系统并安装 firewalld 后,您可以使用 firewall-offline-cmd 工具将 /etc/sysconfig/system-config-firewall 中的配置迁移到 firewalld 的默认区。

$ firewall-offline-cmd

但是,如果您手动创建或编辑 /etc/sysconfig/iptables/etc/sysconfig/ip6tables,在安装 firewalld 后,您必须使用 firewall-cmdfirewall-config 创建新的配置,或者禁用 firewalld 并继续使用旧的 iptablesip6tables 服务。有关创建新配置或禁用 firewalld 的详情,请参阅 安全指南

2.11.2. 对 PolicyKit 的更改

在以前的版本中,PolicyKit 在 .pkla 文件中使用键值对来定义额外的本地授权。Red Hat Enterprise Linux 7 引进了使用 JavaScript 定义本地授权的功能,允许您在必要时编写授权。

polkitd/etc/polkit-1/ rules. d/usr/share/polkit-1/rules.d 目录中以字典顺序读取 .rules 文件。如果两个文件共享相同的名称,/etc 中的文件将在 /usr 中的文件之前处理。当处理旧的 .pkla 文件时,最后的规则具有优先权。使用新的 .rules 文件时,第一个匹配的规则具有优先权。

迁移后,您的现有规则由 /etc/polkit-1/rules.d/49-polkit-pkla-compat.rules 文件应用。因此,它们可以被 /usr/etc 中的 .rules 文件覆盖,其名称为 49-polkit-pkla-compat in lexicographic order。请确定旧规则没有被覆盖的最简便方法是开始所有其他 .rules 文件的名称,它大于 49。

有关此问题的详情,请查看 桌面迁移和管理指南

2.11.3. 更改用户标识符

在 Red Hat Enterprise Linux 6 中,基本用户标识符为 500。在 Red Hat Enterprise Linux 7 中,基本用户标识符为 1000。这个更改涉及在升级过程中替换 /etc/login.defs 文件。

如果您还没有修改默认的 /etc/login.defs 文件,则会在升级过程中替换该文件。基本用户标识符号被更改为 1000,新用户将在 1000 及以上分配用户标识符。在此更改前创建的用户帐户会保留其当前用户标识符,并继续按预期工作。

如果您修改了默认的 /etc/login.defs 文件,则文件不会在升级过程中替换,且基本用户标识符号则是 500。

2.11.4. 对 libuser 的更改

从 Red Hat Enterprise Linux 7 开始,libuser 库不再支持包含 ldapfiles 模块的配置,或者 ldapshadow 模块。组合这些模块会在密码处理中造成不确定性,这些配置现在在初始化过程中被拒绝。

如果使用 libuser 管理 LDAP 中的用户或组,则必须从模块中删除 文件和 shadow 模块,并 在配置文件中 创建_modules 指令(默认为/etc/libuser.conf )。

2.11.5. 对 opencryptoki 密钥存储的更改

以前版本的 Red Hat Enterprise Linux 使用 opencryptoki 密钥存储版本 2,它使用硬件中的安全密钥加密私有令牌对象。Red Hat Enterprise Linux 7 使用版本 3,它会在软件中使用明确密钥加密私有令牌对象。这意味着,在可与版本 3 一起使用之前,必须迁移版本 2 创建的私有令牌对象。

要迁移私有令牌对象,请执行以下步骤:

  1. 更新软件,确保您的 opencryptoki 版本是最新的。

    # yum update -y opencryptoki
  2. 验证您的令牌的插槽号使用 pkcsconf 来确定令牌的插槽号。作为 root 运行以下命令:

    # pkcsconf -s
    # pkcsconf -t

    记录您的令牌的插槽号。插槽描述以 (CCA) 结尾。information 字段将令牌标识为 IBM CCA Token

  3. 停止接口访问,停止 pkcsslotd 服务和任何 opencryptoki 进程。

    # systemctl stop pkcsslotd.service

    使用以下命令来确定进程通过 kill 实用程序停止,然后终止适当的进程。

    # ps ax | grep pkcsslotd
  4. 备份迁移前的数据存储,备份您的令牌存储(您的令牌存储在的目录,通常为 /var/lib/opencryptoki/ccatok)。例如,生成目录的一个副本。

    # cp -r /var/lib/opencryptoki/ccatok /var/lib/opencryptoki/ccatok.backup
  5. 运行迁移实用程序,切换到 /var/lib/opencryptoki/ccatok 目录,然后运行迁移实用程序。

    # cd /var/lib/opencryptoki/ccatok
    # pkcscca -m v2objectsv3 -v

    在提示时,提供您的 Security Officer(SO)PIN 和 User PIN。

  6. 删除过时的共享内存文件,删除 /dev/shm/var.lib.opencryptoki.ccatok 文件,或者重启系统。

    # rm /dev/shm/var.lib.opencryptoki.ccatok
  7. 返回到操作接口访问,再次启动 pkcsslotd 服务。

    # systemctl start pkcsslotd.service

如果您在迁移时遇到问题,请检查以下内容:

  • 确保您以 root 用户身份运行命令,并且 root 是 pkcs11 组的成员。
  • 确保 pkcsconf 实用程序位于 /usr/lib/pkcs11/methods/ 目录中,或者 /usr/sbin/ 目录。
  • 确保令牌数据存储位于 /var/lib/opencryptoki/ccatok/ 目录中。
  • 确保您已提供一个插槽号,并且插槽号正确。
  • 请确定您的 Security Officer (SO) PIN 和 User PIN 是正确的。
  • 确定您有对当前目录的写入权限。

第 3 章 对软件包、功能和支持的更改

请参阅本章,以了解有关对 Red Hat Enterprise Linux 7 中提供的功能更改或软件包的更改,以及对所说软件包的支持更改的信息。

3.1. 新软件包

这部分论述了 Red Hat Enterprise Linux 7 中现在可用的主要软件包。

3.1.1. Preupgrade Assistant

在对系统进行任何更改前,P reupgrade Assistant (preupg)会检查您从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7 时可能会遇到的潜在问题。这有助于您在实际升级过程开始前评估成功升级到 Red Hat Enterprise Linux 7 的机率。

Preupgrade Assistant 评估系统以了解可能的原位升级限制,如删除软件包、不兼容的过时的、名称更改、对一些配置文件 compatibilities 等。然后提供以下内容:

  • 系统分析报告,提供针对任何检测到的迁移问题的解决方案。
  • 如果原位升级没有合适,可用于"克隆"系统的数据。
  • 升级后的脚本以在原位升级后完成更复杂的问题。

除了 Preupgrade Assistant 保存的信息和日志外,您的系统不会有其他变化。

有关如何获取和使用 Preupgrade Assistant 的详细信息,请参阅评估升级是否适合性

3.1.2. Red Hat Upgrade Tool

新的 Red Hat Upgrade ToolPreupgrade Assistant 后使用,并处理升级过程的三个阶段:

  • Red Hat Upgrade Tool 从磁盘或服务器获取软件包和升级镜像,准备该系统进行升级,并重启系统。
  • 重启系统检测到可用的升级软件包,并使用 systemdyum 升级系统上的软件包。
  • 升级后,Red Hat Upgrade Tool 会进行清理,并将系统重启到升级的操作系统。

支持基于网络和基于磁盘的升级。有关如何升级系统的详情,请参考 第 1 章 如何升级

3.1.3. Chrony

Chronychrony 软件包中提供的新 NTP 客户端。它取代了 ntp,作为 Red Hat Enterprise Linux 7 中默认的 NTP 实现。然而,它并不支持 ntp 中的所有可用功能。因此出于兼容性的原因,仍会提供 ntp。如果需要 ntp,您必须明确删除 chrony 并安装 ntp

ntp 的实现相比,Chrony 的时间算法具有一些优点。

  • 同步更快、更准确。
  • 更大范围的频率修正。
  • 更好地响应时钟频率中的快速变化。
  • 初始同步后没有时钟步骤。
  • 在网络连接不稳定的环境中可以正常工作。

有关 chrony 的更多信息,请参阅 系统管理员指南

3.1.4. HAProxy

HAProxy 是一个适用于高可用性环境的 TCP/HTTP 反向代理。它需要少量资源,其事件驱动的架构允许它在数百个实例上轻松处理数千台并发连接,而不影响系统的稳定性。

有关 HAProxy 的详情请参考 man page,或参考 /usr/share/doc/ haproxy 目录中安装的 haproxy 软件包的文档。

3.1.5. Kernel-tools

kernel-tools 软件包包含很多用于 Linux 内核的工具。这个软件包中的一些工具替换了之前在其他软件包中可用的工具。详情请查看 第 3.3 节 “弃用的软件包”第 3.2 节 “软件包替换”

3.1.6. NFQUEUE (libnetfilter_queue)

Red Hat Enterprise Linux 7.1 提供 libnetfilter_queue 软件包。这个库启用 NFQUEUE iptables 目标,它指定监听用户空间应用程序将从指定的队列检索数据包,并确定如何处理该数据包。

3.1.7. SCAP 安全指南

scap-security-guide 软件包为安全内容自动化协议(SCAP)提供安全指导、基准和相关验证机制。在以前的版本中,这个软件包只通过 EPEL 软件仓库(Extra Packages for Enterprise Linux)提供。从 Red Hat Enterprise Linux 7.1 开始,Red Hat Enterprise Linux 7 Server(RPMS)软件仓库提供了 scap-security-guide

3.1.8. Red Hat Access GUI

Red Hat Access GUI 是一个桌面应用程序,可让您使用红帽知识库、资源和功能找到帮助、回答和使用诊断服务。如果您在红帽客户门户网站中有一个有效的帐户,您可以轻松访问知识库的信息及其他资源。如果您选择安装了 GNOME 桌面,则 Red Hat Access GUI 已安装。

有关这个工具的好处、安装和使用的更多信息,请参阅 Red Hat Access GUI

3.2. 软件包替换

这部分列出了在版本 6 和版本 7 之间从 Red Hat Enterprise Linux 中删除的软件包,以及 Red Hat Enterprise Linux 7 中功能等同的替代软件包或替代软件包。

表 3.1. 替换的软件包

删除的软件包替换/备用备注

vconfig

iproute(ip 工具)

不完全兼容。

module-init-tools

kmod

 

openoffice.org

libreoffice

 

man

man-db

 

ext2 和 ext3 文件系统驱动程序

ext4 文件系统驱动程序

 

openais

corosync

功能包括在 Red Hat Enterprise Linux HA 堆栈中。

jwhois

whois

输出格式不同。

libjpeg

libjpeg-turbo

 

gpxe

ipxe

gpxe 的分支(fork)。

cpuspeed

kernel、kernel-tools(cpupower、cpupower.service)

现在在 /etc/sysconfig/cpupower 中配置。不再包含用户空间扩展守护进程 ; 如有必要,使用内核管理。

nc

nmap-ncat

 

procps

procps-ng

 

openswan

libreswan

 

arptables_jf

arptables

 

gcj

OpenJDK

不要使用 gcj 将 Java 应用程序编译为原生代码。

32 位 x86 作为安装构架

AMD64 和 Intel 64

应用程序仍将使用兼容性库运行。在 64 位 Red Hat Enterprise Linux 6 中测试您的应用程序。如果需要 32 位 x86 引导支持,继续使用 Red Hat Enterprise Linux 6。

Power 6 PPC 支持

 

继续使用 Red Hat Enterprise Linux 5 或 Red Hat Enterprise Linux 6

Matahari

基于 CIM 的管理

 

ecryptfs

使用现有的基于 LUKS/dm-crypt 块的加密

加密的文件系统无法进行迁移。需要重新创建加密的数据。

evolution-exchange

evolution-mapi/evolution-ews

 

TurboGears2 web 应用程序堆栈

  

openmotif22

motif

针对当前的 Motif 版本重建应用程序。

Webalizer Web 分析工具

 

首选使用其他 Web 分析工具。

compiz window manager

gnome-shell

 

Eclipse developer toolset

 

现在,Developer Toolset 提供了 eclipse。

Qpid 和 QMF

 

Qpid 和 QMF 在 MRG 服务中可用。

amtu

 

Common Criteria 认证不再需要这个工具。

pidgin frontends

empathy

 

perl-suidperl

Perl

此功能已在上游 perl 中删除。

pam_passwdqc, pam_cracklib

libpwquality, pam_pwquality

不完全兼容。

HAL 库和守护进程

udev

 

ConsoleKit 库和守护进程

systemd

不完全兼容。

system-config-network

nm-connection-editor、nmcli

 

thunderbird

evolution

 

system-config-firewall

firewalld

 

busybox

普通工具

 

KVM/virt 软件包(在 ComputeNode)

KVM/virt 带有不同变体,如 Server 变体

 

abysinica-fonts

sil-abyssinica-fonts

 

axis

java-1.7.0-openjdk

 

ccs

pcs

不完全兼容。

cjkuni-fonts-common

cjkuni-uming-fonts

 

classpath-jaf

java-1.7.0-openjdk

 

classpath-mail

javamail

不完全兼容。

cman

corosync

 

control-center-extra

control-center

 

db4-cxx

libdb4-cxx

 

db4-devel

libdb4-devel

 

db4-utils

libdb4-utils

 

desktop-effects

control-center

 

DeviceKit-power

upower

不完全兼容。

dracut-kernel

dracut

 

eggdbus

glib2

不完全兼容。

fcoe-target-utils

targetcli

详情请查看 第 2.6.3 节 “使用 targetcli 的目标管理”

febootstrap

supermin

 

gcc-java

java-1.7.0-openjdk-devel

 

GConf2-gtk

GConf2

 

gdm-plugin-fingerprint

gdm

 

gdm-plugin-smartcard

gdm

 

gdm-user-switch-applet

gnome-shell

不完全兼容。

geronimo-specs

geronimo-parent-poms

 

geronimo-specs-compat

geronimo-jms, geronimo-jta

不完全兼容。

gimp-help-browser

gimp

不完全兼容。

gnome-applets

gnome-classic-session

不完全兼容。

gnome-keyring-devel

gnome-keyring

 

gnome-mag

gnome-shell

不完全兼容。

gnome-python2-applet

pygtk2

不完全兼容。

gnome-speech

speech-dispatcher

不完全兼容。

gpxe-roms-qemu

ipxe-roms-qemu

 

hal

systemd

不完全兼容。

hal-devel

systemd-devel

不完全兼容。

ibus-gtk

ibus-gtk2

 

ibus-table-cangjie

ibus-table-chinese-cangjie

 

ibus-table-erbi

ibus-table-chinese-erbi

 

ibus-table-wubi

ibus-table-chinese-wubi-haifeng

 

jakarta-commons-net

apache-commons-net

 

java-1.5.0-gcj

java-1.7.0-openjdk, java-1.7.0-openjdk-headless

不完全兼容。

java-1.5.0-gcj-devel

java-1.7.0-openjdk-devel

不完全兼容。

java-1.5.0-gcj-javadoc

java-1.7.0-openjdk-javadoc

不完全兼容。

junit4

junit

 

jwhois

whois

 

kabi-whitelists

kernel-abi-whitelists

 

kdeaccessibility-libs

kdeaccessibility

 

kdebase-devel

kde-baseapps-devel

 

kdebase-workspace-wallpapers

kde-wallpapers

 

kdelibs-experimental

kdelibs

 

kdesdk-libs

kate-libs, kdesdk-kmtrace-libs, kdesdk-kompare

不完全兼容。

kdesdk-utils

kdesdk-poxml

 

krb5-auth-dialog

gnome-online-accounts

不完全兼容。

lldpad-libs

lldpad

 

lslk

util-linux

不完全兼容。

luci

pcs

详情请查看 第 2.8 节 “集群和高可用性”

man-pages-uk

man-pages

 

mingetty

util-linux

不完全兼容。

modcluster

pcs

不完全兼容。

mod_perl

mod_fcgid

与 httpd 2.4 不兼容。

m17n-contrib-*

m17n-contrib

 

m17n-db-*

m17n-db, m17n-db-extras

 

NetworkManager-gnome

nm-connection-editor、network-manager、applet

 

nss_db

glibc

不完全兼容。

openais

corosync

 

openaislib

corosynclib

 

openaislib-devel

corosynclib-devel

 

PackageKit-gtk-module

PackageKit-gtk3-module

不完全兼容。

polkit-desktop-policy

polkit

 

pulseaudio-libs-zeroconf

pulseaudio-libs

不完全兼容。

qt-sqlite

qt

 

rdesktop

xfreerdp

 

Red_Hat_Enterprise_Linux-Release_Notes-6-*

Red_Hat_Enterprise_Linux-Release_Notes-7-*

 

redhat-lsb-compat

redhat-lsb-core

 

rgmanager

pacemaker

详情请查看 第 2.8 节 “集群和高可用性”

rhythmbox-upnp

rhythmbox

 

ricci

pcs

详情请查看 第 2.8 节 “集群和高可用性”

samba4*

samba*

详情请查看 第 2.7.6.3 节 “Samba”

sbm-cim-client

sbm-cim-client2

不完全兼容。

scsi-target-utils

targetcli

详情请查看 第 2.6.3 节 “使用 targetcli 的目标管理”

seekwatcher

iowatcher

 

spice-client

virt-viewer

不完全兼容。

system-config-lvm

gnome-disk-utility

不完全兼容。

texlive-*

texlive

 

tex-cm-lgc

texlive-cm-lgc

 

tex-kerkis

texlive-kerkis

 

texlive-texmf-dvips

texlive-dvips

 

texlive-texmf-latex

texlive-latex

 

tomcat6

tomcat

 

tomcat6-el-2.1-api

tomcat-el-2.2-api

 

tomcat6-jsp-2.1-api

tomcat-jsp-2.2-api

 

tomcat6-lib

tomcat-lib

 

totem-upnp

totem

 

udisks

udisks2

不完全兼容。

un-core-batang-fonts

nhn-nanum-myeongjo-fonts

 

un-core-dinaru-fonts, un-core-graphic-fonts

nhn-nanum-gothic-fonts

不完全兼容。

un-core-dotum-fonts

nhn-nanum-gothic-fonts

 

un-core-fonts-common

nhn-nanum-fonts-common

不完全兼容。

un-core-gungseo-fonts

nhn-nanum-brush-fonts

不完全兼容。

un-core-pilgi-fonts

nhn-nanum-pen-fonts

不完全兼容。

unique

unique3, glib2

不完全兼容。

unique-devel

unique3-devel

不完全兼容。

unix2dos

dos2unix

 

vgabios

seavgabios-bin

 

w3m

text-www-browser

不完全兼容。

xmlrpc3-*

xmlrpc-*

 

xorg-x11-drv-apm

xorg-x11-drv-fbdev, xorg-x11-drv-vesa

 

xorg-x11-drv-ast, xorg-x11-drv-cirrus, xorg-x11-drv-mga

xorg-x11-drv-modesetting

 

xorg-x11-drv-ati-firmware

linux-firmware

 

xorg-x11-drv-elographics, xorg-x11-drv-glint, xorg-x11-drv-i128, xorg-x11-drv-i740, xorg-x11-drv-mach64, xorg-x11-drv-rendition, xorg-x11-drv-r128, xorg-x11-drv-savage, xorg-x11-drv-siliconmotion, xorg-x11-drv-sisrv-s11-drv-sisusb, xorg-x11-drv-s3virge, xorg-x11-drv-tdfx, xorg-x11-drv-trident, xorg-x11-drv-voodoo, xorg-x11-drv-xgi

xorg-x11-drv-fbdev, xorg-x11-drv-vesa

 

xorg-x11-drv-nv

xorg-x11-drv-nouveau

 

xorg-x11-twm

metacity

不完全兼容。

xorg-x11-xdm

gdm

不完全兼容。

yum-plugin-downloadonly

yum

 

3.3. 弃用的软件包

本节中列出的软件包在 Red Hat Enterprise Linux 7 中被视为已弃用。这些软件包仍可以正常工作,并仍然被支持,但红帽不推荐使用它们。

表 3.2. 软件包弃用

功能/软件包替代方案迁移备注

ext2 文件系统支持

ext3、ext4

ext4 可用于 ext2 和 ext3 文件系统。

sblim-sfcb

tog-pegasus

 

旧的使用 RHN 的注册

subscription-manager 和 Subscription Asset Manager

 

acpid

systemd

 

evolution-mapi

evolution-ews

请从 Microsoft Exchange Server 2003 机器迁移。

gtkhtml3

webkitgtk3

 

sendmail

postfix

 

edac-utils 和 mcelog

rasdaemon

 

libcgroup

systemd

cgutils 将继续存在于 Red Hat Enterprise Linux 7.0 中,但 systemd 不断发展的功能,以便客户在以后的版本中进行迁移

lvm1

lvm2

 

lvm2mirror 和 cmirror

lvm2 raid1

 

3.4. 删除的软件包

在 Red Hat Enterprise Linux 6 和版本 7 中删除了以下软件包,且不再被支持。其中一些软件包可能具有功能等同的替换功能,详情请参阅 第 3.2 节 “软件包替换”

  • amtu
  • ant-antlr
  • ant-apache-bcel
  • ant-apache-bsf
  • ant-apache-log4j
  • ant-apache-oro
  • ant-apache-regexp
  • ant-apache-resolver
  • ant-commons-logging
  • ant-commons-net
  • ant-javamail
  • ANT-jdepend
  • ant-jsch
  • ant-junit
  • ant-nodeps
  • ant-swing
  • ant-trax
  • apache-jasper
  • apache-tomcat-apis
  • apr-util-ldap
  • arts
  • arts-devel
  • aspell
  • atmel-firmware
  • at-spi
  • at-spi-python
  • audiofile
  • audit-viewer
  • avahi-tools
  • avahi-ui
  • avalon-framework
  • avalon-logkit
  • batik
  • brasero
  • brasero-libs
  • brasero-nautilus
  • bsf
  • busybox
  • b43-fwcutter
  • b43-openfwwf
  • cas
  • cdparanoia
  • cdrdao
  • cjet
  • cloog-ppl
  • cluster-cim
  • cluster-glue
  • cluster-glue-libs
  • cluster-glue-libs-devel
  • clusterlib
  • clusterlib-devel
  • cluster-snmp
  • cman
  • compat-db42
  • compat-db43
  • compat-libstdc++-296
  • compat-libtermcap
  • compat-openmpi
  • compat-openmpi-psm
  • compat-opensm-libs
  • compiz
  • compiz-gnome
  • coreutils-libs
  • cracklib-python
  • cronie-noanacron
  • ctan-cm-lgc-fonts-common
  • ctan-cm-lgc-roman-fonts
  • ctan-cm-lgc-sans-fonts
  • ctan-cm-lgc-typewriter-fonts
  • ctan-kerkis-fonts-common
  • ctan-kerkis-sans-fonts
  • ctan-kerkis-serif-fonts
  • ctapi-common
  • cvs-inetd
  • c2050
  • c2070
  • dash
  • dbus-c+
  • dbus-qt
  • devhelp
  • dmz-cursor-themes
  • dtach
  • dvd+rw-tools
  • eclipse-birt
  • eclipse-callgraph
  • eclipse-cdt
  • eclipse-dtp
  • eclipse-emf
  • eclipse-gef
  • eclipse-changelog
  • eclipse-jdt
  • eclipse-linuxprofilingframework
  • eclipse-mylyn
  • eclipse-mylyn-cdt
  • eclipse-mylyn-java
  • eclipse-mylyn-pde
  • eclipse-mylyn-trac
  • eclipse-mylyn-webtasks
  • eclipse-mylyn-wikitext
  • eclipse-nls
  • eclipse-nls-ar
  • eclipse-nls-bg
  • eclipse-nls-ca
  • eclipse-nls-cs
  • eclipse-nls-da
  • eclipse-nls-de
  • eclipse-nls-el
  • eclipse-nls-es
  • eclipse-nls-et
  • eclipse-nls-fa
  • eclipse-nls-fi
  • eclipse-nls-fr
  • eclipse-nls-he
  • eclipse-nls-hi
  • eclipse-nls-hu
  • eclipse-nls-id
  • eclipse-nls-it
  • eclipse-nls-ja
  • eclipse-nls-ko
  • eclipse-nls-ku
  • eclipse-nls-mn
  • eclipse-nls-nl
  • eclipse-nls-no
  • eclipse-nls-pl
  • eclipse-nls-pt
  • eclipse-nls-pt_BR
  • eclipse-nls-ro
  • eclipse-nls-ru
  • eclipse-nls-sk
  • eclipse-nls-sl
  • eclipse-nls-sq
  • eclipse-nls-sr
  • eclipse-nls-sv
  • eclipse-nls-tr
  • eclipse-nls-uk
  • eclipse-nls-zh
  • eclipse-nls-zh_TW
  • eclipse-oprofile
  • eclipse-pde
  • eclipse-platform
  • eclipse-rcp
  • eclipse-rpm-editor
  • eclipse-rse
  • eclipse-subclipse
  • eclipse-subclipse-graph
  • eclipse-svnkit
  • eclipse-swt
  • eclipse-valgrind
  • ecryptfs-utils
  • evolution-data-server-doc
  • fakechroot
  • fakechroot-libs
  • fence-virt
  • fence-virtd-checkpoint
  • file-devel
  • firstaidkit
  • firstaidkit-engine
  • firstaidkit-gui
  • foghorn
  • fop
  • gamin-devel
  • gamin-python
  • gconfmm26
  • ggz-base-libs
  • glade3
  • gnome-disk-utility-libs
  • gnome-disk-utility-ui-libs
  • gnome-doc-utils
  • gnome-doc-utils-stylesheets
  • gnome-games
  • gnome-media
  • gnome-media-libs
  • gnome-pilot
  • gnome-pilot-conduits
  • gnome-power-manager
  • gnome-python2-bugbuddy
  • gnome-python2-extras
  • gnome-python2-gtkhtml2
  • gnome-python2-libegg
  • gnome-python2-libwnck
  • gnome-python2-rsvg
  • gnome-themes
  • gnome-user-share
  • gnome-vfs2-devel
  • gnome-vfs2-smb
  • graphviz-perl
  • groff
  • gsl-static
  • gstreamer-python
  • gthumb
  • gtk+extra
  • gtkhtml2
  • gtksourceview2
  • gtk2-engines
  • guile
  • gvfs-afc
  • gvfs-archive
  • hal-info
  • hal-libs
  • hal-storage-addon
  • htdig
  • hypervkvpd
  • ibus-table-additional
  • icedax
  • icu4j-eclipse
  • ipa-pki-ca-theme
  • ipa-pki-common-theme
  • ipw2100-firmware
  • ipw2200-firmware
  • jakarta-commons-discovery
  • jakarta-commons-el
  • jasper
  • java_cup
  • jdepend
  • jetty-eclipse
  • jsch
  • jzlib
  • kabi-yum-plugins
  • kcoloredit
  • kcoloredit-doc
  • kdeadmin
  • kdeartwork-screensavers
  • kdebase-workspace-akonadi
  • kdebase-workspace-python-applet
  • kdegames
  • kdegraphics
  • kde-i18n-Arabic
  • kde-i18n-Bengali
  • kde-i18n-Brazil
  • kde-i18n-British
  • kde-i18n-Bulgarian
  • kde-i18n-Catalan
  • kde-i18n-Czech
  • kde-i18n-Danish
  • kde-i18n-Dutch
  • kde-i18n-Estonian
  • kde-i18n-Finnish
  • kde-i18n-French
  • kde-i18n-German
  • kde-i18n-Greek
  • kde-i18n-Hebrew
  • kde-i18n-Hindi
  • kde-i18n-Hungarian
  • kde-i18n-Chinese
  • kde-i18n-Chinese-Big5
  • kde-i18n-Icelandic
  • kde-i18n-Italian
  • kde-i18n-Japanese
  • kde-i18n-Korean
  • kde-i18n-Lithuanian
  • kde-i18n-Norwegian
  • kde-i18n-Norwegian-Nynorsk
  • kde-i18n-Polish
  • kde-i18n-Portuguese
  • kde-i18n-Punjabi
  • kde-i18n-Romanian
  • kde-i18n-Russian
  • kde-i18n-Serbian
  • kde-i18n-Slovak
  • kde-i18n-Slovenian
  • kde-i18n-Spanish
  • kde-i18n-Swedish
  • kde-i18n-Tamil
  • kde-i18n-Turkish
  • kde-i18n-Ukrainian
  • kdelibs-apidocs
  • kdelibs3
  • kdelibs3-devel
  • kde-l10n-Bengali-India
  • kde-l10n-Frisian
  • kde-l10n-Gujarati
  • kde-l10n-Chhattisgarhi
  • kde-l10n-Kannada
  • kde-l10n-Kashubian
  • kde-l10n-Kurdish
  • kde-l10n-Macedonian
  • kde-l10n-Maithili
  • kde-l10n-Malayalam
  • kde-l10n-Marathi
  • kdemultimedia
  • kdemultimedia-devel
  • kdemultimedia-libs
  • kdenetwork
  • kdesdk
  • kdesdk-libs
  • kdeutils
  • kdewebdev
  • kdewebdev-libs
  • kernel-debug
  • kernel-debug-devel
  • kernel-doc
  • kiconedit
  • kipi-plugins
  • kipi-plugins-libs
  • kmid
  • kmid-common
  • konq-plugins-doc
  • krb5-appl
  • kross-python
  • ksig
  • ksig-doc
  • k3b
  • k3b-common
  • k3b-libs
  • libao-devel
  • libart_lgpl-devel
  • libbonobo-devel
  • libbonoboui-devel
  • libburn
  • libcroco-devel
  • libdc1394
  • libdiscid
  • libesmtp-devel
  • libexif-devel
  • libgail-gnome
  • libgcj
  • libgcj-devel
  • libgcj-src
  • libglademm24
  • libglade2-devel
  • libgnomecanvas-devel
  • libgnome-devel
  • libgnomeui-devel
  • libgphoto2-devel
  • libgpod
  • libgsf-devel
  • libgxim
  • libIDL-devel
  • libidn-devel
  • libisofs
  • libitm
  • libldb-devel
  • libmatchbox
  • libmtp
  • libmusicbrainz
  • libmusicbrainz3
  • libnih
  • liboil
  • libopenraw-gnome
  • libpanelappletmm
  • libproxy-bin
  • libproxy-python
  • libreport-compat
  • libreport-plugin-mailx
  • libreport-plugin-reportuploader
  • librtas(仅限 32 位)
  • libselinux-ruby
  • libservicelog(仅限 32 位)
  • libsexy
  • libtalloc-devel
  • libtdb-devel
  • libtevent-devel
  • libtidy
  • libvpd(仅限 32 位)
  • libwnck
  • libXdmcp-devel
  • log4cpp
  • lpg-java-compat
  • lucene
  • lucene-contrib
  • lx
  • lynx
  • MAKEDEV
  • matchbox-window-manager
  • mcstrans
  • mesa-dri1-drivers
  • min12xxw
  • mod_auth_mysql
  • mod_auth_pgsql
  • mod_authz_ldap
  • mod_dnssd
  • mrtg-libs
  • mvapich-psm-static
  • mx4j
  • nspluginwrapper
  • openct
  • openhpi-subagent
  • openssh-askpass
  • ORBit2-devel
  • osutil
  • oxygen-cursor-themes
  • PackageKit-yum-plugin
  • paktype-fonts-common
  • pam_passwdqc
  • pbm2l2030
  • pbm2l7k
  • pcmciautils
  • pcsc-lite-openct
  • perl-BSD-Resource
  • perl-Cache-Memcached
  • perl-Class-MethodMaker
  • perl-Config- General
  • perl-Crypt-PasswdMD5
  • perl-Frontier-RPC
  • perl-Frontier-RPC-doc
  • perl-Perlilog
  • perl-String-CRC32
  • perl-suidperl
  • perl-Text-Iconv
  • perl-Time-HiRes
  • perl-YAML-Syck
  • pessulus
  • pilot-link
  • pinentry-gtk
  • piranha
  • pki-symkey
  • plpa-libs
  • plymouth-gdm-hooks
  • plymouth-theme-rings
  • plymouth-utils
  • policycoreutils-newrole
  • policycoreutils-sandbox
  • ppl
  • prelink
  • printer-filters
  • psutils
  • ptouch-driver
  • pulseaudio-module-gconf
  • pycairo-devel
  • pygobject2-codegen
  • pygobject2-devel
  • pygobject2-doc
  • pygtksourceview
  • pygtk2-codegen
  • pygtk2-devel
  • pygtk2-doc
  • pychart
  • PyOpenGL [1]
  • python-beaker
  • python-Coherence
  • python-crypto
  • python-decoratortools
  • python-enchant
  • python-formencode
  • python-fpconst
  • python-genshi
  • python-gtkextra
  • python-cheetah
  • python-ipaddr
  • python-iwlib
  • python-libguestfs [2]
  • python-louie
  • python-mako
  • python-markdown
  • python-markupsafe
  • python-matplotlib
  • python-myghty
  • python-paramiko
  • python-paste
  • python-paste-deploy
  • python-paste-script
  • python-peak-rules
  • python-peak-util-addons
  • python-peak-util-assembler
  • python-peak-util-extremes
  • python-peak-util-symbols
  • python-prioritized-methods
  • python-pygments
  • python-pylons
  • python-qpid
  • python-qpid-qmf
  • python-repoze-tm2
  • python-repoze-what
  • python-repoze-what-plugins-sql
  • python-repoze-what-pylons
  • python-repoze-what-quickstart
  • python-repoze-who
  • python-repoze-who-friendlyform
  • python-repoze-who-plugins-sa
  • python-repoze-who-testutil
  • python-routes
  • python-saslwrapper
  • python-sexy
  • python-sqlalchemy
  • python-tempita
  • python-toscawidgets
  • python-transaction
  • python-turbojson
  • python-tw-forms
  • python-twisted
  • python-twisted-conch
  • python-twisted-core
  • python-twisted-lore
  • python-twisted-mail
  • python-twisted-names
  • python-twisted-news
  • python-twisted-runner
  • python-twisted-web
  • python-twisted-words
  • python-weberror
  • python-webflash
  • python-webhelpers
  • python-webob
  • python-webtest
  • python-zope-filesystem
  • python-zope-interface
  • python-zope-sqlalchemy
  • pywebkitgtk
  • pyxf86config
  • qpid-cpp-client
  • qpid-cpp-client-ssl
  • qpid-cpp-server
  • qpid-cpp-server-ssl
  • qpid-qmf
  • qpid-tests
  • qpid-tools
  • qt-doc
  • raptor
  • rgmanager
  • rome
  • ruby-devel
  • ruby-qpid
  • ruby-qpid-qmf
  • sabayon
  • sabayon-apply
  • sac
  • samba-winbind-clients
  • samba4
  • samba4-client
  • samba4-common
  • samba4-dc
  • samba4-dc-libs
  • samba4-devel
  • samba4-pidl
  • samba4-swat
  • samba4-test
  • samba4-winbind
  • samba4-winbind-clients
  • samba4-winbind-krb5-locator
  • saslwrapper
  • sat4j
  • saxon
  • sblim-cmpi-dhcp
  • sblim-cmpi-dns
  • sblim-cmpi-samba
  • sblim-tools-libra
  • scenery-backgrounds
  • seabios
  • selinux-policy-minimum
  • selinux-policy-mls
  • setools-console
  • sgabios-bin
  • sigar
  • sinjdoc
  • smp_utils
  • SOAPpy
  • sound-juicer
  • strigi-devel
  • subscription-manager-migration-data
  • subversion-javahl
  • svnkit
  • system-config-firewall
  • system-config-firewall-tui
  • system-config-network-tui
  • system-config-services
  • system-config-services-docs
  • system-gnome-theme
  • system-icon-theme
  • TaskJuggler
  • tbird
  • terminus-fonts
  • tidy
  • tigervnc-server
  • tix
  • tkinter
  • trilead-ssh2
  • tsclient
  • tunctl
  • TurboGears2
  • unicap
  • vorbis-tools
  • wacomexpresskeys
  • wdaemon
  • webalizer
  • webkitgtk
  • ws-commons-util
  • wsdl4j
  • xfig-plain
  • xfsprogs-devel
  • xfsprogs-qa-devel
  • xguest
  • xmldb-api
  • xmldb-api-sdk
  • xmlgraphics-commons
  • xorg-x11-apps
  • xorg-x11-drv-acecad
  • xorg-x11-drv-aiptek
  • xorg-x11-drv-fpit
  • xorg-x11-drv-hyperpen
  • xorg-x11-drv-keyboard
  • xorg-x11-drv-mouse
  • xorg-x11-drv-mutouch
  • xorg-x11-drv-openchrome
  • xorg-x11-drv-penmount
  • xorg-x11-server-Xephyr
  • xsane
  • xz-lzma-compat
  • zd1211-firmware


[1] 在 Red Hat Enterprise Linux 7.0 中删除,在 Red Hat Enterprise Linux 7.1 中替代。在 Red Hat Enterprise Linux 7.3 中添加了 Optional 频道。有关 Optinal 频道的更多信息,请参阅 此解决方案文章
[2] 从 Red Hat Enterprise Linux 7.1 开始,移动到 Red Hat Enterprise Linux 7.0 的 Optional 软件仓库。

3.5. 删除的驱动程序

以下驱动程序已从 Red Hat Enterprise Linux 6 和版本 7 中删除,且不再被支持。

  • 3c574_cs.ko
  • 3c589_cs.ko
  • 3c59x.ko
  • 8390.ko
  • acenic.ko
  • amd8111e.ko
  • avma1_cs-ko [3]
  • avm_cs.ko
  • axnet_cs.ko
  • b1pcmpcia.ko
  • bluecard_cs-ko
  • bt3c_cs.ko
  • btuart_cs.ko
  • can-dev.ko
  • cassini.ko
  • cdc-phonet.ko
  • cm4000_cs.ko
  • cm4040_cs.ko
  • cxgb.ko
  • de2104x.ko
  • de4x5.ko
  • dl2k.ko
  • dmfe.ko
  • dtl1_cs.ko
  • e100.ko
  • elsa_cs.ko
  • ems_pci.ko
  • ems_usb.ko
  • fealnx.ko
  • fmvj18x_cs.ko
  • forcedeth.ko
  • ipwireless.ko
  • ixgb.ko
  • kvaser_pci.ko
  • myri10ge.ko
  • natsemi.ko
  • ne2k-pci.ko
  • niu.ko
  • nmclan_cs.ko
  • ns83820.ko
  • parport_cs.ko
  • pata_pcmcia.ko
  • pcnet_cs.ko
  • pcnet32.ko
  • pppol2tp.ko
  • r6040.ko
  • s2io.ko
  • sc92031.ko
  • sdricoh_cs.ko
  • sedlbauer_cs.ko
  • serial_cs.ko
  • sis190.ko
  • sis900.ko
  • sja1000_platform.ko
  • sja1000.ko
  • smc91c92_cs.ko
  • starfire.ko
  • sundance.ko
  • sungem_phy.ko
  • sungem.ko
  • sunhme.ko
  • tehuti.ko
  • teles_cs.ko
  • tlan.ko
  • tulip.ko
  • typhoon.ko
  • uli526x.ko
  • vcan.ko
  • via-rhine.ko
  • via-velocity.ko
  • vxge.ko
  • winbond-840.ko
  • xirc2ps_cs.ko
  • xircom_cb.ko


[3] Red Hat Enterprise Linux 7 不支持 PCMCIA。现在,它已被新的技术取代(包括 USB)。

3.6. 弃用的驱动程序

有关 Red Hat Enterprise Linux 7 中已弃用的驱动程序的详情,请查看红帽客户门户网站中的最新版本发行注记

第 4 章 与迁移相关的客户门户网站 Labs

红帽客户门户网站 Labs 是用来帮助您提高性能、排查问题、识别安全问题和优化配置的工具。本附录概述了与迁移相关的红帽客户门户网站 Labs。所有红帽客户门户网站 Labs 都可以通过 http://access.redhat.com/labs/ 访问。

Red Hat Enterprise Linux Upgrade Helper

Red Hat Enterprise Linux Update Helper 是一个工具,它可帮助您将 Red Hat Enterprise Linux 从 6.5/6.6/6.7/6.8/6.9 升级到版本 7.x。您唯一需要提供的信息是升级路径。此应用程序为您提供了:

  • 升级 Red Hat Enterprise Linux 的基本步骤
  • 为了防止特定于您的升级场景的已知问题需要进行的额外步骤

这个应用程序支持以下升级路径:

  • 6.5 到 7.4
  • 6.6 到 7.4
  • 6.7 到 7.4
  • 6.8 到 7.4
  • 6.9 到 7.4

Product Life Cycle Checker

Product Life Cycle Checker 是查看红帽产品的生命周期信息的工具,包括正式发行(GA)、支持结束和生命周期终止等。使用这个工具,可以选择多个产品并查看它们的相关日期。