8.8 发行注记

Red Hat Enterprise Linux 8.8

Red Hat Enterprise Linux 8.8 发行注记

Red Hat Customer Content Services

摘要

本发行注记提供了在 Red Hat Enterprise Linux 8.8 中实施的改进和附加组件的高级信息,并记录了本版本中已知的问题,以及重要的 bug 修复、技术预览、已弃用的功能和其他详情。
有关安装 Red Hat Enterprise Linux 的详情,请参考 第 3.1 节 “安装”

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

通过 Jira 提交反馈(需要帐户)

  1. 登录到 Jira 网站。
  2. 单击顶部导航栏中的 Create
  3. Summary 字段中输入描述性标题。
  4. Description 字段中输入您对改进的建议。包括文档相关部分的链接。
  5. 点对话框底部的 Create

第 1 章 概述

1.1. RHEL 8.8 中的主要变化

安装程序和镜像创建

镜像构建器的主要亮点:

  • 内部镜像构建器现在提供一种新的改进方法,来在镜像构建器 Web 控制台中创建蓝图和镜像。
  • RHEL for Edge Simplified Installer 镜像类型现在在镜像构建器 web 控制台中提供。

如需更多信息,请参阅 新功能 - 安装程序和镜像创建

RHEL for Edge

RHEL for Edge 在 RHEL 8.8 中引入了以下新功能:

  • 现在支持在蓝图中为 simplified-installer 镜像指定用户。

如需更多信息,请参阅 新功能 - RHEL for Edge

安全性

与安全相关的主要亮点:

  • 内核中的 FIPS 模式 设置已被调整,以符合联邦信息处理标准(FIPS) 140-3。这个更改对许多加密算法、功能和密码套件引入了严格的设置。
  • Libreswan IPsec 实现已 rebase 到版本 4.9。
  • 使用 fapolicyd 软件框架,您现在可以过滤 RPM 数据库。
  • OpenSCAP 安全合规工具已 rebase 到版本 1.3.7。
  • Rsyslog TLS 加密的日志现在支持多个 CA 文件。
  • systemd-socket-proxyd 服务因为 SELinux 策略的更新,现在运行在自己的 SELinux 域中。

如需更多信息,请参阅 新功能 - 安全性

动态编程语言、网页和数据库服务器

以下应用程序流的后续版本现在可用:

  • Python 3.11
  • nginx 1.22
  • PostgreSQL 15

以下组件已升级:

  • Git 升级到版本 2.39.1
  • Git LFS 升级到版本 3.2.0

如需更多信息,请参阅 新功能 - 动态编程语言、Web 和数据库服务器

编译器和开发工具

更新了性能工具和调试器

RHEL 8.8 中已更新了以下性能工具和调试器:

  • Valgrind 3.19
  • SystemTap 4.8
  • elfutils 0.188
更新了性能监控工具

RHEL 8.8 中已更新了以下性能监控工具:

  • PCP 5.3.7
  • Grafana 7.5.15
更新了编译器工具集

RHEL 8.8 中已更新了以下编译器工具集:

  • GCC Toolset 12
  • LLVM Toolset 15.0.7
  • Rust Toolset 1.66
  • Go Toolset 1.19.4

如需更多信息,请参阅 新功能 - 编译和开发工具

RHEL 8 中的 Java 实现

RHEL 8 AppStream 软件仓库包括:

  • java-17-openjdk 软件包,提供 OpenJDK 17 Java 运行时环境和 OpenJDK 17 Java 软件开发组件。
  • java-11-openjdk 软件包,提供 OpenJDK 11 Java 运行时环境和 OpenJDK 11 Java 软件开发组件。
  • java-1.8.0-openjdk 软件包,提供 OpenJDK 8 Java 运行时环境和开源 JDK 8 Java 软件开发组件。

红帽构建的 OpenJDK 软件包在其可移植 Linux 版本、RHEL 8.8 及更新版本之间共享一组二进制文件。由于此更新,在 RHEL 上从源 RPM 重建 OpenJDK 软件包的过程有一个变化。有关新重建过程的更多信息,请参阅 README.md 文件,该文件包括在红帽构建的 OpenJDK 的 SRPM 软件包中,并由 javajpeg-openjdk-headless 软件包安装在 /usr/share/doc 树下。

如需更多信息,请参阅 OpenJDK 文档

Web 控制台

RHEL web 控制台现在执行额外的步骤将 LUKS 加密的根卷绑定到 NBDE 部署。

您现在还可以通过图形界面应用以下 加密子策略DEFAULT:SHA1LEGACY:AD-SUPPORTFIPS:OSPP

如需更多信息,请参阅 新功能 - Web 控制台

容器

主要变更包括:

  • podman RHEL 系统角色现在可用。
  • 现在提供了带有 Fulcio 和 Rekor 的 sigstore 签名的客户端。
  • Skopeo 现在支持生成 sigstore 密钥对。
  • Podman 现在支持事件的审核。
  • Container Tools 软件包已更新。
  • Aardvark 和 Netavark 网络堆栈现在支持自定义 DNS 服务器选择。
  • Toolbox 现已正式提供。
  • Podman Quadlet 现在作为技术预览提供。
  • container-tools:3.0 模块流已弃用。
  • CNI 网络堆栈已弃用。

如需更多信息,请参阅 新功能 - 容器

1.2. 原位升级和操作系统转换

RHEL 7 原位升级到 RHEL 8

目前可能的原位升级路径是:

  • 在 64 位 Intel、IBM POWER 8 (little endian)和 IBM Z 构架上,从 RHEL 7.9 升级到 RHEL 8.6 和 RHEL 8.8
  • 在需要内核版本 4.14 的架构上,从 RHEL 7.6 到 RHEL 8.4:IBM POWER 9(little endian)和 IBM Z(Structure A)。这是这些架构的最终原位升级路径。
  • 在 64 位 Intel 构架上带有 SAP HANA 的系统,从 RHEL 7.9 升级到 RHEL 8.6 和 RHEL 8.8。

如需更多信息,请参阅支持的 Red Hat Enterprise Linux 原位升级路径

有关执行原位升级的步骤,请参阅 从 RHEL 7 升级到 RHEL 8

如果您要升级到带有 SAP HANA 的 RHEL 8.8,请确保在升级前经过 SAP 认证。有关在带有 SAP 环境的系统上执行原位升级的说明,请参阅 如何将 SAP 环境从 RHEL 7 原位升级到 RHEL 8

注意

对于 IBM POWER 9 (little endian)和 IBM Z (structure A)架构的 RHEL 7.6 成功的原位升级,您必须手动下载特定的 Leapp 数据。如需更多信息,请参阅 原位升级的 Leapp 数据快照 知识库文章。

主要改进包括:

  • RHEL 原位升级路径策略已更改。如需更多信息,请参阅支持的 Red Hat Enterprise Linux 原位升级路径
  • leapp-upgrade-el7toel8 软件包的最新版本现在包含所有必需的数据文件。客户不再需要手动下载这些数据文件。
  • 现在,可以使用包含目标版本的 ISO 镜像进行原位升级。
  • 现在,在原位升级过程中会自动检查 RPM 签名。要禁用自动检查,请在执行升级时使用 --nogpgcheck 选项。
  • 订阅 RHSM 的系统现在会自动注册 Red Hat Insights 。要禁用自动注册,请将 LEAPP_NO_INSIGHTS_REGISTER 环境变量设为 1
  • 红帽现在收集与升级相关的数据,如升级启动和结束时间,以及升级是否成功,以用于工具使用情况分析。要禁用数据收集,请将 LEAPP_NO_RHSM_FACTS 环境变量设为 1

从 RHEL 6 原位升级到 RHEL 8

要从 RHEL 6.10 升级到 RHEL 8,请遵循 从 RHEL 6 升级到 RHEL 8 中的说明。

从 RHEL 8 原位升级到 RHEL 9

文档 从 RHEL 8 升级到 RHEL 9 中提供了有关如何使用 Leapp 工具执行从 RHEL 8 原位升级到 RHEL 9 的说明。RHEL 8 和 RHEL 9 的主要区别记录在 采用 RHEL 9 时的注意事项 中。

从不同的 Linux 发行版转换到 RHEL

如果您使用 CentOS Linux 8 或 Oracle Linux 8,您可以使用红帽支持的 Convert2RHEL 程序将操作系统转换为 RHEL 8。如需更多信息,请参阅从基于 RPM 的 Linux 发行版转换到 RHEL

如果您使用早期版本的 CentOS Linux 或 Oracle Linux(称为版本 6 或 7),可以将操作系统转换为 RHEL,然后执行 RHEL 8 的原位升级。请注意,CentOS Linux 6 和 Oracle Linux 6 的转换使用不被支持的 Convert2RHEL 工具。有关不支持的转换的更多信息,请参阅 如何执行从 RHEL 派生的 Linux 发行版本到 RHEL 的不支持的转换

有关红帽如何支持从其他 Linux 发行本转换到 RHEL 的详情,请参考 Convert2RHEL 支持政策文档

1.3. 红帽客户门户网站 Labs

红帽客户门户网站 Labs 是客户门户网站的一个部分中的一组工具,地址为 https://access.redhat.com/labs/。红帽客户门户网站 Labs 中的应用程序可帮助您提高性能、快速解决问题、发现安全问题以及快速部署和配置复杂应用程序。一些最常用的应用程序有:

1.4. 其它资源

第 2 章 构架

Red Hat Enterprise Linux 8.8 与内核版本 4.18.0-477.10 一起分发,它支持以下构架:

  • AMD 和 Intel 64 位构架
  • 64 位 ARM 架构
  • IBM Power Systems, Little Endian
  • 64-bit IBM Z

请确定为每个构架购买正确的订阅。如需更多信息,请参阅 Red Hat Enterprise Linux 入门 - 附加构架。有关可用订阅列表,请查看客户门户网站中的 订阅使用

第 3 章 RHEL 8 中的内容发布

3.1. 安装

Red Hat Enterprise Linux 8 使用 ISO 镜像安装。AMD64、Intel 64 位、64 位 ARM、IBM Power Systems 和 IBM Z 架构有两种类型的 ISO 镜像:

  • 二进制 DVD ISO:包含 BaseOS 和 AppStream 软件仓库的完整安装镜像,并允许您在没有附加软件仓库的情况下完成安装。

    注意

    安装 ISO 镜像的大小为几个 GB,因此可能不适用于光盘介质格式。当使用安装 ISO 镜像时,建议使用 USB 盘或 USB 硬盘驱动器创建可引导安装介质。您还可以使用 Image Builder 工具创建自定义的 RHEL 镜像。有关镜像构建器的更多信息,请参阅 编写自定义的 RHEL 系统镜像文档。

  • 引导 ISO:用来引导到安装程序的最小引导 ISO 镜像。这个选项需要访问 BaseOS 和 AppStream 软件仓库来安装软件包。软件仓库是二进制 DVD ISO 镜像的一部分。

有关下载 ISO 镜像、创建安装介质和完成 RHEL 安装的说明,请参阅 执行标准的 RHEL 8 安装 文档。有关自动的 Kickstart 安装和其他高级主题,请参阅 执行高级的 RHEL 8 安装 文档。

3.2. 软件仓库

Red Hat Enterprise Linux 8 由两个主要软件仓库发布:

  • BaseOS
  • AppStream

两个软件仓库都需要一个基本的 RHEL 安装,所有 RHEL 订阅都包括它们。

BaseOS 仓库的内容旨在提供底层操作系统功能的核心组件,为所有安装提供基础操作系统的基础。这部分内容采用 RPM 格式,它的支持条款与之前的 RHEL 版本相似。有关通过 BaseOS 发布的软件包列表,请查看 软件包清单

Application Stream 仓库的内容包括额外的用户空间应用程序、运行时语言和数据库来支持各种工作负载和使用案例。Application Streams(应用程序流)以熟悉的 RPM 格式,作为RPM 格式的扩展,名为 模块(modules),或作为 Software Collections(软件集合)。有关 AppStream 中提供的软件包列表,请查看 软件包清单

另外,所有 RHEL 订阅都可以使用 CodeReady Linux Builder 软件仓库。它为开发人员提供了额外的软件包。不支持包括在 CodeReady Linux Builder 存储库中的软件包。

有关 RHEL 8 软件仓库的详情,请查看 软件包清单

3.3. 应用程序流

Red Hat Enterprise Linux 8 引进了应用程序流(Application Streams)的概念。现在,用户空间组件的多个版本的发布和更新频率会比核心操作系统的发布和更新频率快。这为自定义 Red Hat Enterprise Linux 提供了更大的灵活性,不会影响平台或特定部署的基本稳定性。

作为 Application Streams 提供的组件可打包为模块(module)或 RPM 软件包,并通过 RHEL 8 中的 AppStream 软件仓库提供。每个 Application Stream 组件都有其特定的生命周期,可能和 RHEL 8 的生命周期相同或更短。详情请查看 Red Hat Enterprise Linux 生命周期

模块是代表逻辑单元的软件包集合: 应用程序、语言堆栈、数据库或一组工具。这些软件包被一同构建、测试并发布。

模块流代表 Application Stream 组件的版本。例如,PostgreSQL 数据库服务器的几个流(版本)在带有默认的 postgresql:10 流的 postgresql 模块中提供。在系统中只能安装 一 个模块流。不同的容器可以使用不同的版本。

详细的模块命令,请参考 安装、管理和删除用户空间组件文档。有关 AppStream 中可用模块列表,请查看 软件包清单

3.4. 使用 YUM/DNF 的软件包管理

在 Red Hat Enterprise Linux 8 上,安装软件是由 YUM 工具来保证的,该工具基于 DNF 技术。我们有意坚持使用 yum 术语,以便与以前的 RHEL 主版本保持一致。但是,如果您输入 dnf 而不是 yum,则命令可以按预期工作,因为 yumdnf 的别名,以便兼容。

如需了解更多详细信息,请参阅以下文档:

第 4 章 新功能

这部分论述了 Red Hat Enterprise Linux 8.8 中引入的新功能和主要改进。

4.1. 安装程序和镜像创建

在镜像构建器 Web 控制台中创建蓝图和镜像的一种新的改进方法

有了这个增强,您可以访问镜像构建器工具的统一版本,并大大改进用户体验。

镜像构建器仪表盘 GUI 中的显著改进包括:

  • 现在,您可以使用之前只在 CLI 中支持的所有自定义(如内核、文件系统、防火墙、区域设置和其他自定义)自定义您的蓝图。
  • 您可以通过上传或拖动 .JSON.TOML 格式的蓝图来导入蓝图,并从导入的蓝图创建镜像。
  • 您还可以以 .JSON.TOML 格式导出或保存您的蓝图。
  • 访问一个您可以排序、过滤和区分大小写的蓝图列表。
  • 使用镜像构建器仪表盘,您现在可以通过以下标签页访问蓝图、镜像和源:

    • 蓝图 - 在 Blueprint 选项卡下,您现在可以导入、导出或删除您的蓝图。
    • 镜像 - 在 Images 选项卡下,您可以:

      • 下载镜像。
      • 下载镜像日志。
      • 删除镜像。
    • 资源 - 在 Sources 选项卡下,您可以:

      • 下载镜像。
      • 下载镜像日志。
      • 为镜像创建源。
      • 删除镜像。

Jira:RHELPLAN-139448

支持镜像构建器构建的 .vhd 镜像的 64 位 ARM

在以前的版本中,使用镜像构建器工具创建的 Microsoft Azure .vhd 镜像在 64 位 ARM 架构上不支持。这个更新增加了对 64 位 ARM Microsoft Azure .vhd 镜像的支持,现在您可以使用镜像构建器构建 .vhd 镜像,并将其上传到 Microsoft Azure 云。

Jira:RHELPLAN-139424

4.2. RHEL for Edge

能够在蓝图中为 simplified-installer 镜像指定用户

在以前的版本中,当为简化的安装程序镜像创建蓝图时,您无法在蓝图自定义中指定用户,因为自定义没有被使用,且被丢弃了。有了这个更新,当您从蓝图创建镜像时,此蓝图会在安装过程中在 /usr/lib/passwd 目录下创建一个用户,并在 /usr/etc/shadow 目录下创建一个密码。您可以使用您为蓝图创建的用户名和密码登录到设备。请注意,在访问系统后,您需要使用 useradd 命令创建用户。

Jira:RHELPLAN-149091

对 RHEL for Edge 镜像的启用 MicroShift 的红帽构建

有了这个增强,您可以在 RHEL for Edge 系统中启用 MicroShift 服务的红帽构建。通过使用 [[customizations.firewalld.zones]] 蓝图自定义,您可以为蓝图自定义中的 firewalld 源添加支持。为此,为区域指定名称以及该特定区域的源列表。源可以是 source[/mask]|MAC|ipset:ipset 的形式。

以下是如何配置和自定义对 RHEL for Edge 系统中 Red Hat build of MicroShift 服务的红帽构建的蓝图示例。

[[packages]]
name = "microshift"
version = "*"
[customizations.services]
enabled = ["microshift"]
[[customizations.firewall.zones]]
name = "trusted"
sources = ["10.42.0.0/16", "169.254.169.1"]

红帽 MicroShift 安装的构建要求,如防火墙策略、MicroShift RPM、systemd 服务,使您能够为生产环境创建一个部署,以实现将工作负载移植到最小的现场部署边缘设备,并在默认情况下启用 LVM 设备映射器。

Jira:RHELPLAN-136489

4.3. 软件管理

新的 yum offline-upgrade 命令,用于在 RHEL 上离线更新

有了这个增强,您可以使用 YUM system-upgrade 插件中的新的 yum offline-upgrade 命令对 RHEL 应用离线更新。

重要

RHEL 不支持 system-upgrade 插件中包含的 yum system-upgrade 命令。

Bugzilla:2054235

现在支持将公告安全过滤器应用到 yum offline-upgrade

使用这个增强,添加了公告过滤的新功能。因此,您现在只能使用带有公告安全过滤器(--advisory--security--bugfix 及其他过滤器)的 yum offline-upgrade 命令从指定的公告下载软件包及其依赖项。

Bugzilla:2139324

unmount_plugins 函数现在可用于 YUM API

有了这个增强,新的 unmount_plugins 函数已添加到 YUM API,以允许插件卸载。

重要

请注意,您必须首先运行 init_plugins 函数,然后运行unload_plugins 函数。

Bugzilla:2047251

rpm2archive 的新的 --nocompression 选项

有了这个增强,--nocompression 选项已添加到 rpm2archive 工具中。您可以使用这个选项来避免在直接解包 RPM 软件包时压缩。

Bugzilla:2129345

4.4. Shell 和命令行工具

ReaR 现在在 64 位 IBM Z 构架上也被完全支持

以前,在 64 位 IBM Z 构架上作为技术预览提供的基本 Relax 和 Recover (ReaR)功能完全支持 rear 软件包版本 2.6-9.el8 或更高版本。您只能在 z/VM 环境中的 IBM Z 架构上创建 ReaR 救援镜像。目前不支持备份和恢复逻辑分区(LPAR)。ReaR 仅在扩展计数密钥数据(ECKD)直接访问存储设备(DASD)上保存和恢复磁盘布局。不支持通过光纤通道协议(FCP)连接的固定的块访问(FBA) DASD 和 SCSI 磁盘用于此目的。当前唯一可用的输出方法是 Initial Program Load (IPL),它会生成一个内核和一个与 zIPL 引导装载程序兼容的初始 ramdisk (initrd)。

如需更多信息,请参阅 在 64 位 IBM Z 架构上使用 ReaR 救援镜像

Bugzilla:2130206, Bugzilla:1868421

4.5. 基础架构服务

现在提供了用于频率同步的新 synce4l 软件包

SyncE (Synchronous Ethernet)是一个硬件功能,它使 PTP 时钟能够在物理层上实现频率的精确同步。在某些网络接口卡(NIC)和网络交换机中支持 SyncE。

有了这个增强,现在新的 synce4l 软件包可用,它支持 SyncE。因此,由于更准确的时间同步,Telco Radio 访问网络(RAN)应用程序现在可以实现效率更高的通信。

Bugzilla:2019751

powertop rebase 到版本 2.15

用于提高能源效率的 powertop 软件包已更新至版本 2.15。主要变化和增强包括:

  • 修复了几个 Valgrind 错误和可能的缓冲区溢出,以提高 powertop 工具的稳定性。
  • 改进了与 Ryzen 处理器和 Kaby Lake 平台的兼容性。
  • 启用了 Lake Field、Aandder Lake N 和 Raptor Lake 平台支持。
  • 启用了 Ice Lake NNPI 和 Meteor Lake 移动和桌面支持。

Bugzilla:2040070

tuned rebase 到版本 2.20.0

优化应用程序和工作负载性能的 TuneD 工具已更新至版本 2.20.0。2.19.0 的主要变化和增强包括:

  • 扩展 API 使您能够在运行时在插件实例之间移动设备。
  • plugin_cpu 模块,其提供对 CPU 相关性能设置的微调,引进了以下改进:

    • pm_qos_resume_latency_us 功能使您能够将每个 CPU 允许的最大时间从闲置状态转换为活跃状态。
    • TuneD 添加了对 intel_pstate 扩展驱动程序的支持,它提供缩放算法来根据不同的使用情况场景调整系统的电源管理。
  • 通过 Unix 域套接字控制 TuneD 的套接字 API 现在作为技术预览提供。如需更多信息,请参阅 TuneD 的套接字 API 作为技术预览提供

Bugzilla:2133814,Bugzilla:2113925,Bugzilla:2118786,Bugzilla:2095829,Bugzilla:2113900

4.6. 安全性

FIPS 模式现在有针对 FIPS 140-3 的更安全的设置

内核中的 FIPS 模式设置已被调整,以符合联邦信息处理标准(FIPS) 140-3。这个更改对许多加密算法、功能和密码套件引入了严格的设置。最值得注意的是:

  • Triple Data Encryption Standard (3DES)、Eliptic-curve Diffie-Hellman (ECDH)和 Finite-Field Diffie-Hellman (FFDH)算法现已被禁用。这个更改会影响内核 keyring 中的蓝牙、与 DH 相关的操作,以及 Intel QuickAssist Technology (QAT)加密加速器。
  • 基于哈希的消息验证码(HMAC)密钥现在不能少于 112 位。对于 Rivest-Shamir-Adleman (RSA)算法,最小密钥长度设为 2048 位。
  • 使用 xts_check_key() 函数的驱动程序已被更新为使用 xts_verify_key() 函数。
  • 现在禁用了以下确定性 Random Bit Generator (DRBG)哈希功能:SHA-224、SHA-384、SHA512-224、SHA512-256、SHA3-224 和 SHA3-384。
注意

虽然 FIPS 模式下的 RHEL 8.6 (和更新版本)内核被设计为符合 FIPS 140-3 ,但还没有被国家标准与技术(NIST)加密模块验证程序(CMVP)认证。在 RHSA-2021:4356 公告更新后,最新认证的内核模块是更新的 RHEL 8.5 内核。该认证适用于 FIPS 140-2 标准。您无法选择加密模块是否符合 FIPS 140-2 或 140-3。如需更多信息,请参阅 合规活动和政府标准: FIPS 140-2 和 FIPS 140-3 知识库文章。

Bugzilla:2107595, Bugzilla:2158893, Bugzilla:2175234, Bugzilla:2166715, Bugzilla:2129392, Bugzilla:2152133

libreswan rebase 到 4.9

libreswan 软件包已升级到版本 4.9。与以前版本相比的显著变化包括:

  • addconnwhack 工具添加了对 {left,right}pubkey= 的支持
  • 添加了密钥派生功能(KDF)自我测试
  • 更新了对 seccomp 过滤器允许的系统调用列表
  • 显示主机的身份验证密钥(showhostkey):

    • 添加了对 Elliptic Curve Signature Algorithm (ECDSA) pubkeys 的支持
    • 添加了 --pem 选项以打印 Privacy-Enhanced Mail (PEM)编码的公钥
  • 互联网密钥交换协议版本 2 (IKEv2):

    • 可扩展的身份验证协议 - 传输层安全(EAP-TLS)支持
    • 仅支持 EAP 身份验证
    • 标记的 IPsec 改进
  • pluto Internet Key Exchange(IKE)守护进程:

    • 支持 maxbytesmaxpacket 计数器
    • replay-window 的默认值从 32 改为 128
    • esn= 的默认值改为 either,将首选值改为 yes
    • replay-window= 设为 0时,禁用 esn
    • 丢弃过时的调试选项,如 crypto-low

Bugzilla:2128672

SELinux 现在限制 udftools

有了这个 selinux-policy 软件包的更新,SELinux 会限制 udftools 服务。

Bugzilla:1972230

systemd-socket-proxyd的新 SELinux 策略

由于 systemd-socket-proxyd 服务需要使用特定的资源,所以一个具有所需规则的新策略被添加到 selinux-policy 软件包中。因此,该服务在其 SELinux 域中运行。

Bugzilla:2088441

OpenSCAP rebase 到 1.3.7

OpenSCAP 软件包已 rebase 到上游版本 1.3.7。此版本提供各种程序错误修复和增强,最重要的是:

  • 修复了处理 OVAL 过滤器时的错误 (rhbz#2126882)
  • 如果 XPath 不匹配,OpenSCAP 不再发出无效的空 xmlfilecontent 项(rhbz#2139060)
  • 防止 Failed to check available memory 错误(rhbz#2111040)

Bugzilla:2159290

Rsyslog 日志文件的 scap-security-guide 规则与 RainerScript 兼容

scap-security-guide 中用于检查和修复 Rsyslog 日志文件的所有权、组所有权和权限的规则现在也与使用 RainerScript 语法定义的日志文件兼容。现代系统已在 Rsyslog 配置文件中使用 RainerScript 语法,相应的规则无法识别此语法。因此,scap-security-guide 规则现在在两种可用语法中可以检查并修复 Rsyslog 日志文件的所有权、组所有权和权限。

Bugzilla:2072444

STIG 安全配置文件更新至版本 V1R9

SCAP 安全指南中的 DISA STIG for Red Hat Enterprise Linux 8 配置文件已更新为与最新版本的 V1R9 一致。此发行版本还包括在 V1R8 中发布的更改。

因为之前的版本已不再有效,因此只使用此配置文件的当前版本。

以下 STIG ID 已更新:

  • V1R9

    • RHEL-08-010359 - 选择的规则 aide_build_database
    • RHEL-08-010510 - 删除的规则 sshd_disable_compresssion
    • RHEL-08-020040 - 配置 tmux keybinding 的新规则
    • RHEL-08-020041 - 配置启动 tmux 而不是 exec tmux 的新规则
  • V1R8

    • 多个 STIG ID - sshdsysctl 规则可以识别和删除重复或冲突的配置。
    • RHEL-08-010200 - SSHD ClientAliveCountMax 被配置为值 1
    • RHEL-08-020352 - 检查和补救现在忽略 .bash_history
    • RHEL-08-040137 - 检查更新,以检查 /etc/fapolicyd/fapolicyd.rules/etc/fapolicyd/complied.rules
警告

自动补救可能会导致系统无法正常工作。先在测试环境中运行补救。

Bugzilla:2152658

RHEL 8 STIG 配置文件与基准更加一致

满足 RHEL 8 STIG 要求的四个现有规则是数据流的一部分,但之前没有包含在 STIG 配置文件中(stigstig_gui)。有了这个更新,以下规则现在包含在配置文件中:

  • accounts_passwords_pam_faillock_dir
  • accounts_passwords_pam_faillock_silent
  • account_password_selinux_faillock_dir
  • fapolicy_default_deny

因此,RHEL 8 STIG 配置文件有更高的覆盖。

Bugzilla:2156192

SCAP 安全指南 rebase 到 0.1.66

SCAP 安全指南(SSG)软件包已 reb ase到上游版本 0.1.66。此版本提供各种改进和程序错误修复,最重要的是:

  • 更新了 RHEL 8 STIG 配置文件
  • 弃用了规则 account_passwords_pam_faillock_audit ,而使用 accounts_passwords_pam_faillock_audit

Bugzilla:2158404

OpenSSL 驱动程序现在可以在 Rsyslog 中使用证书链

NetstreamDriverCaExtraFiles 指令允许配置多个额外的证书颁发机构(CA)文件。有了这个更新,您可以指定多个 CA 文件,OpenSSL 库可以验证它们,这是 SSL 证书链所必需的。因此,您可以将 Rsyslog 中的证书链与 OpenSSL 驱动程序一起使用。

Bugzilla:2124934

opencryptoki rebase 到 3.19.0

opencryptoki 软件包已 rebase 至版本 3.19.0,它提供很多改进和 bug 修复。最值得注意的是, opencryptoki 现在支持以下功能:

  • 特定于 IBM 的 Dilithium 密钥
  • 双功能加密函数
  • 使用新的 C_SessionCancel 函数取消基于活跃会话的操作,如 PKCS#11 Cryptographic Token Interface Base Specification v3.0 中所述
  • 通过 CKM_IBM_ECDSA_OTHER 机制的 Schnorr 签名
  • 通过 CKM_IBM_BTC_DERIVE 机制的比特币密钥派生
  • IBM z16 系统中的 EP11 令牌

Bugzilla:2110315

新的用于闲置会话终止的 SCAP 规则

新的 SCAP 规则 logind_session_timeout 已添加到用于增强和高级别的 ANSSI-BP-028 配置文件中的 scap-security-guide 软件包中。此规则使用 systemd 服务管理器的新功能,并在一定时间后终止闲置用户会话。此规则提供多个安全策略所需的健壮的空闲会话终止机制的自动配置。因此,OpenSCAP 可以自动检查与终止闲置用户会话相关的安全要求,如有必要,修复它。

Bugzilla:2122322

fapolicyd 现在提供对 RPM 数据库的过滤

使用新的配置文件 /etc/fapolicyd/rpm-filter.conf,您可以自定义 fapolicyd 软件框架存储在信任数据库中的 RPM-database 文件的列表。这样,您可以阻止 RPM 安装的某些应用程序,或者允许被默认的配置过滤器拒绝的应用程序。

Bugzilla:2165645

4.7. 网络

默认的 MPTCP 子流限制为 2

子流是一个单一 TCP 连接,是多路径 TCP (MPTCP)连接的一部分。MPTCP 中的子流限制是指在两个 MPTCP 端点之间可以创建的最大额外连接数。您可以使用限制来限制端点之间可以创建的额外并行子流数,以避免网络和端点过载。例如,0 代表只允许初始子流。

有了这个增强,默认的 MPTCP 子流限制已从 0 增加到 2。这可让您默认创建多个额外的子流。如果需要不同的值,您可以创建一个 Systemd oneshot 单元。单元应该在网络(network.target)在每次引导过程中正常工作后执行 ip mptcp limits set subflows <YOUR_VALUE> 命令。

Bugzilla:2127136

现在,内核会在 SYN 洪水信息中记录侦听地址

此增强将侦听的 IP 地址添加到 SYN 洪水信息中:

Possible SYN flooding on port <ip_address>:<port>.

因此,如果很多进程绑定到不同 IP 地址上的同一端口,则管理员现在可以明确地识别受影响的套接字。

Bugzilla:2143849

nm-initrd-generator 配置文件现在的优先级比 autoconnect 配置文件低

nm-initrd-generator 早期引导 NetworkManager 配置生成器工具使用引导装载程序初始化的 initrd RAM 磁盘中运行的 NetworkManager 实例生成并配置连接配置文件。nm-initrd-generator 程序生成的配置文件现在具有比默认连接自动连接优先级更低的自动连接优先级。这可让 initrd 中生成的网络配置文件与默认 root 帐户中的用户配置共存。

注意

initrd root 帐户切换到默认 root 后,同一配置文件处于激活状态,且不会发生新的自动连接。

Bugzilla:2089707

nispor rebase 到版本 1.2.10

nispor 软件包已升级到上游版本 1.2.10,与之前的版本相比,它提供了很多改进和 bug 修复:

  • 添加了对 NetStateFilter 的支持,以在网络路由和接口上使用内核过滤器。
  • 单根输入和输出虚拟化(SR-IOV)接口可以为每个(VF)查询 SR-IOV 虚拟功能(SR-IOV VF)信息。
  • 新支持的绑定选项:lacp_active,arp_missed_maxns_ip6_target.

Bugzilla:2153166

NetworkManager rebase 到版本 1.40.16

NetworkManager 软件包已升级到上游版本 1.40.16,与之前的版本相比,它提供很多 bug 修复:

  • nm-cloud-setup 工具保留外部添加的地址。
  • 修复了一个竞争条件,其阻止在引导时 MACsec 连接的自动激活。
  • NetworkManager 现在可以正确地计算 IPv6 邻居发现消息配置中项目的过期时间。
  • NetworkManager 现在会在配置更改时自动更新 /etc/resolv.conf 文件。
  • 在激活绑定时,NetworkManager 不再将不存在的接口设置为主接口。
  • 在绑定中设置主接口现在可以正常工作,即使激活绑定时接口不存在。
  • NetworkManager --print-config 命令不再打印重复条目。
  • ifcfg-rh 插件现在可以读取 InfiniBand P-Key 连接配置文件,而无需明确的接口名称。
  • nmcli 工具现在可以从绑定中删除绑定端口连接配置文件。
  • 修复了一个竞争条件,如果对等点已存在,则可能会在 veth 配置文件激活的过程中发生。
  • 现在,如果所有地址都未通过 IPv6 重复地址检测(DAD),则 NetworkManager 现在会拒绝 DHCPv6 租期。
  • NetworkManager 现在会在从 DNS 解析这些接口的系统主机名前等待,直到接口被连接。
  • nm-initrd-generator 工具创建的配置文件现在有一个比默认低的优先级。

有关显著变化的更多信息,请参阅 上游发行注记

Bugzilla:2134907

4.8. 内核

RHEL 8.8 中的内核版本

Red Hat Enterprise Linux 8.8 与内核版本 4.18.0-477.10 一起分发。

Bugzilla:2177769

使用客户密钥的安全客户机转储加密

这个新功能允许安全执行客户机使用 hypervisor 启动的转储来在 kdump 工具无法正常工作时从 KVM 收集内核崩溃信息。请注意,安全执行的 hypervisor 启动的转储是为 IBM Z 系列 z16 和 LinuxONE Emperor 4 硬件设计的。

Bugzilla:2043833

sfc 驱动程序已分成 sfcsfc_siena

随着上游驱动程序中的更改,sfc NIC 驱动程序现在被分成 2 个不同的驱动程序: sfcsfc_sienasfc_siena 支持已弃用的 Siena 系列设备。

请注意,应用于 sfc 的内核模块参数的自定义配置和 udev 规则不会影响 sfc_siena,因为它们现在是独立的驱动程序。要自定义这两个驱动程序,请复制 sfc_siena 的配置选项。

Bugzilla:2136107

stmmac 驱动程序现在完全支持

红帽现在完全支持芯片(SoC)上 Intel® Elkhart Lake 系统的 stmmac 驱动程序。

Bugzilla:1905243

rtla meta-tool 添加了 osnoisetimerlat 追踪程序,以提高追踪程序功能

Real-Time Linux Analysis (rtla)是一个 meta-tool,其中包含一组用于分析 Linux 实时属性的命令。rtla 利用内核追踪功能来提供有关属性和意外系统结果的根本原因的准确信息。rtla 目前添加了对 osnoisetimerlat 追踪程序命令的支持。osnoise 追踪程序报告每个 CPU 的内核线程。timerlat 追踪程序会在计时器 IRQ 处理程序和线程处理程序中定期打印计时器延迟。

请注意,要使用 rtlatimerlat 功能,您必须使用 sysctl -w kernel.sched_rt_runtime_us=-1 脚本禁用准入控制。

Bugzilla:2075203

cgroupsirqs 的输出格式已被改进,以提供更好的可读性

有了这个增强,cgroup 工具的 tuna show_threads 命令输出现在根据终端大小进行构建。您还可以通过向 show_threads 命令添加新的 -z--spaced 选项,将额外的空格配置到 cgroups 输出。现在,您可以以改进的可读格式查看 cgroups 输出,该格式适合您的终端大小。

Bugzilla:2121518

rteval 命令输出现在包括程序加载和测量线程信息

rteval 命令现在显示带有程序负载、测量线程以及运行这些线程的相应 CPU 的报告概述。这些信息有助于评估特定硬件平台上负载下实时内核的性能。

rteval 报告被写入 XML 文件,以及系统的引导日志,并保存到 rteval-<date>-N-tar.bz2 压缩文件中。date 指定报告生成的日期,N 是第 N 次运行的计数器。

要生成 rteval 报告,请输入以下命令:

# rteval --summarize rteval-<date>-N.tar.bz2

Bugzilla:2082260

oslat 程序中添加了 -W--bucket-width 选项来测量延迟

有了这个增强,您可以以纳秒精度为单个存储桶指定延迟范围。不是 1000 纳秒倍数的 Widths 表示纳秒的精度。通过使用新选项 -W--bucket-width,您可以修改存储桶之间的延迟间隔,以便在微秒延迟时间内测量延迟。

例如,要在 10 秒内为 32 个存储桶设置宽度为 100 纳秒的延迟存储桶,以便在 1-4 范围的 CPU 上运行 ,并省略零存储桶大小,请运行以下命令:

# oslat -b 32 -D 10s -W 100 -z -c 1-4

请注意,在使用选项前,您必须确定与错误测量相关的哪个级别的精度非常重要。

Bugzilla:2122374

支持在具有 Intel ice 驱动程序的 E810 中启用以太网端口配置工具(EPCT)工具

有了这个增强,devlink port split 命令现在支持 Intel ice 驱动程序。以太网端口配置工具(EPCT)是一个命令行工具,允许您更改设备的链接类型。显示设备信息和设备资源的 devlink 工具依赖于 EPCT。因此,ice 驱动程序实现了对 EPCT 的支持,它可让您列出并查看使用了 Intel ice 驱动程序的可配置的设备。

Bugzilla:2009705

Intel ice 驱动程序 rebase 到版本 6.0.0

Intel ice 驱动程序已升级至上游版本 6.0.0,与之前的版本相比,它提供了大量的改进和 bug 修复。主要改进包括:

  • 通过以太网的点到点协议 (PPPoE)协议硬件卸载
  • Inter-Integrated Circuit (I2C) 协议写命令
  • 以太网交换机设备驱动程序模型 (switchdev)中的 VLAN 标签协议标识符(TPID)
  • switchdev中的双 VLAN 标记

Bugzilla:2103946

为 IBM zSystems 托管安全引导证书

从 IBM z16 A02/AGZ 和 LinuxONE Rockhopper 4 LA2/AGL 开始,您可以在硬件管理控制台(HMC)上启动启用了安全引导的系统时管理用于验证 Linux 内核的证书。值得注意的是:

  • 您可以使用 DPM 中的 HMC 和经典模式从 HMC 可以访问的 FTP 服务器加载系统证书存储中的证书。也可以从附加到 HMC 的 USB 设备加载证书。
  • 您可以将存储在证书存储中的证书与 LPAR 分区相关联。多个证书可以与一个分区关联,一个证书可以与多个分区关联。
  • 您可以使用 HMC 接口解除证书存储中的证书与分区的关联。
  • 您可以从证书存储中删除证书。
  • 您可以最多将 20 个证书与一个分区关联。

内置的固件证书仍然可用。特别是,当您使用用户管理的证书存储时,内置证书将不再可用。

载入到证书存储中的证书文件必须满足以下要求:

  • 它们具有 PEMDER 编码的 X.509v3 格式,并具有以下文件扩展名之一:.pem.cer.crt.der
  • 它们不会过期。
  • 密钥用法属性必须是 数字签名
  • 扩展的密钥用法属性必须包含 代码签名

固件接口允许 Linux 内核在逻辑分区中运行,以加载与此分区关联的证书。IBM Z 上的 Linux 将这些证书存储在 .platform 密钥环中,允许 Linux 内核使用与该分区关联的证书验证 kexec 内核和第三方内核模块。

操作员只负责上传验证的证书,并删除已撤销的证书。

注意

您需要加载到 HMC 的 Red Hat Secureboot 302 证书在 Product Signing Keys 中提供。

Bugzilla:2183445

zipl 支持 64 位 IBM Z 上的安全引导 IPL 和转储

有了此更新,zipl 工具支持 64 位 IBM Z 架构上的扩展计数密钥数据(ECKD)直接访问存储设备(DASD)中的 List-Directed IPL 和 List-Directed 转储。因此,IBM Z 上 RHEL 的安全引导也适用于 DASD 的 ECKD 类型。

Bugzilla:2043852

4.9. 高可用性和集群

新的 enable-authfile Booth 配置选项

当您在集群配置中创建 Booth 配置以使用 Booth 票据管理器时,pcs booth setup 命令现在默认启用新的 enable-authfile Booth 配置选项。您可以使用 pcs booth enable-authfile 命令在现有集群上启用这个选项。另外,pcs statuspcs booth status 命令现在会在检测到可能的 enable-authfile 错误配置时显示警告。

Bugzilla:2132582

pcs 现在可以运行资源和 stonith 代理的 validate-all 操作

当创建或更新资源或 STONITH 设备时,您现在可以指定 --agent-validation 选项。有了此选项,pcs 使用代理的 validate-all 操作(当它可用时),除了 pcs 根据代理元数据的所完成的验证外。

Bugzilla:1816852, Bugzilla:2159455

4.10. 动态编程语言、网页和数据库服务器

Python 3.11 在 RHEL 8 中提供

RHEL 8.8 引入了新软件包 python3.11 提供的 Python 3.11,为它构建的软件包套件,以及 ubi8/python-311 容器镜像。

与之前发布的 Python 3.9 相比,显著改进包括:

  • 显著提高了性能。
  • 使用新的 match 关键字(类似于其它语言中的 switch )的结构化模式匹配。
  • 改进了错误消息,例如,表示未闭合的括号或方括号。
  • 用于调试和其他用例的确切行号。
  • 通过将定义放在括号中来支持跨多行定义上下文管理器。
  • 与类型提示和 typing 模块相关的各种新功能,如新的 X | Y 类型联合操作符、可变泛型和新的 Self 类型。
  • 追踪中指向导致错误的表达式的精确错误位置。
  • 新的 tomllib 标准库模块,它支持解析 TOML。
  • 可以使用例外组和新 except* 语法,同时提高和处理多个不相关的异常。

Python 3.11 及为其构建的软件包可以与 Python 3.9、Python 3.8 和 Python 3.6 并行安装在同一系统上。

请注意,与之前的版本不同,Python 3.11 作为标准 RPM 软件包而不是模块分发。

要从 python3.11 堆栈安装软件包,请使用:

# yum install python3.11
# yum install python3.11-pip

要运行解释器,例如:

$ python3.11
$ python3.11 -m pip --help

如需更多信息,请参阅 安装和使用 Python

请注意,红帽将继续对 Python 3.6 提供支持,直至 RHEL 8 生命周期结束。与 Python 3.9 类似,Python 3.11 的生命周期更短 ; 请参阅 Red Hat Enterprise Linux 应用程序流生命周期

Bugzilla:2137139

nodejs:18 rebase 到版本 18.14,npm rebase 到版本 9

Node.js 18.14RHSA-2023:1583 中发布,包括 npm 从版本 8 升级到版本 9 的 SemVer 主要升级。由于维护原因,这个更新是必需的,可能需要调整 npm 配置。

值得注意的是,不再支持不限定到特定注册中心的与身份验证相关的设置。这一变化是出于安全原因而做的。如果您使用了无范围的身份验证配置,则提供的令牌将被发送到 .npmrc 文件中列出的每个个注册中心。

如果您使用无范围的身份验证令牌,请在 .npmrc 文件中生成并提供注册中心范围的令牌。

如果您有使用 _auth 的配置行,如 .npmrc 文件中的 //registry.npmjs.org/:_auth,请将它们替换为 //registry.npmjs.org/:_authToken=${NPM_TOKEN},并提供您生成的有范围的令牌。

有关更改的完整列表,请参阅 上游更改日志

Bugzilla:2178087

git rebase 到版本 2.39.1

Git 版本控制系统已更新至版本 2.39.1,与之前发布的版本 2.31 相比,它提供了 bug 修复、功能增强和性能改进。

主要改进包括:

  • git log 命令现在支持 git describe 输出的格式占位符: git log --format=%(describe)
  • git commit 命令现在支持 --fixup<commit> 选项,该选项可让您修复提交的内容,而不更改日志消息。有了这个更新,您还可以使用:

    • --fixup=amend:<commit> 选项,来更改消息和内容。
    • --fixup=reword:<commit> 选项,来只更新提交消息。
  • 您可以将新的 --reject-shallow 选项与 git clone 命令一起使用,以禁用来自 shallow 存储库的克隆。
  • git branch 命令现在支持 --recurse-submodules 选项。
  • 现在,您可以使用 git merge-tree 命令来:

    • 测试两个分支是否可以合并。
    • 如果分支被合并了,计算在合并提交中生成的树。
  • 您可以使用新的 secure.bareRepository 配置变量来过滤 bare 存储库。

Bugzilla:2139378

git-lfs rebase 到版本 3.2.0

Git 大文件存储(LFS) 扩展已更新至版本 3.2.0,与之前发布的版本 2.13 相比,其提供了 bug 修复、增强和性能改进。

主要变更包括:

  • Git LFS 引入了一个纯基于 SSH 的传输协议。
  • Git LFS 现在提供了一个合并驱动程序。
  • git lfs fsck 工具现在还会检查指针是否规范,并且是否预期的 LFS 文件具有正确的格式。
  • 对 NT LAN Manager (NTLM)身份验证协议的支持已删除。改为使用 Kerberos 或基本身份验证。

Bugzilla:2139382

新模块流:nginx:1.22

nginx 1.22 web 和代理服务器现在作为 nginx:1.22 模块流提供。与之前发布的版本 1.20 相比,这个更新提供了很多 bug 修复、安全修复、新功能和增强。

新特性:

  • nginx 现在支持:

    • 使用 OpenSSL 3.0 时的 OpenSSL 3.0 和 SSL_sendfile() 函数。
    • PCRE2 库。
    • mail 代理模块中的 POP3 和 IMAP 管道。
  • nginx 现在将 Auth-SSL-ProtocolAuth-SSL-Cipher 标头行传递给邮件代理服务器。

增强的指令:

  • 现在提供了多个新指令,如 ssl_conf_commandssl_reject_handshake
  • proxy_cookie_flags 指令现在支持变量。
  • nginx 现在支持以下指令中的变量: proxy_ssl_certificate,proxy_ssl_certificate_key,grpc_ssl_certificate,grpc_ssl_certificate_key,uwsgi_ssl_certificate, 和 uwsgi_ssl_certificate_key.
  • 流模块中的 listen 指令现在支持一个新的 fastopen 参数,该参数为侦听套接字启用 TCP Fast Open 模式。
  • mail 代理模块中添加了一个新的 max_errors 指令。

其他更改:

  • nginx 现在总是返回一个错误,如果:

    • 使用了 CONNECT 方法。
    • Content-LengthTransfer-Encoding 头都在请求中指定。
    • 请求头名称包含空格或控制字符。
    • Host 请求头行包含空格或控制字符。
  • nginx 现在阻止包含 Transfer-Encoding 头的所有 HTTP/1.0 请求。
  • nginx 现在使用应用程序层协议协商(ALPN)建立了 HTTP/2 连接,且不再支持 Next Protocol Negotiation (NPN)协议。

要安装 nginx:1.22 流,请使用:

# yum module install nginx:1.22

如果要从 nginx:1.20 流升级,请参阅 切换到后期的流

如需更多信息,请参阅设置和配置 NGINX

有关支持的 nginx 模块流长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Bugzilla:2112345

mod_security rebase 到版本 2.9.6

Apache HTTP 服务器的 mod_security 模块已更新至版本 2.9.6,与之前可用的版本 2.9.2 相比,它提供了新功能、bug 修复和安全修复。

主要改进包括:

  • 调整了 modsecurity.conf-recommended 文件中的解析器激活规则。
  • mod_security 解析 HTTP 多部分请求的方式的改进。
  • 添加了一个新的 MULTIPART_PART_HEADERS 集合。
  • 向格式化的日志时间戳添加了微秒时间戳解析。
  • 添加了缺少的地理国家。

Bugzilla:2143207

新软件包:tomcat

RHEL 8.8 引入了 Apache Tomcat 服务器版本 9。Tomcat 是 Java Servlet 和 JavaServer Pages 技术官方参考实现中使用的 servlet 容器。Java Servlet 和 JavaServer Pages 规范是由 Sun 在 Java 社区流程下开发的。Tomcat 是在开放和参与的环境中开发的,并在 Apache 软件许可证版本 2.0 下发布。

Bugzilla:2160455

新模块流:postgresql:15

RHEL 8.8 引入了 PostgreSQL 15,与版本 13 相比,其提供了很多新功能和增强。主要变更包括:

  • 现在,您可以使用子脚本访问 PostgreSQL JSON 数据。查询示例:

    SELECT ('{ "postgres": { "release": 15 }}'::jsonb)['postgres']['release'];
  • PostgreSQL 现在支持多范围数据类型,并扩展了 range_agg 函数来聚合多范围数据类型。
  • PostgreSQL 改进了监控和可观察性:

    • 现在,您可以跟踪 COPY 命令和 Write-ahead-log (WAL)活动的进度。
    • PostgreSQL 现在提供对复制槽的统计信息。
    • 通过启用 compute_query_id 参数,您现在可以通过几个 PostgreSQL 功能(包括 pg_stat_activityEXPLAIN VERBOSE )唯一跟踪查询。
  • PostgreSQL 通过以下方法改进了对查询并行的支持:

    • 提高了并行顺序扫描的性能。
    • 在使用 RETURN QUERY 命令时,SQL Procedural Language (PL/pgSQL)执行并行查询的能力。
    • REFRESH MATERIALIZED VIEW 命令中启用的并行。
  • PostgreSQL 现在包含 SQL 标准 MERGE 命令。您可以使用 MERGE 编写可在单个语句中包含 INSERTUPDATEDELETE 操作的条件 SQL 语句。
  • PostgreSQL 提供以下新功能以使用正则表达式来检查字符串:regexp_count(), regexp_instr(), regexp_like()regexp_substr()
  • PostgreSQL 添加了 security_invoker 参数,您可以使用它来查询具有视图调用者,而不是视图创建者权限的数据。这有助于您确保视图调用者具有使用底层数据的正确权限。
  • PostgreSQL 提高了性能,即在其归档和备份方面。
  • PostgreSQL 添加了对 LZ4Zstandard (zstd)丢失压缩算法的支持。
  • PostgreSQL 提高了其内存中和磁盘上排序算法。
  • 更新的 postgresql.service systemd 单元文件现在可确保 postgresql 服务在网络启动后启动。

以下更改向后不兼容:

  • 公共模式的默认权限已被修改。新创建的用户需要使用 GRANT ALL ON SCHEMA public TO myuser; 命令明确授予权限。例如:

    postgres=# CREATE USER mydbuser;
    postgres=# GRANT ALL ON SCHEMA public TO mydbuser;
    postgres=# \c postgres mydbuser
    postgres=$ CREATE TABLE mytable (id int);
  • 在管道模式下不再支持 libpq PQsendQuery() 函数。修改受影响的应用程序,以使用 PQsendQueryParams() 函数。

另请参阅 使用 PostgreSQL

要安装 postgresql:15 流,请使用:

# yum module install postgresql:15

如果要从 RHEL 8 中早期的 postgresql 流升级,请按照 切换到更新的流 中描述的流程操作,然后迁移 PostgreSQL 数据,如 迁移到 PostgreSQL 的 RHEL 8 版本 中所述。

有关支持的 postgresql 模块流长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Bugzilla:2128241

4.11. 编译器和开发工具

新模块流:swig:4.1

RHEL 8.8 引入了 Simplified Wrapper 和 Interface Generator (SWIG)版本 4.1,它作为新模块流 swig:4.1 提供。

与 RHEL 8.4 中发布的 SWIG 4.0 相比,SWIG 4.1:

  • 添加了对 Node.js 版本 12 到 18 的支持,并删除对早于 6 的 Node.js 版本的支持。
  • 添加了对 PHP 8 的支持。
  • 通过 PHP C API 完全处理 PHP 包装,默认情况下不再生成一个 .php 包装器。
  • 仅支持 Perl 5.8.0 及更新的版本。
  • 向 3.11 添加了对 Python 版本 3.9 的支持。
  • 仅支持 Python 3.3 及更新的 Python 3 版本以及 Python 2.7
  • Python 生成的代码中的各种内存泄漏提供修复。
  • 改进了对 C99、C++11、C++14 和 C++17 标准的支持,并开始实现 C++20 标准。
  • 添加对 C++ std::unique_ptr pointer 类的支持。
  • 包括 C++ 模板处理中的几个小改进。
  • 修复了各种情况下 C++ 声明用法。

要安装 swig:4.1 模块流,请使用:

# yum module install swig:4.1

如果要从以前的 swig 模块流升级,请参阅 切换到更新的流

有关 swig 模块流支持的长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Bugzilla:2139076

新模块流:jaxb:4

RHEL 8.8 引入了 Jakarta XML Binding (JAXB) 4 作为新的 jaxb:4 模块流。JAXB 是一个框架,使开发人员能够将 Java 类映射到 XML 表示法或从 XML 表示法映射到 Java 类。

要安装 jaxb:4 模块流,请使用:

# yum module install jaxb:4

Bugzilla:2055539

更新了 GCC Toolset 12

GCC Toolset 12 是一个编译器工具集,提供了开发工具的最新版本。它在 AppStream 存储库中以软件集合的形式作为应用程序流提供。

RHEL 8.8 中引入的显著变化包括:

  • GCC 编译器已更新至版本 12.2.1,它提供了上游 GCC 中提供的很多 bug 修复和增强。
  • annobin 已更新至版本 11.08。

GCC Toolset 12 提供了以下工具和版本:

工具版本

GCC

12.2.1

GDB

11.2

binutils

2.38

dwz

0.14

annobin

11.08

要安装 GCC Toolset 12,以 root 用户身份运行以下命令:

# yum install gcc-toolset-12

要从 GCC Toolset 12 运行工具:

$ scl enable gcc-toolset-12 tool

要运行一个 shell 会话,其中 GCC Toolset 12 中的工具版本会覆盖这些工具的系统版本:

$ scl enable gcc-toolset-12 bash

如需更多信息,请参阅 GCC Toolset 12

Bugzilla:2110582

glibc添加了安全改进

SafeLinking 功能已添加到 glibc 中。因此,它改进了对特定单链接列表崩溃(包括分配程序的线程本地缓存)的 malloc 系列功能的保护。

Bugzilla:1871383

改进了 glibc 动态加载程序算法

当共享对象依赖项深度嵌套时,用于处理共享对象的 glibc 动态加载程序的 O (n3)算法可能会导致应用程序启动和关闭较慢。有了这个更新,动态加载程序的算法已被改进,以使用深度优先搜索(DFS)。因此,当共享对象依赖项深度嵌套时,应用程序启动和关闭时间会大大提高。

您可以使用 glibc 运行时可调 glibc.rtld.dynamic_sort 选择动态加载程序的 O (n3)算法。可调的默认值为 2,表示新的 DFS 算法。要为兼容性选择以前的 O (n3)算法,请将可调整值设置为 1:

# GLIBC_TUNABLES=glibc.rtld.dynamic_sort=1
# export GLIBC_TUNABLES

Bugzilla:1159809

LLVM Toolset rebase 到版本 15.0.7

LLVM Toolset 已更新至版本 15.0.7。主要变更包括:

  • -Wimplicit-function-declaration-Wimplicit-int 警告在 C99 及更新版本中默认启用。在 Clang 16 及更高版本中,这些警告将默认变为错误。

Bugzilla:2118568

Rust Toolset rebase 到版本 1.66.1

Rust Toolset 已更新到版本 1.66.1。主要变更包括:

  • thread::scope API 创建一个字典范围,其中本地变量可以被新生成的线程安全地借用,且这些线程都保证在范围结束前退出。
  • hint::black_box API 向编译器优化添加了一个障碍,这对于保留基准中的行为很有用,否则这些行为可能会被优化掉。
  • .await 关键字现在使用 IntoFuture 特征进行转换,类似于 forIntoIterator 之间的关系。
  • 通用关联类型(GAT)允许特征包含具有通用参数的类型别名,对类型和生命周期启用新抽象。
  • 新的 let-else 语句允许本地变量与条件模式匹配绑定,在模式不匹配时执行分支 else 块。
  • 标记的块允许 break 语句跳到块的末尾,可以选择包含一个表达式值。
  • rust-analyzer 是一种语言服务器协议的新实现,在很多编辑器中启用 Rust 支持。这会替换以前的 rls 软件包,但您可能需要调整编辑器配置以迁移到 rust-analyzer
  • cargo 有一个新的 cargo remove 子命令,用于从 Cargo.toml 中删除依赖项。

Bugzilla:2123899

Go Toolset rebase 到版本 1.19.4

Go Toolset 已更新到版本 1.19.4。主要变更包括:

  • 对以下软件包的安全修复:

    • crypto/tls
    • mime/multipart
    • net/http
    • path/filepath
  • 对以下的 bug 修复:

    • go 命令
    • 链接器
    • 运行时
    • crypto/x509 软件包
    • net/http 软件包
    • time 软件包

Bugzilla:2174430

tzdata 软件包现在包含 /usr/share/zoneinfo/leap-seconds.list 文件

在以前的版本中,tzdata 软件包只提供 /usr/share/zoneinfo/leapseconds 文件。有些应用程序依赖于 /usr/share/zoneinfo/leap-seconds.list 文件提供的备用格式,因此会出现错误。

有了这个更新,tzdata 软件包现在包含这两个文件,支持依赖任一格式的应用程序。

Bugzilla:2154109

4.12. 身份管理

SSSD 支持将主目录转换为小写

有了这个增强,您现在可以配置 SSSD ,来将用户主目录转换为小写。这有助于与 RHEL 环境的区分大小写的性质更好地集成。/etc/sssd/sssd.conf 文件的 [nss] 部分中的 override_homedir 选项现在可识别 %h 模板值。如果您使用 %h 作为 override_homedir 定义的一部分,SSSD 会用小写的用户主目录替换 %h

Jira:RHELPLAN-139430

ipapwpolicy ansible-freeipa 模块现在支持新的密码策略选项

有了这个更新,ansible-freeipa 软件包中包含的 ipapwpolicy 模块支持额外的 libpwquality 库选项:

maxrepeat
指定序列中相同字符的最大数量。
maxsequence
指定单例字符序列的最大长度 (abcd)。
dictcheck
检查密码是否为字典单词。
usercheck
检查密码是否包含用户名。

如果设置了任何新密码策略选项,则密码的最小长度为 6 个字符。新密码策略设置仅应用到新密码。

在使用 RHEL 7 和 RHEL 8 服务器的混合环境中,新的密码策略设置仅在在 RHEL 8.4 及更新版本上运行的服务器中强制实施。如果用户登录到 IdM 客户端,并且 IdM 客户端与运行在 RHEL 8.3 或更早版本上的 IdM 服务器进行通信,则系统管理员设置的新密码策略要求不适用。为确保一致的行为,请将所有服务器升级到 RHEL 8.4 及更新的版本。

Jira:RHELPLAN-137416

IdM 现在支持 ipanetgroup Ansible 管理模块

作为身份管理(IdM)系统管理员,您可以将 IdM 与 NIS 域和 netgroup 集成。使用 ipanetgroup ansible-freeipa 模块,您可以实现以下内容:

  • 您可以确保现有的 IdM netgroup 包含特定的 IdM 用户、组、主机和主机组以及嵌套的 IdM netgroup。
  • 您可以确保现有 IdM netgroup 中没有特定的 IdM 用户、组、主机和主机组以及嵌套的 IdM netgroup。
  • 您可以确保 IdM 中存在或不存在特定的 netgroup。

Jira:RHELPLAN-137411

新的 ipaclient_configure_dns_resolveripaclient_dns_servers Ansible ipaclient 角色变量指定客户端的 DNS 解析器  

在以前的版本中,当使用 ansible-freeipa ipaclient 角色安装身份管理(IdM)客户端时,无法在安装过程中指定 DNS 解析器。您必须在安装前配置 DNS 解析器。   

有了这个增强,在使用 ipaclient 角色使用 ipaclient_configure_dns_resolveripaclient_dns_servers 变量安装 IdM 客户端时,您可以指定 DNS 解析器。因此,ipaclient 角色会修改 resolv.conf 文件和 NetworkManagersystemd-resolved 工具,以便以类似于 ansible-freeipa ipaserver 角色在 IdM 服务器上配置 DNS 解析器的方式,在客户端上配置 DNS 解析器。因此,在使用 ipaclient 角色安装 IdM 客户端时配置 DNS 现在更为高效。

注意

使用 ipa-client-install 命令行安装程序安装 IdM 客户端仍然需要在安装前配置 DNS 解析器。

Jira:RHELPLAN-137406

使用 ipaclient 角色安装带有 OTP 的 IdM 客户端不需要之前修改 Ansible 控制器

在以前的版本中,Ansible 控制器上的 kinit 命令是获取身份管理(IdM)客户端部署的一次性密码(OTP)的先决条件。在 Red Hat Ansible Automation Platform (AAP)上获取 OTP 是一个问题,因为默认情况下没有安装 krb5-workstation 软件包。

有了这个更新,对管理员的 TGT 的请求被委派给第一个指定或发现的 IdM 服务器。现在,您可以使用 OTP 授权安装 IdM 客户端,而无需额外修改 Ansible 控制器。这简化了使用带有 AAP 的 ipaclient 角色。

Jira:RHELPLAN-137403

SSSD 现在支持使用 shadow 密码策略更改 LDAP 用户密码

有了这个增强,如果您在 /etc/sssd/sssd.conf 文件中将 ldap_pwd_policy 设为 shadow,则 LDAP 用户现在可以更改存储在 LDAP 中的密码。在以前的版本中,如果 ldap_pwd_policy 设为 shadow,则密码更改将被拒绝,因为不清楚是否正在更新相应的 shadow LDAP 属性。

另外,如果 LDAP 服务器无法自动更新 shadow 属性,请在 /etc/sssd/sssd.conf 文件中将 ldap_chpass_update_last_change 选项设为 True,以表明 SSSD 要更新属性。

Bugzilla:2144519

使用配置文件配置 pam_pwhistory

有了这个更新,您可以在 /etc/security/pwhistory.conf 配置文件中配置 pam_pwhistory 模块。pam_pwhistory 模块保存了每个用户的最后一个密码,以管理密码更改历史记录。authselect 中还添加了支持,允许您向 PAM 堆栈中添加 pam_pwhistory 模块。

Bugzilla:2068461,Bugzilla:2063379

getcert add-scep-ca 现在检查用户提供的 SCEP CA 证书是否采用有效的 PEM 格式

要使用 getcert add-scep-ca 命令将 SCEP CA 添加到 certmonger,提供的证书必须采用有效的 PEM 格式。在以前的版本中,命令不检查用户提供的证书,并在格式不正确时不返回错误。有了这个更新,getcert add-scep-ca 现在检查用户提供的证书,并在证书不是有效 PEM 格式时返回错误。

Bugzilla:2150025

IdM 现在支持新的活动目录证书映射模板

活动目录(AD)域管理员可以使用 altSecurityIdentities 属性手动将证书映射到 AD 中的用户。此属性支持六个值,虽然三个映射现在被视为不安全。作为 2022 年 5 月 10 日 安全更新 的一部分,当这个更新安装在域控制器上后,所有设备都处于兼容性模式。如果证书被弱映射到用户,则身份验证会如预期发生,但会记录一条警告信息,用于标识与完整执行模式不兼容的证书。从 2023 年 11 月 14 日起,所有设备都将更新为全强制模式,如果证书未通过强映射标准,则身份验证将被拒绝。

IdM 现在支持新的映射模板,使 AD 管理员更容易使用新规则,而不用维护两个模板。IdM 现在支持以下新的映射模板:

  • 序列号:LDAPU1: (altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<SR>{serial_number!hex_ur})
  • 主题 Key Id: LDAPU1: (altSecurityIdentities=X509:<SKI>{subject_key_id!hex_u})
  • 用户 SID:LDAPU1: (objectsid={sid})

如果您不想使用新的 SID 扩展重新发布证书,您可以通过将适当的映射字符串添加到 AD 中的 altSecurityIdentities 属性来创建手动映射。

Bugzilla:2087247

samba rebase 到版本 4.17.5

samba 软件包已升级到上游版本 4.17.5,与之前的版本相比,它提供了 bug 修复和增强。最显著的更改:

  • 之前版本中的安全性改进会影响服务器消息块(SMB)服务器对高元数据数据工作负载的性能。这个更新在这种情况下提高了性能。
  • --json 选项添加到 smbstatus 工具中,以显示 JSON 格式的详细的状态信息。
  • samba.smb.confsamba.samba3.smb.conf 模块已添加到 smbconf Python API 中。您可以在 Python 程序中使用它们来原生读和(可选)写 Samba 配置。

请注意,从 Samba 4.11 开始,服务器消息块块版本 1 (SMB1) 协议已被弃用,并将在以后的版本中删除。

在启动 Samba 前备份数据库文件。当 smbdnmbdwinbind 服务启动时,Samba 会自动更新其 tdb 数据库文件。红帽不支持降级 tdb 数据库文件。

更新 Samba 后,使用 testparm 工具来验证 /etc/samba/smb.conf 文件。

有关显著变化的更多信息,请在更新前阅读 上游发行注记

Bugzilla:2132051

ipa-client-install 现在支持使用 PKINIT 进行身份验证

在以前的版本中,ipa-client-install 仅支持基于密码的身份验证。这个更新支持使用 PKINIT 进行身份验证的 ipa-client-install

例如:

ipa-client-install --pkinit-identity=FILE:/path/to/cert.pem,/path/to/key.pem --pkinit-anchor=FILE:/path/to/cacerts.pem

要使用 PKINIT 身份验证,您必须在 IdM 和 PKINIT 证书的 CA 链之间建立信任。如需更多信息,请参阅 ipa-cacert-manage (1) 手册页。此外,证书身份映射规则必须将主机的 PKINIT 证书映射到有权限添加或修改主机记录的主体。如需更多信息,请参阅 ipa certmaprule-add 手册页。

Bugzilla:2075452

目录服务器现在支持 TLS 的 ECDSA 私钥

在以前的版本中,您无法使用比 RSA 更强大的加密算法来保护目录服务器连接。有了这个增强,目录服务器现在同时支持 ECDSA 和 RSA 密钥。

Bugzilla:2096795

新的 pamModuleIsThreadSafe 配置选项现在可用

当 PAM 模块是线程安全的时,您可以通过将新的 pamModuleIsThreadSafe 配置选项设置为 yes 来提高 PAM 身份验证吞吐量和特定模块的响应时间:

`pamModuleIsThreadSafe: yes`

此配置应用于 PAM 模块配置条目( cn=PAM Pass Through Auth,cn=plugins,cn=config的子级)。

dse.ldif 配置文件或 ldapmodify 命令中使用 pamModuleIsThreadSafe 选项。请注意,ldapmodify 命令要求您重启服务器。

Bugzilla:2142639

用于目录服务器审计日志的新的 nsslapd-auditlog-display-attrs 配置参数

在以前的版本中,区分名称(DN)是在审计日志事件中识别目标条目的唯一方法。使用新的 nsslapd-auditlog-display-attrs 参数,您可以将目录服务器配置为在审计日志中显示其它属性,提供有关修改的条目的更多详情。

例如,如果您将 nsslapd-auditlog-display-attrs 参数设置为 cn,则审计日志会在输出中显示条目 cn 属性。要包含修改的条目的所有属性,请使用星号(*)作为参数值。

如需更多信息,请参阅 nsslapd-auditlog-display-attrs

Bugzilla:2136610

4.13. 桌面

inkscape1 软件包替换了 inkscape

在这个版本中,新的非模块化 inkscape1 软件包替换了传统的模块化 inkscape 软件包。这也将 Inkscape 应用从版本 0.92 升级到版本 1.0。

Inkscape 1.0 不再依赖于 Python 2 运行时,而是使用 Python 3。

有关 Inkscape 1.0 中变化的完整列表,请参阅上游发行注记:https://inkscape.org/release/inkscape-1.0/

Jira:RHELPLAN-121672

kiosk 模式支持屏幕键盘

现在,您可以在 kiosk 模式会话中使用 GNOME 屏幕键盘(OSK)。

要启用 OSK,请从登录屏幕的齿轮菜单中选择 Kiosk (with on-screen keyboard) 选项。

请注意,RHEL 8 中的 kiosk 模式基于 X11 协议,这会导致与 OSK 有关的某些已知问题。值得注意的是,您不能在 OSK 上输入重音字符,如 éü 。详情请参阅 BZ#1916470

Bugzilla:2070976

支持 libsoup 和 Evolution 中的 NTLMv2

libsoup 库现在可以使用 NT LAN Manager 版本 2 (NTLMv2)协议的 Microsoft Exchange Server 进行身份验证。在以前的版本中,libsoup 只支持 NTLMv1 协议,该协议可能会因为安全问题在某些配置中被禁用。

因此,Evolution 和其他内部使用 libsoup 的应用程序也可以通过使用 NTLMv2 的 Microsoft Exchange Server 进行身份验证。

Bugzilla:1938011

在桌面上自定义右键菜单

现在,您可以自定义在右键点击桌面背景时打开的菜单。您可以在运行任意命令的菜单中创建自定义条目。

要自定义菜单,请参阅 自定义桌面上的右键菜单

Bugzilla:2033572

禁用滑动切换工作区

在以前的版本中,用三个手指向上或向下滑动总是能在触摸屏上切换工作区。有了这个版本,您可以禁用工作区切换。

详情请参阅 禁用滑动切换工作区

Bugzilla:2138109

4.14. Web 控制台

Web 控制台现在执行额外的步骤,将 LUKS 加密根卷绑定到 NBDE

有了这个更新,RHEL web 控制台执行将 LUKS 加密的根卷绑定到网络绑定磁盘加密(NBDE)部署所需的额外步骤。选择加密的根文件系统和 Tang 服务器后,您可以跳过将 rd.neednet=1 参数添加到内核命令行中,安装 clevis-dracut 软件包,以及重新生成初始的 ramdisk (initrd)。对于非 root 文件系统,web 控制台现在启用 remote-cryptsetup.targetclevis-luks-akspass.path systemd 单元,安装 clevis-systemd 软件包,并将 _netdev 参数添加到 fstabcrypttab 配置文件中。现在,在为自动解锁 LUKS 加密的根卷创建 NBDE 部署时,您可以对所有 Clevis-client 配置步骤使用图形界面。

Jira:RHELPLAN-139125

现在,Web 控制台中提供了某些加密子策略

这个 RHEL web 控制台的更新扩展了 Change crypto policy 对话框中的选项。除了四个系统范围的加密策略外,您现在还可以通过图形界面应用以下子策略:

  • DEFAULT:SHA1 是启用了 SHA-1 算法的 DEFAULT 策略。
  • LEGACY:AD-SUPPORTLEGACY 策略,其具有较少的安全设置,提高了活动目录服务的互操作性。
  • FIPS:OSPPFIPS 策略,具有由常见标准处理信息技术安全评估标准启发的进一步的限制。

Jira:RHELPLAN-137505

4.15. Red Hat Enterprise Linux 系统角色

vpn RHEL 系统角色的新 IPsec 自定义参数

因为某些网络设备需要 IPsec 自定义才能正常工作,所以以下参数必须添加到 vpn RHEL 系统角色中:

重要

不要在没有较深理解的情况下更改以下参数。大多数场景不需要自定义。

此外,出于安全原因,使用 Ansible Vault 加密 shared_key_content 参数的值。

  • 隧道参数:

    • shared_key_content
    • ike
    • esp
    • ikelifetime
    • salifetime
    • retransmit_timeout
    • dpddelay
    • dpdtimeout
    • dpdaction
    • leftupdown
  • 每个主机参数:
  • leftid
  • rightid

因此,您可以使用 vpn 角色配置到大量网络设备的 IPsec 连接。

Bugzilla:2119600

ha_cluster 系统角色现在支持对 firewallselinux 的自动执行,以及 certificate 系统角色

ha_cluster RHEL 系统角色现在支持以下功能:

使用 firewallselinux 系统角色管理端口访问
要将集群的端口配置为运行 firewalldselinux 服务,您可以将新的角色变量 ha_cluster_manage_firewallha_cluster_manage_selinux 设为 true。这会将集群配置为使用 firewallselinux 系统角色,在 ha_cluster 系统角色中自动化并执行这些操作。如果将这些变量设为默认值 false,则不会执行角色。有了这个版本,防火墙不再会被默认配置,因为它仅在 ha_cluster_manage_firewall 设为 true 时进行配置。
使用 certificate 系统角色创建一个 pcsd 私钥和证书对
ha_cluster 系统角色现在支持 ha_cluster_pcsd_certificates 角色变量。设置此变量,将其值传递给 certificate 系统角色的 certificate_requests 变量。这提供了为 pcsd 创建私钥和证书对的替代方法。

Bugzilla:2130019

ha_cluster 系统角色现在支持仲裁设备配置

仲裁设备充当集群的第三方仲裁设备。对于偶数节点的集群,建议使用仲裁设备。对于双节点集群,使用仲裁设备可以更好地决定在脑裂情况下保留哪些节点。现在,您可以使用 ha_cluster 系统角色、集群的 qdevice 和仲裁节点的 qnetd 配置仲裁设备。

Bugzilla:2143814

metrics 系统角色无法用于禁用的事实收集

由于性能或其他原因,可能会在您的环境中禁用 Ansible 事实收集。在这种配置中,目前无法使用 metrics 系统角色。要临时解决这个问题,请启用事实缓存,或者不使用 metrics 系统角色(如果无法使用事实缓存)。

Bugzilla:2079009

postfix RHEL 系统角色现在可以使用 firewallselinux RHEL 系统角色来管理端口访问

有了这个增强,您可以使用新角色变量 postfix_manage_firewallpostfix_manage_selinux 自动管理端口访问:

  • 如果它们设为 true,则每个角色都可用来管理端口访问。
  • 如果它们设为 false (默认),则角色不参与。

Bugzilla:2130332

vpn RHEL 系统角色现在可以使用 firewallselinux 角色来管理端口访问

有了这个增强,您可以通过 firewallselinux 角色在 vpn RHEL 系统角色中自动管理端口访问。如果将新角色变量 vpn_manage_firewallvpn_manage_selinux 设为 true,则角色将管理端口访问。

Bugzilla:2130345

metrics RHEL 系统角色现在可以使用 firewall 角色和 selinux 角色管理端口访问

有了这个增强,您可以控制对端口的访问。如果将新角色变量 metrics_manage_firewallmetrics_manage_firewall 设为 true,则角色将管理端口访问。现在,您可以使用 metrics 角色直接自动化并执行这些操作。

Bugzilla:2133532

nbde_server RHEL 系统角色现在可以使用 firewallselinux 角色管理端口访问

有了这个增强,您可以使用 firewallselinux 角色管理端口访问。如果将新角色变量 nbde_server_manage_firewallnbde_server_manage_selinux 设为 true,则角色将管理端口访问。现在,您可以使用 nbde_server 角色直接自动化这些操作。

Bugzilla:2133931

initscripts 网络供应商支持默认网关的路由指标配置

有了这个更新,您可以使用 rhel-system-roles.network RHEL 系统角色中的 initscripts 网络供应商来配置默认网关的路由指标。

此类配置的原因可能是:

  • 在不同路径中分发流量负载
  • 指定主路由和备份路由
  • 利用路由策略通过特定路径将流量发送到特定的目的地

Bugzilla:2134201

network 系统角色支持设置 DNS 优先级值

此增强向 RHEL network 系统角色添加 dns_priority 参数。您可以将此参数设为 -21474836482147483647 的值。默认值为 0。较低的值具有较高的优先级。请注意,负值会导致系统角色排除带有更大数字优先级值的其他配置。因此,如果至少有一个负优先级值,系统角色只使用具有最低优先级值的连接配置文件中的 DNS 服务器。

因此,您可以使用 network 系统角色在不同的连接配置文件中定义 DNS 服务器的顺序。

Bugzilla:2133856

添加了对克隆的 MAC 地址的支持

克隆的 MAC 地址是设备 WAN 端口的 MAC 地址,它与机器的 MAC 地址相同。有了这个更新,用户可以使用 MAC 地址或策略(如 randompreserve)指定绑定或网桥接口,以获取绑定或网桥接口的默认 MAC 地址。

Bugzilla:2143458

cockpit RHEL 系统角色与 firewallselinuxcertificate 角色集成

此功能增强使您能够将 cockpit 角色与 firewall 角色和 selinux 角色集成,来管理端口访问和 certificate 角色集成来生成证书。

要控制端口访问,请使用新的 cockpit_manage_firewallcockpit_manage_selinux 变量。默认情况下,这两个变量都默认设为 false,并且不会被执行。将它们设为 true,以允许 firewallselinux 角色管理 RHEL web 控制台服务端口访问。然后,操作将在 cockpit 角色内执行。

请注意,您负责管理防火墙和 SELinux 的端口访问。

要生成证书,请使用新的 cockpit_certificates 变量。变量默认设为 false,并且不会被执行。您可以与在 certificate 角色中使用 certificate_request 变量的相同方式使用此变量。然后 cockpit 角色将使用 certificate 角色来管理 RHEL web 控制台证书。

Bugzilla:2137667

selinux RHEL 系统角色现在支持 local 参数

这个 selinux RHEL 系统角色的更新引进了对 local 参数的支持。通过使用此参数,您只能删除本地策略修改,并保留内置的 SELinux 策略。

Bugzilla:2143385

直接与活动目录集成的新的 RHEL 系统角色

新的 rhel-system-roles.ad_integration RHEL 系统角色已添加到 rhel-system-roles 软件包中。因此,现在管理员可以自动将 RHEL 系统直接与活动目录域集成。

Bugzilla:2144876

新的 Red Hat Insights 和订阅管理的 Ansible 角色

rhel-system-roles 软件包现在包含远程主机配置(rhc)系统角色。此角色使管理员能够轻松地将 RHEL 系统注册到 Red Hat Subscription Management (RHSM)和 Satellite 服务器。默认情况下,当使用 rhc 系统角色注册系统时,系统会连接到 Red Hat Insights。有了新的 rhc 系统角色,管理员现在可以在受管节点上自动执行以下任务:

  • 配置到 Red Hat Insights 的连接,包括系统的自动更新、补救和标签。
  • 启用和禁用存储库。
  • 配置用于连接的代理。
  • 设置系统的发行版本。

有关如何自动化这些任务的更多信息,请参阅 使用 RHC 系统角色注册系统

Bugzilla:2144877

Microsoft SQL Server Ansible 角色支持异步高可用性副本

在以前的版本中,Microsoft SQL Server Ansible 角色只支持主、同步和见证高可用性副本。现在,您可以将 mssql_ha_replica_type 变量设为 asynchronous,以使用新的或现有副本的异步副本类型对其进行配置。

Bugzilla:2144820

Microsoft SQL Server Ansible 角色支持 read-scale 集群类型

在以前的版本中,Microsoft SQL Ansible 角色只支持外部集群类型。现在,您可以使用新的变量 mssql_ha_ag_cluster_type 配置角色。默认值为 external,使用它来配置具有 Pacemaker 的集群。要配置没有 Pacemaker 的集群,请对该变量使用值 none

Bugzilla:2144821

Microsoft SQL Server Ansible 角色可以生成 TLS 证书

在以前的版本中,您需要在配置 Microsoft SQL Ansible 角色前,手动在节点上生成 TLS 证书和私钥。有了这个更新,Microsoft SQL Server Ansible 角色可以使用 redhat.rhel_system_roles.certificate 角色来实现这一目的。现在,您可以使用 certificate 角色的 certificate_requests 变量格式设置 mssql_tls_certificates 变量,以便在节点上生成 TLS 证书和私钥。

Bugzilla:2144852

Microsoft SQL Server Ansible 角色支持配置 SQL Server 版本 2022

在以前的版本中,Microsoft SQL Ansible 角色只支持配置 SQL Server 版本 2017 和版本 2019。这个更新为您提供对 Microsoft SQL Ansible 角色的 SQL Server 版本 2022 的支持。现在,您可以将 mssql_version 值设为 2022 ,以配置新的 SQL Server 2022 或将 SQL Server 从版本 2019 升级到版本 2022。请注意,不提供从 SQL Server 版本 2017 到版本 2022 的升级。

Bugzilla:2153428

Microsoft SQL Server Ansible 角色支持活动目录身份验证的配置

有了这个更新,Microsoft SQL Ansible 角色支持 SQL Server 的活动目录身份验证的配置。现在,您可以使用 mssql_ad_ 前缀设置变量来配置活动目录身份验证。

Bugzilla:2163696

logging RHEL 系统角色与 firewallselinuxcertificate 角色集成

此增强允许您将 logging 角色与 firewall 角色和 selinux 角色集成,以管理端口访问和 certificate 角色来生成证书。

要控制端口访问,请使用新的 logging_manage_firewalllogging_manage_selinux 变量。默认情况下,这两个变量都默认设为 false,并且不会被执行。将它们设置为 true,以在 logging 角色中执行角色。

请注意,您负责管理防火墙和 SELinux 的端口访问。

要生成证书,请使用新的 logging_certificates 变量。变量默认设置为 false,不执行 certificate 角色。您可以与在 certificate 角色中使用 certificate_request 变量的相同方式使用此变量。然后,logging 角色将使用 certificate 角色管理证书。

Bugzilla:2130362

路由规则可根据其名称查找路由表

有了这个更新,rhel-system-roles.network RHEL 系统角色支持在定义路由规则时按名称查找路由表。此功能为复杂网络配置提供快速导航,其中您需要对不同的网络段有不同的路由规则。

Bugzilla:2129620

Microsoft SQL Server Ansible 角色支持配置 SQL Server 版本 2022

在以前的版本中,Microsoft SQL Ansible 角色只支持配置 SQL Server 版本 2017 和版本 2019。这个更新为您提供对 Microsoft SQL Ansible 角色的 SQL Server 版本 2022 的支持。现在,您可以将 mssql_version 值设为 2022 ,以配置新的 SQL Server 2022 或将 SQL Server 从版本 2019 升级到版本 2022。请注意,不提供从 SQL Server 版本 2017 到版本 2022 的升级。

Bugzilla:2153427

journald RHEL 系统角色现在可用

journald 服务收集日志数据并将其存储在集中式数据库中。有了这个增强,您可以使用 journald 系统角色变量来自动化 systemd 日志的配置,并使用 Red Hat Ansible Automation Platform 配置持久性日志。

Bugzilla:2165176

sshd RHEL 系统角色现在可以使用 firewallselinux RHEL 系统角色来管理端口访问

有了这个增强,您可以使用新的角色变量 sshd_manage_firewallsshd_manage_selinux 自动管理端口访问。如果它们设为 true,则每个角色都可用来管理端口访问。如果它们设为 false (默认),则角色不参与。

Bugzilla:2149683

4.16. 虚拟化

硬件加密设备现在可以自动热插拔

在以前的版本中,如果在介质设备启动前它们在主机上存在,则只能为 passthrough 定义加密设备。现在,您可以定义一个介质设备阵列,列出您要传递给虚拟机(VM)的所有加密设备。因此,如果指定的加密设备在以后可用,则它们会自动传递给正在运行的虚拟机。另外,如果设备不可用,它们会从虚拟机中删除,但客户机操作系统会保持正常运行。

Bugzilla:1660908

提高了 IBM Z 上 PCI 透传设备的性能

有了这个更新,IBM Z 硬件上的 PCI passthrough 实现已通过对 I/O 处理的多个改进得到了增强。因此,传递到 IBM Z 主机上的 KVM 虚拟机(VM)的 PCI 设备现在性能显著提高。

另外,ISM 设备现在可以分配给 IBM Z 主机上的虚拟机。

Bugzilla:1664379

RHEL 8 客户机现在支持 SEV-SNP

在使用 RHEL 8 作为客户机操作系统的虚拟机(VM)上,您现在可以使用带有安全嵌套分页(SNP)的 AMD 安全加密虚拟化(SEV)功能。除了其他好处外,SNP 通过改进内存完整性保护来增强 SEV,这有助于防止基于 hypervisor 的攻击,如数据重放或内存重新映射。请注意,要使 SEV-SNP 在 RHEL 8 虚拟机上工作,运行虚拟机的主机也必须支持 SEV-SNP。

Bugzilla:2087262

zPCI 设备分配

现在,可以将 zPCI 设备作为 passthrough 设备附加到在 IBM Z 硬件上运行 RHEL 的虚拟机(VM)。例如,这允许在虚拟机中使用 NVMe 闪存驱动器。

Jira:RHELPLAN-59528

4.17. 支持性

sos 工具移到 4 周更新节奏

不是与 RHEL 次版本一起发布 sos 更新,sos 工具发行节奏从 6 个月改为 4 周。您可以在每 4 周的 RPM 更改日志中找到 sos 软件包的更新详情,也可以每 6 个月在 RHEL 发行注记中阅读 sos 更新概述。

Bugzilla:2164987

sos clean 命令现在模糊处理 IPv6 地址

在以前的版本中,sos clean 命令不会模糊处理 IPv6 地址,将一些客户敏感数据留在收集的 sos 报告中。有了这个更新,sos clean 会预期检测并模糊处理 IPv6 地址。

Bugzilla:2134906

4.18. 容器

新的 podman RHEL 系统角色现在可用

从 Podman 4.2 开始,您可以使用 podman 系统角色来管理 Podman 配置、容器以及运行 Podman 容器的 systemd 服务。

Jira:RHELPLAN-118698

Podman 现在支持审计事件

从 Podman v4.4 开始,您可以直接从单个事件和 journald 条目中收集关于容器的所有相关信息。要启用 Podman 审计,请修改 container.conf 配置文件,并将 events_container_create_inspect_data=true 选项添加到 [engine] 部分中。数据采用 JSON 格式,与 podman container inspect 命令的格式相同。如需更多信息,请参阅 如何在 Podman 4.4 中使用新的容器事件和审计功能

Jira:RHELPLAN-136601

Container Tools 软件包已更新

现在提供更新的 Container Tools 软件包,其包括 Podman、Buildah、Skopeo、crun 和 runc 工具。与之前的版本相比,这个版本应用了一系列 bug 修复和增强。

Podman v4.4 中的显著变化包括:

  • 引入了 Quadlet,这是一个新的 systemd 生成器,它可使用 Podman 轻松创建和维护 systemd 服务。
  • 添加了一个新命令 podman network update,它会更新容器和 pod 的网络。
  • 添加了一个新命令 podman buildx version,它会显示 buildah 版本。
  • 容器现在可以启动健康检查,允许运行命令来确保在激活常规健康检查前完全启动容器。
  • 使用 podman --dns 命令支持自定义 DNS 服务器选择。
  • 现在,提供使用 Fulcio 和 Rekor 创建并验证 sigstore 签名。
  • 改进了与 Docker 的兼容性(新选项和别名)。
  • 改进了 Podman 的 Kubernetes 集成 - 命令 podman kube generatepodman kube play 现在可用,替换了 podman generate kubepodman play kube 命令。podman generate kubepodman play kube 命令仍可用,但建议使用新的 podman kube 命令。
  • systemd 管理的由 podman kube play 命令创建的 pod 现在与 sd-notify 集成,使用 io.containers.sdnotify 注解(或对特定容器使用 io.containers.sdnotify/$name)。
  • 现在,由 podman kube play 创建的 systemd 管理的 pod 可以使用 io.containers.auto-update 注解(或使用特定容器的 io.containers.auto-update/$name)自动更新。

Podman 已升级至版本 4.4,要了解有关显著变化的更多信息,请参阅 上游发行注记

Jira:RHELPLAN-136608

Aardvark 和 Netavark 现在支持自定义 DNS 服务器选择

Aardvark 和 Netavark 网络堆栈现在支持容器的自定义 DNS 服务器选择,而不是主机上的默认 DNS 服务器。您有两个用于指定自定义 DNS 服务器的选项:

  • containers.conf 配置文件中添加 dns_servers 字段。
  • 使用新的 --dns Podman 选项指定 DNS 服务器的 IP 地址。

--dns 选项会覆盖 container.conf 文件中的值。

Jira:RHELPLAN-138025

Skopeo 现在支持生成 sigstore 密钥对

您可以使用 skopeo generate-sigstore-key 命令生成一个 sigstore 公钥/私钥对。如需更多信息,请参阅 skopeo-generate-sigstore-key 手册页。

Jira:RHELPLAN-151481

Toolbox 现在可用

有了 toolbox 工具,您可以在系统上使用容器化的命令行环境,而无需直接安装故障排除工具。Toolbox 构建在 Podman 和其他来自 OCI 的标准容器技术之上。如需更多信息,请参阅 toolbx

Jira:RHELPLAN-150266

提供签名镜像的多个可信的 GPG 密钥功能

/etc/containers/policy.json 文件支持一个新的 keyPaths 字段,该字段接受一个包含可信密钥的文件的列表。因此,在默认配置中现在接受使用红帽正式发行(GA)和 Beta GPG 密钥签名的容器镜像。

例如:

"registry.redhat.io": [
        {
            "type": "signedBy",
            "keyType": "GPGKeys",
            "keyPaths": ["/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release", "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta"]
        }
]

Jira:RHELPLAN-118470

RHEL 8 延长更新支持(EUS)

RHEL Container Tools 现在在 RHEL 8 延长更新支持(EUS)版本中被支持。有关 Red Hat Enterprise Linux EUS 的更多信息,请参阅 容器工具 AppStream - 内容可用性,Red Hat Enterprise Linux (RHEL) 延长更新支持(EUS)概述

Jira:RHELPLAN-151121

sigstore 签名现在可用

从 Podman 4.2 开始,您可以使用容器镜像签名的 sigstore 格式。sigstore 签名会与容器镜像一起存储在容器注册中心 ,而无需有单独的签名服务器来存储镜像签名。

Jira:RHELPLAN-75165

Podman 现在支持预执行钩子

位于 /usr/libexec/podman/pre-exec-hooks/etc/containers/pre-exec-hooks 目录中的 root 拥有的插件脚本定义了对容器操作的精细控制,特别是阻止了未授权的操作。

/etc/containers/podman_preexec_hooks.txt 文件必须由管理员创建,并可为空。如果 /etc/containers/podman_preexec_hooks.txt 不存在,则不会执行插件脚本。如果所有插件脚本都返回零值,则执行 podman 命令,否则 podman 命令将退出,并具有继承的退出码。

红帽建议使用以下命名约定以便以正确的顺序执行脚本:DDD-plugin_name.lang,如 010-check-group.py。请注意,插件脚本在创建时是有效的。在插件脚本之前创建的容器不会受到影响。

Bugzilla:2119200

第 5 章 对外部内核参数的重要更改

本章为系统管理员提供了与 Red Hat Enterprise Linux 8.8 一起分发的内核中显著变化的总结。这些更改包括添加或更新的 proc 条目、sysctlsysfs 默认值、引导参数、内核配置选项或者任何可见的行为更改。

新内核参数

nomodeset

使用这个内核参数,您可以禁用内核模式设置。DRM 驱动程序将不执行显示模式更改或加速渲染。如果这是通过固件或引导装载程序进行了设置,则只有系统帧缓冲才可用。

nomodeset 可用作回退,或测试和调试。

sev=option[,option…​] [X86-64]
如需更多信息,请参阅 Documentation/x86/x86_64/boot-options.rst
amd_pstate=[X86]
  • disable :不启用 amd_pstate 作为支持的处理器的默认扩展驱动程序。
  • passive :使用 amd_pstate 作为扩展驱动程序。驱动程序在这个抽象规模上请求所需的性能,电源管理固件会将请求转换为实际的硬件状态,如核频率、数据结构和内存时钟等。
retbleed=ibpb,nosmt
这个参数与 ibpb 类似,是没有 STIBP 的系统的一种替代选择。使用这个参数,您可以在 STIBP 不可用时禁用 SMT。

更新的内核参数

amd_iommu=[HW,X86-64]

使用这个内核参数,您可以将参数传递给系统中的 AMD IOMMU 驱动程序。可能的值有:

  • fullflush:已弃用,等同于 iommu.strict=1
  • off :不初始化系统中发现的任何 AMD IOMMU。
  • force_isolation :对所有设备强制设备隔离。不再允许 IOMMU 驱动程序根据需要解除隔离要求。

    • 此选项不会覆盖 iommu=pt
  • force_enable :在已知启用了 IOMMU 的平台上强制启用 IOMMU。

    • 请谨慎使用这个选项。
crashkernel=size[KMG][@offset[KMG]]

[KNL] 使用 kexec,Linux 可以在 panic 时切换到崩溃内核。此参数为那个内核镜像保留物理内存区域 [offset, offset + size]。如果省略 @offset,则会自动选择合适的偏移量。

[KNL, X86-64, ARM64] 首先选择 4G 下的区域,并在未指定 @offset 时回退到 4G 以上的保留区域。

如需了解更多详细信息,请参阅 Documentation/admin-guide/kdump/kdump.rst

crashkernel=size[KMG],low
  • [KNL, X86-64, ARM64] 使用此参数,您可以为第二个内核指定 4G 以下的低范围。当 crashkernel=X,high 被传递时,这需要一些低内存,例如 swiotlb 需要至少 64M+32K 低内存,还需要足够的额外低内存以确保 32 位设备的 DMA 缓冲区不会耗尽。内核会尝试自动分配 4G 以下的默认内存大小。默认大小取决于平台。

    • x86: max(swiotlb_size_or_default() + 8MiB, 256MiB)
    • arm64: 128MiB

      0:禁用低分配。

      crashkernel=X,high 未使用或保留的内存低于 4G 时,将忽略此参数。

  • [KNL, ARM64] 使用此参数,您可以为崩溃转储内核指定 DMA 区域中的低范围。

    当不使用 crashkernel=X,high 时,会忽略这个参数。

intel_iommu=[DMAR]

用于设置 Intel IOMMU 驱动程序(DMAR)选项的内核参数。

  • on :启用 intel iommu 驱动程序。
  • off :禁用 intel iommu 驱动程序。
  • igfx_off [默认为 Off]: 默认情况下,gfx 被映射为普通设备。如果 gfx 设备有一个专用的 DMAR 单元,则不会使用这个选项启用 DMAR 来绕过 DMAR 单元。在这种情况下,gfx 设备将使用 DMA 的物理地址。
  • strict [默认为 Off]:已弃用,等同于 iommu.strict=1
  • sp_off [默认为 Off]:默认情况下,如果 Intel IOMMU 有能力,则支持超级页。使用此选项时,将不支持超级页。
  • sm_on [默认为 Off]:默认情况下,即使硬件公告支持可扩展的模式转换,也会禁用可扩展模式。设置此选项后,可以在声明支持它的硬件上使用可扩展模式。
  • tboot_noforce [默认为 Off]:不要强制在 tboot 下启用 Intel IOMMU。默认情况下,tboot 会强制 Intel IOMMU,这可能会损害一些高吞吐量设备(如 40GBit 网卡)的性能,即使启用了身份映射。

    注意

    使用此选项可降低 tboot 提供的安全性,因为它会使系统容易受到 DMA 攻击。

iommu.strict=[ARM64,X86]

使用这个内核参数,您可以配置 TLB 无效行为。

格式:{ "0" | "1" }

  • 0 - lazy 模式。请求 DMA 取消映射操作使用硬件 TLB 的延迟无效,以减少设备隔离为代价来提高吞吐量。如果相关 IOMMU 驱动程序不支持,将回退到 strict 模式。
  • 1 - Strict 模式.DMA 取消映射操作会同步使 IOMMU 硬件 TLB 无效。
  • unset - 使用 CONFIG_IOMMU_DEFAULT_DMA_{LAZY,STRICT} 的值。

    注意

    在 x86 上,通过传统的特定于驱动程序的一个选项指定的 strict 模式具有优先权。

mem_encrypt=[X86-64]

用于设置 AMD 安全内存加密(SME)控制的内核参数。

有效参数:on、off

默认值取决于内核配置选项:

  • on (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=y)
  • off (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=n)
  • mem_encrypt=on :激活 SME
  • mem_encrypt=off :不激活 SME

    有关何时可以激活内存加密的详情,请参阅 Documentation/virt/kvm/x86/amd-memory-encryption.rst

retbleed=[X86]

有了这个内核参数,您可以控制 RETBleed(带有返回指令的任意推测代码执行)漏洞的缓解。

仅使用基于 AMD 的 UNRET 和 IBPB 缓解不会同级线程影响其他同级线程的预测。因此,STIBP 用于支持它的处理器,并缓解不支持它的处理器上的 SMT。

  • off - 不缓解
  • auto - 自动选择一个缓解
  • auto,nosmt - 自动选择一个缓解,如果需要整个缓解则禁用 SMT(只在 Zen1 和没有 STIBP 的旧 Zen1 上)。
  • IBPB - 在 AMD 上,也缓解基本块边界上的短投机窗口。安全,最高的性能影响。它还启用 STIBP (如果存在的话)。不适用于 Intel。
  • unret - 强制启用未经训练的返回 thunks,仅对基于 AMD f15h-f17h 的系统有效。
  • unret,nosmt - 与 unret 类似,但将在 STIBP 不可用时禁用 SMT。这是没有 STIBP 的系统的替代选择。
swiotlb=[ARM,IA-64,PPC,MIPS,X86]

有了这个内核参数,您可以配置 I/O TLB slabs 的行为。

格式:{ <int> [,<int>] | force | noforce }

  • <int> - I/O TLB slabs 数
  • <int> - 逗号后的第二个整数。带有其自身锁的 swiotlb 区域的数量。必须为 2 的幂。
  • force - 强制使用 bounce 缓冲区,即使它们没有被内核自动使用
  • noforce - 永不使用 bounce 缓冲(用于调试)

新的 sysctl 参数

page_lock_unfairness
这个值决定了页面锁可以从服务员处被窃取的次数。在锁被窃取了该文件中指定的次数(默认为 5)后,会应用 fair lock handoff 语义,并且只有在可以取锁的情况下才会唤醒服务员。
rps_default_mask
新创建的网络设备上使用的默认 RPS CPU 掩码。空掩码表示默认禁用 RPS。

第 6 章 设备驱动程序

6.1. 新驱动程序

网络驱动程序

  • Solarflare Siena 网络驱动程序(sfc-siena),仅适用于 IBM Power Systems、Little Endian 和 AMD 和 Intel 64 位构架
  • NVIDIA sn2201 平台驱动程序(nvsw-sn2201),仅适用于 AMD 和 Intel 64 位构架
  • AMD SEV Guest Driver (sev-guest),仅适用于 AMD 和 Intel 64 位构架
  • TDX 客户机驱动程序(tdx-guest),仅适用于 AMD 和 Intel 64 位构架

图形驱动程序和各种驱动程序

  • ACPI 视频驱动程序(video),仅适用于 64 位 ARM 架构
  • DRM Buddy Allocator (drm_buddy),仅适用于 64 位 ARM 架构和 IBM Power Systems Little Endian
  • DRM 显示适配器帮助程序(drm_display_helper),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 和 AMD 和 Intel 64 位构架
  • Intel® GVT-g for KVM (kvmgt),仅适用于 AMD 和 Intel 64 位构架
  • HP® iLO/iLO2 管理处理器(hpilo),仅适用于 64 位 ARM 架构
  • HPE watchdog 驱动程序(hpwdt),仅适用于 64 位 ARM 架构
  • AMD HSMP Platform Interface Driver (amd_hsmp.),仅适用于 AMD 和 Intel 64 位构架

6.2. 更新的驱动程序

网络驱动程序

  • Intel® 10 Gigabit PCI Express Network Driver (ixgbe)已更新至版本 4.18.0-477 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Intel® 10 Gigabit Virtual Function Network Driver (ixgbevf)已更新至版本 4.18.0-477 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Intel® 2.5G Ethernet Linux Driver (igc.)已更新至版本 4.18.0-477 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Intel® Ethernet Adaptive Virtual Function Network Driver (iavf)已更新至版本 4.18.0-477 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Intel® Ethernet Connection XL710 Network Driver (i40e)已更新至版本 4.18.0-477 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Intel® Ethernet Switch Host Interface Driver (fm10k)已更新至版本 4.18.0-477 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Intel® Gigabit Ethernet Network Driver (igb)已更新至版本 4.18.0-477。(仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Intel® Gigabit Virtual Function Network Driver (igbvf)已更新至版本 4.18.0-477 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Intel® PRO/1000 网络驱动程序(e1000e)已更新至版本 4.18.0-477 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Mellanox 5th generation network adapters (ConnectX series) core driver (mlx5_core)已更新至版本 4.18.0-477。
  • Netronome Flow Processor (NFP)驱动程序(nfp)已更新至版本 4.18.0-477。

存储驱动程序

  • Microchip Smart Family Controller 版本的驱动程序(smartpqi)已更新至版本 2.1.20-035 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • Emulex LightPulse Fibre Channel SCSI 驱动程序(lpfc)已更新至版本 14.0.0.18 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • LSI MPT Fusion SAS 3.0 Device 驱动程序 (mpt3sas)已更新至版本 43.100.00.00 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 和 AMD 和 Intel 64 位构架)。
  • MPI3 Storage Controller Device Driver (mpi3mr)已更新至版本 8.2.0.3.0 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • QLogic Fibre Channel HBA Driver (qla2xxx)已更新至版本 10.02.07.900-k (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 以及 AMD 和 Intel 64 位构架)。
  • SCSI debug adapter 驱动程序(scsi_debug)已更新至版本 0191。

第 7 章 可用的 BPF 功能

本章提供了这个 Red Hat Enterprise Linux 8 次版本的 kernel 中 Berkeley Packet Filter (BPF)功能的完整列表。表包括以下列表:

本章包含 bpftool feature 命令自动生成的输出。

表 7.1. 系统配置和其他选项

选项

unprivileged_bpf_disabled

1 (bpf()系统调用限制为特权用户,无需恢复。)

JIT 编译器

1(启用)

JIT 编译器强化

1(为非特权用户启用)

JIT 编译器 kallsyms 导出

1(为 root 用户启用)

非特权用户的 JIT 的内存限制

264241152

CONFIG_BPF

y

CONFIG_BPF_SYSCALL

y

CONFIG_HAVE_EBPF_JIT

y

CONFIG_BPF_JIT

y

CONFIG_BPF_JIT_ALWAYS_ON

y

CONFIG_DEBUG_INFO_BTF

y

CONFIG_DEBUG_INFO_BTF_MODULES

n

CONFIG_CGROUPS

y

CONFIG_CGROUP_BPF

y

CONFIG_CGROUP_NET_CLASSID

y

CONFIG_SOCK_CGROUP_DATA

y

CONFIG_BPF_EVENTS

y

CONFIG_KPROBE_EVENTS

y

CONFIG_UPROBE_EVENTS

y

CONFIG_TRACING

y

CONFIG_FTRACE_SYSCALLS

y

CONFIG_FUNCTION_ERROR_INJECTION

y

CONFIG_BPF_KPROBE_OVERRIDE

y

CONFIG_NET

y

CONFIG_XDP_SOCKETS

y

CONFIG_LWTUNNEL_BPF

y

CONFIG_NET_ACT_BPF

m

CONFIG_NET_CLS_BPF

m

CONFIG_NET_CLS_ACT

y

CONFIG_NET_SCH_INGRESS

m

CONFIG_XFRM

y

CONFIG_IP_ROUTE_CLASSID

y

CONFIG_IPV6_SEG6_BPF

n

CONFIG_BPF_LIRC_MODE2

n

CONFIG_BPF_STREAM_PARSER

y

CONFIG_NETFILTER_XT_MATCH_BPF

m

CONFIG_BPFILTER

n

CONFIG_BPFILTER_UMH

n

CONFIG_TEST_BPF

m

CONFIG_HZ

1000

bpf() syscall

可用

大型程序大小限制

可用

表 7.2. 可用的程序类型和支持的帮助程序

程序类型可用的帮助程序

socket_filter

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_load_bytes_relative, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

kprobe

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_override_return, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_snprintf_btf, bpf_per_cpu_cpu_tr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

sched_cls

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_key, bpf_skb_key bpf_skb_set_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_forward_opt bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xfrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup, bpf_skb_cgroup_id, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp、bpf_sk_release、bpf_map_push_elem、bpf_map_pop_elem、bpf_map_peek_elem、bpf_spin_lock、bpf_spin_unlock、bpf_sk_fullsk_fulls bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_sk_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_bt, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_ktime_get_coarse_ns, bpf_check_mt, bpf_for_each_map_elem, bpf_snprintf

sched_act

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_key, bpf_skb_key bpf_skb_set_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_forward_opt bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xfrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup, bpf_skb_cgroup_id, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp、bpf_sk_release、bpf_map_push_elem、bpf_map_pop_elem、bpf_map_peek_elem、bpf_spin_lock、bpf_spin_unlock、bpf_sk_fullsk_fulls bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_sk_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_bt, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_ktime_get_coarse_ns, bpf_check_mt, bpf_for_each_map_elem, bpf_snprintf

tracepoint

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_get_task_stack、bpf_snprintf_btf、bpf_per_cpu_ptr、bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

xdp

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_redirect, bpf_perf_event_output, bpf_csum_diff, bpf_get_current_task, bpf_get_numa_node_id, bpf_xdp_adjust_head, bpf_redirect_map, bpf_xdp_adjust_meta, bpf_xdp_adjust_tail, bpf_fib_lookup, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf

perf_event

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_perf_prog_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_read_branch_records, bpf_get_ns_current_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_get_task_stack、bpf_snprintf_bt bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_skb

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_load_bytes_relative, bpf_skb_cgroup_id, bpf_get_local_storage, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_sk_cgroup_id, bpf_sk_ancestor_cgroup_id, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_skc_to_tcp6_sock、bpf_skc_to_tcp_sock、bpf_skc_to_tcp_timewait_sock、 bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_sock

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_id, bpf_get_socket_cookie, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_storage_get, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lwt_in

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_lwt_push_encap, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_skc_to_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lwt_out

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_ocks, bpf_skc_waits_waits_ocks, bpf_ringbuf_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lwt_xmit

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_get_tunnel_key, bpf_skb_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_under_group, bpf_skb_undercgroup bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_lwt_push_encap, bpf_map_push_elem, bpf_map_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_csum_level、bpf_skc_to_tcp6_sock、bpf_skc_to_tcp_sock、bpf_skc_to_tcp_waits_ocks bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

sock_ops

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_sock_map_update, bpf_getsockopt, bpf_s_ockops_ock_flags_set, bpf_sock_hash_update, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_load_hdr_opt, bpf_store_hdr_opt, bpf_reserve_hdr_opt, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

sk_skb

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_adjust_room, bpf_sk_redirect_map, bpf_sk_redirect_hash, bpf_sk_lookup_tcp, bpf_sk_lookup_udp、bpf_sk_release、bpf_map_push_elem、bpf_map_pop_elem、bpf_map_peek_elem、bpf_spin_lock、bpf_spin_unlock、bpf_skc_lookup_tcp bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_skc_to_tcp6_sock、bpf_skc_to_tcp_sock、bpf_skc_to_tcp_timewait_sock、 bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_device

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_ bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf, bpf_ringbuf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

sk_msg

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_msg_redirect_map, bpf_msg_apply_bytes、bpf_msg_cork_bytes、bpf_msg_pull_data, bpf_msg_redirect_hash, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_msg_push_data, bpf_msg_pop_data, bpf_spin_lock, bpf_spin_unlock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_ocks, bpf_skc_waits_waits_ocks, bpf_ringbuf_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

raw_tracepoint

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_get_task_stack、bpf_snprintf_btf、bpf_per_cpu_ptr、bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_sock_addr

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_getsockopt, bpf_bind, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_skc_lookup_tcp, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_netns_cookie, bpf_get_get_current_tance_id_id bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_bt, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lwt_seg6local

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_ocks, bpf_skc_waits_waits_ocks, bpf_ringbuf_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lirc_mode2

不支持

sk_reuseport

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_skb_load_bytes、bpf_get_current_task、bpf_get_numa_node_id、bpf_get_socket_cookie、bpf_skb_load_bytes_relative, bpf_sk_sk_reuseport, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_ bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf, bpf_ringbuf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

flow_dissector

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_skb_load_bytes、bpf_get_current_task、bpf_get_numa_node_id、bpf_map_push_elem、bpf_map_pop_elem、bpf_map_peek_elem、bpf_spin_lock、 bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_ocks, bpf_skc_waits_waits_ocks, bpf_ringbuf_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_sysctl

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sysctl_get_name, bpf_sysctl_get_current_value, bpf_sysctl_get_new_value, bpf_sysctl_set_new_value, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_bt, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

raw_tracepoint_writable

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_get_task_stack、bpf_snprintf_btf、bpf_per_cpu_ptr、bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_sockopt

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

tracing

不支持

struct_ops

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes、bpf_l3_csum_replace、bpf_l4_csum_replace、bpf_tail_call、bpf_clone_redirect、bpf_get_current_pid_tgid、bpf_get_gid、bpf_uid_gid、bpf_get_current_m bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_vlan_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_perf_event_read, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_stackid, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_skb_change_tail bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_xdp_adjust_head, bpf_probe_read_str, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_setsockopt, bpf_skb_adjust_room, bpf_redirect_map, bpf_sk_redirect_map, bpf_ocks_map, bpf_xdp_adjust_meta, bpf_perf_event_read_value, bpf_perf_prog_read_value, bpf_getsockopt, bpf_override_return, bpf_sock_ops_cb_flags_set, bpf_msg_redirect_map, bpf_msg_apply_bytes、bpf_msg_cork_bytes、bpf_msg_pull_data、bpf_bind、bpf_xdp_adjust_tail、bpf_skb_get_xfrm_state、bpf_get_stack、bpf_skb_load_bytes_reativel bpf_fib_lookup、bpf_sock_hash_update、bpf_msg_redirect_hash、bpf_sk_redirect_hash、bpf_lwt_push_encap、bpf_lwt_seg6_store_bytes、bpf_lwt_seg6_adjust_rhs bpf_lwt_seg6_action, bpf_rc_repeat, bpf_rc_keydown, bpf_skb_cgroup_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_sk_sk_reuseport, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_msg_push_data, bpf_msg_pop_data, bpf_rc_pointer_rel, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_ce_ce bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_sysctl_get_name, bpf_sysctl_get_current_value, bpf_sysctl_get_new_value, bpf_sysctl_set_new_value, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_send_signal, bpf_tcp_gen_syncookie, bpf_skb_output, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_tcp_send_ack, bpf_send_signal_thread, bpf_jiffies64, bpf_read_branch_records, bpf_get_ns_current_pid_tgid, bpf_xdp_output, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_sk_assign, bpf_ktime_get_boot_ns, bpf_seq_printf, bpf_seq_write, bpf_sk_cgroup_id, bpf_sk_ancestor_cgroup_id, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock、bpf_get_task_stack、bpf_load_hdr_opt、bpf_store_hdr_opt、bpf_reserve_hdr_opt、bpf_inode_storage_get、bpf_inode_storage_delete、 bpf_d_path, bpf_copy_from_user, bpf_snprintf_btf, bpf_seq_printf_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_bprm_opts_set, bpf_ktime_get_coarse_ns, bpf_ima_inode_hash, bpf_sock_from_file, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_sys_bpf, bpf_btf_find_by_name_kind, bpf_sys_close

ext

不支持

lsm

不支持

sk_lookup

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_skc_to_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

表 7.3. 可用的映射类型

映射类型可用

hash

数组

prog_array

perf_event_array

percpu_hash

percpu_array

stack_trace

cgroup_array

lru_hash

lru_percpu_hash

lpm_trie

array_of_maps

hash_of_maps

devmap

sockmap

cpumap

xskmap

sockhash

cgroup_storage

reuseport_sockarray

percpu_cgroup_storage

queue

queue

sk_storage

devmap_hash

struct_ops

ringbuf

inode_storage

task_storage

第 8 章 程序错误修复

这部分论述了 Red Hat Enterprise Linux 8.8 中修复的对用户有严重影响的 bug。

8.1. 安装程序和镜像创建

安装程序现在在自定义分区过程中列出所有 PPC PreP BootBIOS Boot 分区

在以前的版本中,当在自定义分区中添加多个 PPC PreP BootBIOS Boot 分区时,自定义分区屏幕只显示相关类型的一个分区。因此,自定义分区屏幕没有反映预期分区布局的实际状态,从而导致分区过程变得困难和不透明。

有了这个更新,自定义分区屏幕可以正确地显示分区表中的所有 PPC PreP BootBIOS Boot 分区。现在,用户可以更好地了解和管理预期的分区布局。

Bugzilla:1913035

安装程序现在将配置选项正确地添加到 yum repo 文件中

在以前的版本中,安装程序在从附加安装存储库中包含和排除软件包时,不能正确地将配置选项添加到 yum repo 文件中。有了这个更新,yum repo 文件会被正确创建。因此,在 repo kickstart 命令中使用 --excludepkgs=--includepkgs= 选项现在在安装过程中按预期排除或包括指定的软件包。

Bugzilla:2014103

使用 filename DHCP 选项不再阻止下载 kickstart 文件进行安装

在以前的版本中,当构建从 NFS 服务器获取 kickstart 文件的路径时,安装程序不会考虑 filename DHCP 选项。因此,安装程序不下载 kickstart 文件,并会阻止安装过程。有了这个更新,filename DHCP 选项可以正确地构造到 kickstart 文件的路径。因此,Kickstart 文件会被正确下载,安装过程会正确启动。

Bugzilla:1991516

安装程序现在在自定义分区过程中会创建一个新的 GPT 磁盘布局

在以前的版本中,当在内核命令行上指定 inst.gpt 时,安装程序不会将磁盘布局改为 GPT,用户在自定义分区 spoke 上删除具有 MBR 磁盘布局的磁盘中的所有分区。因此,MBR 磁盘布局保留在磁盘上。

有了这个更新,如果在内核命令行上指定了 inst.gpt,安装程序会在磁盘上创建一个新的 GPT 磁盘布局,且所有分区都会从自定义分区 spoke 上的磁盘中删除。

Bugzilla:2094977

composer-cli compose start 命令的 --size 参数现在将其值视为 MiB

在以前的版本中,当使用 composer-cli compose start --size size_value blueprint_name image_type 命令时,composer-cli 工具将 --size 参数值视为字节单位。这个更新修复了这个问题,--size 参数值现在可以以 MiB 格式正确使用。

Bugzilla:2033192

8.2. 软件管理

在涉及 fapolicyd 服务重启的事务过程中,RPM 不再挂起

在以前的版本中,如果您尝试更新导致 fapolicyd 服务重启的软件包,例如 systemd,RPM 事务会停止响应,因为 fapolicyd 插件无法与 fapolicyd 守护进程进行通信。

有了这个更新,fapolicyd 插件现在可以正确地与 fapolicyd 守护进程进行通信。因此,在涉及 fapolicyd 服务重启的事务过程中,RPM 不再挂起。

Bugzilla:2110787

现在,对于通过升级更改其架构的软件包可以进行安全 YUM 升级

RHBA-2022:7711 引入的 BZ#2088149 补丁会导致回归问题,其中使用安全过滤器的 YUM 升级会跳过通过升级将其架构从或更改为 noarch 的软件包。因此,缺少这些软件包的安全升级可能会使系统处于易受攻击的状态。

有了这个更新,这个问题已被解决,安全 YUM 升级不再跳过将架构从或变为 noarch 的软件包。

Bugzilla:2124483

现在,可以为软件包组或环境恢复 YUM 升级事务

在以前的版本中,当尝试为软件包组或环境恢复升级事务时,yum history rollback 命令会失败。

有了这个更新,这个问题已被解决,您现在可以为软件包组或环境恢复 YUM 升级事务。

Bugzilla:2016070

8.3. Shell 和命令行工具

wsmancli 正确地处理 HTTP 401 Unauthorized 状态

使用 Web 服务管理协议的管理系统的 wsmancli 工具现在处理身份验证,以更好地符合 RFC 2616。

在以前的版本中,当连接到需要身份验证的服务时,wsmancli 命令会在收到 HTTP 401 Unauthorized 响应后立即返回错误消息 Authentication failed, please retry,例如因为凭证不完整。要继续操作,wsmancli 会提示您提供用户名和密码,即使您已提供了凭证的一部分。

有了这个更新,wsmancli 只需要之前未提供的凭证。因此,第一次身份验证尝试不会显示任何错误消息。只有在提供了完整的凭证并且身份验证失败后,才会显示错误消息。

Bugzilla:2105316

添加了 translator.sty LaTeX 风格文档

在以前的版本中,其对于依赖 texlive-beamertranslator.sty 某些工具是必需的 LaTeX 风格文档缺失。因此,这些工具会失败并显示 LaTeX Error: File 'translator.sty' not found. 错误。这个更新添加了缺失的的包含 translator.sty LaTeX 风格文档的 texlive-translator 软件包。因此,依赖于 texlive-beamer 的工具可以正常工作。

Bugzilla:2150727

ReaR 在 IBM Z 构架上可正确处理排除的 DASD

在以前的版本中,在 IBM Z 构架上,ReaR 在恢复过程中重新格式化所有直接连接的存储设备(DASD),包括用户从保存的布局排除的 DASD,且不会恢复其内容。因此,如果您从保存的布局中排除了一些 DASD,则其数据会在系统恢复过程中丢失。有了这个更新,ReaR 不再在系统恢复过程中格式排除的 DASD,包括从中引导 ReaR 救援系统的设备(使用 zIPL 引导装载程序)。在 ReaR 重新格式化 DASD 前,系统会提示您确认 DASD 格式化脚本。这样可确保排除的 DASD 中的数据在系统恢复后依然存在。

Bugzilla:2172605

ReaR 不再无法恢复非 LVM XFS 文件系统

在以前的版本中,当您使用 ReaR 恢复带有某些设置和磁盘映射的非 LVM XFS 文件系统时,ReaR 会使用默认设置而不是指定的设置创建文件系统。

例如,如果您有一个 sunitswidth 参数设为非零值的文件系统,并且您使用带有磁盘映射的 ReaR 恢复了文件系统,则使用忽略指定的值的默认 sunitswidth 参数创建文件系统。

因此,ReaR 会在使用特定 XFS 选项挂载文件系统过程中失败。有了这个更新,ReaR 可以使用指定的设置正确地恢复文件系统。

Bugzilla:2131946

8.4. 基础架构服务

在对扩展属性使用正则表达式时,rsync 不再失败

在以前的版本中,用于传输和同步文件的 rsync 工具无法正确处理 RHEL 8 中的扩展属性。例如,如果您将 --delete 选项与扩展属性的 --filter '-x string.*' 选项一起传递给 rsync 命令,且您系统上的文件满足正则表达式,这会导致一条声明协议不兼容的错误消息。有了这个更新,rsync 工具可以正确地处理扩展属性,您可以为这些属性使用正则表达式。

Bugzilla:2139118

8.5. 安全性

扫描和补救可以正确地忽略 SCAP 审计规则审计密钥

在以前的版本中,在没有审计密钥(-k-F 密钥)的情况下定义的审计监控规则可能会遇到以下问题:

  • 即使规则的其他部分都正确,该规则也被标记为不合规。
  • Bash 补救修复了监视规则的路径和权限,但它没有正确地添加审计密钥。
  • 补救有时不能修复缺少的密钥,返回一个 error ,而不是 固定的 值。

这会影响以下规则:

  • audit_rules_login_events
  • audit_rules_login_events_faillock
  • audit_rules_login_events_lastlog
  • audit_rules_login_events_tallylog
  • audit_rules_usergroup_modification
  • audit_rules_usergroup_modification_group
  • audit_rules_usergroup_modification_gshadow
  • audit_rules_usergroup_modification_opasswd
  • audit_rules_usergroup_modification_passwd
  • audit_rules_usergroup_modification_shadow
  • audit_rules_time_watch_localtime
  • audit_rules_mac_modification
  • audit_rules_networkconfig_modification
  • audit_rules_sysadmin_actions
  • audit_rules_session_events
  • audit_rules_sudoers
  • audit_rules_sudoers_d

有了这个更新,审计密钥已从检查和 Bash 以及 Ansible 补救中删除。因此,在检查和补救过程中由 key 字段导致的不一致问题不再发生,审核员可以任意选择这些密钥,以便更轻松地搜索审计日志。

Bugzilla:2119356

crypto-policies 不再创建不必要的符号链接

在系统安装过程中,crypto-policies scriptlet 在 FIPS 模式下从 /usr/share/crypto-policies/DEFAULT 文件或 /usr/share/crypto-policies/FIPS 创建符号链接,并将它们保存在 /etc/crypto-policies/back-ends 目录中。在以前的版本中,crypto-policies 错误地包含目录,并创建了一个指向 /usr/share/crypto-policies/DEFAULT/usr/share/crypto-policies/FIPS 目录的 /etc/crypto-policies/back-ends/.config 符号链接。有了这个更新,crypto-policies 不会从目录创建符号链接,因此不会创建这个不必要的符号链接。

Bugzilla:1921646

crypto-policies 现在为 BIND 禁用 NSEC3DSA

在以前的版本中,系统范围的加密策略不会控制 BIND 配置中的 NSEC3DSA 算法。因此,在 DNS 服务器上没有禁用不满足当前安全要求的 NSEC3DSA。有了这个更新,所有加密策略默认在 BIND 配置中禁用 NSEC3DSA

Bugzilla:2071981

Libreswan 不再拒绝 FUTUREFIPS 加密策略中的 SHA-1 签名验证

在以前的版本中,从更新到 4.9 ,LibTURE 拒绝 FUTUREFIPS 加密策略中的 SHA-1 签名验证,当使用 authby=rsasigauthby=rsa-sha1 连接选项时,对等身份验证会失败。此更新通过放宽 Libreswan 如何处理 crypto-policies 设置来恢复此行为。因此,您现在可以使用 authby=rsasig 和使用 SHA-1 签名验证的 authby=rsa-sha1 连接选项。

Bugzilla:2176248

crontab bash 脚本不再在不正确的上下文中执行

在以前的版本中,RHBA-2022:7691 勘误中发布了一个使用了过于通用的转换规则的 bug 修复。因此,从 crontab 文件执行的 bash 脚本在 rpm_script_t 上下文而不是 system_cronjob_t 上下文中执行。有了这个更新,bash 脚本现在在正确的上下文中执行。

Bugzilla:2154242

selinux-policy 支持在 SAP 主机代理中执行服务

在以前的版本中,SELinux 策略不支持与 SAP 主机代理和其他服务交互的 insights-client 服务。因此,从 Red Hat Insights 开始,一些命令无法正常工作。有了这个更新,SELinux 策略支持 SAP 服务执行。因此,从 Insights 开始, SAP 服务可以成功运行。

Bugzilla:2134125

selinux-policy 现在允许 pmcd 执行其私有 memfd: 对象

在以前的版本中,SELinux 策略不允许 Performance Co-Pilot (PCP)框架中的 pmcd 进程执行其私有内存文件系统对象(memfd:)。因此,SELinux 拒绝 Performance Metric Domain Agent (PMDA) BPF Compiler Collection (BCC)服务来执行 memfd: 对象。有了这个更新,SELinux 策略包含 pcmd 的新规则。因此,pmcd 现在可以在 SELinux 为 enforcing 的模式下执行 memfd: 对象。

Bugzilla:2090711

SELinux 策略允许 sysadm_r 使用 subscription-manager

在以前的版本中,sysadm_r SELinux 角色中的用户无法执行 subscription-manager 工具的一些子命令。因此,子命令无法读内存设备。此更新在 SELinux 策略中添加了一个新规则,允许 sysadm_t 类型/dev/mem。因此,subscription-manager 子命令不会失败。

Bugzilla:2101341

samba-dcerpcd 进程现在可以与 nscd 一起正常工作

在以前的版本中,由于 SELinux 策略,samba-dcerpcd 进程无法与 nscd 进程进行通信。因此,当启用 nscd 服务时,samba-dcerpcd 服务无法正常工作。有了这个更新,SELinux 策略已使用 samba-dcerpcd 的新规则进行了更新。

Bugzilla:2121709

vlock 现在可以为受限用户正常工作

在以前的版本中,受限制的用户因为 SELinux 策略而无法使用 vlock。因此,vlock 命令无法为受限用户正常工作。有了这个更新,SELinux 策略已使用新规则为受限用户进行了更新。

Bugzilla:2122838

现在,受限用户可以在没有报告拒绝的情况下登录

在以前的版本中,SELinux 策略不允许使用 GUI 的 SELinux 受限用户登录所需的所有权限。因此,会审核 AVC 拒绝,dbuspulseaudio 等服务无法正常工作。有了这个更新,SELinux 策略已使用新规则为受限用户进行了更新。

Bugzilla:2124388

insights-client 现在在 SELinux 策略中有额外的权限

更新的 insights-client 服务需要额外的权限,这不包括在 selinux-policy 软件包的之前的版本中。因此,insights-client 的某些组件无法在 SELinux 的 enforcing 模式下正常工作,系统会报告 access vector cache (AVC)错误消息。此更新向 SELinux 策略中添加了缺失的权限。因此,insights-client 现在可以正常工作,而不报告 AVC 错误。

Bugzilla:2125008

SELinux 策略允许 smb 访问用户共享

在以前的版本中,samba-dcerpcd 进程与 smb 服务分开,但无法访问用户共享。因此,smb 客户端无法访问用户 smb 共享上的文件。此更新在启用了 samba_enable_home_dirs 布尔值时,会为 samba-dcerpcd 二进制文件管理用户主目录的 SELinux 策略中添加规则。因此,当 samba_enable_home_dirs 为 on 时,samba-dcerpcd 可以访问用户共享。

Bugzilla:2143696

SELinux 策略现在允许受限管理员在 IPMItool 运行时访问 ipmi 设备

在以前的版本中,SELinux 策略不允许受限管理员在 IPMItool 工具运行时读和写 ipmi 设备。因此,当受限管理员运行 ipmitool 时,它会失败。此更新为分配给 sysadm_r SELinux 角色的管理员向 selinux-policy 添加了允许规则。因此,如果受限管理员运行 ipmitool,它可以正常工作。

Bugzilla:2148561

SCAP 安全指南规则 file_permissions_sshd_private_key 与 STIG 配置 RHEL-08-010490 一致

在以前的版本中,规则 file_permissions_sshd_private_key 的实现允许私有 SSH 密钥对模式为 0644ssh_keys 组可读,而 DISA STIG 版本 RHEL-08-010490 需要私有 SSH 密钥具有模式 0600。因此,对于配置 RHEL-08-010490,使用 DISA 的自动化 STIG 基准的评估会失败。

对于此次更新,我们与 DISA 合作为私有 SSH 密钥保持预期的权限,现在私钥应该具有模式 0644 或更低。因此,规则 file_permissions_sshd_private_key 和配置 RHEL-08-010490 现在一致。

Bugzilla:2115343

sudo_require_reauthentication SCAP 安全指南规则接受 sudoers中正确的空格

在以前的版本中,检查 xccdf_org.ssgproject.content_rule_sudo_require_reauthentication 规则中的一个 bug 导致它在 timestamp_timeout 密钥和其在/etc/sudoers 文件和 /etc/sudoers.d 目录中的值之间需要特定的空格 。因此,有效且合规的语法会导致规则失败。有了此更新,对 xccdf_org.ssgproject.content_rule_sudo_require_reauthentication 的检查已更新,以接受等号两边的白空格。因此,该规则接受具有以下空格格式的 timestamp_timeout 的正确的和合规的定义:

  • Defaults timestamp_timeout = 5
  • Defaults timestamp_timeout= 5
  • Defaults timestamp_timeout =5
  • Defaults timestamp_timeout=5

Bugzilla:2152208

在 RHEL 的新版本中,旧的 Kerberos 规则被更改为notapplicable

在以前的版本中,当在 FIPS 模式下扫描 RHEL 8.8 及更新系统上的 DISA STIG 配置文件时,一些与 Kerberos 相关的规则会失败,即使系统应已合规。这是由以下规则造成的:

  • xccdf_org.ssgproject.content_rule_package_krb5-server_removed
  • xccdf_org.ssgproject.content_rule_package_krb5-workstation_removed
  • xccdf_org.ssgproject.content_rule_kerberos_disable_no_keytab

此更新使这些规则不适用于 RHEL 版本 8.8 及更新的版本。因此,扫描对这些规则正确返回 notapplicable 结果。

Bugzilla:2099394

scap-security-guide STIG 配置文件不再需要 /etc/audit/rules.d/11-loginuid中的特定文本

在以前的版本中,只有文件 /etc/audit/rules.d/11-loginuid.rules 包含准确的文本时,才会在 RHEL 8 配置文件 stigstig_gui 中使用 SCAP 规则 audit_immutable_login_uids。但是,这并不需要满足 STIG 要求(RHEL-08-030122)。有了此更新,新规则 audit_rules_immutable_login_uids 替换了 RHEL 8 stigstig_gui 配置文件中的 audit_immutable_login_uids。现在,您可以根据使用 auditctlaugen-rules 的用法,指定满足 /etc/audit/rules.d 目录中具有 .rules 扩展名的任何文件中或 /etc/audit/audit.rules 文件中规则的 --loginuid-immutable 参数。

Bugzilla:2151553

scap-security-guide 中 CIS 配置文件的规则更加一致

在以前的版本中,一些规则被错误地分配给某些互联网安全中心(CIS)配置文件(cis,cis_server_l1,cis_workstation_1cis_workstation_l2)。因此,根据某些 CIS 配置文件进行扫描可能会跳过 CIS 基准中的规则,或检查不必要的规则。

以下规则被分配给不正确的配置文件:

  • 规则 kernel_module_udf_disabledsudo_require_authenticationkernel_module_squashfs_disabled 被错误地放置在 CIS Server Level 1 和 CIS Workstation Level 1 中。
  • 规则 package_libselinux_installed,grub2_enable_selinux,selinux_policytype,selinux_confinement_of_daemons,rsyslog_nolisten,service_systemd-journald_enabled 在 CIS Server Level 1 和 CIS Workstation Level 1 配置文件中缺失。
  • CIS Server Level 1 配置文件中缺少了 package_setroubleshoot_removedpackage_mcstrans_removed

此更新为正确的 CIS 配置文件分配了未对齐规则,但不会引入新规则,或者完全删除任何规则。因此,SCAP CIS 配置文件与原始的 CIS 基准更加一致。

Bugzilla:2162803

Clevis 忽略 crypttab中注释的设备

在以前的版本中,Clevis 尝试解锁 crypttab 文件中注释的设备,从而导致即使设备无效,clevis-luks-askpass 服务也会运行。这会导致不必要的服务运行,并很难进行故障排除。

有了这个修复,Clevis 会忽略注释的设备。现在,如果无效的设备被注释了,Clevis 不会尝试解锁它,clevis-luks-askpass.service 会正确完成。这样可以更轻松地排除故障并减少不必要的服务运行。

Bugzilla:2159440

Clevis 不再从 pwmake请求太多的熵

在以前的版本中,当 Clevis 使用 pwmake 创建密码,以在 LUKS 元数据中存储数据时,pwmake 密码生成工具会显示不需要的警告,这会导致 Clevis 使用较低的熵。有了这个更新,Clevis 仅限于为 pwmake 提供的 256 熵位,这消除了不需要的警告,并使用正确的熵数。

Bugzilla:2159736

logrotate 不再错误地在日志轮转中发送 Rsyslog 信号

在以前的版本中,logrotate 脚本中参数顺序被错误地设置,这会导致语法错误。这会导致 logrotate 在日志轮转过程中无法正确发送 Rsyslog 信号。

有了这个更新,logrotate 中的参数顺序被修复,即使设置了 POSIXLY_CORRECT 环境变量,在日志轮转后 logrotate 可以正确地发送 Rsyslog 信号。

Bugzilla:2070496

Rsyslog 不再因为 imklog中的一个 bug 而崩溃

在以前的版本中,如果启用了 imklog 模块,使用无效对象的 free () 在使用期间被释放,则 Rsyslog 可能会遇到分段错误。有了这个更新,释放的对象在正确的位置被正确地取消分配。因此,不再发生分段错误。

Bugzilla:2157658

USBGuard 不再造成混淆的警告

在以前的版本中,当父进程比第一个子进程早完成时,USBGuard 中可能会发生竞争条件。因此,systemd 会报告存在一个具有错误标识的父 PID (PPID)的进程。有了这个更新,父进程会在工作模式下等待第一个子进程完成。因此,systemd 不再报告这样的警告。

Bugzilla:2159409

usbguard 服务文件不定义 OOMScore

在以前的版本中,usbguard 服务文件不定义 OOMScoreAdjust 选项。因此,当系统资源接近耗尽时,进程可以被识别为在非特权进程之前终止的候选进程。有了这个更新,usbguard.service 文件中引入了新的 OOMScoreAdjust 设置,以禁用 usbguard 单元的 OOM 终止进程。

Bugzilla:2159411

即使未定义 RuleFile ,USBGuard 也会保存规则

在以前的版本中,如果设置了 USBGuard 中的 RuleFile 配置指令,但没有设置 RuleFolder,则规则集将无法更改。有了这个更新,即使设置了 RulePRESS,但没有设置 RuleFile,您也可以更改规则集。因此,您可以修改 USBGuard 中的永久策略,以永久保存新添加的规则。

Bugzilla:2159413

8.6. 网络

xdp-tools rebase 到版本 1.2.10

xdp-tools 软件包已升级到上游版本 1.2.10,与之前版本相比,它提供很多 bug 修复。

Bugzilla:2160069

conntrackd 功能可以正常工作,即使未手动设置 HashSizeHashLimit

在以前的版本中,conntrackd 服务没有为 HashSizeHashLimit 配置变量设置默认值。因此,如果没有指定这些值,conntrackd 可能会变得不稳定或停止工作。这个问题已通过在 conntrackd 解析配置文件前使配置读取器为 HashSizeHashLimit 设置默认值而得到解决。因此,即使没有指定值,conntrackd 现在也可以正常工作。

Bugzilla:2126736

nm-cloud-setup 服务不再从接口中删除路由并手动配置辅助 IP 地址

根据从云环境收到的信息,nm-cloud-setup 服务会配置网络接口。在以前的版本中,管理员必须禁用 nm-cloud-setup 来在接口上手动配置路由和辅助 IP 地址,以避免服务删除它们。此更新向 Reapply() 函数中添加了一个标记,以保留外部添加的地址和路由。因此,管理员不再需要在上述场景中禁用 nm-cloud-setup 服务。

Bugzilla:2132754

8.7. 内核

kpatch-patch 在带有空闲隔离 CPU 的系统上可以正常工作

在以前的版本中,当您试图在带有内核 CPU 隔离功能的系统上安装 kpatch-patch CVE 缓解软件包时,kpatch-patch RPM 会被安装,但无法加载其 CVE 缓解内核模块。有了此修复,两个功能可以共存,现在您可以在 CPU 隔离时成功部署 kpatch CVE 修复。

Bugzilla:2134931

启用 VMD 可以再次正常工作

在以前的版本中,如果启用了卷管理设备(VMD),操作系统将无法引导。此更新为 VMD 提供了大量重要的 bug 修复,以便 VMD 可按预期工作。

Bugzilla:2127028

8.8. 文件系统和存储

在启动 VDO 卷时,系统可以正常工作,而无需软锁定

由于在 pv_mmu_ops 结构中修复了内核应用程序二进制接口(kABI)bug,且内核版本为 4.18.0-425.10.1.el8_7 的 RHEL 8.7 系统是 RHEL-8.7.0.2-BaseOS,在启动 Virtual Data Optimizer (VDO)卷时会挂起或遇到内核 panic。

有了此更新,每当 kABI 不再与 kmod-kvdo 的当前版本兼容的新内核可用时,kmod-kvdo 软件包都会被重建。因此,系统在启动 VDO 卷时可以正常工作。

Bugzilla:2119819

VDO 驱动程序 bug 不再导致设备通过日志块冻结

在以前的版本中,VDO 驱动程序中的一个 bug 导致系统将一些日志块标记为等待元数据更新。当增大 VDO 池或其上逻辑卷的大小时,或者使用 pvmovelvchange 对 LVM 工具管理的 VDO 设备进行操作时,会触发此问题。这个 bug 是由不完整的重置导致的,使一些日志页无法使用,以及对恢复日志中有多少插槽可供填充的错误认识造成的。因此,该设备会冻结。

这个问题现已使用虚拟数据优化器 kmod-kvdo-6.2.8.1-87.el8 的内核模块的最新版本修复了。目前,所有不完整的元数据块都会分阶段保存在代码的每一部分中,同时也更新了内存数据结构,并在恢复时重置了状态(如果需要的话)。有了此修复,因为这个问题,用户不再会出现设备冻结的问题。

Bugzilla:2109047

8.9. 高可用性和集群

pcs 不再允许您修改不应更改的集群属性

在以前的版本中,pcs 命令行界面允许您修改不应更改或更改不起作用的集群属性。有了这个修复,pcs 不再允许您修改这些集群属性:cluster-infrastructurecluster-namedc-versionhave-watchdoglast-lrm-refresh

Bugzilla:2112263

pcs 现在显示没有明确配置的集群属性

在以前的版本中,要显示特定集群属性值的 pcs 命令不会列出 CIB 中没有明确配置的值。有了这个修复,如果集群属性没有设置, pcs 会显示属性的默认值。

Bugzilla:2112267

调用 crm_mon 的集群资源现在在关闭时完全停止

在以前的版本中,crm_mon 工具会在 Pacemaker 关闭过程中返回一个非零退出状态。在监控操作中调用 crm_mon 的资源代理(如 ocf:heartbeat:pqsql )可能会在集群关闭时错误地返回一个错误。有了这个修复,即使集群处于关闭过程中,crm_mon 也会返回成功。现在,调用 crm_mon 的资源会在集群关闭时完全停止。

Bugzilla:2133497

OCF 资源代理元数据操作现在可以调用 crm_node,而不会导致意外隔离

从 RHEL 8.5 开始,OCF 资源代理元数据操作会阻止控制器,crm_node 查询会执行控制器请求。因此,如果代理的元数据操作调用 crm_node,则它将阻止控制器 30 秒,直到操作超时为止。这可能导致其他操作失败,并使节点被隔离。

有了这个修复,控制器会异步执行元数据操作。OCF 资源代理元数据操作现在可以调用 crm_node 而没有任何问题。

Bugzilla:2121852

启用单个资源并监控操作不再为资源组中的所有资源启用监控操作

在以前的版本中,在不管理资源组中所有资源和监控操作后,管理该组中的一个资源及其监控操作,会为资源组中的所有资源重新启用监控操作。这可能会出发意外的集群行为。

有了这个修复,管理资源和重新启用其监控操作只会重新启用对该资源的监控操作,而不会启用对资源组中其他资源的监控操作。

Bugzilla:1918527

Pacemaker 现在会在资源顺序更改时立即重新检查资源分配

从 RHEL 8.7 开始,当 CIB 中的资源顺序发生改变而没有更改资源定义时,Pacemaker 不会重新检查资源分配。如果配置重新排序会导致资源移动,则这不会在下一次自然转换前发生,直到达到值 cluster-recheck-interval-property 为止。如果没有为资源配置粘性,这可能会导致问题。

有了这个变化,当 CIB 中的资源顺序更改时,Pacemaker 会重新检查资源分配,就像之前的 Pacemaker 版本所做的那样。如果需要,现在集群会立即响应这些更改。

Bugzilla:2122806

8.10. 编译器和开发工具

您可以使用 pip 在所有构架上安装 SciPy

在以前的版本中,openblas-devel 软件包不包含 OpenBLAS 库的 pkg-config 文件。因此,在某些情况下,在使用 OpenBLAS 编译时,无法使用 pkgconf 工具确定编译器和链接器标志。例如,这会导致 64 位 IBM Z 和 IBM Power Systems Little Endian 架构上 pip install scipy 命令失败。

这个更新向所有支持的构架上的 openblas-devel 软件包中添加了 openblas.pc 文件。因此,您可以使用 pip 软件包安装程序安装 SciPy 库。

Bugzilla:2115722

go 中的函数不再导致内存泄漏

在以前的版本中,EVP_PKEY_sign_rawEVP_PKEY_verify_raw 函数没有调用 free 来清理内存。因此,内存泄漏了且没有被恢复。有了此更新,EVP_PKEY_sign_rawEVP_PKEY_verify_raw 函数现在调用 free ,且内存不会泄漏。

Bugzilla:2132767

在 x509 FIPS 模式下,golang 现在支持 4096 位密钥

在以前的版本中,在 x509 FIPS 模式下,golang 不支持 4096 位密钥。因此,当用户使用 4096 位密钥时,程序会崩溃。有了这个更新,在 x509 FIPS 模式下,golang 现在支持 4096 位密钥。

Bugzilla:2132694

libffi 现在可以探测启用了 SELinux 的可执行内存

默认情况下,当启用了 SELinux 时,libffi 不会探测可执行文件内存。因此,在启用了 SELinux 时,使用 libffi 关闭和 fork() ,而没有立即执行其它一些进程的程序会意外终止。有了这个更新,libffi 会查找 /etc/sysconfig/libffi-force-shared-memory-check-first 文件,如果存在,无论是否启用了 SELinux,都会探测可执行内存。因此,使用 libffi 的程序可以在不启用 SELinux 的情况下安全地 fork () 而不会崩溃。

Bugzilla:2014228

golangOpenSSL 绑定中实现了 big endian 支持

在以前的版本中,golangOpenSSL 绑定不支持 big endian,导致了 BigInt 值转换的潜在问题。因此,加密例程无法执行这个转换。要解决这个问题,在 golangOpenSSL 绑定中实现了 big-endian 支持。因此,从 BigInt 的转换现在可以成功,测试会如期通过。

Bugzilla:2132419

8.11. 身份管理

现在,对外部 IdP 进行身份验证都需要客户端 secret

在以前的版本中,SSSD 无法正确将客户端 secret 传给外部身份提供者(IdP)。因此,针对之前使用 ipa idp-add --secret 命令配置的需要一个客户端 secret 的外部 IdP 的身份验证会失败。有了这个更新,SSSD 将客户端 secret 传给 IdP,用户可以进行身份验证。

Jira:RHELPLAN-148303

IdM 现在支持使用 Ansible 为 sudo 规则设置 hostmask

在以前的版本中,ipa sudorule-add-host 命令允许设置 sudo 规则使用的 hostmask,但此选项没有出现在 ansible-freeipa 软件包中。有了这个更新,您现在可以使用 ansible-freeipa hostmask 变量定义一个 hostmask 的列表,以便身份管理中定义的一个特定的 sudo 规则应用于此表。

现在,您可以使用 Ansible 自动为 IdM sudo 规则设置主机掩码。

Bugzilla:2127912

changelog 压缩的调度时间现在可以正常工作

在以前的版本中,当为 changelog 压缩配置了自定义调度时间时,服务器不会应用新设置,并且 changelog 压缩可能会在峰值时间启动。在这个版本中,服务器可以正确地应用 changelog 压缩的自定义时间。

Bugzilla:2130276

当可信 AD 用户的名称包含混合问题单字符时,IdM 客户端可以正确地检索它们的信息

在以前的版本中,如果您尝试用户查找或用户的身份验证,并且可信活动目录(AD)用户在其名称中包含混合大小写字符,且在 IdM 中使用覆盖进行了配置,则会返回一个错误,阻止用户访问 IdM 资源。

随着 RHBA-2023:4525 的发布,不区分大小写的比较被忽略字符大小写的不区分大小写比较所替代。因此,IdM 客户端现在可以查找 AD 可信域的用户,即使其用户名包含混合大小写字符,且它们在 IdM 中使用覆盖进行了配置。

JIRA:SSSD-6096

8.12. 图形基础架构

Matrox G200e 现在可以与 VGA 显示一起工作

在以前的版本中,如果您使用以下系统配置,您的显示可能没有显示图形输出:

  • Matrox G200e GPU
  • 通过 VGA 控制器连接的显示器

因此,您不能在此配置上使用或安装 RHEL。

有了此更新,这个问题已被解决。因此,RHEL 会按预期引导并显示图形输出。

Bugzilla:2130159

8.13. Web 控制台

Web 控制台 NBDE 绑定步骤现在也适用于带有根文件系统的卷组

在 RHEL 8.8.0 中,由于用来确定用户是否向 root 文件系统中添加 Tang 密钥的代码中有一个 bug,当 LUKS 容器上没有文件系统时,web 控制台中的绑定进程会崩溃。因为在点击了 Verify key 对话框中的 Trust key 按钮后, web 控制台会显示出错信息 TypeError: Qe (…​) is undefined,所以您必须在上述场景中的命令行界面中执行所有必要的步骤。

随着 RHBA-2023:3829 公告的发布,Web 控制台可以正确地处理将 Tang 密钥添加到 root 文件系统。因此,web 控制台完成了在不同场景中使用 Network-Bound Disk Encryption (NBDE)自动解锁 LUKS 加密卷所需的所有绑定步骤。

Bugzilla:2212371

8.14. Red Hat Enterprise Linux 系统角色

nbde_client 系统角色现在可以正确地处理 clevis-luks-askpass的不同名称。

nbde_client 系统角色已更新,以处理在其上 clevis-luks-askpass systemd 单元有不同名称的系统。该角色现在可以与受管节点上的 clevis-luks-askpass 不同的名称一起正常工作,这需要解锁在引导过程后期挂载的 LUKS 加密的卷。

Bugzilla:2126960

ha_cluster 系统角色日志不再显示未加密的密码和 secret

ha_cluster 系统角色接受可以是 password 或其他 secret 的参数。在以前的版本中,一些任务会记录其输入和输出。因此,角色日志可能包含未加密的密码和其他 secret。

有了这个更新,任务已被修改为使用 Ansible no_log: true 指令,任务输出不再在角色日志中显示。ha_cluster 系统角色日志不再包含密码和其他 secret。虽然此次更新保护了安全信息,但在调试配置时,角色日志现在提供可以使用的较少的信息。

Bugzilla:2127497

使用 ha_cluster 系统角色配置使用 SBD 的,且在引导时不启动的集群现在可以正常工作

在以前的版本中,如果用户使用 ha_cluster 系统角色配置了使用 SBD ,且不在引导时启动的集群,则 SBD 服务会被禁用,且 SBD 不能启动。有了这个修复,如果集群被设置为使用 SBD,而不管集群是否配置为在引导时启动,SBD 服务总是被启用。

Bugzilla:2153081

使用 ha_cluster 系统角色设置 stonith-watchdog-timeout 属性现在可以在停止的集群中正常工作

在以前的版本中,当您使用 ha_cluster 系统角色在停止的集群中设置 stonith-watchdog-timeout 属性时,属性会恢复回之前的值,角色会失败。有了这个修复,使用 ha_cluster 系统角色配置 stonith-watchdog-timeout 属性可以正常工作。

Bugzilla:2167941

启用隐式文件提供程序来修复 rhel-system-roles SSSD 配置

禁用的 SSSD 隐式文件提供程序导致 rhel-system-roles 模块创建无效的系统安全服务守护进程(SSSD)配置。此更新无条件地启用文件提供程序,因此 rhel-system-roles 创建的 SSSD 配置现在可以按预期工作。

Bugzilla:2153080

在通过 networking RHEL 系统角色使用 initscripts 时,网络流量现在被定向到预期的网络接口

在以前的版本中,当使用 initscripts 提供程序时,网络连接的路由配置没有指定流量应该通过的输出设备。因此,内核可以使用与用户预期的输出设备不同的输出设备。现在,如果在 playbook 中为连接指定了网络接口名称,则它将用作路由配置文件中的输出设备。这与 NetworkManager 的行为一致后者会在设备上激活配置集时在路由中配置输出设备。因此,用户可以确保流量被定向到预期的网络接口。

Bugzilla:2168733

nbde_client_clevis 角色不再向用户报告回溯

在以前的版本中,nbde_client_clevis 角色有时会失败,从而导致回溯并报告敏感数据返回给用户,如 encryption_password 字段。有了这个更新,该角色不再报告敏感数据,只报告合适的错误消息。

Bugzilla:2162782

8.15. 虚拟化

嵌套虚拟机上的系统时间现在工作正常

在以前的版本中,在某些情况下,嵌套虚拟机(VM)上的系统时间与级别 0 和级别 1 主机不同步。这有时会导致嵌套虚拟机变得无响应或意外终止。

有了这个更新,KVM 主机内核代码中的时间处理代码已被修复,这可以防止上面描述的错误发生。

Bugzilla:2151854

虚拟机中的网络流量性能不再降低

在以前的版本中,在一些情况下,RHEL 虚拟机在处理高级别的网络流量时会降低性能。底层代码已被修复,网络流量性能不再会受到影响。

Bugzilla:2069047

使用 memfd 的虚拟机按预期运行

在以前的版本中,运行在 64 位 IBM Z 处理器架构上使用 memfd 支持具有巨页的虚拟机(VM)无法运行。有了这个更新,这个问题已被解决,使用 memfd 的虚拟机现在可以在 64 位 IBM Z 处理器构架上定义。现在,您可以运行使用 memfd 支持巨页的虚拟机。

Bugzilla:2117149

虚拟机中的系统时间现在与主机正确同步

在以前的版本中,KVM 模块执行实时时钟(RTC)同步的频率低于预期。因此,在 RHEL 8 上托管的虚拟机中的系统时间有时无法正确反映主机上的系统时间。此更新修复了 KVM 中的 RTC 调度,这可以防止上述问题发生。

Bugzilla:2135417

第 9 章 技术预览

这部分列出了 Red Hat Enterprise Linux 8.8 中提供的所有技术预览。

如需有关红帽对技术预览功能支持范围的信息,请参阅 技术预览功能支持范围

9.1. 基础架构服务

TuneD 的套接字 API 作为技术预览提供

通过 Unix 域套接字控制 TuneD 的套接字 API 现在作为技术预览提供。套接字 API 将一对一与 D-Bus API 映射,并为 D-Bus 不可用的情况提供替代通信方法。通过使用套接字 API,您可以控制 TuneD 守护进程来优化性能,并更改各种调优参数的值。套接字 API 默认被禁用,您可以在 tuned-main.conf 文件中启用它。

Bugzilla:2113900

9.2. 网络

AF_XDP 作为技术预览

Address Family eXpress Data Path (AF_XDP) 是设计用于处理高性能数据包。它包含 XDP,并允许通过编程方式将选定的数据包高效地重定向到用户空间应用,以便进一步处理。

Bugzilla:1633143

可作为技术预览的 XDP 功能

红帽提供了以下 eXpress Data Path(XDP)功能作为不受支持的技术预览:

  • 在 AMD 和 Intel 64 位以外的构架中载入 XDP 程序。请注意,libxdp 库不适用于 AMD 和 Intel 64 位的构架。
  • XDP 硬件卸载。

Bugzilla:1889737

TC 的多协议标签交换,作为技术预览提供

Multi-protocol Label Switching(MPLS)是一个内核内数据转发机制,用于跨企业网络路由流量。在 MPLS 网络中,接收数据包的路由器根据附加到数据包的标签决定数据包的其他路由。使用标签时,MPLS 网络可以处理带有特定特征的数据包。例如,您可以添加 tc 过滤器,以一致的方式管理从特定端口接收的数据包或执行特定类型的流量。

数据包进入企业网络后,MPLS 路由器对数据包执行多个操作,如 push 来添加标签、swap 来更新标签,以及 pop 来删除标签。MPLS 允许基于 RHEL 中的一个或多个标签在本地定义操作。您可以配置路由器并设置流量控制(tc)过滤器,根据 MPLS 标签堆栈条目(lse)元素来对数据包执行相应的操作,如 labeltraffic classbottom of stack 以及 time to live

例如,以下命令在 enp0s1 网络接口中添加过滤器以匹配传入的数据包,第一个标签为 12323,第二个标签为 45832。在匹配的数据包中,会执行以下操作:

  • 第一个 MPLS TTL 被缩减(如果 TTL 到达 0,则会丢弃数据包)
  • 第一个 MPLS 标签被改为 549386
  • 生成的数据包通过 enp0s2 传输,目标 MAC 地址为 00:00:5E:00:53:01,源 MAC 地址为 00:00:5E:00:53:02

    # tc filter add dev enp0s1 ingress protocol mpls_uc flower mpls lse depth 1 label 12323 lse depth 2 label 45832 \
    action mpls dec_ttl pipe \
    action mpls modify label 549386 pipe \
    action pedit ex munge eth dst set 00:00:5E:00:53:01 pipe \
    action pedit ex munge eth src set 00:00:5E:00:53:02 pipe \
    action mirred egress redirect dev enp0s2

Bugzilla:1814836, Bugzilla:1856415

act_mpls 模块作为技术预览提供

act_mpls 模块现在作为技术预览在 kernel-modules-extra rpm 中找到。该模块允许使用流量控制(TC)过滤器进行多协议标签交换(MPLS)操作,例如:通过 TC 过滤器推送和弹出 MPLS 标签堆栈条目。模块还允许独立设置 Label、Traffic Class、Stack 的 Bottom 和 Time to Live 字段。

Bugzilla:1839311

systemd-resolved 服务现在作为技术预览提供

systemd-resolved 服务为本地应用提供名字解析。该服务实现了缓存和验证 DNS 存根解析器、链接本地多播名称解析(LLMNR)和多播 DNS 解析器和响应器。

请注意,即使 systemd 软件包提供了 systemd -resolved,这个服务仍是一个不受支持的技术预览。

Bugzilla:1906489

KTLS 作为技术预览提供

RHEL 作为技术预览提供内核传输层(KTLS)。KTLS 使用内核中的对称加密或者解密算法为 AES-GCM 密码处理 TLS 记录。KTLS 还包括将 TLS 记录加密卸载到提供此功能的网络接口控制器(NIC)的接口。

Bugzilla:1570255

9.3. 内核

soft-RoCE 作为技术预览提供

通过融合以太网的远程直接内存访问(RDMA)是一个通过以太网实现 RDMA 的网络协议。Soft-RoCE 是 RoCE 的软件实现,它维护两个协议版本:RoCE v1 和 RoCE v2。在 RHEL 8 中,Soft-RoCE 驱动程序 rdma_rxe 作为不受支持的技术预览提供。

Bugzilla:1605216

eBPF 作为技术预览

Extended Berkeley Packet Filter(eBPF) 是一个内核中的虚拟机,允许在可访问有限功能的受限沙箱环境中在内核空间中执行代码。

虚拟机包含一个新的系统调用 bpf(),它允许创建各种类型的映射,还允许在特殊的装配式代码中加载程序。然后,代码被加载到内核,并使用即时编译方式转换为原生机器代码。请注意,只有具有 CAP_SYS_ADMIN 能力的用户(如 root 用户)才可以成功使用 bpf() syscall。如需更多信息,请参阅 bpf(2) 手册页。

载入的程序可附加到不同的点(套接字、追踪点、数据包)来接收和处理数据。

红帽提供的很多组件都使用 eBPF 虚拟机。每个组件都处于不同的开发阶段。所有组件都作为技术预览提供,除非有特定组件被显示为受支持。

以下显著的 eBPF 组件当前还作为技术预览提供:

  • AF_XDP,是一个套接字,用于将eXpress Data Path (XDP)路径连接到优先考虑数据包处理性能的应用程序的用户空间。

Bugzilla:1559616

kexec 快速重启功能作为一种技术预览提供

kexec 快速重启功能作为一种技术预览继续提供。kexec 快速重启可显著加快引导过程,因为您可以直接引导到第二个内核,而无需首先通过基本输入/输出系统(BIOS)或固件。要使用这个功能:

  1. 手动加载 kexec 内核。
  2. 重启以使更改生效。

请注意,kexec 快速重启功能在 RHEL 9 及更新的版本中提供有限的支持范围。

Bugzilla:1769727

用于内核的 Intel 数据流加速器驱动程序作为技术预览提供

内核的 Intel 数据流加速器驱动程序(IDXD)目前作为技术预览提供。它是一个 Intel CPU 集成加速器,包括一个带有处理地址空间 ID(pasid)提交和共享虚拟内存(SVM)的共享工作队列。

Bugzilla:1837187

accel-config 软件包作为技术预览提供

accel-config 软件包现在作为技术预览在 Intel EM64TAMD64 构架上提供。这个软件包有助于控制并配置 Linux 内核中的数据流化器(DSA)子系统。另外,它还通过 sysfs (pseudo-文件系统)配置设备,以 json 格式保存并载入配置。

Bugzilla:1843266

SGX 作为技术预览

软件扩展(SGX)是一个 Intel® 技术,用于保护软件代码和数据不受公开和修改的影响。RHEL 内核部分提供 SGX v1 和 v1.5 功能。版本 1 使用 Flexible Launch Control 机制启用平台,以使用 SGX 技术。版本 2 添加了 Enclave Dynamic Memory Management (EDMM)。主要特性包括:

  • 修改属于初始化 enclave 的常规 enclave 页的 EPCM 权限。
  • 动态将常规 enclave 页添加到初始化的 enclave。
  • 扩展初始化的 enclave ,以容纳更多线程。
  • 从初始化的 enclave 中删除常规的 enclave 页和 TCS 页。

Bugzilla:1660337

9.4. 文件系统和存储

现在 ext4 和 XFS 作为技术预览提供文件系统 DAX

在 Red Hat Enterprise Linux 8 中,文件系统 DAX 作为技术预览提供。DAX 提供了将持久内存直接映射到其地址空间的方法。要使用 DAX,系统必须有某种形式的持久性内存可用,通常是以一个或多个非易失性双内联内存模块(NVDIMM)的形式,并且提供 DAX 能力的文件系统必须在 NVDIMM 上创建。另外,该文件系统必须使用 dax 挂载选项挂载。然后,挂载了 dax 的文件系统上的文件的 mmap 会导致存储直接映射到应用程序的地址空间。

Bugzilla:1627455

OverlayFS

OverlayFS 是一种联合文件系统。它允许您在另一个文件系统上覆盖一个文件系统。更改记录在上面的文件系统中,而较小的文件系统则未修改。这允许多个用户共享文件系统镜像,如容器或 DVD-ROM,基础镜像使用只读介质。

在大多数情况下,OverlayFS 仍是一个技术预览。因此,当这个技术被激活时,内核会记录警告信息。

与支持的容器引擎(podmancri-obuildah)一同使用时,对 OverlayFS 提供的全面支持包括以下限制:

  • OverlayFS 仅支持作为容器引擎图形驱动程序或其他专用用例使用,如 squashed kdump initramfs。它主要用于容器 COW 内容,不支持持久性存储。您必须将任何持久性存储放在非OverlayFS 卷中。您只能使用默认容器引擎配置:一个级别的覆盖、一个较低 dir 以及较低级别和上一级都位于同一个文件系统中。
  • 目前只支持 XFS 作为较低层文件系统使用。

另外,以下规则和限制适用于使用 OverlayFS:

  • OverlayFS 内核 ABI 和用户空间的行为被视为不稳定,将来的更新可能会改变。
  • OverlayFS 提供一组受限的 POSIX 标准。在使用 OverlayFS 部署前,先测试您的应用程序。以下情况与 POSIX 不兼容:

    • O_RDONLY 打开的较低文件在读取文件时不会接收 st_atime 更新。
    • 使用 O_RDONLY 打开的较低文件,然后与 MAP_SHARED 映射与后续修改不一致。
    • RHEL 8 中不默认启用完全兼容 st_inod_ino 值,但您可以使用模块选项或挂载选项为它们启用完整的 POSIX 合规性。

      要获得一致的内节点编号,请使用 xino=on 挂载选项。

      您还可以使用 redirect_dir=onindex=on 选项提高 POSIX 合规性。这两个选项使上层的格式与没有这些选项的 overlay 不兼容。也就是说,如果您使用 redirect_dir=onindex=on 创建覆盖,卸载覆盖,然后在没有这些选项的情况下挂载覆盖,则可能会出现意外的结果或错误。

  • 要确定现有 XFS 文件系统是否有资格用作 overlay,请使用以下命令查看是否启用了 ftype=1 选项:

    # xfs_info /mount-point | grep ftype
  • 使用 OverlayFS 在所有支持的容器引擎中默认启用 SELinux 安全标签。
  • 本发行版本中与 OverlayFS 相关的几个已知问题。详情请查看 Linux 内核文档 中的 非标准行为

有关 OverlayFS 的更多信息,请参阅 Linux 内核文档

Bugzilla:1690207

Stratis 现在作为技术预览提供

Stratis 是一个新的本地存储管理器,它使用额外的功能在存储池之上提供受管的文件系统。它作为技术预览提供。

使用 Stratis,您可以执行以下存储任务:

  • 管理快照和精简配置
  • 根据需要自动增大文件系统大小
  • 维护文件系统

要管理 Stratis 存储,使用 stratis 工具来与 stratisd 后台服务进行通信。如需更多信息,请参阅 设置 Stratis 文件系统 文档。

RHEL 8.5 将 Stratis 更新至版本 2.4.2。如需更多信息,请参阅 Stratis 2.4.2 发行注记

Jira:RHELPLAN-1212

NVMe/TCP 主机作为技术预览提供

访问和共享通过 TCP/IP 网络(NVMe/TCP)的 Nonvolatile Memory Express(NVMe/TCP)存储及其相应的 nvme_tcp.ko 内核模块已被添加为技术预览。使用 nvme-cli 软件包提供的工具可以将 NVMe/TCP 作为主机管理。NVMe/TCP 主机技术预览仅用于测试目的,目前没有计划提供全面支持。

Bugzilla:1696451

在 IdM 域成员中设置 Samba 服务器作为技术预览提供

在这个版本中,您可以在 Identity Management(IdM)域成员中设置 Samba 服务器。由同名软件包提供的新 ipa-client-samba 程序为 IdM 添加了特定于 Samba 的 Kerberos 服务主体并准备 IdM 客户端。例如,实用程序使用 sss ID 映射后端的 ID 映射配置创建 /etc/samba/smb.conf。现在,管理员可以在 IdM 域成员中设置 Samba。

由于 IdM Trust Controller 不支持全局目录服务,AD-enrolled Windows 主机无法在 Windows 中找到 IdM 用户和组。另外,IdM Trust Controller 不支持使用分布式计算环境/远程过程调用(DCE/RPC)协议解析 IdM 组。因此,AD 用户只能访问 IdM 客户端的 Samba 共享和打印机。

详情请查看在 IdM 域成员中设置 Samba

Jira:RHELPLAN-13195

9.5. 高可用性和集群

pacemaker podman bundles 作为技术预览

pacemaker 容器捆绑包现在在 Podman 上运行,容器捆绑包功能作为技术预览提供。此功能的一个例外是技术预览:红帽完全支持将 Pacemaker 捆绑包用于 Red Hat OpenStack。

Bugzilla:1619620

作为技术预览的 corosync-qdevice 中的 Heuristics

Heuristics是一组在启动、集群成员资格更改、成功连接到 corosync-qnetd 时本地执行的命令,以及可选的定期执行的命令。当所有命令及时成功完成(返回的错误代码为零),代表 heuristics 通过,否则代表失败。Heuristics 结果发送到 corosync-qnetd,在计算中用来决定哪个分区应该是 quorate。

Bugzilla:1784200

新的 fence-agents-heuristics-ping 保护代理

作为技术预览,Pacemaker 现在提供 fence_heuristics_ping 代理。这个代理旨在打开一组实验性保护代理,它们本身没有实际隔离,而是以新的方式利用隔离级别。

如果 heuristics 代理的配置与用于实现实际隔离代理有相同的隔离级别,但在代理之前配置,隔离会在试图进行隔离前,在 heuristics 代理上发出一个 off 操作。如果 heuristics 代理给出了 off 操作的一个负结果,则代表隔离不成功,从而导致 Pacemaker 隔离跳过对实现隔离的代理发出 off 动作的步骤。heuristics 代理可以利用这个行为来防止实际上进行隔离的代理在特定情况下隔离节点。

用户可能希望使用这个代理,特别是在双节点集群中,如果节点可以预先知道无法正确接管该服务,则节点可以隔离这个代理。例如,如果节点在网络连接链接出现问题,使服务无法访问客户端,则节点接管服务可能不真实。在这种情况下,向路由器的 ping 可能会探测到这个情况。

Bugzilla:1775847

9.6. 身份管理

身份管理 JSON-RPC API 作为技术预览

一个 API 可用于 Identity Management(IdM)。要查看 API,IdM 还提供了一个 API 浏览器作为技术预览。

在以前的版本中,IdM API 被改进来启用多个 API 命令版本。这些增强可能会以不兼容的方式改变命令的行为。用户现在可以继续使用已有的工具和脚本,即使 IdM API 发生了变化。这可启用:

  • 管理员要在服务器中使用之前或更高版本的 IdM,而不是在管理客户端中使用。
  • 开发人员可以使用 IdM 调用的特定版本,即使 IdM 版本在服务器上发生了变化。

在所有情况下,与服务器进行通信是可能的,无论是否一方使用,例如,一个新的版本会为这个功能引进新的选项。

有关使用 API 的详细信息,请参阅使用身份管理 API 与 IdM 服务器通信(TECHNOLOGY PREVIEW)

Bugzilla:1664719

DNSSEC 在 IdM 中作为技术预览提供

带有集成 DNS 的身份管理(IdM)服务器现在实现了 DNS 安全扩展(DNSSEC),这是一组增强 DNS 协议安全的 DNS 扩展。托管在 IdM 服务器上的 DNS 区可以使用 DNSSEC 自动签名。加密密钥是自动生成和轮转的。

建议那些决定使用 DNSSEC 保护 DNS 区的用户读取并遵循这些文档:

请注意,集成了 DNSSEC 的 IdM 服务器验证从其他 DNS 服务器获取的 DNS 答案。这可能会影响未按照推荐的命名方法配置的 DNS 区域可用性。

Bugzilla:1664718

ACME 作为技术预览提供

自动证书管理环境(ACME)服务现在作为技术预览在 Identity Management(IdM)中提供。ACME 是一个用于自动标识符验证和证书颁发的协议。它的目标是通过缩短证书生命周期并避免证书生命周期管理中的手动过程来提高安全性。

在 RHEL 中,ACME 服务使用红帽认证系统(RHCS)PKI ACME 响应程序。RHCS ACME 子系统自动部署到 IdM 部署中的每个证书颁发机构(CA)服务器上,但只有管理员启用它之后,它才会为请求提供服务。RHCS 在发布 ACME 证书时使用 acmeIPAServerCert 配置文件。签发的证书的有效期为 90 天。启用或禁用 ACME 服务会影响整个 IdM 部署。

重要

建议仅在所有服务器都运行 RHEL 8.4 或以上版本的 IdM 部署中启用 ACME。早期的 RHEL 版本不包括 ACME 服务,这可能会在混合版本部署中引起问题。例如,没有 ACME 的 CA 服务器可能会导致客户端连接失败,因为它使用不同的 DNS Subject Alternative Name(SAN)。

警告

目前,RHCS 不会删除过期的证书。由于 ACME 证书在 90 天后过期,因此过期的证书可能会累积,这会影响性能。

  • 要在整个 IdM 部署中启用 ACME,请使用 ipa-acme-manage enable 命令:

    # ipa-acme-manage enable
    The ipa-acme-manage command was successful
  • 要在整个 IdM 部署中禁用 ACME,请使用 ipa-acme-manage disable 命令:

    # ipa-acme-manage disable
    The ipa-acme-manage command was successful
  • 要检查是否安装了 ACME 服务,以及它是否启用或禁用了,请使用 ipa-acme-manage status 命令:

    # ipa-acme-manage status
    ACME is enabled
    The ipa-acme-manage command was successful

Bugzilla:1628987

sssd-idp 子软件包作为技术预览提供

SSSD 的 sssd-idp 子软件包包含 oidc_child 和 krb5 idp 插件,它们是对身份管理(IdM)服务器执行 OAuth2 身份验证的客户端组件。此功能仅适用于 RHEL 8.7 及更高版本上的 IdM 服务器。

Bugzilla:2065692

SSSD 内部 krb5 idp 插件作为技术预览提供

SSSD krb5 idp 插件允许您使用 OAuth2 协议对外部身份提供者(IdP)进行身份验证。此功能仅适用于 RHEL 8.7 及更高版本上的 IdM 服务器。

Bugzilla:2056483

RHEL IdM 允许将用户身份验证委派给外部身份提供程序作为技术预览

作为 RHEL IdM 中的技术预览,您现在可以将用户与支持 OAuth 2 设备授权流的外部身份提供者(IdP)关联。当这些用户使用 RHEL 8.7 或更高版本中提供的 SSSD 版本进行身份验证时,它们会在执行身份验证和在外部 IdP 授权后得到带有 Kerberos 票据的 RHEL IdM 单点登录功能。

主要特性包括:

  • 使用 ipa idp-* 命令为外部 IdP 添加、修改和删除引用
  • 使用 ipa user-mod --user-auth-type=idp 命令为用户启用 IdP 验证

如需更多信息,请参阅 使用外部身份提供程序向 IdM 进行身份验证

Bugzilla:2101770

9.7. 桌面

GNOME 用于 64 位 ARM 架构,作为一个技术预览

GNOME 桌面环境可用于 64 位 ARM 架构,作为技术预览。

现在,您可以使用 VNC 连接到 64 位 ARM 服务器上的桌面会话。因此,您可以使用图形应用程序管理服务器。

64 位 ARM 提供了有限的图形应用程序集合。例如:

  • Firefox Web 浏览器
  • Red Hat 订阅管理器 (subscription-manager-cockpit)
  • 防火墙配置(firewall-config)
  • 磁盘用量分析器(baobab)

使用 Firefox,您可以连接到服务器上的 Cockpit 服务。

某些应用程序,如 LibreOffice ,只提供命令行界面,其图形界面被禁用。

Jira:RHELPLAN-27394, Bugzilla:1667225, Bugzilla:1724302, Bugzilla:1667516

用于 IBM Z 架构的 GNOME 作为技术预览提供

对于 IBM Z 架构,GNOME 桌面环境作为技术预览。

现在,您可以使用 VNC 连接到 IBM Z 服务器上的桌面会话。因此,您可以使用图形应用程序管理服务器。

IBM Z 上提供了一组有限的图形应用程序。例如:

  • Firefox Web 浏览器
  • Red Hat 订阅管理器 (subscription-manager-cockpit)
  • 防火墙配置(firewall-config)
  • 磁盘用量分析器(baobab)

使用 Firefox,您可以连接到服务器上的 Cockpit 服务。

某些应用程序,如 LibreOffice ,只提供命令行界面,其图形界面被禁用。

Jira:RHELPLAN-27737

9.8. 图形基础结构

VNC 远程控制台作为 64 位 ARM 架构的一个技术预览提供

在 64 位 ARM 架构中,虚拟网络计算(VNC)远程控制台可作为技术预览使用。请注意,在 64 位 ARM 架构中,目前图形堆栈的其它部分没有被验证。

Bugzilla:1698565

Intel Arc A 系列图形作为技术预览提供

Intel Arc A 系列图形(也称为 Alchemist 或 DG2)现在作为技术预览提供。

要启用带有 Intel Arc A 系列图形的硬件加速,请在内核命令行上添加以下选项:

i915.force_probe=pci-id

在这个选项中,将 pci-id 替换为以下之一:

  • Intel GPU 的 PCI ID。
  • * 字符,以启用具有所有 alpha-quality 硬件的 i915 驱动程序

Bugzilla:2041686

9.9. 虚拟化

KVM 虚拟化可用于 RHEL 8 Hyper-V 虚拟机

作为技术预览,现在可将嵌套的 KVM 虚拟化用于 Microsoft Hyper-V hypervisor。因此,您可以在运行在 Hyper-V 主机的 RHEL 8 虚拟机中创建虚拟机。

请注意,目前这个功能仅适用于 Intel 和 AMD 系统。另外,在一些情况下,Hyper-V 中不默认启用嵌套虚拟化。要启用它,请参阅以下文档:

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

Bugzilla:1519039

用于 KVM 虚拟机的 AMD SEV 和 SEV-ES

作为技术预览,RHEL 8 为使用 KVM 虚拟机的 AMD EPYC 主机提供安全加密虚拟化(SEV)功能。如果在虚拟机(VM)上启用,SEV 会加密虚拟机的内存来保护虚拟机被主机访问。这提高了虚拟机的安全性。

另外,增强的 Encrypted State 版本 SEV-ES)也作为技术预览提供。SEV-ES 在虚拟机停止运行时加密所有 CPU 注册内容。这可防止主机修改虚拟机的 CPU 注册或读取它们中的任何信息。

请注意,SEV 和 SEV-ES 仅适用于第 2 代 AMD EPYC CPU(代号 Rome)或更新版本。另请注意,RHEL 8 包括 SEV 和 SEV-ES 加密,但不包括 SEV 和 SEV-ES 安全认证。

Bugzilla:1501618, Bugzilla:1501607, Jira:RHELPLAN-7677

Intel vGPU

作为技术预览,现在可以将物理 Intel GPU 设备划分为多个虚拟设备(称为 mediated devices)。然后可将这些 mediated devices 分配给多个虚拟机(VM)作为虚拟 GPU。因此,这些虚拟机共享单个物理 Intel GPU 的性能。

请注意,只有所选 Intel GPU 与 vGPU 功能兼容。

另外,也可以启用由 Intel vGPU 操作的 VNC 控制台。通过启用它,用户可以连接到虚拟机的 VNC 控制台,并查看由 Intel vGPU 托管的虚拟机桌面。但是,目前这仅适用于 RHEL 客户机操作系统。

Bugzilla:1528684

创建嵌套虚拟机

对于装有 RHEL 8 的 Intel、AMD64、IBM POWER 以及 IBM Z 系统主机上运行的 KVM 虚拟机,嵌套的 KVM 虚拟化作为技术预览提供。使用此功能,在物理 RHEL 8 主机上运行的 RHEL 7 或 RHEL 8 虚拟机可作为虚拟机监控程序,并托管自己的虚拟机。

Jira:RHELPLAN-14047, Jira:RHELPLAN-24437

技术预览:选择 Intel 网络适配器现在在 Hyper-V 上的 RHEL 客户端中提供 SR-IOV

作为技术预览,运行在 Hyper-V hypervisor 上的 Red Hat Enterprise Linux 客户机操作系统现在可以对 ixgbevfiavf 驱动程序支持的 Intel 网络适配器使用单根 I/O 虚拟化(SR-IOV)功能。此功能在满足以下条件时启用:

  • 对网络接口控制器(NIC)启用了 SR-IOV 支持
  • 对虚拟 NIC 启用了 SR-IOV 支持
  • 对虚拟交换机启用 SR-IOV 支持
  • NIC 中的虚拟功能(VF)附加到虚拟机

该功能目前随 Microsoft Windows Server 2016 及更高版本一起提供。

Bugzilla:1348508

RHEL 客户机中的 Intel TDX

作为技术预览,Intel Trust Domain Extension (TDX)功能现在可以在 RHEL 8.8 客户机操作系统中使用。如果主机系统支持 TDX,您可以部署硬件隔离的 RHEL 9 虚拟机(VM),称为信任域(TD)。但请注意,TDX 目前无法与 kdump 一起工作,启用 TDX 会导致 kdump 在虚拟机上失败。

Bugzilla:1836977

使用 virtiofs 在主机和虚拟机之间共享文件

作为技术预览,RHEL 8 现在提供 virtio 文件系统(virtiofs)。使用 virtiofs,您可以在主机系统及其虚拟机(VM)之间高效地共享文件。

Bugzilla:1741615

9.10. 云环境中的 RHEL

RHEL 机密虚拟机现在在 Azure 上作为技术预览提供

有了更新的 RHEL 内核,现在您可以在 Microsoft Azure 上创建并运行机密虚拟机(VM)作为技术预览。但是,在 Azure 上引导时无法加密 RHEL 机密虚拟机镜像。

Jira:RHELPLAN-122316

9.11. 容器

具有 Fulcio 和 Rekor 的 sigstore 签名的客户端现在作为技术预览提供

有了 Fulcio 和 Rekor 服务器,您现在可以根据 OpenID Connect (OIDC)服务器身份验证使用短期证书来创建签名,而不是手动管理私钥。具有 Fulcio 和 Rekor 的 sigstore 签名的客户端现在作为技术预览提供。这个添加的功能只是客户端侧支持,不包括 Fulcio 或 Rekor 服务器。

policy.json 文件中添加 fulcio 部分。要签署容器镜像,请使用 podman push --sign-by-sigstore=file.ymlskopeo copy --sign-by-sigstore=file.yml 命令,其中 file.yml 是 sigstore 签名参数文件。

要验证签名,请在 policy.json 文件中添加 fulcio 部分和 rekorPublicKeyPathrekorPublicKeyData 字段。如需更多信息,请参阅 containers-policy.json 手册页。

Jira:RHELPLAN-136610

Podman 中的 Quadlet 现在作为技术预览提供

从 Podman v4.4 开始,您可以作为技术预览,使用 Quadlet 从容器描述中自动生成 systemd 服务文件。容器描述采用 systemd 单元文件格式。该描述侧重于相关的容器详情,隐藏了在 systemd 下运行容器的技术复杂性。与 systemd 单元文件相比,Qdlet 更易于编写和维护。

如需了解更多详细信息,请参阅 上游文档 ,以及 使 systemd 更好地用于带有 Quadlet 的 Podman

Jira:RHELPLAN-148394

podman-machine 命令不被支持

用于管理虚拟机的 podman-machine 命令仅作为技术预览提供。相反,请直接从命令行运行 Podman。

Jira:RHELDOCS-16861

第 10 章 过时的功能

这部分提供在 Red Hat Enterprise Linux 8 中弃用 的功能概述。

弃用的功能可能在以后的主要发行本中不被支持,因此不建议在新的部署中使用。有关特定主要发行本中已弃用功能的最新列表,请参考最新版本的发行文档。

在 Red Hat Enterprise Linux 8 中,已弃用的功能的支持状态保持不变。有关支持长度的详情,请查看 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 应用程序流生命周期

对于当前或将来的主发行版本中的新部署,我们不推荐使用已弃用的硬件组件。硬件驱动程序更新仅限于安全和关键修复。红帽建议尽快替换这个硬件。

一个软件包可以被弃用,我们不推荐在以后使用。在某些情况下,软件包可从产品中删除。然后,产品文档可识别提供类似、完全相同或者更高级功能的最新软件包,并提供进一步建议。

有关 RHEL 7 中存在但已在 RHEL 8 中删除的 功能的信息,请参阅 采用 RHEL 8 的注意事项

10.1. 安装程序和镜像创建

弃用了一些 Kickstart 命令和选项

在 RHEL 8 Kickstart 文件中使用以下命令和选项将会在日志中打印警告信息:

  • authauthconfig
  • device
  • deviceprobe
  • dmraid
  • install
  • lilo
  • lilocheck
  • mouse
  • multipath
  • bootloader --upgrade
  • ignoredisk --interactive
  • partition --active
  • reboot --kexec

如果只列出具体选项,则基础命令及其它选项仍可用且没有弃用。

有关 Kickstart 中的详情和相关更改,请参阅使用 RHEL 8 的参考事项文档中的 Kickstart 更改部分。

Bugzilla:1642765

ignoredisk Kickstart 命令的 --interactive 选项已被弃用

在以后的 Red Hat Enterprise Linux 版本中使用 --interactive 选项会导致严重安装错误。建议您修改 Kickstart 文件删除该选项。

Bugzilla:1637872

Kickstart autostep 命令已弃用

autostep 命令已弃用。有关这个命令的相关部分已从 RHEL 8 文档中删除。

Bugzilla:1904251

10.2. 订阅管理

subscription-manager 命令的 --token 选项已弃用

subscription-manager register 命令的 --token=<TOKEN> 选项是一种身份验证方法,可帮助将您的系统注册到红帽。这个选项取决于授权服务器提供的功能。默认授权服务器 subscription.rhsm.redhat.com 计划关闭此功能。因此,尝试使用 subscription-manager register --token=<TOKEN> 可能会失败,并显示以下错误消息:

Token authentication not supported by the entitlement server

您可以使用其他授权方法继续注册您的系统,例如包括 subscription-manager register 命令的成对的选项 --username / --password--org / --activationkey

Bugzilla:2170082

10.3. 软件管理

rpmbuild --sign 已弃用

从 RHEL 8.1 开始,rpmbuild --sign 命令被弃用。在以后的 Red Hat Enterprise Linux 版本中使用这个命令可能会导致错误。建议您使用 rpmsign 命令替代。

Bugzilla:1688849

10.4. Shell 和命令行工具

OpenEXR 组件已弃用

OpenEXR 组件已弃用。因此,对 EXR 镜像格式的支持已从 imagecodecs 模块中去掉了。

Bugzilla:1886310

dump 软件包中的 dump 工具已弃用

用于文件系统备份的 dump 工具已弃用,在 RHEL 9 中将不再提供。

在 RHEL 9 中,红帽建议根据使用情况使用 tarddbacula 、备份工具,对 ext2、ext3 和 ext4 文件系统提供了完整和安全的备份。

请注意,dump 软件包中的 restore 工具仍可用,在 RHEL 9 中也被支持,并作为 restore 软件包提供。

Bugzilla:1997366

RHEL 8 systemd 不再支持 hidepid=n 挂载选项

挂载选项 hidepid=n,其控制谁可以访问 /proc/[pid] 目录中的信息,与 RHEL 8 提供的 systemd 基础架构不兼容。

另外,使用这个选项可能会导致 systemd 启动的某些服务生成 SELinux AVC 拒绝信息,并阻止其他操作完成。

如需更多信息,请参阅有关的知识库解决方案 RHEL7 和 RHEL8 建议使用"hidepid=2"挂载 /proc ?

Bugzilla:2038929

/usr/lib/udev/rename_device 工具已被弃用

用于重命名网络接口的 udev 帮助工具 /usr/lib/udev/rename_device 已被弃用。

Bugzilla:1875485

ABRT 工具已被弃用

用于检测和报告应用程序崩溃的自动错误报告工具(ABRT) 在 RHEL 8 中已弃用。作为替代,使用 systemd-coredump 工具记录和存储核心转储,其是程序崩溃后自动生成的文件。

Bugzilla:2055826

ReaR crontab 已被弃用

rear 软件包中的 /etc/cron.d/rear crontab 已在 RHEL 8 中弃用,且不在 RHEL 9 中提供。crontab 会每晚检查磁盘布局是否已更改,如果发生了更改,则运行 rear mkrescue 命令。

如果您需要这个功能,在升级到 RHEL 9 后,请手动配置定期运行 ReaR。

Bugzilla:2083301

Bacula 中的 SQLite 数据库后端已被弃用

Bacula 备份系统支持多个数据库后端:PostgreSQL、MySQL 和 SQLite。SQLite 后端已被弃用,并将在以后的 RHEL 版本中不被支持。作为一种替代,迁移到其他一种后端(PostgreSQL 或 MySQL),且在新部署中不使用 SQLite 后端。

Bugzilla:2089399

raw 命令已被弃用

raw (/usr/bin/raw)命令已被弃用。在以后的 Red Hat Enterprise Linux 版本中使用这个命令可能会导致错误。

Jira:RHELPLAN-133171

10.5. 安全性

NSS SEED 密码已弃用

Mozilla Network Security Services (NSS) 库将不支持在以后的版本中使用 SEED 密码的 TLS 密码组合。为确保在 NSS 取消支持时依赖 SEED 密码的部署平稳过渡,红帽推荐对其它密码套件的支持。

请注意,在 RHEL 中,SEED 密码已经被默认禁用。

Bugzilla:1817533

TLS 1.0 和 TLS 1.1 已弃用

TLS 1.0 和 TLS 1.1 协议在 DEFAULT 系统范围的加密策略级别被禁用。如果需要使用启用的协议,如 Firefox 网页浏览器中的视频检查程序,把系统范围的加密策略切换到 LEGACY 级别:

# update-crypto-policies --set LEGACY

如需更多信息,请参阅红帽客户门户网站中的 RHEL 8 中的 强加密默认值和弱加密算法 知识库中的文章以及 update-crypto-policies(8)手册页。

Bugzilla:1660839

在 RHEL 8 中弃用 DSA

数字签名算法(DSA)在 Red Hat Enterprise Linux 8 中被视为已弃用。依赖于 DSA 密钥的身份验证机制在默认配置中不起作用。请注意,即使使用系统范围的 LEGACY 加密策略级别中,OpenSSH 客户端都不接受 DSA 主机密钥。

Bugzilla:1646541

fapolicyd.rules 已被弃用

包含允许和拒绝执行规则的文件的 /etc/fapolicyd/rules.d/ 目录替代了 /etc/fapolicyd/fapolicyd.rules 文件。fagenrules 脚本现在将此目录中的所有组件规则文件合并到 /etc/fapolicyd/compiled.rules 文件。/etc/fapolicyd/fapolicyd 中的规则仍由 fapolicyd 框架处理,但只是为了保证向后兼容。

Bugzilla:2054741

NSS中弃用了SSL2 Client Hello

传输层安全(TLS)协议版本 1.2 及更早版本允许以向后兼容安全套接字层(SSL)协议版本 2 的方式与 客户端 Hello 消息进行协商。网络安全服务(NSS)库中对这个功能的支持已被弃用,默认是禁用的。

需要这个功能支持的应用程序需要使用新的 SSL_ENABLE_V2_compatible_HELLO API 启用它。以后的 Red Hat Enterprise Linux 8 版本中可以完全删除对这个功能的支持。

Bugzilla:1645153

使用 /etc/selinux/config 运行时禁用 SELinux 现已弃用

使用 /etc/selinux/config 文件中的 SELINUX=disabled 选项禁用 SELinux 已被弃用。在 RHEL 9 中,当您只通过 /etc/selinux/config 禁用 SELinux 时,系统启动时会启用SELinux ,但没有载入任何策略。

如果您的情况确实需要完全禁用 SELinux,红帽建议通过在内核命令行中添加 selinux=0 参数来禁用 SELinux,如在标题为使用SELinux在引导时更改 SELinux模式部分中所述。

Bugzilla:1932222

ipa SELinux 模块从 selinux-policy中删除了

ipa SELinux 模块已从 selinux-policy 软件包中删除,因为不再维护它了。这个功能现在包括在 ipa-selinux 子软件包中。

如果您的场景需要在本地 SELinux 策略中使用 ipa 模块的类型或接口,请安装 ipa-selinux 软件包。

Bugzilla:1461914

TPM 1.2 已被弃用

可信平台模块(TPM)安全加密处理器标准将在 2016 年更新至版本 2.0。TPM 2.0 比 TPM 1.2 提供了很多改进,它和之前的版本不向后兼容。在 RHEL 8 中弃用了 TPM 1.2,它可能会在下一个主发行版本中删除。

Bugzilla:1657927

crypto-policies 派生的属性现已被弃用

随着自定义策略中 crypto-policies 指令作用域的引入,以下派生属性已被弃用: tls_cipherssh_cipherssh_groupike_protocolsha1_in_dnssec。另外,使用 protocol 属性而不指定范围现也已被弃用。有关推荐的替代品,请参阅 crypto-policies(7) 手册页。

Bugzilla:2011208

10.6. 网络

在 RHEL 8 中已弃用网络脚本

网络脚本在 Red Hat Enterprise Linux 8 中已弃用,且不再默认提供。基本安装提供了 ifupifdown 脚本的新版本,它们通过 nmcli 工具调用 NetworkManager 服务。在 Red Hat Enterprise Linux 8 中,要运行 ifupifdown 脚本,NetworkManager 必须正在运行。

请注意, /sbin/ifup-localifdown-pre-localifdown-local 脚本中的自定义命令不会执行。

如果需要这些脚本,您仍可以使用以下命令在系统中安装已弃用的网络脚本:

# yum install network-scripts

ifupifdown 脚本链接到已安装的旧网络脚本。

调用旧的网络脚本会显示一个关于它们已过时的警告。

Bugzilla:1647725

dropwatch 工具已弃用

dropwatch 工具已弃用。以后的发行版本中不再支持该工具,因此不建议在新部署中使用它。作为此软件包的替代品,红帽建议使用 perf 命令行工具。

有关使用 perf 命令行工具的更多信息,请参阅红帽客户门户网站的 Perf入门 部分或 perf手册页。

Bugzilla:1929173

xinetd 服务已弃用

xinetd 服务已弃用,并将在 RHEL 9 中删除。作为替换,请使用 systemd。详情请查看 如何将 xinetd 服务转换为 systemd

Bugzilla:2009113

cgdcbxd 软件包已被弃用

控制组数据中心桥接交换守护进程(cgdcbxd)是监控数据中心桥接(DCB)netlink 事件和管理 net_prio 控制组子系统的服务。从 RHEL 8.5 开始,cgdcbxd 软件包被弃用,并将在下一个主要 RHEL 发行版本中删除。

Bugzilla:2006665

WEP Wi-Fi 连接方法已被弃用

在 RHEL 8 中弃用了不安全的有线等效隐私(WEP) Wi-Fi 连接方法,并将在 RHEL 9.0 中删除。对于安全的 Wi-Fi 连接,请使用 Wi-Fi Protected Access 3(WPA3)或 WPA2 连接方法。

Bugzilla:2029338

不受支持的 xt_u32 模块现已被弃用

使用不受支持的 xt_u32 模块,iptables 用户可以匹配数据包头或有效负载中的任意 32 位数据。从 RHEL 8.6 开始,xt_u32 模块已被弃用,并将在 RHEL 9 中删除。

如果使用 xt_u32,请迁移到 nftables 数据包过滤框架。例如,首先将您的防火墙更改为使用带有原生匹配项的 iptables ,以便逐步替换单个规则,然后使用 iptables-translate 和附带的工具迁移到 nftables。如果 nftables 中没有原生匹配,请使用 nftables 的原始有效负载匹配功能。详情请查看 nft(8) 手册页中 原始有效负载表达式 部分。

Bugzilla:2061288

术语 slavenmstate API 中被弃用

红帽承诺使用适当的语言。有关此倡议的详细信息,请参阅 使开源更包容。因此,slaves 术语在 Nmstate API 中被弃用。使用 nmstatectl 时使用术语 port

(Jira:RHELDOCS-17641)

10.7. 内核

rdma_rxe Soft-RoCE 驱动程序已弃用

软件直接内存通过融合以太网(Soft-RoCE)(也称为 RXE)是模拟远程直接内存访问(RDMA)的功能。在 RHEL 8 中,Soft-RoCE 功能作为一个不受支持的技术预览提供。但是,由于稳定性问题,此功能已被弃用,并将在 RHEL 9 中删除。

Bugzilla:1878207

Linux firewire 子系统及其关联的用户空间组件在 RHEL 8 中已弃用

firewire 子系统提供了接口来使用和维护 IEEE 1394 总线上的任何资源。在 RHEL 9 中,内核 软件包将不再支持 firewire 。请注意,firewire 包含几个由 libavc1394libdc1394libraw1394 软件包提供的用户空间组件。这些软件包也会被弃用。

Bugzilla:1871863

使用无磁盘引导为 Real Time 8 安装 RHEL 现已弃用

无盘引导允许多个系统通过网络共享根文件系统。虽然方便,无盘引导会在实时工作负载中容易引入网络延迟。在以后的 RHEL for Real Time 8 的更新中,无盘引导功能将不再被支持。

Bugzilla:1748980

内核实时补丁现在涵盖所有 RHEL 次要版本

从 RHEL 8.1 开始,已为延长更新支持(EUS)策略涵盖的所选定的 RHEL 次版本提供了内核实时补丁,以修复级别为关键(Critical)和重要(Important)的通用漏洞披露(CVE)。要容纳同时涵盖内核和用例的最大数量,对于内核的每个次版本、主要版本和 zStream 版本,每个实时补丁的支持窗口已从 12 月减少到 6 个月。这意味着,在内核实时补丁发布的那天,它将覆盖过去 6 个月所交付的每个次要版本和计划勘误表内核。

有关此功能的更多信息,请参阅 使用内核实时修补应用补丁

有关可用的内核实时补丁的详情,请查看 内核实时补丁生命周期

Bugzilla:1958250

crash-ptdump-command 软件包已被弃用

crash-ptdump-command 软件包(这是 crash 工具的 ptdump 扩展模块)已被弃用,且可能在以后的 RHEL 版本中不提供。在 Single Range Output 模式下工作时,ptdump 命令无法检索日志缓冲区,且只能在物理地址(ToPA)表模式下工作。crash-ptdump-command 当前没有在上游维护

Bugzilla:1838927

10.8. 引导加载程序

kernelopts 环境变量已被弃用

在 RHEL 8 中,使用 GRUB 引导装载程序的系统的内核命令行参数在 kernelopts 环境变量中定义。变量保存在每个内核引导条目的 /boot/grub2/grubenv 文件中。但是,使用 kernelopts 存储内核命令行参数并不可靠。因此,在以后的 RHEL 主更新中,kernelopts 将被删除,且内核命令行参数会存储在 Boot Loader Specification(BLS)片断中。

Bugzilla:2060759

10.9. 文件系统和存储

elevator 内核命令行参数已弃用

在之前的 RHEL 版本中使用 elevator 内核命令行参数为所有设备设置磁盘调度程序。在 RHEL 8 中,该参数已弃用。

上游 Linux 内核删除了对 elevator 参数的支持,但出于兼容性的原因,在 RHEL 8 中仍提供此支持。

请注意,内核会根据设备类型选择默认磁盘调度程序。这通常是最佳设置。如果您需要不同的调度程序,红帽建议您使用 udev 规则或 TuneD 服务来配置它。匹配所选设备并只为那些设备切换调度程序。

如需更多信息,请参阅设置磁盘调度程序

Bugzilla:1665295

禁用了 NFSv3 over UDP

默认情况下,NFS 服务器不再默认在 User Datagram Protocol(UDP)套接字上打开或监听。这个变化只影响 NFS 版本 3,因为版本 4 需要传输控制协议(TCP)。

RHEL 8 不再支持通过 UDP 的 NFS。

Bugzilla:1592011

peripety 已被弃用

从 RHEL 8.3 开始,pipety 软件包已弃用。

Peripety 存储事件通知守护进程将系统存储日志解析为结构化的存储事件。它帮助您调查存储问题。

Bugzilla:1871953

除了 async 以外的 VDO 写模式都被弃用了

VDO 支持 RHEL 8 中的几种写入模式:

  • sync
  • async
  • async-unsafe
  • auto

从 RHEL 8.4 开始,以下写入模式已弃用:

sync
VDO 层之上的设备无法识别 VDO 是否同步,因此设备无法利用 VDO 同步 模式。
async-unsafe
VDO 添加了这个写入模式来作为降低 async 模式性能的一个临时解决方案,异步模式符合原子性、一致性、隔离性和持久性(ACID)。对于大多数用例,红帽不推荐使用 async-unsafe,也不知道任何依赖它的用户。
auto
这个写入模式只选择其它写入模式之一。当 VDO 只支持单个写入模式时,不再需要它。

这些写入模式将在以后的主 RHEL 发行版本中删除。

推荐的 VDO 写入模式现在是 async的。

如需有关 VDO 写入模式的更多信息,请参阅选择 VDO 写入模式

Jira:RHELPLAN-70700

VDO 管理器已被弃用

基于 python 的 VDO 管理软件已被弃用,并将从 RHEL 9 中删除。在 RHEL 9 中,它将被 LVM-VDO 集成替代。因此,建议您使用 lvcreate 命令创建 VDO 卷。

使用 VDO 管理软件创建的现有卷可以使用 lvm2 软件包提供的 /usr/sbin/lvm_import_vdo 脚本来进行转换。有关 LVM-VDO 实现的更多信息,请参阅 RHEL 上的去重和压缩逻辑卷

Bugzilla:1949163

cramfs 已被弃用

由于缺少用户,cramfs 内核模块已被弃用。建议使用 squashfs 作为替代解决方案。

Bugzilla:1794513

10.10. 高可用性和集群

支持 clufter 工具的 pcs 命令已被弃用

支持 clufter 工具来分析群集配置格式的 pcs 命令已被弃用。现在,这些命令会显示一个警告信息,提示该命令已弃用,并且与这些命令相关的部分已从 pcs 帮助显示和pcs(8)手册页中删除。

以下命令已被弃用:

  • 用于导入 CMAN / RHEL6 HA 群集配置的 pcs config import-cman
  • pcs config export 用于将集群配置导出到可重新创建同一集群的 pcs 命令列表中

Bugzilla:1851335

10.11. 动态编程语言、网页和数据库服务器

PHP 提供的与 Apache HTTP 服务器一起使用的 mod_php 模块已被弃用

PHP 提供的与 RHEL 8 中的 Apache HTTP 服务器一起使用的 mod_php 模块可用,但在默认配置中未启用。RHEL 9 不再提供该模块。

从 RHEL 8 开始,PHP 脚本默认使用 FastCGI Process Manager (php-fpm)运行。如需更多信息,请参阅 将 PHP 与 Apache HTTP 服务器一起使用

Bugzilla:2225332

10.12. 编译器和开发工具

gdb.i686 软件包已弃用

在 RHEL 8.1 中,GNU Debugger(GDB)gdb.i686 的 32 位版本因为另一个软件包中的依赖问题而提供。因为 RHEL 8 不支持 32 位硬件,所以 gdb.i686 软件包从 RHEL 8.4 开始已弃用。GDB的64 位版本gdb.x86_64完全能够调试 32 位应用程序。

如果使用 gdb.i686,请注意以下重要问题:

  • gdb.i686 软件包将不再更新。用户必须安装 gdb.x86_64
  • 如果您安装了 gdb.i686,安装 gdb.x86_64 将导致 yum 报告 package gdb-8.2-14.el8.x86_64 obsoletes gdb < 8.2-14.el8 provided by gdb-8.2-12.el8.i686。这是预期的。卸载 gdb.i686 或向dnf传递 --allowerasing选项来删除gdb.i686, 并安装 gdb.x8_64
  • 用户将不能够在 64 位系统中安装 gdb.i686 软件包,也就是那些带有 libc.so.6()64 位) 软件包的系统。

Bugzilla:1853140

libdwarf 已弃用

libdwarf 库在 RHEL 8 中已弃用。将来的主版本中可能也不支持该程序库。对于打算处理 ELF/DWARF 文件的应用程序,请使用 elfutilslibdw 库。

libdwarf-tools dwarfdump 程序的替代方案是 binutils readelf 程序或elfutilseu-readelf 程序,它们都通过传递 --debug-dump 标志来使用。

Bugzilla:1920624

10.13. 身份管理

openssh-ldap 已被弃用

在 Red Hat Enterprise Linux 8 中弃用 openssh-ldap 子软件包,并将在 RHEL 9 中删除。因为 openssh-ldap 子软件包没有被上游维护,红帽建议您使用 SSSD 和 sss_ssh_authorizedkeys 帮助程序,它们与其他 IdM 解决方案更好地集成且更安全。

默认情况下,SSSD ldapipa 供应商会读取用户对象的 sshPublicKey LDAP 属性(如果可用)。请注意,您无法为 ad provider 或 IdM 可信域使用默认的 SSSD 配置从 Active Directory(AD)检索 SSH 公钥,因为 AD 没有存储公钥的默认 LDAP 属性。

要允许 sss_ssh_authorizedkeys 帮助程序从 SSSD 获取密钥,在 sssd.conf 文件的 services 选项中添加 ssh 来启用 ssh 响应程序。详情请查看 sssd.conf(5) 手册页。

要允许 sshd 使用 sss_ssh_authorizedkeys,,添加 AuthorizedKeysCommand/usr/bin/sss_ssh_authorizedkeysAuthorizedKeysCommandUser nobody 选项到 /etc/ssh/sshd_config 文件,如 ss_ssh_authorizedkeys(1) 手册页所述。

Bugzilla:1871025

已经删除了 DES 和 3DES 加密类型

由于安全考虑,自 RHEL 7 开始,数据加密标准(DES)算法已被弃用并默认禁用。通过最近重新构建 Kerberos 软件包,已从 RHEL 8 中删除了 single-DES(DES)和 triple-DES(3DES) 加密类型。

如果您已经将服务或用户配置为只使用 DES 或 3DES 加密,您可能会遇到服务中断,例如:

  • Kerberos authentication 错误
  • unknown enctype 加密错误
  • 带有 DES 加密数据库主密钥(K/M)的 KDC 无法启动

执行以下操作准备升级:

  1. 检查您的 KDC 是否使用 DES 或者 3DES 加密,并使用 krb5check 打开源 Python 脚本。请参阅 GitHub 上的 krb5check
  2. 如果您要将 DES 或 3DES 加密用于任何 Kerberos 主体,请使用支持的加密类型重新加密,比如高级加密标准(AES)。有关重新打包的步骤,请参考 MIT Kerberos 文档中的 Retiring DES
  3. 通过在升级前临时设置以下 Kerberos 选项,从 DES 和 3DES 测试测试:

    1. 在 KDC 上的 /var/kerberos/krb5kdc/kdc.conf 中设置 support_enctypes 且不包含 desdes3
    2. 对于每个主机,在 /etc/krb5.conf 以及 /etc/krb5.conf.d 中的任意文件,将 allow_weak_crypto 设为 false。默认为 false。
    3. 对于每个主机,在 /etc/krb5.conf 以及 /etc/krb5.conf.d 中的任何文件中,设置 permitted_enctypesdefault_tgs_enctypesdefault_tkt_enctypes,但不包括 desdes3
  4. 如果您没有遇到上一步中测试 Kerberos 设置的服务中断,请删除并升级它们。升级到最新的 Kerberos 软件包后您不需要这些设置。

Bugzilla:1877991

libwbclient 的 SSSD 版本已被删除

libwbclient 软件包的 SSSD 实现在 RHEL 8.4 中已被弃用。因为无法与 Samba 的最新版本一起使用, libwbclient 的 SSSD 实现现已被删除。

Bugzilla:1947671

单独使用 ctdb 服务已弃用

从 RHEL 8.4 开始,建议客户仅在满足以下条件时使用 ctdb 集群 Samba 服务:

  • ctdb 服务通过资源代理ctdb作为 pacemaker 资源进行管理。
  • ctdb 服务使用包含由红帽 Gluster 存储产品提供的 GlusterFS 文件系统或 GFS2 文件系统的存储卷。

ctdb 服务的独立用例已被弃用,其不会包含在 Red Hat Enterprise Linux 的下一个主版本中。有关 Samba 支持政策的更多信息,请参阅 RHEL Resilient Storage - ctdb 常规政策的支持政策

Bugzilla:1916296

通过 WinSync 与 IdM 的间接 AD 集成已弃用

由于一些功能的限制,不会在 RHEL 8 中对 WinSync 进行积极的开发:

  • WinSync 只支持一个活动目录(AD)域。
  • 密码同步需要在 AD 域控制器上安装额外的软件。

对于具有更好的资源和安全分离的更健壮的解决方案,红帽建议对于与活动目录的间接集成使用 跨林信任 。请参阅 间接集成 文档。

Jira:RHELPLAN-100400

SSSD 隐式文件供应商域默认禁用

/etc/sssd/sssd.conf 配置文件中的 enable_files_domain 设置的默认值已从 true 改为 false。这意味着 SSSD 隐式 files 提供者域(从本地文件 /etc/passwd/etc/group 检索用户和组信息)现在默认禁用。

默认的 glibc files 模块,而不是 SSSD,为本地用户提供服务。除非在 sssd.conf 文件中定义了域,否则 SSSD 不会自动启动。

SSSD files 提供者的实现仍可用于特定用例的显式配置,如本地用户的智能卡验证。

Jira:RHELPLAN-139456

以 PDC 或 BDC 的形式运行 Samba 已被弃用

传统的域控制器模式使管理员能够作为类似 NT4 的主域控制器(PDC)和备份域控制器(BDC)运行 Samba。用于配置这些模式的代码和设置将在以后的 Samba 发行版本中删除。

只要 RHEL 8 中的 Samba 版本提供 PDC 和 BDC 模式,红帽就仅在带有支持 NT4 域的 Windows 版本的现有安装中支持这些模式。红帽建议不要设置新的 Samba NT4 域,因为 Microsoft 操作系统稍后于 Windows 7 和 Windows Server 2008 R2 不支持 NT4 域。

如果您使用 PDC 仅验证 Linux 用户,红帽建议迁移到 RHEL 订阅中包含的 Red Hat Identity Management(IdM)。但是,您无法将 Windows 系统加入到 IdM 域中。请注意,红帽继续支持在后台使用 PDC 功能 IdM。

红帽不支持将 Samba 作为 AD 域控制器(DC)运行。

Bugzilla:1926114

SMB1 协议在 Samba 中被弃用

从 Samba 4.11 开始,不安全的服务器消息块版本 1 (SMB1)协议被弃用,并将在以后的发行版本中删除。

为提高安全性,默认在 Samba 服务器和客户端工具中禁用 SMB1。

Jira:RHELDOCS-16612

对 FreeRADIUS 的有限支持

在 RHEL 8 中,以下外部身份验证模块作为 FreeRADIUS 产品的一部分被弃用:

  • MySQL、PostgreSQL、SQlite 和 unixODBC 数据库连接器
  • Perl 语言模块
  • REST API 模块
注意

PAM 身份验证模块以及其它作为基础软件包的一部分提供的身份验证模块不受影响。

您可以在社区支持的软件包中找到已弃用模块的替代品,例如在 Fedora 项目中。

另外,在以后的 RHEL 版本中,对 freeradius 软件包的支持范围将限制为以下用例:

  • 使用 FreeRADIUS 作为无线身份验证提供商,身份管理(IdM)作为身份验证的后端源。身份验证通过 krb5 和 LDAP 身份验证软件包或作为主 FreeRADIUS 软件包中的 PAM 身份验证发生。
  • 使用 FreeRADIUS ,通过 Python 3 身份验证软件包为 IdM 中的身份验证提供真相来源。

与这些弃用相反,红帽将通过 FreeRADIUS 增强对以下外部身份验证模块的支持:

  • 基于 krb5 和 LDAP 的身份验证
  • Python 3 身份验证

这些集成选项的重点在于与红帽 IdM 的战略方向紧密一致。

Jira:RHELDOCS-17573

10.14. 桌面

libgnome-keyring 库已弃用

libgnome-keyring 库已弃用,现在使用 libsecret 库,因为 libgnome-keyring 没有被上游维护,且不会遵循 RHEL 所需的加密策略。新的 libsecret 库是符合所需安全标准的替换。

Bugzilla:1607766

10.15. 图形基础结构

不再支持 AGP 图形卡

Red Hat Enterprise Linux 8 不支持使用图形端口(AGP)总线的图形卡。推荐使用 PCI-Express bus 图形卡替换。

Bugzilla:1569610

Motif 已被弃用

Motif 小部件工具包已在 RHEL 中被弃用,因为上游 Motif 社区的开发不活跃。

以下 Motif 软件包已被弃用,包括其开发和调试变体:

  • motif
  • openmotif
  • openmotif21
  • openmotif22

另外,motif-static 软件包已删除。

红帽建议使用 GTK 工具包作为替代品。与 Motif 相比,GTK更易于维护,并提供了新功能。

Jira:RHELPLAN-98983

10.16. Web 控制台

Web 控制台不再支持不完整翻译

RHEL web 控制台不再提供翻译少于 50% 的语言支持。如果浏览器要求转换成这种语言,用户界面将为英语。

Bugzilla:1666722

10.17. Red Hat Enterprise Linux 系统角色

geoipupdate 软件包已弃用

geoipupdate 软件包需要第三方订阅,同时下载专有内容。因此,geoipupdate 软件包已被弃用,并将在下一个主要 RHEL 版本中删除。

Bugzilla:1874892

在 RHEL 9 节点上配置团队时,network 系统角色会显示一条弃用警告

RHEL 9 中弃用了网络协作功能。因此,在 RHEL 8 控制节点上使用 network RHEL 系统角色在 RHEL 9 节点上配置网络团队,会显示有关弃用的警告。

Bugzilla:2021685

Ansible Engine 已被弃用

RHEL 8 的早期版本提供了对 Ansible Engine 存储库的访问(有限范围的支持),以启用支持的 RHEL 自动化用例,如 RHEL 系统角色和 Insights 补救措施。Ansible Engine 已被弃用,2023 年 9 月 29 日之后将不再支持 Ansible Engine 2.9 。有关支持的用例的详情,请参阅 RHEL 9 AppStream 中包含的 Ansible Core 软件包的支持范围

用户必须手动将他们的系统从 Ansible Engine 迁移到 Ansible Core。为此,请按照以下步骤操作:

流程

  1. 检查系统是否正在运行 RHEL 8.7 或更高版本:

    # cat /etc/redhat-release
  2. 卸载 Ansible Engine 2.9:

    # yum remove ansible
  3. 禁用 ansible-2-for-rhel-8-x86_64-rpms 存储库:

    # subscription-manager repos --disable
    ansible-2-for-rhel-8-x86_64-rpms
  4. 从 RHEL 8 AppStream 存储库安装 Ansible Core 软件包:

    # yum install ansible-core

如需了解更多详细信息,请参阅: 在 RHEL 8.6 及之后的版本中使用 Ansible

Bugzilla:2006081

10.18. 虚拟化

virsh iface-* 命令已被弃用

virsh iface-* 命令(如 virsh iface-startvirsh iface-destroy )现已被弃用,并将在以后的 RHEL 主版本中删除。另外,这些命令会因为配置依赖而经常失败。

因此,建议您不要使用 virsh iface-* 命令来配置和管理主机网络连接。反之,使用 NetworkManager 程序及其相关的管理应用程序,如 nmcli

Bugzilla:1664592

virt-manager 已被弃用

虚拟机管理器(也称 virt-manager) 已弃用。RHEL web 控制台(也称为 Cockpit )旨在在以后的版本中成为其替代品。因此,建议您使用 web 控制台使用 GUI 管理虚拟化。但请注意,在 RHEL web 控制台中,virt-manager 中的一些功能可能还不可用。

Jira:RHELPLAN-10304

对虚拟机快照的支持有限

目前只对使用 UEFI 固件的虚拟机支持创建虚拟机(VM)的快照。另外,在快照操作过程中,QEMU 监控可能会被阻止,这会影响某些工作负载的 hypervisor 性能。

另请注意,创建虚拟机快照的当前机制已被弃用,红帽不推荐在生产环境中使用虚拟机快照。

Bugzilla:1686057

Cirrus VGA 虚拟 GPU 类型已弃用

随着 Red Hat Enterprise Linux 的主要更新,Cirrus VGA GPU 设备将在 KVM 虚拟机中不再被支持。因此,红帽建议使用 stdvgavirtio-vga 设备,而不是 Cirrus VGA

Bugzilla:1651994

SPICE 已被弃用

SPICE 远程显示协议已弃用。因此,RHEL 8 中仍支持 SPICE,但红帽建议对远程显示流使用备用解决方案:

  • 要访问远程控制台,请使用 VNC 协议。
  • 对于高级远程显示功能,请使用 RDP、HP RGS 或 Mechdyne TGX 等第三方工具。

请注意,SPICE 使用的 QXL 图形设备也已被弃用。

Bugzilla:1849563

IBM POWER 上的 KVM 已被弃用

在 IBM POWER 硬件中使用 KVM 虚拟化已被弃用。因此,RHEL 8 仍支持 IBM POWER 上的 KVM,但在以后的 RHEL 主发行版本中将不被支持。

Jira:RHELPLAN-71200

使用基于 SHA1 的签名进行 SecureBoot 镜像验证已弃用

在 UEFI(PE/COFF)可执行文件中使用基于 SHA1 的签名执行 SecureBoot 镜像验证已过时。反之,红帽建议使用基于 SHA2 算法或更新版本的签名。

Bugzilla:1935497

使用 SPICE 将智能卡读取器附加到虚拟机已被弃用

SPICE 远程显示协议已在 RHEL 8 中被弃用。由于将智能卡读取器附加到虚拟机(VM)的唯一方法取决于 SPICE 协议,因此在虚拟机中使用智能卡已在 RHEL 8 中被弃用。

在 RHEL 未来的主版本中,将智能卡读取器附加到虚拟机的功能仅被第三方远程视觉解决方案支持。

Bugzilla:2059626

基于 RDMA 的实时迁移已弃用

有了这个更新,使用 Remote Direct Memory Access (RDMA)迁移正在运行的虚拟机已被弃用。因此,仍可以使用 rdma:// 迁移 URI 来通过 RDMA 请求迁移,但这个功能将在以后的 RHEL 主发行版本中不被支持。

Jira:RHELPLAN-153267

10.19. 容器

基于 Podman varlink 的 API v1.0 已被删除

基于 Podman varlink 的 API v1.0 在之前的 RHEL 8 版本中已弃用。podman v2.0 引入了一个新的 Podman v2.0 RESTful API。Podman v3.0 发行版本中,基于 varlink 的 API v1.0 已被完全删除。

Jira:RHELPLAN-45858

container-tools:1.0 已弃用

container-tools:1.0 模块已弃用,将不再接收安全更新。建议您使用较新支持的稳定模块流,如 container-tools:2.0container-tools:3.0

Jira:RHELPLAN-59825

container-tools:2.0 模块已被弃用

container-tools:2.0 模块已被弃用,并将不再接受安全更新。建议您使用更新的支持的稳定模块流,如 container-tools:3.0

Jira:RHELPLAN-85066

除了 GIMP ,Flatpak 镜像已弃用

rhel8/firefox-flatpak,rhel8/thunderbird-flatpak,rhel8/inkscape-flatpakrhel8/libreoffice-flatpak RHEL 8 Flatpak 应用程序已被弃用,并被 RHEL 9 版本替代。rhel8/gimp-flatpak Flatpak 应用程序已被弃用,因为在 RHEL 9 中还没有替代品。

Bugzilla:2142499

CNI 网络堆栈已弃用

Container Network Interface (CNI)网络堆栈将在以后的次版本中被弃用。在以前的版本中,容器只能通过 DNS 连接到单个 Container Network Interface (CNI)插件。podman v.4.0 引入了一个新的 Netavark 网络堆栈。您可以将 Netavark 网络堆栈与 Podman 和其他Open Container Initiative(OCI)容器管理应用程序一起使用。Podman 的 Netavark 网络堆栈也与高级 Docker 功能兼容。多个网络中的容器可以访问任何这些网络上的容器。

如需更多信息,请参阅 将网络堆栈从 CNI 切换到 Netavark

Jira:RHELPLAN-145958

container-tools:3.0 已弃用

container-tools:3.0 模块已弃用,将不再接收安全更新。要继续在 RHEL 上构建并运行 Linux 容器,请使用较新的、稳定且受支持的模块流,如 container-tools:4.0

有关切换到更新的流的说明,请参阅 切换到更新的流

Jira:RHELPLAN-146398

10.20. 已弃用的软件包

本节列出了已弃用的软件包,可能不会包括在 Red Hat Enterprise Linux 未来的主发行版本中。

有关对 RHEL 7 和 RHEL 8 间软件包的更改,请参阅 采用 RHEL 8 的注意事项 文档中的 对软件包的更改

重要

已弃用软件包的支持状态在 RHEL 8 中保持不变。有关支持长度的更多信息,请参阅 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 应用程序流生命周期

以下软件包已在 RHEL 8 中弃用:

  • 389-ds-base-legacy-tools
  • abrt
  • abrt-addon-ccpp
  • abrt-addon-kerneloops
  • abrt-addon-pstoreoops
  • abrt-addon-vmcore
  • abrt-addon-xorg
  • abrt-cli
  • abrt-console-notification
  • abrt-dbus
  • abrt-desktop
  • abrt-gui
  • abrt-gui-libs
  • abrt-libs
  • abrt-tui
  • adobe-source-sans-pro-fonts
  • adwaita-qt
  • alsa-plugins-pulseaudio
  • amanda
  • amanda-client
  • amanda-libs
  • amanda-server
  • ant-contrib
  • antlr3
  • antlr32
  • aopalliance
  • apache-commons-collections
  • apache-commons-compress
  • apache-commons-exec
  • apache-commons-jxpath
  • apache-commons-parent
  • apache-ivy
  • apache-parent
  • apache-resource-bundles
  • apache-sshd
  • apiguardian
  • aspnetcore-runtime-3.0
  • aspnetcore-runtime-3.1
  • aspnetcore-runtime-5.0
  • aspnetcore-targeting-pack-3.0
  • aspnetcore-targeting-pack-3.1
  • aspnetcore-targeting-pack-5.0
  • assertj-core
  • authd
  • auto
  • autoconf213
  • autogen
  • autogen-libopts
  • awscli
  • base64coder
  • batik
  • batik-css
  • batik-util
  • bea-stax
  • bea-stax-api
  • bind-export-devel
  • bind-export-libs
  • bind-libs-lite
  • bind-pkcs11
  • bind-pkcs11-devel
  • bind-pkcs11-libs
  • bind-pkcs11-utils
  • bind-sdb
  • bind-sdb
  • bind-sdb-chroot
  • bluez-hid2hci
  • boost-jam
  • boost-signals
  • bouncycastle
  • bpg-algeti-fonts
  • bpg-chveulebrivi-fonts
  • bpg-classic-fonts
  • bpg-courier-fonts
  • bpg-courier-s-fonts
  • bpg-dedaena-block-fonts
  • bpg-dejavu-sans-fonts
  • bpg-elite-fonts
  • bpg-excelsior-caps-fonts
  • bpg-excelsior-condenced-fonts
  • bpg-excelsior-fonts
  • bpg-fonts-common
  • bpg-glaho-fonts
  • bpg-gorda-fonts
  • bpg-ingiri-fonts
  • bpg-irubaqidze-fonts
  • bpg-mikhail-stephan-fonts
  • bpg-mrgvlovani-caps-fonts
  • bpg-mrgvlovani-fonts
  • bpg-nateli-caps-fonts
  • bpg-nateli-condenced-fonts
  • bpg-nateli-fonts
  • bpg-nino-medium-cond-fonts
  • bpg-nino-medium-fonts
  • bpg-sans-fonts
  • bpg-sans-medium-fonts
  • bpg-sans-modern-fonts
  • bpg-sans-regular-fonts
  • bpg-serif-fonts
  • bpg-serif-modern-fonts
  • bpg-ucnobi-fonts
  • brlapi-java
  • bsh
  • buildnumber-maven-plugin
  • byaccj
  • cal10n
  • cbi-plugins
  • cdparanoia
  • cdparanoia-devel
  • cdparanoia-libs
  • cdrdao
  • cmirror
  • codehaus-parent
  • codemodel
  • compat-exiv2-026
  • compat-guile18
  • compat-hwloc1
  • compat-libpthread-nonshared
  • compat-libtiff3
  • compat-openssl10
  • compat-sap-c++-11
  • compat-sap-c++-10
  • compat-sap-c++-9
  • createrepo_c-devel
  • ctags
  • ctags-etags
  • custodia
  • cyrus-imapd-vzic
  • dbus-c++
  • dbus-c++-devel
  • dbus-c++-glib
  • dbxtool
  • dhcp-libs
  • directory-maven-plugin
  • directory-maven-plugin-javadoc
  • dirsplit
  • dleyna-connector-dbus
  • dleyna-core
  • dleyna-renderer
  • dleyna-server
  • dnssec-trigger
  • dnssec-trigger-panel
  • dotnet-apphost-pack-3.0
  • dotnet-apphost-pack-3.1
  • dotnet-apphost-pack-5.0
  • dotnet-host-fxr-2.1
  • dotnet-host-fxr-2.1
  • dotnet-hostfxr-3.0
  • dotnet-hostfxr-3.1
  • dotnet-hostfxr-5.0
  • dotnet-runtime-2.1
  • dotnet-runtime-3.0
  • dotnet-runtime-3.1
  • dotnet-runtime-5.0
  • dotnet-sdk-2.1
  • dotnet-sdk-2.1.5xx
  • dotnet-sdk-3.0
  • dotnet-sdk-3.1
  • dotnet-sdk-5.0
  • dotnet-targeting-pack-3.0
  • dotnet-targeting-pack-3.1
  • dotnet-targeting-pack-5.0
  • dotnet-templates-3.0
  • dotnet-templates-3.1
  • dotnet-templates-5.0
  • dotnet5.0-build-reference-packages
  • dptfxtract
  • drpm
  • drpm-devel
  • dump
  • dvd+rw-tools
  • dyninst-static
  • eclipse-ecf
  • eclipse-ecf-core
  • eclipse-ecf-runtime
  • eclipse-emf
  • eclipse-emf-core
  • eclipse-emf-runtime
  • eclipse-emf-xsd
  • eclipse-equinox-osgi
  • eclipse-jdt
  • eclipse-license
  • eclipse-p2-discovery
  • eclipse-pde
  • eclipse-platform
  • eclipse-swt
  • ed25519-java
  • ee4j-parent
  • elfutils-devel-static
  • elfutils-libelf-devel-static
  • enca
  • enca-devel
  • environment-modules-compat
  • evince-browser-plugin
  • exec-maven-plugin
  • farstream02
  • felix-gogo-command
  • felix-gogo-runtime
  • felix-gogo-shell
  • felix-scr
  • felix-osgi-compendium
  • felix-osgi-core
  • felix-osgi-foundation
  • felix-parent
  • file-roller
  • fipscheck
  • fipscheck-devel
  • fipscheck-lib
  • firewire
  • fonts-tweak-tool
  • forge-parent
  • freeradius-mysql
  • freeradius-perl
  • freeradius-postgresql
  • freeradius-rest
  • freeradius-sqlite
  • freeradius-unixODBC
  • fuse-sshfs
  • fusesource-pom
  • future
  • gamin
  • gamin-devel
  • gavl
  • gcc-toolset-10
  • gcc-toolset-10-annobin
  • gcc-toolset-10-binutils
  • gcc-toolset-10-binutils-devel
  • gcc-toolset-10-build
  • gcc-toolset-10-dwz
  • gcc-toolset-10-dyninst
  • gcc-toolset-10-dyninst-devel
  • gcc-toolset-10-elfutils
  • gcc-toolset-10-elfutils-debuginfod-client
  • gcc-toolset-10-elfutils-debuginfod-client-devel
  • gcc-toolset-10-elfutils-devel
  • gcc-toolset-10-elfutils-libelf
  • gcc-toolset-10-elfutils-libelf-devel
  • gcc-toolset-10-elfutils-libs
  • gcc-toolset-10-gcc
  • gcc-toolset-10-gcc-c++
  • gcc-toolset-10-gcc-gdb-plugin
  • gcc-toolset-10-gcc-gfortran
  • gcc-toolset-10-gdb
  • gcc-toolset-10-gdb-doc
  • gcc-toolset-10-gdb-gdbserver
  • gcc-toolset-10-libasan-devel
  • gcc-toolset-10-libatomic-devel
  • gcc-toolset-10-libitm-devel
  • gcc-toolset-10-liblsan-devel
  • gcc-toolset-10-libquadmath-devel
  • gcc-toolset-10-libstdc++-devel
  • gcc-toolset-10-libstdc++-docs
  • gcc-toolset-10-libtsan-devel
  • gcc-toolset-10-libubsan-devel
  • gcc-toolset-10-ltrace
  • gcc-toolset-10-make
  • gcc-toolset-10-make-devel
  • gcc-toolset-10-perftools
  • gcc-toolset-10-runtime
  • gcc-toolset-10-strace
  • gcc-toolset-10-systemtap
  • gcc-toolset-10-systemtap-client
  • gcc-toolset-10-systemtap-devel
  • gcc-toolset-10-systemtap-initscript
  • gcc-toolset-10-systemtap-runtime
  • gcc-toolset-10-systemtap-sdt-devel
  • gcc-toolset-10-systemtap-server
  • gcc-toolset-10-toolchain
  • gcc-toolset-10-valgrind
  • gcc-toolset-10-valgrind-devel
  • gcc-toolset-9
  • gcc-toolset-9-annobin
  • gcc-toolset-9-build
  • gcc-toolset-9-perftools
  • gcc-toolset-9-runtime
  • gcc-toolset-9-toolchain
  • gcc-toolset-11-make-devel
  • GConf2
  • GConf2-devel
  • gegl
  • genisoimage
  • genwqe-tools
  • genwqe-vpd
  • genwqe-zlib
  • genwqe-zlib-devel
  • geoipupdate
  • geronimo-annotation
  • geronimo-jms
  • geronimo-jpa
  • geronimo-parent-poms
  • gfbgraph
  • gflags
  • gflags-devel
  • glassfish-annotation-api
  • glassfish-el
  • glassfish-fastinfoset
  • glassfish-jaxb-core
  • glassfish-jaxb-txw2
  • glassfish-jsp
  • glassfish-jsp-api
  • glassfish-legal
  • glassfish-master-pom
  • glassfish-servlet-api
  • glew-devel
  • glib2-fam
  • glog
  • glog-devel
  • gmock
  • gmock-devel
  • gnome-abrt
  • gnome-boxes
  • gnome-menus-devel
  • gnome-online-miners
  • gnome-shell-extension-disable-screenshield
  • gnome-shell-extension-horizontal-workspaces
  • gnome-shell-extension-no-hot-corner
  • gnome-shell-extension-window-grouper
  • gnome-themes-standard
  • gnu-free-fonts-common
  • gnu-free-mono-fonts
  • gnu-free-sans-fonts
  • gnu-free-serif-fonts
  • gnupg2-smime
  • gnuplot
  • gnuplot-common
  • gobject-introspection-devel
  • google-gson
  • google-noto-sans-syriac-eastern-fonts
  • google-noto-sans-syriac-estrangela-fonts
  • google-noto-sans-syriac-western-fonts
  • google-noto-sans-tibetan-fonts
  • google-noto-sans-ui-fonts
  • gphoto2
  • gsl-devel
  • gssntlmssp
  • gtest
  • gtest-devel
  • gtkmm24
  • gtkmm24-devel
  • gtkmm24-docs
  • gtksourceview3
  • gtksourceview3-devel
  • gtkspell
  • gtkspell-devel
  • gtkspell3
  • guile
  • gutenprint-gimp
  • gutenprint-libs-ui
  • gvfs-afc
  • gvfs-afp
  • gvfs-archive
  • hamcrest-core
  • hawtjni
  • hawtjni
  • hawtjni-runtime
  • HdrHistogram
  • HdrHistogram-javadoc
  • highlight-gui
  • hivex-devel
  • 主机名
  • hplip-gui
  • httpcomponents-project
  • hwloc-plugins
  • hyphen-fo
  • hyphen-grc
  • hyphen-hsb
  • hyphen-ia
  • hyphen-is
  • hyphen-ku
  • hyphen-mi
  • hyphen-mn
  • hyphen-sa
  • hyphen-tk
  • ibus-sayura
  • icedax
  • icu4j
  • idm-console-framework
  • Inkscape
  • inkscape-docs
  • inkscape-view
  • iptables
  • ipython
  • isl
  • isl-devel
  • isorelax
  • istack-commons-runtime
  • istack-commons-tools
  • iwl3945-firmware
  • iwl4965-firmware
  • iwl6000-firmware
  • jacoco
  • jaf
  • jaf-javadoc
  • jakarta-oro
  • janino
  • jansi-native
  • jarjar
  • java-1.8.0-ibm
  • java-1.8.0-ibm-demo
  • java-1.8.0-ibm-devel
  • java-1.8.0-ibm-headless
  • java-1.8.0-ibm-jdbc
  • java-1.8.0-ibm-plugin
  • java-1.8.0-ibm-src
  • java-1.8.0-ibm-webstart
  • java-1.8.0-openjdk-accessibility
  • java-1.8.0-openjdk-accessibility-slowdebug
  • java_cup
  • java-atk-wrapper
  • javacc
  • javacc-maven-plugin
  • javaewah
  • javaparser
  • javapoet
  • javassist
  • javassist-javadoc
  • jaxen
  • jboss-annotations-1.2-api
  • jboss-interceptors-1.2-api
  • jboss-logmanager
  • jboss-parent
  • jctools
  • jdepend
  • jdependency
  • jdom
  • jdom2
  • jetty
  • jetty-continuation
  • jetty-http
  • jetty-io
  • jetty-security
  • jetty-server
  • jetty-servlet
  • jetty-util
  • jffi
  • jflex
  • jgit
  • jline
  • jmc
  • jnr-netdb
  • jolokia-jvm-agent
  • js-uglify
  • jsch
  • json_simple
  • jss-javadoc
  • jtidy
  • junit5
  • jvnet-parent
  • jzlib
  • kernel-cross-headers
  • ksc
  • kurdit-unikurd-web-fonts
  • kyotocabinet-libs
  • ldapjdk-javadoc
  • lensfun
  • lensfun-devel
  • lftp-scripts
  • libaec
  • libaec-devel
  • libappindicator-gtk3
  • libappindicator-gtk3-devel
  • libatomic-static
  • libavc1394
  • libblocksruntime
  • libcacard
  • libcacard-devel
  • libcgroup
  • libcgroup-tools
  • libchamplain
  • libchamplain-devel
  • libchamplain-gtk
  • libcroco
  • libcroco-devel
  • libcxl
  • libcxl-devel
  • libdap
  • libdap-devel
  • libdazzle-devel
  • libdbusmenu
  • libdbusmenu-devel
  • libdbusmenu-doc
  • libdbusmenu-gtk3
  • libdbusmenu-gtk3-devel
  • libdc1394
  • libdnet
  • libdnet-devel
  • libdv
  • libdwarf
  • libdwarf-devel
  • libdwarf-static
  • libdwarf-tools
  • libeasyfc
  • libeasyfc-gobject
  • libepubgen-devel
  • libertas-sd8686-firmware
  • libertas-usb8388-firmware
  • libertas-usb8388-olpc-firmware
  • libgdither
  • libGLEW
  • libgovirt
  • libguestfs-benchmarking
  • libguestfs-devel
  • libguestfs-gfs2
  • libguestfs-gobject
  • libguestfs-gobject-devel
  • libguestfs-java
  • libguestfs-java-devel
  • libguestfs-javadoc
  • libguestfs-man-pages-ja
  • libguestfs-man-pages-uk
  • libguestfs-tools
  • libguestfs-tools-c
  • libhugetlbfs
  • libhugetlbfs-devel
  • libhugetlbfs-utils
  • libIDL
  • libIDL-devel
  • libidn
  • libiec61883
  • libindicator-gtk3
  • libindicator-gtk3-devel
  • libiscsi-devel
  • libjose-devel
  • libkkc
  • libkkc-common
  • libkkc-data
  • libldb-devel
  • liblogging
  • libluksmeta-devel
  • libmalaga
  • libmcpp
  • libmemcached
  • libmemcached-libs
  • libmetalink
  • libmodulemd1
  • libmongocrypt
  • libmtp-devel
  • libmusicbrainz5
  • libmusicbrainz5-devel
  • libnbd-devel
  • liboauth
  • liboauth-devel
  • libpfm-static
  • libpng12
  • libpurple
  • libpurple-devel
  • libraw1394
  • libreport-plugin-mailx
  • libreport-plugin-rhtsupport
  • libreport-plugin-ureport
  • libreport-rhel
  • libreport-rhel-bugzilla
  • librpmem
  • librpmem-debug
  • librpmem-devel
  • libsass
  • libsass-devel
  • libselinux-python
  • libsqlite3x
  • libtalloc-devel
  • libtar
  • libtdb-devel
  • libtevent-devel
  • libtpms-devel
  • libunwind
  • libusal
  • libvarlink
  • libverto-libevent
  • libvirt-admin
  • libvirt-bash-completion
  • libvirt-daemon-driver-storage-gluster
  • libvirt-daemon-driver-storage-iscsi-direct
  • libvirt-devel
  • libvirt-docs
  • libvirt-gconfig
  • libvirt-gobject
  • libvirt-lock-sanlock
  • libvirt-wireshark
  • libvmem
  • libvmem-debug
  • libvmem-devel
  • libvmmalloc
  • libvmmalloc-debug
  • libvmmalloc-devel
  • libvncserver
  • libwinpr-devel
  • libwmf
  • libwmf-devel
  • libwmf-lite
  • libXNVCtrl
  • libyami
  • log4j12
  • log4j12-javadoc
  • lohit-malayalam-fonts
  • lohit-nepali-fonts
  • lorax-composer
  • lua-guestfs
  • lucene
  • lucene-analysis
  • lucene-analyzers-smartcn
  • lucene-queries
  • lucene-queryparser
  • Lucene-sandbox
  • lz4-java
  • lz4-java-javadoc
  • mailman
  • mailx
  • make-devel
  • malaga
  • malaga-suomi-voikko
  • marisa
  • maven-antrun-plugin
  • maven-assembly-plugin
  • maven-clean-plugin
  • maven-dependency-analyzer
  • maven-dependency-plugin
  • maven-doxia
  • maven-doxia-sitetools
  • maven-install-plugin
  • maven-invoker
  • maven-invoker-plugin
  • maven-parent
  • maven-plugins-pom
  • maven-reporting-api
  • maven-reporting-impl
  • maven-resolver-api
  • maven-resolver-connector-basic
  • maven-resolver-impl
  • maven-resolver-spi
  • maven-resolver-transport-wagon
  • maven-resolver-util
  • maven-scm
  • maven-script-interpreter
  • maven-shade-plugin
  • maven-shared
  • maven-verifier
  • maven-wagon-file
  • maven-wagon-http
  • maven-wagon-http-shared
  • maven-wagon-provider-api
  • maven2
  • meanwhile
  • mercurial
  • mercurial-hgk
  • meetis
  • metis-devel
  • mingw32-bzip2
  • mingw32-bzip2-static
  • mingw32-cairo
  • mingw32-expat
  • mingw32-fontconfig
  • mingw32-freetype
  • mingw32-freetype-static
  • mingw32-gstreamer1
  • mingw32-harfbuzz
  • mingw32-harfbuzz-static
  • mingw32-icu
  • mingw32-libjpeg-turbo
  • mingw32-libjpeg-turbo-static
  • mingw32-libpng
  • mingw32-libpng-static
  • mingw32-libtiff
  • mingw32-libtiff-static
  • mingw32-openssl
  • mingw32-readline
  • mingw32-sqlite
  • mingw32-sqlite-static
  • mingw64-adwaita-icon-theme
  • mingw64-bzip2
  • mingw64-bzip2-static
  • mingw64-cairo
  • mingw64-expat
  • mingw64-fontconfig
  • mingw64-freetype
  • mingw64-freetype-static
  • mingw64-gstreamer1
  • mingw64-harfbuzz
  • mingw64-harfbuzz-static
  • mingw64-icu
  • mingw64-libjpeg-turbo
  • mingw64-libjpeg-turbo-static
  • mingw64-libpng
  • mingw64-libpng-static
  • mingw64-libtiff
  • mingw64-libtiff-static
  • mingw64-nettle
  • mingw64-openssl
  • mingw64-readline
  • mingw64-sqlite
  • mingw64-sqlite-static
  • modello
  • mojo-parent
  • mongo-c-driver
  • mousetweaks
  • mozjs52
  • mozjs52-devel
  • mozjs60
  • mozjs60-devel
  • mozvoikko
  • msv-javadoc
  • msv-manual
  • munge-maven-plugin
  • mythes-mi
  • mythes-ne
  • nafees-web-naskh-fonts
  • nbd
  • nbdkit-devel
  • nbdkit-example-plugins
  • nbdkit-gzip-plugin
  • nbdkit-plugin-python-common
  • nbdkit-plugin-vddk
  • ncompress
  • ncurses-compat-libs
  • net-tools
  • netcf
  • netcf-devel
  • netcf-libs
  • network-scripts
  • network-scripts-ppp
  • nkf
  • nodejs-devel
  • nodejs-packaging
  • nss_nis
  • nss-pam-ldapd
  • objectweb-asm
  • objectweb-asm-javadoc
  • objectweb-pom
  • ocaml-bisect-ppx
  • ocaml-camlp4
  • ocaml-camlp4-devel
  • ocaml-lwt
  • ocaml-mmap
  • ocaml-ocplib-endian
  • ocaml-ounit
  • ocaml-result
  • ocaml-seq
  • opencryptoki-tpmtok
  • opencv-contrib
  • opencv-core
  • opencv-devel
  • openhpi
  • openhpi-libs
  • OpenIPMI-perl
  • openssh-cavs
  • openssh-ldap
  • openssl-ibmpkcs11
  • opentest4j
  • os-maven-plugin
  • pakchois
  • pandoc
  • paps-libs
  • paranamer
  • parfait
  • parfait-examples
  • parfait-javadoc
  • pcp-parfait-agent
  • pcp-pmda-rpm
  • pcp-pmda-vmware
  • pcsc-lite-doc
  • peripety
  • perl-B-Debug
  • perl-B-Lint
  • perl-Class-Factory-Util
  • perl-Class-ISA
  • perl-DateTime-Format-HTTP
  • perl-DateTime-Format-Mail
  • perl-File-CheckTree
  • perl-homedir
  • perl-libxml-perl
  • perl-Locale-Codes
  • perl-Mozilla-LDAP
  • perl-NKF
  • perl-Object-HashBase-tools
  • perl-Package-DeprecationManager
  • perl-Pod-LaTeX
  • perl-Pod-Plainer
  • perl-prefork
  • perl-String-CRC32
  • perl-SUPER
  • perl-Sys-Virt
  • perl-tests
  • perl-YAML-Syck
  • phodav
  • php-recode
  • php-xmlrpc
  • pidgin
  • pidgin-devel
  • pidgin-sipe
  • pinentry-emacs
  • pinentry-gtk
  • pipewire0.2-devel
  • pipewire0.2-libs
  • platform-python-coverage
  • plexus-ant-factory
  • plexus-bsh-factory
  • plexus-cli
  • plexus-component-api
  • plexus-component-factories-pom
  • plexus-components-pom
  • plexus-i18n
  • plexus-interactive
  • plexus-pom
  • plexus-velocity
  • plymouth-plugin-throbgress
  • pmreorder
  • postgresql-test-rpm-macros
  • powermock
  • prometheus-jmx-exporter
  • prometheus-jmx-exporter-openjdk11
  • ptscotch-mpich
  • ptscotch-mpich-devel
  • ptscotch-mpich-devel-parmetis
  • ptscotch-openmpi
  • ptscotch-openmpi-devel
  • purple-sipe
  • pygobject2-doc
  • pygtk2
  • pygtk2-codegen
  • pygtk2-devel
  • pygtk2-doc
  • python-nose-docs
  • python-nss-doc
  • python-podman-api
  • python-psycopg2-doc
  • python-pymongo-doc
  • python-redis
  • python-schedutils
  • python-slip
  • python-sqlalchemy-doc
  • python-varlink
  • python-virtualenv-doc
  • python2-backports
  • python2-backports-ssl_match_hostname
  • python2-bson
  • python2-coverage
  • python2-docs
  • python2-docs-info
  • python2-funcsigs
  • python2-ipaddress
  • python2-mock
  • python2-nose
  • python2-numpy-doc
  • python2-psycopg2-debug
  • python2-psycopg2-tests
  • python2-pymongo
  • python2-pymongo-gridfs
  • python2-pytest-mock
  • python2-sqlalchemy
  • python2-tools
  • python2-virtualenv
  • python3-bson
  • python3-click
  • python3-coverage
  • python3-cpio
  • python3-custodia
  • python3-docs
  • python3-flask
  • python3-gevent
  • python3-gobject-base
  • python3-hivex
  • python3-html5lib
  • python3-hypothesis
  • python3-ipatests
  • python3-itsdangerous
  • python3-jwt
  • python3-libguestfs
  • python3-mock
  • python3-networkx-core
  • python3-nose
  • python3-nss
  • python3-openipmi
  • python3-pillow
  • python3-ptyprocess
  • python3-pydbus
  • python3-pymongo
  • python3-pymongo-gridfs
  • python3-pyOpenSSL
  • python3-pytoml
  • python3-reportlab
  • python3-schedutils
  • python3-scons
  • python3-semantic_version
  • python3-slip
  • python3-slip-dbus
  • python3-sqlalchemy
  • python3-syspurpose
  • python3-virtualenv
  • python3-webencodings
  • python3-werkzeug
  • python38-asn1crypto
  • python38-numpy-doc
  • python38-psycopg2-doc
  • python38-psycopg2-tests
  • python39-numpy-doc
  • python39-psycopg2-doc
  • python39-psycopg2-tests
  • qemu-kvm-block-gluster
  • qemu-kvm-block-iscsi
  • qemu-kvm-block-ssh
  • qemu-kvm-hw-usbredir
  • qemu-kvm-device-display-virtio-gpu-gl
  • qemu-kvm-device-display-virtio-gpu-pci-gl
  • qemu-kvm-device-display-virtio-vga-gl
  • qemu-kvm-tests
  • qpdf
  • qpdf-doc
  • qpid-proton
  • qrencode
  • qrencode-devel
  • qrencode-libs
  • qt5-qtcanvas3d
  • qt5-qtcanvas3d-examples
  • rarian
  • rarian-compat
  • re2c
  • recode
  • redhat-lsb
  • redhat-lsb-core
  • redhat-lsb-cxx
  • redhat-lsb-desktop
  • redhat-lsb-languages
  • redhat-lsb-printing
  • redhat-lsb-submod-multimedia
  • redhat-lsb-submod-security
  • redhat-lsb-supplemental
  • redhat-lsb-trialuse
  • redhat-menus
  • redhat-support-lib-python
  • redhat-support-tool
  • reflections
  • regexp
  • relaxngDatatype
  • rhsm-gtk
  • rpm-plugin-prioreset
  • rpmemd
  • rsyslog-udpspoof
  • ruby-hivex
  • ruby-libguestfs
  • rubygem-abrt
  • rubygem-abrt-doc
  • rubygem-bson
  • rubygem-bson-doc
  • rubygem-bundler-doc
  • rubygem-mongo
  • rubygem-mongo-doc
  • rubygem-net-telnet
  • rubygem-xmlrpc
  • s390utils-cmsfs
  • samba-pidl
  • samba-test
  • samba-test-libs
  • samyak-devanagari-fonts
  • samyak-fonts-common
  • samyak-gujarati-fonts
  • samyak-malayalam-fonts
  • samyak-odia-fonts
  • samyak-tamil-fonts
  • sane-frontends
  • sanlk-reset
  • sat4j
  • scala
  • scotch
  • scotch-devel
  • SDL_sound
  • selinux-policy-minimum
  • sendmail
  • sgabios
  • sgabios-bin
  • shrinkwrap
  • sisu-inject
  • sisu-mojos
  • sisu-plexus
  • skkdic
  • SLOF
  • smc-anjalioldlipi-fonts
  • smc-dyuthi-fonts
  • smc-fonts-common
  • smc-kalyani-fonts
  • smc-raghumalayalam-fonts
  • smc-suruma-fonts
  • softhsm-devel
  • sonatype-oss-parent
  • sonatype-plugins-parent
  • sos-collector
  • sparsehash-devel
  • spax
  • spec-version-maven-plugin
  • spice
  • spice-client-win-x64
  • spice-client-win-x86
  • spice-glib
  • spice-glib-devel
  • spice-gtk
  • spice-gtk-tools
  • spice-gtk3
  • spice-gtk3-devel
  • spice-gtk3-vala
  • spice-parent
  • spice-protocol
  • spice-qxl-wddm-dod
  • spice-server
  • spice-server-devel
  • spice-qxl-xddm
  • spice-server
  • spice-streaming-agent
  • spice-vdagent-win-x64
  • spice-vdagent-win-x86
  • sssd-libwbclient
  • star
  • stax-ex
  • stax2-api
  • stringtemplate
  • stringtemplate4
  • subscription-manager-initial-setup-addon
  • subscription-manager-migration
  • subscription-manager-migration-data
  • subversion-javahl
  • SuperLU
  • SuperLU-devel
  • supermin-devel
  • swig
  • swig-doc
  • swig-gdb
  • swtpm-devel
  • swtpm-tools-pkcs11
  • system-storage-manager
  • tcl-brlapi
  • testng
  • tibetan-machine-uni-fonts
  • timedatex
  • tpm-quote-tools
  • tpm-tools
  • tpm-tools-pkcs11
  • treelayout
  • trousers
  • trousers-lib
  • tuned-profiles-compat
  • tuned-profiles-nfv-host-bin
  • tuned-utils-systemtap
  • tycho
  • uglify-js
  • unbound-devel
  • univocity-output-tester
  • univocity-parsers
  • usbguard-notifier
  • usbredir-devel
  • utf8cpp
  • uthash
  • velocity
  • vinagre
  • vino
  • virt-dib
  • virt-p2v-maker
  • vm-dump-metrics-devel
  • weld-parent
  • wodim
  • woodstox-core
  • wqy-microhei-fonts
  • wqy-unibit-fonts
  • xdelta
  • xmlgraphics-commons
  • xmlstreambuffer
  • xinetd
  • xorg-x11-apps
  • xorg-x11-drv-qxl
  • xorg-x11-server-Xspice
  • xpp3
  • xsane-gimp
  • xsom
  • xz-java
  • xz-java-javadoc
  • yajl-devel
  • yp-tools
  • ypbind
  • ypserv

10.21. 弃用和不维护的设备

本节列出了继续被支持的设备(驱动程序、适配器)

  • ,直到 RHEL 8 生命周期结束,但可能在这个产品以后的主要发行本中不被支持,不建议在新的部署中使用。对列出的设备的支持不会改变。这些是 弃用的 设备。
  • 可用,但不再在 RHEL 8 中进行常规测试或更新。红帽可自行决定修复严重的 bug,包括安全性 bug。这些设备不应再在生产环境中使用,很可能会在下一个主发行版本中被禁用。这些是 不维护的 设备。

PCI 设备 ID 采用 vendor:device:subvendor:subdevice 的格式。如果没有列出设备 ID,则与相应驱动程序关联的所有设备都会被弃用。要在您的系统中检查硬件的 PCI ID,请运行 lspci -nn 命令。

表 10.1. 弃用的设备

设备 ID驱动设备名称
 

bnx2

QLogic BCM5706/5708/5709/5716 驱动程序

 

hpsa

惠普公司: 智能阵列控制器

0x10df:0x0724

lpfc

Emulex 公司:OneConnect FCoE Initiator(Skyhawk)

0x10df:0xe200

lpfc

Emulex 公司:LPe15000/LPe16000 系列 8Gb/16Gb 光纤通道适配器

0x10df:0xf011

lpfc

Emulex 公司:Saturn: LightPulse 光纤通道主机适配器

0x10df:0xf015

lpfc

Emulex 公司:Saturn: LightPulse 光纤通道主机适配器

0x10df:0xf100

lpfc

Emulex 公司:LPe12000 系列 8Gb 光纤通道适配器

0x10df:0xfc40

lpfc

Emulex 公司:Saturn-X: LightPulse 光纤通道主机适配器

0x10df:0xe220

be2net

Emulex 公司:OneConnect NIC(Lancer)

0x1000:0x005b

megaraid_sas

Broadcom / LSI: MegaRAID SAS 2208 [Thunderbolt]

0x1000:0x006E

mpt3sas

Broadcom / LSI: SAS2308 PCI-Express Fusion-MPT SAS-2

0x1000:0x0080

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0081

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0082

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0083

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0084

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0085

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0086

mpt3sas

Broadcom / LSI: SAS2308 PCI-Express Fusion-MPT SAS-2

0x1000:0x0087

mpt3sas

Broadcom / LSI: SAS2308 PCI-Express Fusion-MPT SAS-2

 

myri10ge

Myricom 10G 驱动程序(10GbE)

 

netxen_nic

QLogic/NetXen(1/10)GbE 智能以太网驱动程序

0x1077:0x2031

qla2xxx

QLogic 公司: 基于 ISP8324 的 16Gb 光纤通道到 PCI Express 适配器

0x1077:0x2532

qla2xxx

QLogic 公司: 基于 ISP2532 的 8Gb 光纤通道到 PCI Express 适配器

0x1077:0x8031

qla2xxx

QLogic 公司: 8300 系列 10GbE 聚合网络适配器(FCoE)

 

qla3xxx

QLogic ISP3XXX 网络驱动程序 v2.03.00-k5

0x1924:0x0803

sfc

Solarflare 通信: SFC9020 10G 以太网控制器

0x1924:0x0813

sfc

Solarflare 通信: SFL9021 10GBASE-T 以太网控制器

 

Soft-RoCE (rdma_rxe)

 
 

HNS-RoCE

HNS GE/10GE/25GE/50GE/100GE RDMA Network Controller

 

liquidio

Cavium LiquidIO 智能服务器适配器驱动程序

 

liquidio_vf

Cavium LiquidIO 智能服务器适配器虚拟功能驱动程序

表 10.2. 不维护的设备

设备 ID驱动设备名称
 

e1000

Intel® PRO/1000 网络驱动程序

 

mptbase

Fusion MPT SAS 主机驱动程序

 

mptsas

Fusion MPT SAS 主机驱动程序

 

mptscsih

Fusion MPT SCSI 主机驱动程序

 

mptspi

Fusion MPT SAS 主机驱动程序

0x1000:0x0071 [a]

megaraid_sas

Broadcom / LSI: MR SAS HBA 2004

0x1000:0x0073 [a]

megaraid_sas

Broadcom / LSI: MegaRAID SAS 2008 [Falcon]

0x1000:0x0079 [a]

megaraid_sas

Broadcom / LSI: MegaRAID SAS 2108 [Liberator]

 

nvmet_tcp

NVMe/TCP 目标驱动程序

[a] 在 RHEL 8.0 中禁用了,由于客户请求,在 RHEL 8.4 中被重新启用了。

第 11 章 已知问题

这部分论述了 Red Hat Enterprise Linux 8.8 中已知问题。

11.1. 安装程序和镜像创建

在具有 LPAR 并启用了 secure boot 的 IBM Power 10 系统上安装失败

RHEL 安装程序没有与 IBM Power 10 系统上静态密钥安全引导集成。因此,当使用 secure 引导选项启用逻辑分区(LPAR)时,安装会失败并显示错误,Unable to proceed with RHEL-x.x Installation

要临时解决这个问题,请安装 RHEL 但不启用 secure boot。引导系统后:

  1. 使用 dd 命令将签名的内核复制到 PReP 分区。
  2. 重启系统并启用 secure boot。

一旦固件验证了引导加载程序和内核,系统就可以成功引导。

如需更多信息,请参阅 https://www.ibm.com/support/pages/node/6528884

Bugzilla:2025814

在 Anaconda 作为应用程序运行的系统中意外 SELinux 策略

当 Anaconda 作为应用程序运行在已安装的系统上(例如,使用 -image anaconda 选项对镜像文件执行另一次安装)时,不禁止系统在安装过程中修改 SELinux 类型和属性。因此,某些 SELinux 策略的元素可能会在运行Anaconda 的系统上发生更改。要临时解决这个问题,请不要在生产环境系统上运行 Anaconda,而在临时虚拟机中执行它。因此,生产系统上的 SELinux 策略没有被修改。作为系统安装过程的一部分运行 anaconda,如从 boot.isodvd.iso 安装不会受此问题的影响。

Bugzilla:2050140

authauthconfig Kickstart 命令需要 AppStream 软件仓库

authauthconfig Kickstart 命令在安装过程中需要 authselect-compat 软件包。如果没有这个软件包,如果使用了 authauthconfig,则安装会失败。但根据设计,authselect-compat 软件包只包括在 AppStream 仓库中。

要临时解决这个问题,请确定安装程序可使用 BaseOS 和 AppStream 软件仓库,或者在安装过程中使用 authselect Kickstart 命令。

Bugzilla:1640697

reboot --kexecinst.kexec 命令不提供可预测的系统状态

使用 reboot --kexec Kickstart 命令或 inst.kexec 内核引导参数执行 RHEL 安装不会提供与完全重启相同的可预期系统状态。因此,在不重启的情况下切换安装的系统可能会导致无法预计的结果。

请注意,kexec 功能已弃用,并将在以后的 Red Hat Enterprise Linux 版本中删除。

Bugzilla:1697896

USB CD-ROM 驱动器作为 Anaconda 中的安装源不可用

当源为 USB CD-ROM 驱动器,并且指定了 Kickstart ignoredisk --only-use= 命令时,安装会失败。在这种情况下,Anaconda 无法找到并使用这个源磁盘。

要临时解决这个问题,请使用 harddrive --partition=sdX --dir=/ 命令从 USB CD-ROM 驱动器安装。因此,安装不会失败。

Bugzilla:1914955

在安装程序中不默认启用网络访问

几个安装功能需要网络访问,例如:使用 Content Delivery Network(CDN)、NTP 服务器支持和网络安装源注册系统。但默认情况下不启用网络访问,因此在启用网络访问前无法使用这些功能。

要临时解决这个问题,请添加 ip=dhcp 在启动安装时启用网络访问。另外,使用引导选项传递 Kickstart 文件或位于网络中的库也会解决这个问题。因此可以使用基于网络的安装功能。

Bugzilla:1757877

带有 iso9660 文件系统的硬盘分区安装失败

您不能在使用 iso9660 文件系统进行分区的系统中安装 RHEL。这是因为将设置为忽略包含 iso9660 文件系统分区的硬盘的更新安装代码。即使在没有使用 DVD 的情况下安装 RHEL,也会发生这种情况。

要解决这个问题,请在 kickstart 文件中添加以下脚本,以在安装开始前格式化磁盘。

注:在执行临时解决方案前,请备份磁盘上的数据。erafs 命令对磁盘中的所有现有数据进行格式化。

%pre
wipefs -a /dev/sda
%end

因此,安装可以正常工作,且没有任何错误。

Bugzilla:1929105

带有 HASH MMU 模式的 IBM Power 系统无法引导,并显示内存分配失败

具有 HASH 内存分配单元(MMU) 模式的 IBM Power Systems 最多支持 192 个核的 kdump 。因此,如果在超过 192 个核上启用了 kdump,则系统会无法引导,显示内存分配失败。这个限制是因为 HASH MMU 模式下早期引导过程中的 RMA 内存分配。要临时解决这个问题,请使用启用了 fadumpRadix MMU 模式,而不是使用 kdump

Bugzilla:2028361

RHEL for Edge 安装程序镜像在安装 rpm-ostree 有效负载时无法创建挂载点

当部署 rpm-ostree 有效负载时,例如在 RHEL for Edge 安装程序镜像中,安装程序不会为自定义分区正确创建一些挂载点。因此,安装会中止,并报以下错误:

The command 'mount --bind /mnt/sysimage/data /mnt/sysroot/data' exited with the code 32.

要临时解决这个问题:

  • 使用自动分区方案,且不手动添加任何挂载点。
  • 只在 /var 目录中手动分配挂载点。例如: /var/my-mount-point 和以下标准目录://boot/var

因此,安装过程成功完成。

Bugzilla:2126506

11.2. 订阅管理

syspurpose addonssubscription-manager attach --auto 输出没有影响

在 Red Hat Enterprise Linux 8 中,添加了 syspurpose 命令行工具的四个属性:roleusageservice_level_agreementaddons目前,只有 roleusageservice_level_agreement 会影响到运行 subscription-manager attach --auto 命令的输出。试图为 addons 参数设置值的用户不会观察到对自动附加的订阅有任何影响。

Bugzilla:1687900

11.3. 软件管理

cr_compress_file_with_stat() 可能会导致内存泄漏

createrepo_c C 库包含 API cr_compress_file_with_stat() 函数。这个函数被声明为以 char **dst 作为第二个参数。根据其他参数,cr_compress_file_with_stat() 要么使用 dst 作为输入参数,要么使用它来返回一个分配的字符串。这种无法预测的行为可能会导致内存泄漏,因为它不会通知用户何时释放 dst内容。

要临时解决这个问题,增加了一个新的 API cr_compress_file_with_stat_v2 函数,它只使用 dst 参数作为输入。它被声明为 char *dst。这可防止内存泄漏。

请注意,cr_compress_file_with_stat_v2 函数为临时的,仅存在于 RHEL 8 中。之后,cr_compress_file_with_stat() 将会被修复。

Bugzilla:1973588

当 scriptlet 失败时,YUM 事务被报告为成功

从 RPM 版本 4.6 开始,允许安装后 scriptlet 失败,而不会对事务造成致命影响。这个行为也被传播到 YUM。这导致 scriptlets 可能会偶尔失败,而整个软件包事务报告为成功。

目前还没有可用的临时解决方案。

请注意,这是预期行为,其在 RPM 和 YUM 之间保持一致。scriptlet 中的任何问题都应在软件包层面上解决。

Bugzilla:1986657

11.4. Shell 和命令行工具

ipmitool 与某些服务器平台不兼容

ipmitool 工具为监控、配置和管理支持智能平台管理接口(IPMI)的设备提供服务。ipmitool 的当前版本默认使用 Cipher Suite 17,而不是之前的 Cipher Suite 3。因此,ipmitool 无法与在协商过程中与声称支持 Cipher Suite 17 的某些裸机节点通信,但实际上不支持这个加密套件。因此,ipmitool 会中止,并发出 no matching cipher suite 错误消息。

如需了解更多详细信息,请参阅相关的 知识库文章

要解决这个问题,请更新您的基板管理控制器(BMC)固件以使用 Cipher Suite 17。

另外,如果 BMC 固件更新不可用,您可以通过强制 ipmitool 使用特定加密套件来临时解决这个问题。当使用 ipmitool 调用管理任务时,向 ipmitool 命令添加 -C 选项,以及您要使用的加密套件的 编号。请参见以下示例:

# ipmitool -I lanplus -H myserver.example.com -P mypass -C 3 chassis power status

Bugzilla:1873614

在不使用清洁磁盘进行恢复时,ReaR 无法重新创建卷组

当您要恢复到包含现有数据的磁盘时,ReaR 无法执行恢复。

要临时解决这个问题,如果磁盘之前使用过,请在恢复之前手动擦除磁盘。要在救援环境中擦除磁盘,请在运行 rear recover 命令前使用以下命令之一:

  • 使用 dd 命令覆盖磁盘。
  • 使用带有 -a 标志的 wipefs 命令来清除所有可用的元数据。

请参见以下擦除 /dev/sda 磁盘的元数据的示例:

# wipefs -a /dev/sda[1-9] /dev/sda

此命令首先从 /dev/sda 上的分区擦除元数据,然后是分区表本身。

Bugzilla:1925531

coreutils 可能会报告误导性的 EPERM 错误代码

GNU Core 工具(coreutils)使用 statx() 系统调用启动了。如果 seccomp 过滤器对未知系统调用返回一个 EPERM 错误代码,则 coreutils 可能会连续报告误导 EPERM 错误码,因为 EPERM 无法从工作的 statx() syscall 返回的实际 Operation not permitted 进行区分。

要临时解决这个问题,请更新 seccomp 过滤器,使其要么允许 statx() 系统调用,要么对其它不知道的系统调用返回 ENOSYS 错误代码。

Bugzilla:2030661

11.5. 基础架构服务

FIPS 模式中的 postfix TLS 指纹算法需要改为 SHA-256

默认情况下,在 RHEL 8中,postfix使用带有TLS 的MD5 指纹来进行向后兼容。但是在 FIPS 模式中,MD5 哈希功能不可用,这可能会导致 TLS 在默认 postfix 配置中不正确正常工作。要解决这个问题,在 postfix 配置文件中需要将哈希功能改为 SHA-256。

如需了解更多详细信息,请参阅 Fix postfix TLS in the FIPS mode by switching to SHA-256 instead of MD5

Bugzilla:1711885

brltty 软件包与 multilib 不兼容

不可能同时安装 32 位和 64 位版本的 brltty 软件包。您要么安装 32 位(brltty.i686),要么安装 64 位(brltty.x86_64)版本的软件包。建议使用 64 位版本。

Bugzilla:2008197

11.6. 安全性

tangd-keygen 无法正确处理非默认的 umask

tangd-keygen 脚本不会更改生成的密钥文件的文件权限。因此,在具有阻止向其他用户读取密钥的默认用户文件创建模式掩码(umask)的系统上,tang-show-keys 命令会返回错误消息 Internal Error 500 ,而不是显示密钥。

要临时解决这个问题,请使用 chmod o+r *.jwk 命令更改 /var/db/tang 目录中的文件的权限。

Bugzilla:2188743

sshd -T 提供关于 Ciphers、MAC 和 KeX 算法的不准确的信息

sshd -T 命令的输出不包含系统范围的加密策略配置或可能来自于环境文件 /etc/sysconfig/sshd 的其他选项,它们作为 sshd 命令的参数被应用。这种情况的发生是因为上游 OpenSSH 项目不支持 Include 指令,以支持 RHEL 8 中红帽提供的加密默认值。在使用 EnvironmentFile 启动sshd.service 单元服务的过程中,加密策略作为命令行参数被应用到 sshd 可执行文件中。要临时解决这个问题,请对环境文件使用 source 命令,并将加密策略作为参数传给 sshd 命令,如 sshd -T $CRYPTO_POLICY 。如需更多信息,请参阅 Ciphers、MAC 或 KeX 算法与 sshd -T 的不同,以了解当前加密策略级别所提供的内容。因此,sshd -T 的输出与当前配置的加密策略匹配。

Bugzilla:2044354

在安装过程中强化系统时,RHV hypervisor 可能无法正常工作

安装 Red Hat Virtualization Hypervisor(RHV-H),并应用 Red Hat Enterprise Linux 8 STIG 配置文件时,OSCAP Anaconda Add-on 可将系统强化为 RHEL 而不是 RVH-H ,并删除 RHV-H 的基本软件包。因此,RHV hypervisor 可能无法工作。要临时解决这个问题,请在不应用任何配置文件强化的情况下安装 RHV-H 系统,并在安装完成后使用 OpenSCAP 来应用配置文件。因此,RHV hypervisor 可以正常工作。

Bugzilla:2075508

CVE OVAL 提要现在仅采用压缩格式,并且数据流不采用 SCAP 1.3 标准

红帽提供 bzip2 压缩格式的 CVE OVAL 提要,且不再以 XML 文件格式提供。因为引用压缩的内容没有在安全内容自动化协议(SCAP) 1.3 规范中标准化,所以第三方 SCAP 扫描程序可能在扫描使用提要的规则时有问题。

Bugzilla:2028428

某些 Rsyslog 优先级字符串无法正常工作

对允许对加密进行精细控制的 imtcp 的 GnuTLS 优先级字符串的支持不完整。因此,以下优先级字符串无法在 Rsyslog 远程日志记录应用程序中正常工作:

NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+DHE-RSA:+AES-256-GCM:+SIGN-RSA-SHA384:+COMP-ALL:+GROUP-ALL

要临时解决这个问题,请只使用正确的优先级字符串:

NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+ECDHE-RSA:+AES-128-CBC:+SIGN-RSA-SHA1:+COMP-ALL:+GROUP-ALL

因此,当前的配置必须仅限于可正常工作的字符串。

Bugzilla:1679512

Server with GUIWorkstation 安装可能无法使用 CIS 服务器配置文件

CIS Server Level 1 和 Level 2 安全配置文件与 Server with GUIWorkstation 软件选择不兼容。因此,无法使用 Server with GUI 软件选择和 CIS Server 配置文件进行 RHEL 8 安装。使用 CIS Server Level 1 或 Level 2 配置以及这些软件选择之一尝试安装会产生错误信息:

package xorg-x11-server-common has been added to the list of excluded packages, but it can't be removed from the current software selection without breaking the installation.

如果您需要根据 CIS 基准使系统与 Server with GUIWorkstation 软件选择保持一致,请使用 CIS Workstation Level 1 或 Level 2 配置文件。

Bugzilla:1843932

Kickstart 在 RHEL 8 中使用 org_fedora_oscap 而不是 com_redhat_oscap

Kickstart 将 Open Security Content Automation Protocol(OSCAP)Anaconda 附加组件引用为 org_fedora_oscap 而不是 com_redhat_oscap,后者可能会导致混淆。对于保持与 Red Hat Enterprise Linux 7 的兼容性,这是必需的。

Bugzilla:1665082

libvirt overrides xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding

当具有 routenat 转发模式的虚拟网络启动时,libvirt 虚拟化框架都会启用 IPv4 转发。这会通过 xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding 规则覆盖配置,后续合规性扫描在评估此规则时会报告fail结果。

应用其中一个场景来临时解决这个问题:

  • 如果您的场景不需要,请卸载 libvirt 软件包。
  • 更改 libvirt 创建的虚拟网络的转发模式。
  • 通过定制您的配置文件来删除 xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding 规则。

Bugzilla:2118758

FIPS 模式中的 openssl 只接受特定的 D-H 参数

在 FIPS 模式中,使用 OpenSSL 的 TLS 客户端返回一个bad dh value 错误,并中止与使用手动生成参数的服务器的 TLS 连接。这是因为 OpenSSL 当配置为符合 FIPS 140-2 时,只可用于符合 NIST SP 800-56A rev3 附加 D(RFC 3526 中定义的组 14、15、16、17 和 18,以及 RFC 7919)中定义的组。另,,使用 OpenSSL 的服务器会忽略所有其他参数,并选择类似大小的已知参数。要临时解决这个问题,请只使用兼容的组。

Bugzilla:1810911

crypto-policies 错误地允许 Camellia 密码

RHEL 8 系统范围的加密策略应该在所有策略级别禁用 Camellia 密码,如产品文档中所述。但是 Kerberos 协议默认启用密码。

要临时解决这个问题,请应用 NO-CAMELLIA 子策略:

# update-crypto-policies --set DEFAULT:NO-CAMELLIA

在上一个命令中,如果您已经从 DEFAULT 切换,那么将 DEFAULT 替换为加密级名称。

因此,只有在您通过临时解决方案禁用系统范围的加密策略的所有应用程序中,Camellia 密码才会被正确禁止。

Bugzilla:1919155

OpenSC 可能无法正确检测 CardOS V5.3 卡对象

OpenSC 工具包无法正确检测使用 CardOS V5.3 系统的智能卡的序列号。因此,pkcs11-tool 工具可能无法列出卡对象。

要临时解决这个问题,请在 /etc/opensc.conf 文件中设置'use_file_caching = false' 选项来关闭文件缓存。

Bugzilla:2176973

通过 OpenSC pkcs15-init 的智能卡配置过程无法正常工作

file_caching 选项在默认的 OpenSC 配置中是启用的,文件缓存功能无法正确处理pkcs15-init 工具中的一些命令。因此,通过 OpenSC 进行智能卡置备过程会失败。

要临时解决这个问题,请在 /etc/opensc.conf 文件中添加以下代码段:

app pkcs15-init {
        framework pkcs15 {
                use_file_caching = false;
        }
}

只有在应用了前面描述的临时解决方案时,通过 pkcs15-init 进行智能卡配置才能正常工作。

Bugzilla:1947025

到带有 SHA-1 签名的服务器的连接无法使用 GnuTLS

GnuTLS 安全通讯库以 insecure 形式拒绝 SHA-1 证书签名。因此,使用 GnuTLS 作为 TLS 后端的应用程序无法建立与提供此类证书的对等的 TLS 连接。这个行为与其他系统加密库不一致。

要临时解决这个问题,请升级服务器以使用 SHA-256 或更强大的哈希签名的证书,或切换到 LEGACY 策略。

Bugzilla:1628553

libselinux-python 只能通过其模块提供

libselinux-python 软件包只包含用于开发 SELinux 应用程序的 Python 2 绑定,它用于向后兼容。因此,通过 yum install libselinux-python 命令,默认的 RHEL 8 软件仓库中不再提供 libselinux-python

要临时解决这个问题,请启用 libselinux-pythonpython27 模块,并使用以下命令安装 libselinux-python 软件包及其相依性软件包:

# yum module enable libselinux-python
# yum install libselinux-python

或者,使用它的安装配置集在一个命令中安装 libselinux-python:

# yum module install libselinux-python:2.8/common

因此,您可以使用相关的模块安装 libselinux-python

Bugzilla:1666328

UDICA 仅在使用 --env container=podman 启动时才会处理 UBI 8 容器

Red Hat Universal Base Image 8(UBI 8)容器将 container 环境变量设置为 oci 值,而不是 podman 值。这可以防止 udica 工具分析容器 JavaScript Object Notation(JSON)文件。

要临时解决这个问题,请使用带有 --env container=podman 参数的 podman 命令启动 UBI 8 容器。因此,只有在使用上述临时解决方案时,udica才能为UBI 8 容器生成 SELinux 策略。

Bugzilla:1763210

默认日志设置在性能上的负面影响

默认日志环境设置可能会消耗 4 GB 内存甚至更多,当 systemd-journald 使用 rsyslog 运行时,速率限制值的调整会很复杂。

如需更多信息,请参阅 RHEL 默认日志设置对性能的负面影响及环境方案

Jira:RHELPLAN-10431

/etc/selinux/config 中的SELINUX=disabled 无法正常工作

/etc/selinux/config 中使用 SELINUX=disabled 选项禁用 SELinux 会导致内核在启用了 SELinux 的情况下引导,并在稍后的引导过程中切换到禁用模式。这可能导致内存泄漏。

要临时解决这个问题,请在内核命令行中添加 selinux=0 参数来禁用 SELinux,如 使用 SELinux 中的在引导时更改 SELinux 模式部分所述。

Jira:RHELPLAN-34199

通过 TCP 连接的 IKE 在自定义 TCP 端口上无法正常工作

tcp-remoteport Libreswan 配置选项无法正常工作。因此,当场景需要指定非默认 TCP 端口时,TCP 连接上的 IKE 无法建立。

Bugzilla:1989050

scap-security-guide 无法配置闲置会话的终止

虽然数据流中仍然存在 sshd_set_idle_timeout 规则,但之前配置 sshd 的会话超时的方法不再可用。因此,该规则被标记为 not applicable ,且无法强化任何内容。其他配置闲置会话终止的方法(如 systemd (Logind))也不可用。因此,scap-security-guide 无法将系统配置为在一定时间后可靠地断开闲置会话。

您可以使用以下方法之一临时解决这个问题,这些方法可能满足安全要求:

  • 配置 accounts_tmout 规则。但是,可以使用 exec 命令覆盖此变量。
  • 配置 configure_tmux_lock_after_timeconfigure_bashrc_exec_tmux 规则。这需要安装 tmux 软件包。
  • 升级到 RHEL 8.7 或更高版本,其中 systemd 功能已与正确的 SCAP 规则一起实施。

Bugzilla:2167373

OSCAP Anaconda 附加组件不会在图形安装中获取定制的配置文件

OSCAP Anaconda 附加组件不提供一个选项,来在 RHEL 图形安装中选择或取消选择安全配置文件的定制。从 RHEL 8.8 开始,当从存档或 RPM 软件包安装时,附加组件不会考虑定制。因此,安装会显示以下出错信息,而不是获取 OSCAP 定制的配置文件:

There was an unexpected problem with the supplied content.

要临时解决这个问题,您必须在 Kickstart 文件的 %addon org_fedora_oscap 部分中指定路径,例如:

xccdf-path = /usr/share/xml/scap/sc_tailoring/ds-combined.xml
tailoring-path = /usr/share/xml/scap/sc_tailoring/tailoring-xccdf.xml

因此,您只能将用于 SCAP 定制的配置文件的图形安装与相应的 Kickstart 规格一起使用。

Bugzilla:2165948

当删除智能卡读取器时,自动屏幕锁定无法正常工作

opensc 软件包不能正确处理删除 USB 智能卡读卡器。因此,即使 GNOME 显示管理器(GDM)被配置为在删除智能卡时锁住屏幕,系统仍保持解锁。另外,在重新连接 USB 读卡器后,在删除智能卡后屏幕也没有锁住。

要临时解决这个问题,请执行以下操作之一:

  • 始终只删除一个智能卡,不是智能卡读卡器。
  • 当使用将读卡器和卡集成到一个软件包的硬件令牌时,请升级到 RHEL 9。

Bugzilla:2097048

OpenSCAP 内存消耗问题

在具有有限内存的系统上,OpenSCAP 扫描程序可能会预先终止,或者可能无法产生结果文件。要临时解决这个问题,您可以自定义扫描配置文件,以取消选择涉及递归整个 / 文件系统的规则:

  • rpm_verify_hashes
  • rpm_verify_permissions
  • rpm_verify_ownership
  • file_permissions_unauthorized_world_writable
  • no_files_unowned_by_user
  • dir_perms_world_writable_system_owned
  • file_permissions_unauthorized_suid
  • file_permissions_unauthorized_sgid
  • file_permissions_ungroupowned
  • dir_perms_world_writable_sticky_bits

如需了解更多详细信息和临时解决方案,请参阅相关的 知识库文章

Bugzilla:2161499

在 kickstart 安装过程中修复与服务相关的规则可能会失败

在 kickstart 安装过程中,OpenSCAP 工具有时会错误地显示服务的 enabledisable 状态补救不需要。因此,OpenSCAP 可能会将安装的系统上的服务设置为不合规的状态。作为临时解决方案,您可以在 kickstart 安装后扫描并修复该系统。这可以解决与服务相关的问题。

Bugzilla:1834716

11.7. 网络

启用了 IPv6_rpfilter 选项的系统的网络吞吐量较低

firewalld.conf 文件中启用了 IPv6_rpfilter 选项的系统目前在高流量场景(如 100 Gbps 链接)中遇到次优性能和低网络吞吐量。要临时解决这个问题,请禁用 IPv6_rpfilter 选项。为此,请在 /etc/firewalld/firewalld.conf 文件中添加以下行:

IPv6_rpfilter=no

因此,系统性能更好,但安全性也有所降低。

Bugzilla:1871860

11.8. 内核

内核 ACPI 驱动程序报告无法访问 PCIe ECAM 内存区域

固件提供的高级配置和电源接口(ACPI)表没有在 PCI 总线设备中定义内存区域。因此,在系统引导时会出现以下警告信息:

[    2.817152] acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x30000000-0x31ffffff] not reserved in ACPI namespace
[    2.827911] acpi PNP0A08:00: ECAM at [mem 0x30000000-0x31ffffff] for [bus 00-1f]

但是,内核仍然可以访问 0x30000000-0x31ffff 内存区域,并可以正确地将该内存区域分配给 PCI 增强配置访问机制(ECAM)。您可以通过以下输出通过 256 字节偏移访问 PCIe 配置空间来验证 PCI 是正常工作的:

03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD (prog-if 02 [NVM Express])
 ...
        Capabilities: [900 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1- L1_PM_Substates+
                          PortCommonModeRestoreTime=255us PortTPowerOnTime=10us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=0ns
                L1SubCtl2: T_PwrOn=10us

因此,您可以忽略警告信息。

有关此问题的详情,请参阅 "Firmware Bug: ECAM area mem 0x30000000-0x31ffffff not reserved in ACPI namespace" appears during system boot

Bugzilla:1868526

tuned-adm profile powerave 命令会导致系统变得无响应

执行 tuned-adm profile powersave 命令会导致使用旧的Thunderx(CN88x)处理器的Penguin Valkyrie 2000 2-socket 系统处于无响应状态。因此,需要重启系统以便恢复工作。要临时解决这个问题,如果您的系统符合上述说明,请避免使用 powersave 配置集。

Bugzilla:1609288

HP NMI 监视器并不总是生成崩溃转储

在某些情况下,HP NMI watchdog 的 hpwdt 驱动无法声明一个由 HPE watchdog timer 生成的不可屏蔽中断(NMI),因为 NMI 被 perfmon 驱动所消耗。

缺少的 NMI 是由以下两个条件之一引发的:

  1. Integrated Lights-Out (iLO) 服务器管理软件中的 Generate NMI 按钮。这个按钮由用户触发。
  2. hpwdt watchdog。默认过期会向服务器发送一个 NMI。

在系统无响应时通常会出现这两个序列。在一般情况下,用于这两种情况的 NMI 处理程序调用 kernel panic() 功能,如果配置了, kdump 服务会生成 vmcore 文件。

由于缺少 NMI,没有调用 kernel panic() 且不收集 vmcore

第一种情况(1.),如果系统不响应,它会一直处于这个状态。要临时解决这种情况,请使用虚拟 Power 按钮来重置或者启用服务器。

在第二个示例中(2.),缺少的 NMI 之后会在 9 秒后被自动系统恢复(ASR)重置。

HPE Gen9 服务器行以单位数字显示这个问题。Gen10 频率更小。

Bugzilla:1602962

重新加载相同的崩溃扩展可能会导致分段错误

当您加载已加载的崩溃扩展文件的副本时,可能会触发分段错误。目前,crash 工具会检测原始文件是否已被加载。因此,由于两个完全相同的文件在 crash 工具中并存,因此会发生命名空间冲突,这会触发 crash 工具,从而导致分段错误。

您可以通过只加载 crash 扩展文件一次来临时解决此问题。因此,在描述的场景中不再会出现分段错误。

Bugzilla:1906482

将虚拟功能附加到虚拟机时连接会失败

使用传奇 ionic设备驱动程序的 Pensando 网卡会默默地接受 VLAN 标签配置请求,并在将网络虚拟功能(VF)附加到虚拟机(VM)上时尝试配置网络连接。这些网络连接会失败,因为卡的固件还没有支持这个功能。

Bugzilla:1930576

OPEN MPI 库可能会使用默认 PML 的触发程序运行时失败

在 OPEN 消息密码界面(OPEN MPI)实现 4.0.x 系列中,Unified communicating X(UCX)是默认的点到点通信器(PML)。OPEN MPI 4.0.x 系列的后续版本弃用了 openib Byte Transfer Layer(BTL)。

但是,当OPEN MPI 在 同构 集群(与硬件和软件配置相同)上运行时,UCX 仍然使用openib BTL进行 MPI 单边操作。因此,这可能会导致触发器执行错误。要临时解决这个问题:

  • 使用以下参数运行 mpirun 命令:
-mca btl openib -mca pml ucx -x UCX_NET_DEVICES=mlx5_ib0

其中,

  • -mca btl openib 参数禁用 openib BTL
  • -mca pml ucx 参数将 OPEN MPI 配置为使用 ucx PML。
  • x UCX_NET_DEVICES= 参数限制 UCX 使用指定的设备

OPEN MPI 在使用 异构 集群(不同硬件和软件配置)中运行时,使用 UCX 作为默认的 PML。因此,这可能会导致 OPEN MPI 任务在运行时出现错误的性能、不响应性行为或崩溃问题。要临时解决这个问题,将 UCX 优先级设置为:

  • 使用以下参数运行 mpirun 命令:
-mca pml_ucx_priority 5

因此,OPEN MPI 库可以选择使用 UCX 的可替代传输层。

Bugzilla:1866402

在内存热插拔操作后,vmcore 捕获失败

执行内存热插拔操作后,会更新包含内存布局信息的设备树。因此,makedumpfile 实用程序会尝试访问不存在的物理地址。如果以下条件都满足,就会出现问题:

  • IBM Power System 的 little-endian 变体运行 RHEL 8。
  • 在系统中启用了 kdump 或者 fadump 服务。

因此,如果在内存 hot-plug 或 hot-unplug 操作后触发了内核崩溃,捕获内核将无法保存 vmcore

要临时解决这个问题,在 hot-plug 或 hot-unplug 后重启 kdump 服务:

# systemctl restart kdump.service

因此,vmcore 在上述场景中被成功保存。

Bugzilla:1793389

使用 irqpoll 会导致 vmcore 生成失败

由于在 Amazon Web Services Graviton 1 处理器上运行的 64 位 ARM 架构上的 nvme 驱动程序存在问题,因此导致在给第一个内核提供 irqpoll 内核命令行参数时 vmcore 生成失败。因此,当内核崩溃时,vmcore 文件不会在 /var/crash/ 目录中转储 。要临时解决这个问题:

  1. /etc/sysconfig/kdump 文件中,将 irqpoll 追加到 KDUMP_COMMANDLINE_REMOVE 变量中。

    # KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
  2. 删除 /etc/sysconfig/kdump 文件中 KDUMP_COMMANDLINE_APPEND 变量中的 irqpoll

    # KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory udev.children-max=2 panic=10 swiotlb=noforce novmcoredd"
  3. 重启 kdump 服务:

    # systemctl restart kdump

因此,第一个内核会正确引导,在内核崩溃时可以捕获 vmcore 文件。

请注意,Amazon Web Services Graviton 2 和 Amazon Web Services Graviton 3 处理器不需要手动删除 /etc/sysconfig/kdump 文件中的 irqpoll 参数。

kdump 服务可能会使用大量崩溃内核内存来转储 vmcore 文件。确定捕获内核有足够的内存可用于 kdump 服务。

有关此已知问题的详情,请查看 irqpoll 内核命令行参数可能会导致 vmcore 生成失败 的文章。

Bugzilla:1654962

在 RHEL 8 上,调试内核无法在崩溃捕获环境中引导

由于 调试内核的内存密集型特性,当调试内核在使用,且触发了内核 panic 时会出现问题。因此,调试内核无法作为捕获内核启动,而是生成堆栈跟踪。要临时解决这个问题,请根据需要增大崩溃内核内存。因此,调试内核会在崩溃捕获环境中成功引导。

Bugzilla:1659609

在引导时分配崩溃内核内存失败

在某些 Ampere Altra 系统上,当 BIOS 设置中禁用了 32 位区域时,在引导过程中分配崩溃内核内存会失败。因此,kdump 服务无法启动。这是因为 4 GB 以下的内存碎片导致,没有足够大的碎片来包含崩溃内核内存。

要临时解决这个问题,请在 BIOS 中启用 32 位内存区域,如下所示:

  1. 在您的系统中打开 BIOS 设置。
  2. 打开 Chipset 菜单。
  3. Memory Configuration 下,启用 SSlave 32-bit 选项。

因此,在 32 位区域中的崩溃内核内存分配会成功,kdump 服务可以按预期工作。

Bugzilla:1940674

由于网络接口名称的意外更改,IBM Z 上的 RoCE 接口丢失了其 IP 设置

在 RHEL 8.6 及更早版本中,udev 设备管理器在 IBM Z 平台上将无法预计的设备名称分配给由唯一标识符(UID)枚举的 RoCE 接口。但是,在 RHEL 8.7 及更高版本中,udev 将带有 eno 前缀的可预测的设备名称分配给这些接口。

如果您从 RHEL 8.6 或更早版本更新至 8.7 或更高版本,则这些 UID 枚举的接口有新名称,且不再与 NetworkManager 连接配置文件中的设备名称匹配。因此,这些接口在更新后没有 IP 配置。

有关在更新前可以应用的临时解决方案,以及更新系统后可以应用的修复,请参阅 在升级到 RHEL 8.7 或更高版本后 IBM Z 上的 RoCE 接口丢失了其 IP 设置

Bugzilla:2169382

QAT 管理器没有为 LKCF 保留备用设备

Intel® QuickAssist Technology (QAT)管理器(qatmgr)是一个用户空间进程,默认情况下会使用系统中的所有 QAT 设备。因此,没有为 Linux 内核加密框架(LKCF)保留任何 QAT 设备。不需要临时解决这种情况,因为此行为是预期的,大多数用户都将使用来自用户空间的加速。

Bugzilla:1920086

Solarflare 无法创建最大数量的虚拟函数(VF)

因为资源不足,Solarflare NIC 无法创建最大数量的 VF 。您可以检查 PCIe 设备可以在 /sys/bus/pci/devices/PCI_ID/sriov_totalvfs 文件中创建的 VF 的最大数量。要临时解决这个问题,您可以将 VF 的数量或 VF MSI 中断值调整为较低的值,可以在启动时从 Solarflare Boot Manager 调整或使用 Solarflare sfboot 工具调整。默认的 VF MSI 中断值为 8

  • 要使用 sfboot 调整 VF MSI 中断值:
# sfboot vf-msix-limit=2
注意

调整 VF MSI 中断值会影响 VF 性能。

有关调整的参数的更多信息,请参阅 Solarflare 服务器适配器用户指南

Bugzilla:1971506

使用 page_poison=1 可能会导致内核崩溃

当在带有错误 EFI 实现的固件上使用 page_poison=1 作为内核参数时,操作系统可能会导致内核崩溃。默认情况下,这个选项被禁用,不推荐启用它,特别是在生产系统中。

Bugzilla:2050411

iwl7260-firmware 破坏了 Intel Wi-Fi 6 AX200、AX210 和 Lenovo ThinkPad P1 Gen 4 上的 Wi-Fi

在将 iwl7260-firmwareiwl7260-wifi 驱动程序更新到 RHEL 8.7 及更新版本提供的版本后,硬件会进入不正确的内部状态。错误地报告其状态。因此,Intel Wifi 6 卡可能无法正常工作,并显示错误信息:

kernel: iwlwifi 0000:09:00.0: Failed to start RT ucode: -110
kernel: iwlwifi 0000:09:00.0: WRT: Collecting data: ini trigger 13 fired (delay=0ms)
kernel: iwlwifi 0000:09:00.0: Failed to run INIT ucode: -110

一个没有确认的临时解决方法是关闭并再次打开系统。不要重启。

Bugzilla:2106341

IBM Power 系统上的安全引导不支持迁移

目前在 IBM Power 系统上,在成功迁移物理卷(PV)后不会引导逻辑分区(LPAR)。因此,在分区上启用了安全引导的任何类型的自动迁移都会失败。

Bugzilla:2126777

kmod 中的 weak-modules 不能与模块间依赖一起工作

kmod 软件包提供的 weak-modules 脚本决定了哪些模块与安装的内核 kABI 兼容。但是,在检查模块的内核兼容性时,weak-modules 按照构建它们的内核的从高到低版本来处理模块符号依赖项。因此,针对不同内核版本构建的具有相互依赖关系的模块可能会被解释为不兼容,因此 weak-modules 脚本不能在此场景下工作。

要临时解决这个问题,请在安装新内核前针对最新的库存内核进行构建或放置额外的模块。

Bugzilla:2103605

Ampere Altra 服务器中的 kdump 进入 OOM 状态

Ampere Altra 和 Altra Max 服务器中的固件当前会导致内核分配太多事件、中断和命令队列,这消耗了太多内存。因此,kdump 内核进入内存不足(OOM)状态。

要临时解决这个问题,请通过将 crashkernel= 内核选项的值增加到 640M,来为 kdump 保留额外的内存。

Bugzilla:2111855

在具有大核数系统上的实时内核的硬件认证可能需要传递 skew-tick=1 引导参数,以避免锁争用

具有大量插槽和大核数的大型或中型系统可能会因为对 xtime_lock(其在计时系统中使用)的锁争用而遇到延迟峰值。因此,硬件认证中的延迟峰值和延迟可能会在多处理系统上发生。作为临时解决方案,您可以通过添加 skew_tick=1 引导参数,偏移每个 CPU 的计时器刻度,来在不同的时间启动。

要避免锁冲突,请启用 skew_tick=1

  1. 使用 grubby 启用 skew_tick=1 参数。

    # grubby --update-kernel=ALL --args="skew_tick=1"
  2. 重启以使更改生效。
  3. 运行 cat /proc/cmdline 命令来验证新设置。

请注意,启用 skew_tick=1 会导致功耗的大量增加,因此只有在运行延迟敏感实时工作负载时才必须启用它。

Bugzilla:2214508

11.9. 引导加载程序

grubby 的行为与其文档有区别

当您使用 grubby 工具添加了一个新内核而不指定任何参数时,grubby 会将默认参数传递给新条目。即使不传递 --copy-default 参数,也会发生此行为。使用 --args--copy-default 选项确保这些参数附加到默认参数中,如 grubby 文档中所述。

但是,当添加额外的参数(如 $tuned_params )时,grubby 工具不会传递这些参数,除非调用了 --copy-default 选项。

在这种情况下,有两个临时解决方案:

  • 设置 root= 参数,并保留 --args 为空:

    # grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root" --title "entry_with_root_set"
  • 或者设置 root= 参数和指定的参数,但不是默认的参数:

    # grubby --add-kernel /boot/my_kernel --initrd /boot/my_initrd --args "root=/dev/mapper/rhel-root some_args and_some_more" --title "entry_with_root_set_and_other_args_too"

Bugzilla:1900829

11.10. 文件系统和存储

保存一个 LUKS 卷的 LVM mirror 设备有时将变为无响应

在某些情况下,保存 LUKS 卷的片段类型的 mirror LVM 设备可能会变得无响应。无响应设备会拒绝所有 I/O 操作。

要解决这个问题,红帽建议在有弹性软件定义的存储之上使用带 raid1 的片段类型的 LVM RAID 1 设备而不是镜像( mirror )。

raid1 segment 类型是默认的 RAID 配置类型,它作为推荐的解决方案替换 mirror

要将 mirror 设备转换为 raid1,请参阅将镜像 LVM 设备转换为 RAID1 设备

Bugzilla:1730502

无法将 /boot 文件系统放在 LVM 中

您不能将 /boot 文件系统放在 LVM 逻辑卷中。这种限制的原因如下:

  • 在 EFI 系统中,EFI 系统分区 通常充当 /boot 文件系统。uEFI 标准要求有特定的 GPT 分区类型和具体文件系统类型。
  • RHEL 8 在系统引导条目中使用 Boot Loader 规格 (BLS)。这个规格要求 /boot 文件系统可由平台固件可读。在 EFI 系统中,平台固件只能读取 uEFI 标准定义的 /boot 配置。
  • 在 GRUB 2 引导装载程序中不支持 LVM 逻辑卷。红帽没有计划进行改进,因为如 uEFI 和 BLS 的标准,这个功能的使用情况正在下降。

红帽不计划在 LVM 中支持 /boot。反之,红帽提供了管理系统快照和回滚的工具,这些工具不需要将 /boot 文件系统放在 LVM 逻辑卷中。

Bugzilla:1496229

LVM 不再允许使用混合块大小创建卷组

LVM 工具(如 vgcreatevgextend)不再允许您创建有不同逻辑块大小的物理卷(PV)的卷组(VG)。LVM 启用了这个更改,因为如果您使用不同块大小的 PV 扩展了基本逻辑卷(LV),文件系统将无法挂载。

要重新创建带有混合块大小的 VG,在 lvm.conf 文件中设置 allow_mixed_block_sizes=1 选项。

Bugzilla:1768536

LVM writecache 的限制

writecache LVM 缓存方法有以下限制,这些限制不会出现在 cache 方法中:

  • 使用 pvmove 命令时您无法命名 writecache 逻辑卷。
  • 您不能将带有 writecache 的逻辑卷与精简池或 VDO 结合使用。

以下限制也适用于 cache 方法:

  • 您不能在将 cachewritecache 附加到逻辑卷时重新定义大小。

Jira:RHELPLAN-27987, Bugzilla:1798631, Bugzilla:1808012

使用 NVMe/TCP 驱动程序时不支持设备映射器多路径。

在 NVMe/TCP 设备之上使用设备映射器多路径可能会导致性能降低和错误处理。要避免这个问题,请使用原生 NVMe 多路径而不是 DM 多路径工具。对于 RHEL 8,您可以向内核命令行中添加 nvme_core.multipath=Y 选项。

Bugzilla:2022359

blk-availability systemd 服务停用了复杂的设备堆栈

systemd 中,默认的块停用代码并不总是正确处理虚拟块设备的复杂堆栈。在一些配置中,虚拟设备在关闭过程中可能无法被删除,这会导致记录错误信息。要临时解决这个问题,请执行以下命令来停用复杂块设备堆栈:

# systemctl enable --now blk-availability.service

因此,复杂虚拟设备堆栈会在关闭过程中被正确停用,且不会生成错误消息。

Bugzilla:2011699

XFS 配额警告经常被触发

使用配额计时器会导致配额警告的触发过于频繁,这导致软配额的强制执行的速度比应该执行的速度更快。要临时解决这个问题,请不要使用软配额,这会防止触发警告。因此,警告信息量将不再强制软配额限制,会尊重配置的超时时间。

Bugzilla:2059262

11.11. 动态编程语言、网页和数据库服务器

当使用 virtualenv 工具时,创建虚拟 Python 3.11 环境会失败

RHEL 8 中由 python3-virtualenv 软件包提供的 virtualenv 工具与 Python 3.11 不兼容。尝试使用 virtualenv 创建虚拟环境将失败,并显示以下错误消息:

$ virtualenv -p python3.11 venv3.11
Running virtualenv with interpreter /usr/bin/python3.11
ERROR: Virtual environments created by virtualenv < 20 are not compatible with Python 3.11.
ERROR: Use `python3.11 -m venv` instead.

要创建 Python 3.11 虚拟环境,请使用 python3.11 -m venv 命令,它使用标准库的 venv 模块。

Bugzilla:2165702

python3.11-lxml 不提供 lxml.isoschematron 子模块

python3.11-lxml 软件包不与 lxml.isoschematron 子模块一起分发,因为它不是开源许可证。子模块实现 ISO 架构支持。作为替代方案,lxml.etree.Schematron 类种提供了 pre-ISO-Schematron 验证。python3.11-lxml 软件包的其余内容不受影响。

Bugzilla:2157673

PAM 插件版本 1.0 在 MariaDB中无法正常工作

MariaDB 10.3 提供了可插拔验证模块(PAM)插件版本1.0 。MariaDB 10.5 提供插件版本 1.0 和 2.0,版本 2.0 是默认版本。

MariaDB PAM 插件版本 1.0 在 RHEL 8 中无法正常工作。要临时解决这个问题,请使用 mariadb:10.5 模块流提供的 PAM 插件版本 2.0。

Bugzilla:1942330

OpenLDAP 库之间的符号冲突可能会导致 httpd崩溃

当 OpenLDAP 提供的 libldaplibldap_r 库被加载并在单个进程中使用时,这些库之间可能会出现符号冲突。因此,如果 httpd 配置也加载 mod_securitymod_auth_openidc 模块,则使用 PHP ldap 扩展的 Apache httpd 子进程可能会意外终止。

从因为RHEL 8.3 更新到 Apache Portable Runtime(APR)库,您可以通过设置 APR_DEEPBIND 环境变量来临时解决这个问题,该变量在载入 httpd 模块时,允许使用 RTLD_DEEPBIND 动态链接器选项。当 APR_DEEPBIND 环境变量启用时,在加载冲突库的 httpd 配置中不再崩溃。

Bugzilla:1819607

当有 32 位应用程序调用 getpwnam() 时,可能会失败

当 NIS 用户使用32 位应用程序调用 getpwnam() 函数时,如果没有 nss_nis.i686 软件包,则调用会失败。要临时解决这个问题,使用 yum install nss_nis.i686 手动安装缺少的软件包。

Bugzilla:1803161

11.12. 身份管理

将 Samba 作为打印服务器运行,并从 RHEL 8.4 或更早版本更新时所需的操作

有了这个更新,samba 软件包不再创建 /var/spool/samba/ 目录。如果您将 Samba 用作打印服务器,并将 [printers] 共享中的 /var/spool/samba/ 用于假脱机打印作业,则SELinux 会阻止 Samba 用户在此目录中创建文件。因此,打印作业失败,auditd 服务会在 /var/log/audit/audit.log 中记录一跳 denied 消息。要在更新 8.4 及更早版本的系统后避免此问题:

  1. /etc/samba/smb.conf 文件中搜索 [printers] 共享。
  2. 如果共享定义包含 path = /var/spool/samba/,请更新设置,并将 path 参数设为 /var/tmp/
  3. 重启 smbd 服务:

    # systemctl restart smbd

如果在 RHEL 8.5 或更高版本上新安装了 Samba,则不需要任何操作。在本例中,samba-common 软件包提供的默认 /etc/samba/smb.conf 文件已将 /var/tmp/ 目录用于假脱机打印作业。

Bugzilla:2009213

cert-fix 程序与 --agent-uid pkidbuser 选项一同使用会破坏证书系统

使用带有 --agent-uid pkidbuser 选项的 cert-fix 工具可破坏证书系统的 LDAP 配置。因此,,证系统可能会变得不稳定,需要手动步骤才能恢复该系统。

Bugzilla:1729215

FIPS 模式不支持使用共享 secret 建立跨林信任

在 FIPS 模式中使用共享 secret 建立跨林信任会失败,因为 NTLMSSP 身份验证不兼容 FIPS。要临时解决这个问题,在启用了 FIPS 模式的 IdM 域和 AD 域间建立信任时,使用 Active Directory(AD)管理帐户进行身份验证。

Bugzilla:1924707

在 rebase 到版本 1.2.2 后,降级authselect会破坏系统身份验证

authselect 软件包已 rebase 到最新的上游版本 1.2.2。不支持降级 authselect,这会中断所有用户的系统身份验证,包括root用户。

如果您将authselect 软件包降级到 1.2.1 或更早版本,请执行以下步骤来解决这个问题:

  1. 在 GRUB 引导屏幕中,选择带有您要引导的内核版本的 Red Hat Enterprise Linux,然后按 e 编辑该条目。
  2. 在以 linux 开头的行的末尾输入 single 作为单独的单词,然后按 Ctrl+X 启动引导过程。
  3. 以单用户模式引导时,输入 root 密码。
  4. 使用以下命令恢复 authselect 配置:

    # authselect select sssd --force

Bugzilla:1892761

IdM 到 AD 跨域 TGS 请求失败

IdM Kerberos 票据中的 Privilege Attribute 证书(PAC) 信息现在使用 AES SHA-2 HMAC 加密进行签名,这是 Active Directory (AD) 不支持的。

因此,IdM 到 AD 跨域 TGS 请求(即双向信任设置)失败,并显示以下错误:

Generic error (see e-text) while getting credentials for <service principal>

Bugzilla:2125182

将对 ldap_id_use_start_tls 选项使用默认值时潜在的风险

当不使用 TLS 进行身份查找的情况下使用 ldap:// 时,可能会对攻击向量构成风险。特别是中间人(MITM)攻击,例如,其通过更改 LDAP 搜索中返回的对象的 UID 或 GID 来允许攻击者冒充用户。

目前,用于强制 TLS 的 ldap_id_use_start_tls SSSD 配置选项,默认为 false。确保您的设置可在可信环境中操作,并决定是否可以安全地对 id_provider = ldap 使用未加密的通信。注意 id_provider = adid_provider = ipa 不受影响,因为它们使用 SASL 和 GSSAPI 保护的加密连接。

如果使用未加密的通信是不安全的,请在 /etc/sssd/sssd.conf 文件中将 ldap_id_use_start_tls 选项设为 true 来强制使用 TLS。计划在以后的 RHEL 版本中更改默认行为。

Jira:RHELPLAN-155168

NSS 中启用的密码的 default 关键字无法与其他密码一起使用

在目录服务器中,您可以使用 default 关键字来指向网络安全服务(NSS)中启用的默认密码。但是,如果您要使用命令行或 Web 控制台来启用默认的密码和附加密码,目录服务器将无法解析 default 关键字。因此,服务器只启用额外指定的密码,并记录类似如下的错误:

Security Initialization - SSL alert: Failed to set SSL cipher preference information: invalid ciphers <default,+cipher_name>: format is +cipher1,-cipher2... (Netscape Portable Runtime error 0 - no error)

作为临时解决方案,指定 NSS 中默认启用的所有密码,包括您要额外启用的密码。

Bugzilla:1817505

从 RHEL 8.6 到 RHEL 8.7 或更高版本的 pki-core-debuginfo 更新会失败

pki-core-debuginfo 软件包从 RHEL 8.6 更新至 RHEL 8.7 或更高版本会失败。要临时解决这个问题,请运行以下命令:

  1. yum remove pki-core-debuginfo
  2. yum update -y
  3. yum install pki-core-debuginfo
  4. yum install idm-pki-symkey-debuginfo idm-pki-tools-debuginfo

Bugzilla:2134093

迁移的 IdM 用户可能会因为不匹的域 SID 而无法登录

如果您使用 ipa migrate-ds 脚本将用户从一个 IdM 部署迁移到另一个,则这些用户可能会在使用 IdM 服务时有问题,因为它们之前存在的安全标识符(SID)没有当前 IdM 环境的域 SID。例如,这些用户可以使用 kinit 工具检索 Kerberos 票据,但不能登录。要临时解决这个问题,请参阅以下知识库文章: Migrated IdM 用户因为不匹配的域 SID 而无法登录

Jira:RHELPLAN-109613

FIPS 模式下的 IdM 不支持使用 NTLMSSP 协议来建立双向跨林信任

在活动目录(AD)和启用了 FIPS 模式的身份管理(IdM)之间建立双向跨林信任会失败,因为新技术局域网管理器安全支持提供程序 (NTLMSSP)身份验证不符合 FIPS。FIPS 模式下的 IdM 不接受在尝试验证时 AD 域控制器使用的 RC4 NTLM 哈希。

Bugzilla:2120572

IdM Vault 加密和解密在 FIPS 模式下失败

如果启用了 FIPS 模式,则 OpenSSL RSA-PKCS1v15 填充加密会被阻止。因此,身份管理(IdM) Vault 无法正常工作,因为 IdM 目前正在使用 PKCS1v15 填充来用传输证书包装会话密钥。

Bugzilla:2122919

为 Kerberos 主体设置过期日期时不正确的警告

如果您为 Kerberos 主体设置了密码过期日期,则使用 32 位签名的整数变量将当前的时间戳与过期时间戳进行比较。如果过期日期在将来超过 68 年,则会导致整数变量溢出,从而导致显示以下警告信息:

Warning: Your password will expire in less than one hour on [expiration date]

您可以忽略此消息,密码将在配置的日期和时间正确过期。

Bugzilla:2125318

11.13. 桌面

无法从软件仓库中禁用 flatpak 程序库

目前,在 GNOME 软件工具中的软件程序库工具中无法禁用或删除 flatpak 程序库。

Bugzilla:1668760

第二代 RHEL 8 虚拟机有时无法在 Hyper-V Server 2016 主机上引导

当使用 RHEL 8 作为在 Microsoft Hyper-V Server 2016 主机上运行的虚拟机(VM)中的客户机操作系统时,虚拟机在某些情况下无法引导,并返回到 GRUB 引导菜单。另外,会在 Hyper-V 事件日志中记录以下错误:

The guest operating system reported that it failed with the following error code: 0x1E

这个错误是由 Hyper-V 主机上的 UEFI 固件错误造成的。要临时解决这个问题,请将 Hyper-V Server 2019 或更高版本用作主机。

Bugzilla:1583445

在桌面和应用程序间进行拖放操作无法正常工作

由于 gnome-shell-extensions 软件包中的一个 bug,drag-and-drop 功能目前在桌面和应用程序间无法正常工作。以后的发行版本中将重新添加对这个功能的支持。

Bugzilla:1717947

11.14. 图形基础结构

radeon 驱动程序无法正确重置硬件

radeon 内核驱动程序目前没有在 kexec 上下文中正确重置硬件。相反,radeon 无法工作,从而导致剩余的 kdump 服务失败。

要临时解决这个问题,在 kdump 中禁用 radeon,方法是在 /etc/kdump.conf 文件中添加以下行:

dracut_args --omit-drivers "radeon"
force_rebuild 1

重启系统和 kdump。启动 kdump 后,可能会从配置文件中删除 force_rebuild 1 行。

请注意,在这种情况下,转储过程中没有可用的图形,但 kdump 可以正常工作。

Bugzilla:1694705

多个 HDR 显示在单个 MST 拓扑上可能无法打开

在使用带有 nouveau 驱动程序的 NVIDIA Turing GPU 的系统上,使用DisplayPort 集线器(如笔记本电脑基座),该集线器上插有多个支持HDR的显示器,可能会导致其无法打开。这是因为系统错误地认为 hub 中没有足够的带宽来支持所有显示器。

Bugzilla:1812577

ESXi 中的 GUI 可能会因为视频内存较低而崩溃

VMware ESXi 7.0.1 带有 vCenter Server 7.0.1 的 RHEL 虚拟机上的图形用户界面(GUI)需要一定的视频内存。如果您将多个控制台或高分辨率监控器连接到虚拟机,则 GUI 至少需要 16 MB 的视频内存。如果您使用较少的视频内存启动 GUI,则 GUI 可能会意外终止。

要临时解决这个问题,请配置虚拟机监控程序为虚拟机分配至少 16MB 视频内存。因此,虚拟机上的 GUI 不会崩溃。

如果您遇到这个问题,红帽建议您将其报告给 VMware。

另请参阅以下 VMware 文章:具有高分辨率 VM 控制台的虚拟机可能会在 ESXi 7.0.1(83194)上出现崩溃

Bugzilla:1910358

VNC Viewer 显示在 IBM Z 中带有 16 位颜色深度的错误颜色

当您连接到带有 16 位色彩深度的 IBM Z 服务器上的 VNC 会话时,VNC Viewer 应用程序会显示错误的颜色。

要临时解决这个问题,请在 VNC 服务器中设置 24 位颜色深度。使用 Xvnc 服务器将 -depth 16 选项替换为 -depth 24 (在 Xvnc 配置中)。

因此,VNC 客户端会显示正确的颜色,但在服务器中使用更多的网络带宽。

Bugzilla:1886147

无法使用 sudo 命令运行图形应用程序

当试图以具有更高权限的用户运行图形应用程序时,应用程序无法打开并带有一个出错信息。发生故障的原因是 XwaylandXauthority 文件限制,为使用常规用户凭证进行验证。

要临时解决这个问题,使用 sudo -E 命令以 root 用户运行图形程序。

Bugzilla:1673073

ARM 不支持硬件加速

内置图形驱动程序不支持 64 位 ARM 架构中的硬件加速或 Vulkan API。

要启用硬件加速或者 ARM 上的 Vulkan,安装专有 Nvidia 驱动程序。

Jira:RHELPLAN-57914

安装程序在带有 ASPEED 2600 的服务器上冻结了

当您在具有 ASPEED 2600 On System Management Chipset 的服务器上启动图形 RHEL 8.8 安装程序时,安装程序会变得无响应,并黑屏。因此,您无法在服务器上安装 RHEL 8.8。

要临时解决这个问题,在引导安装程序时在内核命令行上添加以下选项:

  • nomodeset
  • drm_kms_helper.edid_firmware=edid/1024x768.bin

因此,安装可以如预期进行。

Bugzilla:2189645

11.15. Web 控制台

VNC 控制台在某些分辨率下无法正常工作

当在某些显示分辨率下使用虚拟网络计算(VNC)控制台时,您可能会遇到鼠标偏移问题,或者您可能只看到一部分界面。因此,可能无法使用 VNC 控制台。要临时解决这个问题,您可以尝试扩展 VNC 控制台的大小,或使用控制台选项卡中的 Desktop Viewer 来启动远程查看器。

Bugzilla:2030836

11.16. Red Hat Enterprise Linux 系统角色

将 RHEL 系统角色与 Ansible 2.9 搭配使用可能会显示有关使用 dnfcommand 模块的警告

从 RHEL 8.8 开始,RHEL 系统角色不再使用 dnf 模块的 warn 参数,因为此参数已在 Ansible Core 2.14 中删除。但是,如果您使用最新的 rhel-system-roles 软件包仍然与 Ansible 2.9 一起使用,且角色会安装软件包,则可以显示以下警告之一:

[WARNING]: Consider using the dnf module rather than running 'dnf'. If you need to use command because dnf is insufficient you can add 'warn: false' to
this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.
[WARNING]: Consider using the yum, dnf or zypper module rather than running 'rpm'. If you need to use command because yum, dnf or zypper is insufficient
you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.

如果要隐藏这些警告,请将 command_warnings = False 设置添加到 ansible.cfg 文件的 [Defaults] 部分。但请注意,此设置禁用 Ansible 中的所有警告。

Jira:RHELDOCS-17954

使用 playbook 或清单中的 localhost 主机名无法管理 localhost

RHEL 中包含了 ansible-core 2.13 软件包,如果您在您管理节点的同一台主机上运行 Ansible,则无法通过在 playbook 或清单中使用 localhost 主机名来实现它。这是因为 ansible-core 2.13 使用 python38 模块,并且缺少许多库,例如,用于 storage 角色的 blivet,用于 network 角色的 gobject。要临时解决这个问题,如果您已在 playbook 或清单中使用了 localhost 主机名,您可以使用 ansible_connection=local 来添加一个连接,或者使用 ansible_connection=local 选项创建一个列出 localhost 的清单文件。使用这种方式,您可以管理 localhost 上的资源。如需了解更多详细信息,请参阅文章 当在 localhost 上运行时,RHEL 系统角色 playbook 会失败

Bugzilla:2041997

如果 firewalld.service 被屏蔽,使用 firewall RHEL 系统角色会失败

如果在 RHEL 系统上屏蔽了 firewalld.service,则 firewall RHEL 系统角色会失败。要临时解决这个问题,请对 firewalld.service 取消屏蔽:

systemctl unmask firewalld.service

Bugzilla:2123859

rhc_auth 包含激活密钥时,rhc 系统角色在已注册的系统上会失败

如果为 rhc_auth 参数指定了激活密钥,在在已经注册的系统上执行 playbook 文件会失败。要临时解决这个问题,在已经注册的系统上执行 playbook 文件时不要指定激活密钥。

Bugzilla:2186908

11.17. 虚拟化

使用大量队列可能会导致 Windows 虚拟机失败

当启用了虚拟可信平台模块(vTPM)设备,且将 multi-queue virtio-net 功能配置为使用超过 250 个队列时,Windows 虚拟机(VM)可能会失败。

这个问题是由 vTPM 设备的限制造成的。vTPM 设备对于打开的文件描述符的最大数量有一个硬性的限制。因为会为每个新队列打开多个文件描述符,因此可能会超过内部 vTPM 的限值,从而导致虚拟机失败。

要临时解决这个问题,请选择以下两个选项之一:

  • 保持 vTPM 设备启用,但使用少于 250 个队列。
  • 禁用 vTPM 设备以使用超过 250 个队列。

Bugzilla:2020133

在 AMD Milan 系统上有时无法提供 Milan VM CPU 类型

在某些 AMD Milan 系统上,默认在 BIOS 中禁用了增强 REP MOVSB(erms)和 Fast Short REP MOVSB(fsrm)功能标记。因此,在这些系统上可能无法使用 Milan CPU 类型。另外,在具有不同功能标志设置的 Milan 主机之间的虚拟机实时迁移可能会失败。要临时解决这个问题,在主机的 BIOS 中手动打开 ermsfsrm

Bugzilla:2077770

当在 AMD EPYC 上使用主机透传模式时,虚拟机不会检测到 SMT CPU 拓扑

当在AMD EPYC 主机上以CPU主机直通模式引导虚拟机(VM)时,不会显示TOPOEXT CPU 功能标志。因此,虚拟机无法检测到每个内核有多个线程的虚拟 CPU 拓扑。要临时解决这个问题,使用 EPYC CPU 模型而不是主机透传引导虚拟机。

Bugzilla:1740002

使用 virtio-blk 将 LUN 设备附加到虚拟机中无法正常工作

q35 机器类型不支持 virtio 1.0 设备,因此 RHEL 8 不支持 virtio 1.0 中弃用的功能。特别是,RHEL 8 主机无法从 virtio-blk 设备发送 SCSI 命令。因此,使用 virtio-blk 控制器时,将物理磁盘作为 LUN 设备附加到虚拟机会失败。

请注意,物理磁盘仍可被传递给客户端操作系统,但应该使用 device='disk' 选项而不是 device='lun' 选项进行配置。

Bugzilla:1777138

当使用很多 virtio-blk 磁盘时,虚拟机有时无法启动

在虚拟机(VM)中添加大量 virtio-blk 设备可能会耗尽平台中可用的中断向量。如果发生了这种情况,VM 的客户机操作系统无法引导,并显示 dracut-initqueue[392]: Warning: Could not boot 错误。

Bugzilla:1719687

带有 iommu_platform=on 的虚拟机无法在 IBM POWER 上启动

RHEL 8 目前不支持 IBM POWER 系统上的虚拟机(VM)的 iommu_platform=on 参数。因此,在 IBM POWER 硬件上启动使用这个参数的虚拟机会导致虚拟机在引导过程中变得无响应。

Bugzilla:1910848

在使用 ibmvfc 驱动程序时,IBM POWER 主机现在可以正常工作

当在 PowerVM 逻辑分区(LPAR)上运行 RHEL 8 时,以前可能会因为 ibmvfc 驱动程序的问题而发生各种错误。因此,在某些情况下,主机上会触发内核 panic,例如:

  • 使用 Live Partition Mobility(LPM)功能
  • 重置主机适配器
  • 使用 SCSI 错误处理(SCSI EH)功能

有了此更新,ibmvfc 的处理已被修复,上面描述的内核 panics 不再发生。

Bugzilla:1961722

在 IBM POWER 系统中使用 perf kvm record 可能会导致虚拟机崩溃

当在 IBM POWER 硬件的 little-endian 变体中使用 RHEL 8 主机时,使用 perf kvm record 命令为 KVM 虚拟机(VM)收集追踪事件样本会导致虚拟机变得没有响应。在以下情况下发生这种情况:

  • perf工具由非特权用户使用,-p 选项用来标识虚拟机 - 例如 perf kvm record -e trace_cycles -p 12345
  • 虚拟机是使用 virsh shell 启动的。

要临时解决这个问题,请使用带有-i选项的 perf kvm 工具来监控使用 virsh shell 创建的虚拟机。例如:

# perf kvm record -e trace_imc/trace_cycles/  -p <guest pid> -i

请注意,在使用 -i 选项时,子任务不会继承计数器,因此线程不会被监控。

Bugzilla:1924016

带有启用 Hyper-V 的 Windows Server 2016 虚拟机无法引导

目前,无法引导使用 Windows Server 2016 作为客户端操作系统的虚拟机,它启用了 Hyper-V 角色,并使用以下 CPU 模型之一:

  • EPYC-IBPB
  • EPYC

要临时解决这个问题,使用 EPYC-v3 CPU 模型,或者为虚拟机手动启用 xsaves CPU 标记。

Bugzilla:1942888

将 POWER9 客户端从 RHEL 7-ALT 主机迁移到 RHEL 8 会失败

目前,将 POWER9 虚拟机从 RHEL 7-ALT 主机系统迁移到 RHEL 8 会变得没有响应,显示Migration status: active状态)。

要临时解决这个问题,在 RHEL 7-ALT 主机上禁用 Transparent Huge Pages(THP),这样可使迁移成功完成。

Bugzilla:1741436

使用 virt-customize 有时会导致 guestfs-firstboot 失败

使用 virt-customize 工具修改了虚拟机(VM)磁盘镜像后,guestfs-firstboot 服务在某些情况下会因为 SELinux 权限不正确而失败。这会导致虚拟机启动过程中出现各种问题,如创建用户失败或系统注册失败。

要避免这个问题,请使用带有 --selinux-relabel 选项的 virt-customize 命令。

Bugzilla:1554735

从 macvtap 虚拟网络中删除转发接口会重置这个网络的所有连接计数

目前,从带有多个转发接口的 macvtap 虚拟网络中删除一个转发接口也会重置网络的其他转发接口的连接状态。因此,实时网络 XML 中的连接信息是不正确的。但请注意,这不会影响虚拟网络的功能。要临时解决这个问题,请重启主机上的 libvirtd 服务。

Bugzilla:1332758

带有 SLOF 的虚拟机无法在 netcat 界面中引导

当使用 netcat(nc)接口来访问当前在 Slimline Open Firmware(SLOF)提示符下等待的虚拟机控制台时,用户输入会被忽略,虚拟机仍无响应。要临时解决这个问题,请在连接虚拟机时使用 nc -C 选项,或者使用 telnet 接口。

Bugzilla:1974622

在某些情况下,在 virt-manager 中将中介设备附加到虚拟机会失败

virt-manager 应用程序目前能够检测中介设备,但不能识别该设备是否处于活跃状态。因此,尝试使用 virt-manager 将不活跃的中介设备附加到正在运行的虚拟机(VM)会失败。同样,尝试使用不活跃的中介设备创建新虚拟机会失败,并显示 device not found 错误。

要临时解决这个问题,请使用 virsh nodedev-startmdevctl start 命令来激活中介设备,然后再在 virt-manager 中使用它。

Bugzilla:2026985

RHEL 9 虚拟机无法在 POWER8 兼容模式下启动

目前,如果虚拟机也使用类似如下的 CPU 配置,启动将 RHEL 9 作为客户机操作系统来运行的虚拟机(VM)会失败:

  <cpu mode="host-model">
    <model>power8</model>
  </cpu>

要临时解决这个问题,请不要在 RHEL 9 虚拟机中使用 POWER8 兼容性模式。

另外,请注意,在 POWER8 主机上无法运行 RHEL 9 虚拟机。

Bugzilla:2035158

virtiofs 上不会自动清除 SUID 和 SGID

当您运行带有 killpriv_v2 功能的 virtiofsd 服务时,您的系统在执行某些文件系统操作后可能不能自动清除 SUID 和 SGID 权限。因此,不能清除权限可能会导致潜在的安全威胁。要临时解决这个问题,请输入以下命令禁用 killpriv_v2 功能:

# virtiofsd -o no_killpriv_v2

Bugzilla:1966475

在主机上重启 OVS 服务可能会阻止在其上运行的虚拟机的网络连接

当 Open vSwitch (OVS)服务在主机上重启时或崩溃时,在此主机上运行的虚拟机(VM)无法恢复网络设备的状态。因此,虚拟机可能无法完全接收数据包。

此问题只会影响在 virtio 网络堆栈中使用压缩 virtqueue 格式的系统。

要临时解决这个问题,使用 virtio 网络设备定义中的 packed=off 参数来禁用压缩的 virtqueue。当禁用压缩的 virtqueue 时,网络设备的状态在某些情况下可以从 RAM 中恢复。

Bugzilla:1792683

虚拟机迁移过程中的 NFS 故障会导致迁移失败和源虚拟机 coredump

目前,如果 NFS 服务或服务器在虚拟机(VM)迁移过程中关闭,则源虚拟机的 QEMU 在重新开始运行时无法重新连接到 NFS 服务器。因此,迁移会失败,并在源虚拟机上发起 coredump。目前,还没有可用的临时解决方案。

Bugzilla:2177957

将 Watchdog 卡热插到虚拟机失败

目前,如果没有可用的 PCI 插槽,向正在运行的虚拟机(VM)添加 Watchdog 卡会失败,并显示以下错误:

Failed to configure watchdog
ERROR Error attempting device hotplug: internal error: No more available PCI slots

要临时解决这个问题,请在添加 Watchdog 卡前关闭虚拟机。

Bugzilla:2173584

11.18. 云环境中的 RHEL

在 VMware 主机上的 RHEL 虚拟机中设置静态 IP 无法正常工作

目前,当使用 RHEL 作为 VMware 主机上虚拟机(VM)的客户机操作系统时,DatasourceOVF 功能无法正常工作。因此,如果您使用 cloud-init 实用程序将虚拟机的网络设置为静态 IP,然后重启虚拟机,则虚拟机的网络将更改为 DHCP。

要临时解决这个问题,请查看 VNware 知识库

Bugzilla:1750862

kdump 有时不会在 Azure 和 Hyper-V 上启动

在托管在 Microsoft Azure 或 Hyper-V hypervisor 上的 RHEL 8 客户机操作系统中,启动 kdump 内核在某些情况下会在启用执行后通知程序时失败。

要临时解决这个问题,请禁用 crash kexec post notifiers:

# echo N > /sys/module/kernel/parameters/crash_kexec_post_notifiers

Bugzilla:1865745

当使用多个客户机磁盘引导 Hyper-V 虚拟机时,SCSI 主机地址有时会改变

目前,当在 Hyper-V hypervisor 上引导 RHEL 8 虚拟机时,主机部分的主机 、Bus、Target、Lun(HBTL)SCSI 地址在某些情况下发生了变化。因此,使用虚拟机中的 HBTL SCSI 识别或者设备节点设置的自动任务无法持续工作。如果虚拟机有多个磁盘,或者磁盘大小不同,会出现这种情况。

要临时解决这个问题,使用以下方法之一修改 kickstart 文件:

方法 1:对 SCSI 设备使用持久性标识符。

您可以使用以下 powershell 脚本来确定具体设备标识符:

# Output what the /dev/disk/by-id/<value> for the specified hyper-v virtual disk.
# Takes a single parameter which is the virtual disk file.
# Note: kickstart syntax works with and without the /dev/ prefix.
param (
    [Parameter(Mandatory=$true)][string]$virtualdisk
)

$what = Get-VHD -Path $virtualdisk
$part = $what.DiskIdentifier.ToLower().split('-')

$p = $part[0]
$s0 = $p[6] + $p[7] + $p[4] + $p[5] + $p[2] + $p[3] + $p[0] + $p[1]

$p = $part[1]
$s1 =  $p[2] + $p[3] + $p[0] + $p[1]

[string]::format("/dev/disk/by-id/wwn-0x60022480{0}{1}{2}", $s0, $s1, $part[4])

您可以在 hyper-v 主机上使用此脚本,如下所示:

PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> .\by-id.ps1 .\Testing_8\disk_3_8.vhdx
/dev/disk/by-id/wwn-0x60022480e00bc367d7fd902e8bf0d3b4
PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> .\by-id.ps1 .\Testing_8\disk_3_9.vhdx
/dev/disk/by-id/wwn-0x600224807270e09717645b1890f8a9a2

之后,可在 kickstart 文件中使用磁盘值,如下所示:

part / --fstype=xfs --grow --asprimary --size=8192 --ondisk=/dev/disk/by-id/wwn-0x600224807270e09717645b1890f8a9a2
part /home --fstype="xfs" --grow --ondisk=/dev/disk/by-id/wwn-0x60022480e00bc367d7fd902e8bf0d3b4

因为这些值特定于每个虚拟磁盘,因此需要为每个虚拟机实例进行配置。因此,使用 %include 语法将磁盘信息放在单独的文件中可能会很有用。

方法 2:按大小设置设备选择。

根据大小配置磁盘选择的 kickstart 文件必须包含类似如下的行:

...

# Disk partitioning information is supplied in a file to kick start
%include /tmp/disks

...

# Partition information is created during install using the %pre section
%pre --interpreter /bin/bash --log /tmp/ks_pre.log

	# Dump whole SCSI/IDE disks out sorted from smallest to largest ouputting
	# just the name
	disks=(`lsblk -n -o NAME -l -b -x SIZE -d -I 8,3`) || exit 1

	# We are assuming we have 3 disks which will be used
	# and we will create some variables to represent
	d0=${disks[0]}
	d1=${disks[1]}
	d2=${disks[2]}

	echo "part /home --fstype="xfs" --ondisk=$d2 --grow" >> /tmp/disks
	echo "part swap --fstype="swap" --ondisk=$d0 --size=4096" >> /tmp/disks
	echo "part / --fstype="xfs" --ondisk=$d1 --grow" >> /tmp/disks
	echo "part /boot --fstype="xfs" --ondisk=$d1 --size=1024" >> /tmp/disks

%end

Bugzilla:1906870

如果 RHEL 实例是由 cloud-init 提供的,且使用 NFSv3 挂载条目配置的,则其在 Azure 上无法引导

目前,如果 VM 是由 cloud-init 工具提供的,且虚拟机的客户机操作系统在 /etc/fstab 文件中有 NFSv3 挂载条目,则在 Microsoft Azure 云平台上引导 RHEL 虚拟机(VM)会失败。

Bugzilla:2081114

11.19. 支持性

getattachment 命令无法一次下载多个附件

redhat-support-tool 命令提供了用于下载附件的 getattachment 子命令。但是,getattachment 目前只能下载单个附件,无法下载多个附件。

作为临时解决方案,您可以通过在 getattachment 子命令中一个一个地传递每个附件的问题单号和 UUID 来下载多个附件。

Bugzilla:2064575

redhat-support-tool 无法用于 FUTURE 加密策略

因为客户门户网站 API 中的证书使用的加密密钥不满足 FUTURE 系统范围的加密策略的要求,所以 redhat-support-tool 程序目前无法使用这个策略级别。

要临时解决这个问题,在连接到客户门户网站 API 时使用 DEFAULT 加密策略。

Bugzilla:1802026

在 IBM Power Systems Little Endian 上运行 sos report 时超时

当在具有带有数百或数千个 CPU 的 IBM Power Systems,Little Endian 上运行 sos report 命令时,处理器插件会在收集 /sys/devices/system/cpu 目录的大量内容时达到默认的 300 秒超时时间。作为临时解决方案,请相应地增加插件的超时时间:

  • 对于一次性设置,请运行:
# sos report -k processor.timeout=1800
  • 对于永久性更改,请编辑 /etc/sos/sos.conf 文件的 [plugin_options] 部分:
[plugin_options]
# Specify any plugin options and their values here. These options take the form
# plugin_name.option_name = value
#rpm.rpmva = off
processor.timeout = 1800

示例值设为 1800。特定的超时值高度依赖于特定的系统。要适当地设置插件超时,您可以首先通过运行以下命令来估算收集一个没有超时的插件所需的时间:

# time sos report -o processor -k processor.timeout=0 --batch --build

Bugzilla:2011413

11.20. 容器

在较旧的容器镜像中运行 systemd 无法正常工作

在较旧的容器镜像(如 centos:7)中运行 systemd 将无法正常工作:

$ podman run --rm -ti centos:7 /usr/lib/systemd/systemd
 Storing signatures
 Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
 [!!!!!!] Failed to mount API filesystems, freezing.

要临时解决这个问题,请使用以下命令:

# mkdir /sys/fs/cgroup/systemd
# mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd
# podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd

Jira:RHELPLAN-96940

第 12 章 国际化

12.1. Red Hat Enterprise Linux 8 国际语言

Red Hat Enterprise Linux 8 支持多种语言的安装,并根据您的需要更改语言。

  • 东亚语言 - 日语、韩语、简体中文和繁体中文。
  • 欧洲语言 - 英语、德语、西班牙语、法语、意大利语、葡萄牙语和俄语。

下表列出了为各种主要语言提供的字体和输入法。

语言默认字体(字体软件包)输入法

English

dejavu-sans-fonts

 

法语

dejavu-sans-fonts

 

德语

dejavu-sans-fonts

 

意大利语

dejavu-sans-fonts

 

俄语

dejavu-sans-fonts

 

西班牙语

dejavu-sans-fonts

 

葡萄牙语

dejavu-sans-fonts

 

简体中文

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-libpinyin, libpinyin

繁体中文

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-libzhuyin, libzhuyin

日语

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-kkc, libkc

韩语

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-hangul, libhangul

12.2. RHEL 8 中国际化的显著变化

RHEL 8 与 RHEL 7 相比,对国际化进行了以下更改:

  • 添加了对 Unicode 11 计算行业标准的支持。
  • 国际化发布在多个软件包中,这样就可以进行较小的内存占用安装。如需更多信息,请参阅 使用 langpacks
  • 很多 glibc 区域已经与 Unicode Common Locale Data Repository(CLDR)同步。

附录 A. 按组件划分的问题单列表

在本文档中列出了 Bugzilla 和 JIRA 问题单以供参考。这些链接会指向本文档中描述问题单的发行注记。

组件票证

389-ds-base

Bugzilla:2136610, Bugzilla:2096795, Bugzilla:2142639, Bugzilla:2130276, Bugzilla:1817505

NetworkManager

Bugzilla:2089707, Bugzilla:2134907, Bugzilla:2132754

SLOF

Bugzilla:1910848

accel-config

Bugzilla:1843266

anaconda

Bugzilla:1913035, Bugzilla:2014103, Bugzilla:1991516, Bugzilla:2094977, Bugzilla:2050140, Bugzilla:1914955, Bugzilla:1929105, Bugzilla:2126506

ansible-collection-microsoft-sql

Bugzilla:2144820, Bugzilla:2144821, Bugzilla:2144852, Bugzilla:2153428, Bugzilla:2163696, Bugzilla:2153427

ansible-freeipa

Bugzilla:2127912

apr

Bugzilla:1819607

authselect

Bugzilla:1892761

bacula

Bugzilla:2089399

brltty

Bugzilla:2008197

certmonger

Bugzilla:2150025

clevis

Bugzilla:2159440, Bugzilla:2159736

cloud-init

Bugzilla:1750862

cockpit

Bugzilla:2212371, Bugzilla:1666722

cockpit-appstream

Bugzilla:2030836

cockpit-machines

Bugzilla:2173584

conntrack-tools

Bugzilla:2126736

coreutils

Bugzilla:2030661

corosync-qdevice

Bugzilla:1784200

crash

Bugzilla:1906482

crash-ptdump-command

Bugzilla:1838927

createrepo_c

Bugzilla:1973588

crypto-policies

Bugzilla:1921646, Bugzilla:2071981, Bugzilla:1919155, Bugzilla:1660839

device-mapper-multipath

Bugzilla:2022359, Bugzilla:2011699

distribution

Bugzilla:1657927

dnf

Bugzilla:2054235, Bugzilla:2047251, Bugzilla:2016070, Bugzilla:1986657

dnf-plugins-core

Bugzilla:2139324

edk2

Bugzilla:1741615, Bugzilla:1935497

fapolicyd

Bugzilla:2165645, Bugzilla:2054741

fence-agents

Bugzilla:1775847

firewalld

Bugzilla:1871860

gcc

Bugzilla:2110582

gdb

Bugzilla:1853140

git

Bugzilla:2139378

git-lfs

Bugzilla:2139382

glassfish-jaxb

Bugzilla:2055539

glibc

Bugzilla:1871383, Bugzilla:1159809

gnome-session

Bugzilla:2070976

gnome-shell-extensions

Bugzilla:2033572, Bugzilla:2138109, Bugzilla:1717947

gnome-software

Bugzilla:1668760

gnutls

Bugzilla:1628553

golang

Bugzilla:2174430, Bugzilla:2132767, Bugzilla:2132694, Bugzilla:2132419

grub2

Bugzilla:1583445

grubby

Bugzilla:1900829

initscripts

Bugzilla:1875485

ipa

Bugzilla:2075452, Bugzilla:1924707, Bugzilla:2120572, Bugzilla:2122919, Bugzilla:1664719, Bugzilla:1664718, Bugzilla:2101770

ipmitool

Bugzilla:1873614

kernel

Bugzilla:2107595, Bugzilla:1660908, Bugzilla:1664379, Bugzilla:2136107, Bugzilla:2127136, Bugzilla:2143849, Bugzilla:1905243, Bugzilla:2009705, Bugzilla:2103946, Bugzilla:2087262, Bugzilla:2151854, Bugzilla:2134931, Bugzilla:2069047, Bugzilla:2135417, Bugzilla:1868526, Bugzilla:1694705, Bugzilla:1730502, Bugzilla:1609288, Bugzilla:1602962, Bugzilla:1865745, Bugzilla:1906870, Bugzilla:1924016, Bugzilla:1942888, Bugzilla:1812577, Bugzilla:1910358, Bugzilla:1930576, Bugzilla:1793389, Bugzilla:1654962, Bugzilla:1940674, Bugzilla:2169382, Bugzilla:1920086, Bugzilla:1971506, Bugzilla:2059262, Bugzilla:2050411, Bugzilla:2106341, Bugzilla:2127028, Bugzilla:2130159, Bugzilla:2189645, Bugzilla:1605216, Bugzilla:1519039, Bugzilla:1627455, Bugzilla:1501618, Bugzilla:1633143, Bugzilla:1814836, Bugzilla:1839311, Bugzilla:1570255, Bugzilla:1696451, Bugzilla:1348508, Bugzilla:1837187, Bugzilla:1660337, Bugzilla:2041686, Bugzilla:1836977, Bugzilla:1878207, Bugzilla:1665295, Bugzilla:1871863, Bugzilla:1569610, Bugzilla:1794513

kexec-tools

Bugzilla:2111855

kmod

Bugzilla:2103605

kmod-kvdo

Bugzilla:2119819, Bugzilla:2109047

krb5

Bugzilla:2125182, Bugzilla:2125318, Bugzilla:1877991

libdnf

Bugzilla:2124483

libffi

Bugzilla:2014228

libgnome-keyring

Bugzilla:1607766

libguestfs

Bugzilla:1554735

libreswan

Bugzilla:2128672, Bugzilla:2176248, Bugzilla:1989050

libselinux-python-2.8-module

Bugzilla:1666328

libsoup

Bugzilla:1938011

libvirt

Bugzilla:1664592, Bugzilla:1332758, Bugzilla:1528684

llvm-toolset

Bugzilla:2118568

lvm2

Bugzilla:1496229, Bugzilla:1768536

mariadb

Bugzilla:1942330

mesa

Bugzilla:1886147

mod_security

Bugzilla:2143207

nfs-utils

Bugzilla:2081114, Bugzilla:1592011

nginx

Bugzilla:2112345

nispor

Bugzilla:2153166

nodejs

Bugzilla:2178087

nss

Bugzilla:1817533, Bugzilla:1645153

nss_nis

Bugzilla:1803161

openblas

Bugzilla:2115722

opencryptoki

Bugzilla:2110315

opencv

Bugzilla:1886310

openmpi

Bugzilla:1866402

opensc

Bugzilla:2176973, Bugzilla:1947025, Bugzilla:2097048

openscap

Bugzilla:2159290, Bugzilla:2161499

openssh

Bugzilla:2044354

openssl

Bugzilla:1810911

oscap-anaconda-addon

Bugzilla:2075508, Bugzilla:1843932, Bugzilla:1665082, Bugzilla:2165948

pacemaker

Bugzilla:2133497,Bugzilla:2121852,Bugzilla:2122806

pam

Bugzilla:2068461

pcs

Bugzilla:2132582, Bugzilla:1816852, Bugzilla:2112263, Bugzilla:2112267, Bugzilla:1918527, Bugzilla:1619620, Bugzilla:1851335

pki-core

Bugzilla:1729215,Bugzilla:2134093,Bugzilla:1628987

podman

Jira:RHELPLAN-136601, Jira:RHELPLAN-136608, Bugzilla:2119200, Jira:RHELPLAN-136610

postfix

Bugzilla:1711885

postgresql

Bugzilla:2128241

powertop

Bugzilla:2040070

pykickstart

Bugzilla:1637872

python3.11

Bugzilla:2137139

python3.11-lxml

Bugzilla:2157673

python36-3.6-module

Bugzilla:2165702

qemu-kvm

Bugzilla:2117149, Bugzilla:2020133, Bugzilla:1740002, Bugzilla:1719687, Bugzilla:1966475, Bugzilla:1792683, Bugzilla:2177957, Bugzilla:1651994

rear

Bugzilla:2130206, Bugzilla:2172605, Bugzilla:2131946, Bugzilla:1925531, Bugzilla:2083301

redhat-support-tool

Bugzilla:2064575, Bugzilla:1802026

restore

Bugzilla:1997366

rhel-system-roles

Bugzilla:2119600, Bugzilla:2130019, Bugzilla:2143814, Bugzilla:2079009, Bugzilla:2130332, Bugzilla:2130345, Bugzilla:2133532, Bugzilla:2133931, Bugzilla:2134201, Bugzilla:2133856, Bugzilla:2143458, Bugzilla:2137667, Bugzilla:2143385, Bugzilla:2144876, Bugzilla:2144877, Bugzilla:2130362, Bugzilla:2129620, Bugzilla:2165176, Bugzilla:2149683, Bugzilla:2126960, Bugzilla:2127497, Bugzilla:2153081, Bugzilla:2167941, Bugzilla:2153080, Bugzilla:2168733, Bugzilla:2162782, Bugzilla:2123859, Bugzilla:2186908, Bugzilla:2021685, Bugzilla:2006081

rpm

Bugzilla:2129345, Bugzilla:2110787, Bugzilla:1688849

rsync

Bugzilla:2139118

rsyslog

Bugzilla:2124934, Bugzilla:2070496, Bugzilla:2157658, Bugzilla:1679512, Jira:RHELPLAN-10431

RT-tests

Bugzilla:2122374

rteval

Bugzilla:2082260

rtla

Bugzilla:2075203

rust-toolset

Bugzilla:2123899

s390utils

Bugzilla:2043833

samba

Bugzilla:2132051,Bugzilla:2009213,JIRA:RHELPLAN-13195, JIRA:RHELDOCS-16612

scap-security-guide

Bugzilla:2072444, Bugzilla:2152658, Bugzilla:2156192, Bugzilla:2158404, Bugzilla:2119356, Bugzilla:2122322, Bugzilla:2115343, Bugzilla:2152208, Bugzilla:2099394, Bugzilla:2151553, Bugzilla:2162803, Bugzilla:2028428, Bugzilla:2118758, Bugzilla:2167373

selinux-policy

Bugzilla:1972230,Bugzilla:2088441,Bugzilla:2154242,Bugzilla:2134125,Bugzilla:2090711,Bugzilla:2101341,Bugzilla:2121709,Bugzilla:2122838,Bugzilla:2124388,Bugzilla:2125008,Bugzilla:2143696, Bugzilla:2148561 ,Bugzilla:2148561,Bugzilla:1461914

scs

Bugzilla:2164987, Bugzilla:2134906, Bugzilla:2011413

spice

Bugzilla:1849563

sssd

Bugzilla:2144519, Bugzilla:2087247, Bugzilla:2065692, Bugzilla:2056483, Bugzilla:1947671

subscription-manager

Bugzilla:2170082

swig

Bugzilla:2139076

synce4l

Bugzilla:2019751

tang

Bugzilla:2188743

texlive

Bugzilla:2150727

tomcat

Bugzilla:2160455

tuna

Bugzilla:2121518

tuned

Bugzilla:2133814, Bugzilla:2113900

tzdata

Bugzilla:2154109

udica

Bugzilla:1763210

usbguard

Bugzilla:2159409, Bugzilla:2159411, Bugzilla:2159413

vdo

Bugzilla:1949163

virt-manager

Bugzilla:2026985

wayland

Bugzilla:1673073

weldr-client

Bugzilla:2033192

wsmancli

Bugzilla:2105316

xdp-tools

Bugzilla:2160069

xorg-x11-server

Bugzilla:1698565

其他

Bugzilla:2177769, Jira:RHELPLAN-139125, Jira:RHELPLAN-137505, Jira:RHELPLAN-139430, Jira:RHELPLAN-137416, Jira:RHELPLAN-137411, Jira:RHELPLAN-137406, Jira:RHELPLAN-137403, Jira:RHELPLAN-139448, Jira:RHELPLAN-151481, Jira:RHELPLAN-150266, Jira:RHELPLAN-151121, Jira:RHELPLAN-149091, Jira:RHELPLAN-139424, Jira:RHELPLAN-136489, Bugzilla:2183445, Jira:RHELPLAN-59528, Jira:RHELPLAN-148303, Bugzilla:2025814, Bugzilla:2077770, Bugzilla:1777138, Bugzilla:1640697, Bugzilla:1697896, Bugzilla:1961722, Bugzilla:1659609, Bugzilla:1687900, Bugzilla:1757877, Bugzilla:1741436, Jira:RHELPLAN-27987, Jira:RHELPLAN-34199, Jira:RHELPLAN-57914, Jira:RHELPLAN-96940, Bugzilla:1974622, Bugzilla:2028361, Bugzilla:2041997, Bugzilla:2035158, Jira:RHELPLAN-109613, Bugzilla:2126777, Bugzilla:1690207, Bugzilla:1559616, Bugzilla:1889737, Bugzilla:1906489, Bugzilla:1769727, Jira:RHELPLAN-27394, Jira:RHELPLAN-27737, Jira:RHELPLAN-148394, Bugzilla:1642765, Bugzilla:1646541, Bugzilla:1647725, Bugzilla:1932222, Bugzilla:1686057, Bugzilla:1748980, Jira:RHELPLAN-71200, Jira:RHELPLAN-45858, Bugzilla:1871025, Bugzilla:1871953, Bugzilla:1874892, Bugzilla:1916296, Jira:RHELPLAN-100400, Bugzilla:1926114, Bugzilla:1904251, Bugzilla:2011208, Jira:RHELPLAN-59825, Bugzilla:1920624, Jira:RHELPLAN-70700, Bugzilla:1929173, Jira:RHELPLAN-85066, Jira:RHELPLAN-98983, Bugzilla:2009113, Bugzilla:1958250, Bugzilla:2038929, Bugzilla:2006665, Bugzilla:2029338, Bugzilla:2061288, Bugzilla:2060759, Bugzilla:2055826, Bugzilla:2059626, Jira:RHELPLAN-133171, Bugzilla:2142499, Jira:RHELPLAN-145958, Jira:RHELPLAN-146398, Jira:RHELPLAN-153267

附录 B. 修改历史记录

0.2-3

2024 年 6 月 7 日星期五,Brian Angelica (bangelic@redhat.com)

0.2-2

2024 年 5 月 10 日星期五,Brian Angelica (bangelic@redhat.com)

0.2-1

2024 年 5 月 9 日星期四,Gabriela Fialova (gfialova@redhat.com)

0.1-10

2024 年 4 月 25 日星期四, Gabriela Fialová(gfialova@redhat.com)

  • 添加了一个增强 BZ#2136610(身份管理)。
0.1-9

2024 年 3 月 4 日星期一, Lucie Vařáková (lvarakova@redhat.com)

0.1-8

2024 年 2 月 29 日星期四,Gabriela Fialová(gfialova@redhat.com)

0.1-7

2024 年 2 月 13 日星期二, Lucie Vařáková (lvarakova@redhat.com)

0.1-6

2024 年 2 月 2 日星期五, Lucie Vařáková(lvarakova@redhat.com)

  • 添加了一个已知问题 BZ#1834716(安全)。
  • 更新了 BZ#2183445 的文本(内核)。
0.1-5

2023 年 12 月 7 日星期四, Lucie Vařáková(lvarakova@redhat.com)

0.1-4

2023 年 11 月 10 日星期五, Gabriela Fialová(gfialova@redhat.com)

  • 更新了对 RHEL 文档提供反馈的模块。
0.1-3

2023 年 10 月 17 日星期二,Gabriela Fialová(gfialova@redhat.com)

  • 更新 DF JIRA-RHELDOCS-16755 的文档文本(容器)。
0.1-2

2023 年 10 月 13 日星期五, Gabriela Fialová(gfialova@redhat.com)

0.1-1

2023 年 10 月 9 日, Lucie Vařáková (lvarakova@redhat.com)

  • 更新了一个已知问题 BZ#2169382 (内核)。
0.1-0

2023 年 9 月 8 日, Lucie Vařáková(lvarakova@redhat.com)

0.0-9

2023 年 8 月 24 日, Lucie Vařáková(lvarakova@redhat.com)

  • 添加了一个已知问题 BZ#2214508(内核)。
0.0-8

2023 年 8 月 4 日,Lenka Špačková (lspackova@redhat.com)

0.0-7

August 3 2023, Lucie Vařáková (lvarakova@redhat.com)

0.0-6

2023 年 8 月 1 日,Lenka Špačková (lspackova@redhat.com)

  • 添加了已弃用的功能 BZ#2225332
  • 改进了抽象。
0.0-5

2023 年 7 月 31 日, Mirek Jahoda (mjahoda@redhat.com)

  • 已知问题 BZ#2203361 改为一个 bug 修复 BZ#2212371
0.0-4

July 13 2023, Lucie Vařáková (lvarakova@redhat.com)

0.0-3

June 27 2023, Lucie Vařáková (lvarakova@redhat.com)

  • 添加了一个增强 BZ#2087247(身份管理)。
  • BZ#2176248 移到 Bug 修复(安全)。
  • 添加了一个已知问题 BZ#2176973(安全)。
  • 更新了技术预览 BZ#1769727(内核)。
0.0-2

Jun 6 2023, Lucie Vařáková (lvarakova@redhat.com)

  • 添加了一个已知问题 BZ#2177957(虚拟化)。
  • 其他小更新。
0.0-1

May 17 2023, Lucie Vařáková (lvarakova@redhat.com)

  • 发布 Red Hat Enterprise Linux 8.8 发行注记。
0.0-0

Mar 29 2023, Lucie Vařáková (lvarakova@redhat.com)

  • 发布 Red Hat Enterprise Linux 8.8 Beta 发行注记。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.