8.9 发行注记

Red Hat Enterprise Linux 8.9

Red Hat Enterprise Linux 8.9 发行注记

Red Hat Customer Content Services

摘要

本发行注记提供了在 Red Hat Enterprise Linux 8.9 中实现的改进和附加组件的高级信息,并在本版本中记录了已知的问题,以及重要的 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.9 中的主要变化

安装程序和镜像创建

镜像构建器的主要亮点:

  • 除了对旧的 BIOS 引导的支持,对 AWS EC2 AMD 或 Intel 64 位架构 AMI 镜像进行了增强,以支持 UEFI 引导。

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

安全性

与安全相关的主要亮点:

  • OpenSCAP 被 rebase 到版本 1.3.8。
  • ANSSI-BP-028 SCAP 安全配置文件已更新至版本 2.0。
  • SCAP 安全指南 现在包含改进的规则,以提供更一致的交互式用户配置,DISA STIG 配置文件支持 audit_rules_login_events_faillock

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

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

Node.js 20 现在作为新模块流提供。

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

编译器和开发工具

更新了性能工具和调试器

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

  • Valgrind 3.21
  • SystemTap 4.9
  • elfutils 0.189
更新了性能监控工具

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

  • Grafana 9.2.10
  • grafana-pcp 5.1.1
更新了编译器工具集

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

  • GCC Toolset 13 (新的)
  • LLVM Toolset 16.0.6
  • Rust Toolset 1.71.1
  • Go Toolset 1.20.10

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

RHEL 8 中的 Java 实现

RHEL 8 AppStream 软件仓库包括:

  • java-21-openjdk 软件包,其提供 OpenJDK 21 Java 运行时环境和 OpenJDK 21 Java 软件开发套件。
  • 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.9 及更新版本之间共享一组二进制文件。由于此更新,在 RHEL 上从源 RPM 重建 OpenJDK 软件包的过程有一个变化。有关新重建过程的更多信息,请参阅 README.md 文件,该文件包括在红帽构建的 OpenJDK 的 SRPM 软件包中,并由 javajpeg-openjdk-headless 软件包安装在 /usr/share/doc 树下。

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

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

RHEL 7 原位升级到 RHEL 8

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

  • 在 64 位 Intel、IBM POWER 8 (little endian)和 IBM Z 架构上从 RHEL 7.9 升级到 RHEL 8.6 、RHEL 8.8 和 RHEL 8.9
  • 在 64 位 Intel 构架上带有 SAP HANA 的系统,从 RHEL 7.9 升级到 RHEL 8.6 和 RHEL 8.8。

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

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

有关在带有 SAP 环境的系统上执行原位升级的说明,请参阅 如何将 SAP 环境从 RHEL 7 原位升级到 RHEL 8

主要改进包括:

  • 在使用 ftype=0 格式的 XFS 文件系统的系统上,对磁盘空间的要求大大减少。
  • 在升级过程中为升级创建的磁盘镜像现在具有动态大小。不再需要 LEAPP_OVL_SIZE 环境变量。
  • 在现有磁盘分区上计算所需可用空间的问题已修复。现在,在系统需要重启前可以正确地检测到缺少的可用磁盘空间,报告可以正确地显示没有足够的可用空间来继续升级 RPM 事务的文件系统。
  • 现在,使用自定义 leapp 执行器可以在原位升级过程中对第三方驱动程序进行管理。
  • 预升级和升级报告概述现在在终端中显示。
  • 现在支持在 Red Hat OpenStack Platform 中 RHEL Real Time 和 RHEL Real Time for Network Functions Virtualization (NFV)的升级。

从 RHEL 6 原位升级到 RHEL 8

不可能直接执行从 RHEL 6 到 RHEL 8 的原位升级。但是,您可以执行从 RHEL 6 到 RHEL 7 的原位升级,然后执行到 RHEL 8 的第二个原位升级。如需更多信息,请参阅 从 RHEL 6 升级到 RHEL 7

从 RHEL 8 原位升级到 RHEL 9

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

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

如果您使用 Alma Linux 8、CentOS Linux 8、Oracle Linux 8 或 Rocky 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. 其它资源

注意

发行注记包括访问原始跟踪票据的链接。私有票据没有链接,取而代之的是这个脚注。[1]



[1] 发行注记包括访问原始跟踪票据的链接。私有票据没有链接,取而代之的是这个脚注。

第 2 章 构架

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

  • 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.9 中引入的新功能和主要改进。

4.1. 安装程序和镜像创建

支持 AWS EC2 镜像的传统和 UEFI 引导

在以前的版本中,RHEL 镜像构建器创建的 EC2 AMD 或 Intel 64 位架构 AMI 镜像只支持旧的引导类型。因此,无法利用某些需要 UEFI 引导的 AWS 功能,如安全引导。除了支持旧的 BIOS 引导外,此增强还扩展了 AWS EC2 AMD 或 Intel 64 位架构 AMI 镜像,以支持 UEFI 引导。现在,可以利用需要使用 UEFI 引导镜像的 AWS 功能。

Jira:RHELDOCS-16339[1]

新的引导选项 inst.wait_for_disks= ,来为载入 kickstart 文件或内核驱动程序添加等待时间

有时,在引导过程中可能需要几秒钟才能从带有 OEMDRV 标签的设备加载 kickstart 文件或内核驱动程序。要调整等待时间,您现在可以使用新的引导选项 inst.wait_for_disks=。使用这个选项,您可以指定安装前要等待多少秒。默认时间被设置为 5 秒,但您可以使用 0 秒来最小化延迟。有关这个选项的更多信息,请参阅 存储引导选项

Bugzilla:1770969

新的 network kickstart 选项来控制 DNS 处理

现在,您可以使用带有以下新选项的 network kickstart 命令控制 DNS 处理:通过 --device 选项使用这些新选项。

  • --ipv4-dns-search--ipv6-dns-search 选项允许您手动设置 DNS 搜索域。这些选项镜像其相应的 NetworkManager 属性,例如:

    network --device ens3 --ipv4-dns-search domain1.example.com,domain2.example.com
  • --ipv4-ignore-auto-dns--ipv6-ignore-auto-dns 选项允许您忽略 DHCP 中的 DNS 设置。它们不需要任何参数。

Bugzilla:1656662[1]

4.2. 安全性

opencryptoki rebase 到 3.21.0

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

  • 并发硬件安全模块(HSM)主密钥更改
  • 将所选密钥转换为受保护的密钥的 protected-key 选项
  • 其他密钥类型,如 DH、DSA 和通用 secret 密钥类型
  • EP11 主机库版本 4
  • AES-XTS 密钥类型
  • 特定于 IBM 的 Kyber 密钥类型和机制
  • 其他特定于 IBM 的 Dilithium 密钥第 2 轮和第 3 轮变体

另外,pkcsslotd 槽管理器不再以 root 用户身份运行,opencryptoki 提供了进一步强化。有了此更新,您也可以使用以下一组新命令:

p11sak set-key-attr
要修改密钥
p11sak copy-key
要复制密钥
p11sak import-key
要导入密钥
p11sak export-key
要导出密钥

Bugzilla:2159697[1]

fapolicyd 现在为故障排除提供规则号

有了这个增强,新的内核和 Audit 组件允许 fapolicyd 服务发送导致拒绝 fanotify API 的规则号。因此,您可以更精确地对与 fapolicyd 相关的问题进行故障排除。

Jira:RHEL-628

ANSSI-BP-028 安全配置文件更新至版本 2.0

SCAP 安全指南中的以下法国信息系统安全局(ANSSI) BP-028 配置文件已更新为与版本 2.0 保持一致:

  • ANSSI-BP-028 最低级别
  • ANSSI-BP-028 中间级别
  • ANSSI-BP-028 增强级别
  • ANSSI-BP-028 高级别

Bugzilla:2155789

更好地定义交互式用户

scap-security-guide 软件包中的规则已被改进,以提供更一致的交互式用户配置。在以前的版本中,一些规则使用不同的方法来识别交互式和非交互式用户。有了这个更新,我们已统一了交互用户的定义。UID 大于或等于 1000 的用户帐户现在被视为交互式用户,但 nobodynfsnobody 帐户以及使用 /sbin/nologin 作为登录 shell 的帐户除外。

这个更改会影响以下规则:

  • accounts_umask_interactive_users
  • accounts_user_dot_user_ownership
  • accounts_user_dot_group_ownership
  • accounts_user_dot_no_world_writable_programs
  • accounts_user_interactive_home_directory_defined
  • accounts_user_interactive_home_directory_exists
  • accounts_users_home_files_groupownership
  • accounts_users_home_files_ownership
  • accounts_users_home_files_permissions
  • file_groupownership_home_directories
  • file_ownership_home_directories
  • file_permissions_home_directories
  • file_permissions_home_dirs
  • no_forward_files

Bugzilla:2157877,Bugzilla:2178740

DISA STIG 配置文件现在支持 audit_rules_login_events_faillock

有了这个增强,SCAP 安全指南 audit_rules_login_events_faillock 规则(其引用了 STIG ID RHEL-08-030590)已添加到 RHEL 8 的 DISA STIG 配置文件中。此规则检查 Audit 守护进程是否已配置为记录任何尝试修改存储在 /var/log/faillock 目录中的登录事件日志。

Bugzilla:2167999

OpenSCAP rebase 到 1.3.8

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

  • 修复了 systemd 探测,以不忽略某些 systemd 单元
  • shadow OVAL 探测添加了离线功能
  • sysctl OVAL 探测添加了离线功能
  • 向网络文件系统列表中添加了 auristorfs
  • 使用 autotailor 工具生成的定制文件为问题创建了一个临时解决方案

Bugzilla:2217441

SCAP 安全指南 rebase 到版本 0.1.69

SCAP 安全指南(SSG)软件包已 rebase 到上游版本 0.1.69。此版本提供各种改进和 bug 修复,特别是为 RHEL 9 提供的三个新的 SCAP 配置文件,它们与 2022 年 10 月西班牙国家加密中心发布的三级 CCN-STIC-610A22 指南一致:

  • CCN Red Hat Enterprise Linux 9 - 基本
  • CCN Red Hat Enterprise Linux 9 - 中级
  • CCN Red Hat Enterprise Linux 9 - 高级

Bugzilla:2221695

支持从 RHEL 8.8 及更新版本到 RHEL 9.2 及更新版本的启用了 FIPS 的原位升级

随着 RHBA-2023:3824 公告的发布,您可以执行 RHEL 8.8 及更新版本系统到 RHEL 9.2 及更新版本系统的启用了 FIPS 模式的原位升级。

Bugzilla:2097003

crypto-policies permitted_enctypes 不再在 FIPS 模式下破坏复制

在此次更新之前,在 RHEL 8 上运行的 IdM 服务器发送一个 AES-256-HMAC-SHA-1- 加密的服务票据,即在 FIPS 模式下运行 RHEL 9 的一个 IdM 副本。因此,默认的 permitted_enctypes krb5 配置在 FIPS 模式下破坏了 RHEL 8 IdM 服务器和 RHEL 9 IdM 副本之间的复制。

有了此更新,permitted_enctypes krb5 配置选项的值取决于 maccipher 加密策略 值。默认情况下,它允许对可互操作的加密类型进行优先处理。

作为此更新的额外结果,仅在 LEGACY:AD-SUPPORT 子策略和 aes256-cts-hmac-sha1-96 中可用的 arcfour-hmac-md5 选项,在 FUTURE 策略中不再可用。

注意

如果使用 Kerberos,请验证 /etc/crypto-policies/back-ends/krb5.config 文件中 permitted_enctypes 的值的顺序。如果您的场景需要不同的顺序,请应用自定义加密子策略。

Bugzilla:2219912

审计现在支持 FANOTIFY 记录字段

audit 软件包的这个更新引进了对 FANOTIFY 审计记录字段的支持。审计子系统现在在 AUDIT_FANOTIFY 记录中记录额外的信息,特别是:

  • fan_type 指定 FANOTIFY 事件的类型
  • fan_info 指定额外的上下文信息
  • sub_trustobj_trust 指示事件中涉及的主题和对象的信任级别

因此,您可以更好地理解为什么在某些情况下审计系统拒绝访问。这可帮助您为 fapolicyd 框架等工具编写策略。

Bugzilla:2216666

新的 SELinux 布尔值,以允许 QEMU 客户机代理执行受限命令

在以前的版本中,应该通过 QEMU 客户机代理守护进程程序在受限上下文中执行的命令,如 mount 失败,并显示 Access Vector Cache (AVC) denial。要能够执行这些命令,guest-agent 必须在 virt_qemu_ga_unconfined_t 域中运行。

因此,这个更新添加了 SELinux 策略布尔值 virt_qemu_ga_run_unconfined,它允许 guest-agent 为以下目录中的可执行文件转换为 virt_qemu_ga_unconfined_t

  • /etc/qemu-ga/fsfreeze-hook.d/
  • /usr/libexec/qemu-ga/fsfreeze-hook.d/
  • /var/run/qemu-ga/fsfreeze-hook.d/

另外,qemu-ga 守护进程的转换的必要规则已添加到 SELinux 策略布尔值中。

因此,您现在可以通过启用 virt_qemu_ga_run_unconfined 布尔值,通过没有 AVC 拒绝的 QEMU 客户机代理执行受限命令。

Bugzilla:2093355

4.3. 基础架构服务

Postfix 现在支持 SRV 查找

有了这个增强,您现在可以使用 Postfix DNS 服务记录解析(SRV)来自动配置邮件客户端并平衡服务器的负载。另外,您可以通过在 Postfix 配置中使用以下与 SRV 相关的选项来防止由临时的 DNS 问题或错误配置的 SRV 记录导致的邮件发送中断:

use_srv_lookup
您可以使用 DNS SRV 记录为指定的服务启用发现。
allow_srv_lookup_fallback
您可以使用级联方法查找服务。
ignore_srv_lookup_error
即使 SRV 记录不可用或遇到错误,您也可以确保服务发现可以正常工作。

Bugzilla:1787010

现在您可以在 vsftpd中指定 TLS 1.3 密码套件

有了这个增强,您可以使用新的 ssl_ciphersuites 选项来配置 vsftpd 使用哪个密码套件。因此,您可以指定与之前 TLS 版本不同的 TLS 1.3 密码套件。要指定多个密码套件,请使用冒号(:)分隔条目。

Bugzilla:2069733

cups-filters中提供了通用 LF-to-CRLF 驱动程序

有了这个增强,您现在可以使用通用 LF-to-CRLF 驱动程序,它为接受 CR+LF 字符的打印机将 LF 字符转换为 CR+LF 字符。回车返回(CR),换行(LF)是标记行末尾的控制字符。因此,通过使用这个驱动程序,您可以将应用程序中的 LF 字符终止的文件发送到只接受 CR+LF 字符的打印机。通用 LF-to-CRLF 驱动程序是 RHEL 7 中 text-only 驱动程序的重命名版本。新名称反映了其实际功能。

Bugzilla:2118406[1]

4.4. 网络

iproute rebase 到版本 6.2.0

iproute 软件包已升级到上游版本 6.2.0,与之前的版本相比,它提供了很多改进和 bug 修复。最显著的更改有:

  • 新的 ip stats 命令管理并显示接口统计信息。默认情况下,ip stats show 命令显示所有网络设备,包括网桥和绑定的统计信息。您可以使用 devgroup 选项过滤输出。详情请查看 ip-stats (8) 手册页。
  • ss 工具现在提供 -T (--threads)选项来显示线程信息,这会扩展 -p (--processes)选项。详情请查看 ss (8) 手册页。
  • 您可以使用新的 bridge fdb flush 命令删除与提供的选项匹配的特定转发数据库(fdb)条目。详情请查看 bridge (8) 手册页。

Jira:RHEL-424[1]

默认 nftables 服务配置的安全改进

此增强将 do_masquerade 链添加到 /etc/sysconfig/nftables/nat.nft 文件中的默认 nftables 服务配置中。这降低了端口影子攻击的风险,这在 CVE-2021-3773 中进行了描述。do_masquerade 链中的第一个规则检测到合适的数据包,并强制实施源端口随机化,以减少端口影子攻击的风险。

Bugzilla:2061942

NetworkManager 支持 no-aaaa DNS 选项

现在,您可以通过抑制由 stub 解析器生成的 AAAA 查询,使用 no-aaaa 选项在受管主机上配置 DNS 设置。在以前的版本中,没有选项来抑制 stub 解析器生成的 AAAA 查询,包括由基于 NSS 的接口(如 getaddrinfo )触发的 AAAA 查找;只有 DNS 查找受到影响。有了这个增强,您可以使用 nmcli 工具禁用 IPv6 解析。重启 NetworkManager 服务后,no-aaaa 设置会反映在 /etc/resolv.conf 文件中,并具有对 DNS 查找的额外控制。

Bugzilla:2144521

nm-cloud-setup 工具现在支持 IMDSv2 配置

用户可以使用 nm-cloud-setup 工具配置带有实例元数据服务版本 2 (IMDSv2)的 AWS Red Hat Enterprise Linux EC2 实例。要遵守改进的安全性,其限制对 EC2 元数据和新功能未经授权的访问,需要 AWS 和红帽服务间的集成来提供高级功能。此增强使 nm-cloud-setup 工具能够获取并保存 IMDSv2 令牌,验证 EC2 环境,并使用安全 IMDSv2 令牌检索有关可用接口和 IP 配置的信息。

Bugzilla:2151987

libnftnl 软件包 rebase 到版本 1.2.2

到内核 nf_tables 子系统的 Netlink API (libnftnl)软件包已更新。主要变化和增强包括:

  • 添加的功能:

    • udata 属性的嵌套
    • 使用 exthdr 表达式重置 TCP 选项
    • sdifsdifname 元关键字
    • 支持 nftnl_chain 结构中的新属性 NFTNL_CHAIN_FLAGS,以在内核和用户空间之间进行通信标志。
    • 支持 nftnl_set 结构 nftables 设置后端来对集合和 set elements 添加表达式。
    • 对集合 、表、对象和链的注释
    • nftnl_table 结构现在有一个 NFTNL_TABLE_OWNER 属性。设置此属性以使内核将所有者与用户空间进行通信。
    • 准备好对流化设备的增量更新
    • nftnl_set udata 定义相关的 typeof 关键字
    • ID 属性
    • 从规则中删除表达式的函数
    • 新的 last 表达式
  • 改进了位表达式:

    • 新添加的 opdata 属性
    • 左和右移动
    • 与其他表达式的调试输出一致
  • 改进了套接字表达式:

    • 添加了 wildcard 属性
    • 对 cgroup v2 的支持
  • 改进了调试输出:

    • 在 set elements 中包含了 key_end 数据寄存器
    • masq 和 nat 表达式中丢弃了未使用的寄存器
    • 为 verdict map 元素应用了修复
    • 从丢弃的 XML 格式中删除了剩余内容
    • 支持内部标头的有效负载偏移

Bugzilla:2211096

4.5. 内核

RHEL 8.9 中的内核版本

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

Bugzilla:2232558

RHEL 内核现在支持 AutoIBRS

自动 Indirect Branch Restricted Speculation (AutoIBRS)是由 AMD EPYC 9004 Genoa 处理器系列以及更新的 CPU 版本提供的一种功能。AutoIBRS 是 Spectre v2 CPU 漏洞的默认缓解方案,它提高了性能并改进了可扩展性。

Bugzilla:1989283[1]

Intel® QAT 内核驱动程序 rebase 到上游版本 6.2

Intel® Quick Assist Technology (QAT)已 rebase 到上游版本 6.2。Intel® QAT 包括针对对称和非对称加密、压缩性能和其他 CPU 密集型任务优化的加速器。

rebase 包括很多 bug 修复和增强。最显著的增强是对 QAT GEN4 的以下硬件加速器设备的支持:

  • Intel Quick Assist Technology 401xx 设备
  • Intel Quick Assist Technology 402xx 设备

Bugzilla:2144529[1]

makedumpfile rebase 到版本 1.7.2

makedumpfile 工具,其通过压缩页或排除不需要的内存页使崩溃转储文件变小,已从版本 1.7.2 rebase 到版本 1.7.2。rebase 包括很多 bug 修复和增强。

最显著的变化是在 AMD 和 Intel 64 位构架上为独立转储(sadump)机制添加了 5 级分页模式。5 级分页模式扩展了处理器的线性地址宽度,以允许应用程序访问更大的内存。5 级分页将虚拟地址的大小从 48 位扩展到 57 位,并将物理地址从 46 位扩展到 52 位。

Bugzilla:2173791

4.6. 文件系统和存储

支持在创建 GFS2 文件系统时指定 UUID

mkfs.gfs2 命令现在支持新的 -U 选项,该选项可让您为所创建的文件系统指定文件系统 UUID。如果省略这个选项,文件系统的 UUID 会随机生成。

Bugzilla:2180782

fuse3 现在允许在不触发 umount的情况下使目录条目无效

有了此更新,已在 fuse3 软件包中添加了一个新的机制,它允许使目录条目无效,而无需自动触发条目上存在的任何挂载的 umount

Bugzilla:2171095[1]

4.7. 高可用性和集群

Pacemaker 的调度程序现在在尝试满足可选托管约束之前,尝试满足所有强制托管约束

在以前的版本中,无论它们是强制的还是可选的,托管约束都会被逐一考虑。这意味着,即使节点分配是可能的,某些资源也无法运行。在尝试满足可选的托管约束之前,Pacemaker 的调度程序现在会尝试满足所有强制托管约束,包括组成员之间的隐式限制。因此,混合了可选和强制托管约束的资源现在更有可能运行。

Bugzilla:1876173

IPaddr2IPsrcaddr 集群资源代理现在支持基于策略的路由

IPaddr2IPsrcaddr 集群资源代理现在支持基于策略的路由,这可让您配置复杂的路由场景。基于策略的路由要求您配置资源代理的 table 参数。

Bugzilla:2040110

Filesystem 资源代理现在支持 EFS 文件系统类型

ocf:heartbeat:Filesystem 集群资源代理现在支持 Amazon Elastic File System (EFS)。现在,您可以在配置 Filesystem 资源时指定 fstype=efs

Bugzilla:2049319

alert_snmp.sh.sample 警报代理现在支持 SNMPv3

alert_snmp.sh.sample 警报代理(这是 Pacemaker 提供的示例警报代理)现在支持 SNMPv3 协议和 SNMPv2。有了这个更新,您可以复制 alert_snmp.sh.sample 代理,而无需修改,以使用带有 Pacemaker 警报的 SNMPv3。

Bugzilla:2160206

enabled 警报元选项,以禁用 Pacemaker 警报

Pacemaker 警报和警报接收者现在支持 enabled 元选项。

  • 将警报的 enabled 元选项设置为 false ,来禁用警报。
  • 将警报的 enabled 元选项设置为 true,将特定接收者的该选项设置为 false 会禁用该接收者的警报。

enabled 元选项的默认值为 true。出于任何原因(如计划维护),您可以使用这个选项来临时禁用警报。

Bugzilla:2078611

pacemaker 远程节点现在在短暂的连接中断后可保留临时节点属性

在以前的版本中,当 Pacemaker 远程连接丢失时,Pacemaker 通常会清除其临时节点属性。如果连接快速恢复,且远程守护进程在此期间没有重启,则不需要此项。Pacemaker 远程节点现在在短暂的、可恢复的连接中断后可保留临时节点属性。

Bugzilla:2030869

pcs property 命令的改进

pcs property 命令现在支持以下改进:

  • pcs property config --output-format= 选项

    • 指定 --output-format=cmd 来显示从当前集群属性配置中创建的 pcs property set 命令。您可以使用这个命令在不同的系统上重新创建配置的集群属性。
    • 指定 --output-format=json ,来以 JSON 格式显示配置的集群属性。
    • 指定 output-format=text ,来以纯文本格式显示配置的集群属性,这是此选项的默认值。
  • pcs property defaults 命令,它替换了已弃用的 pcs property --defaults 选项
  • pcs property describe 命令,它描述了集群属性的含义。

Bugzilla:2166289

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

完全支持新的 nodejs:20 模块流

以前作为技术预览提供的新模块流 nodejs:20 被发布的 RHEA-2023:7249 公告完全支持 。nodejs:20 模块流现在提供 Node.js 20.9,它是一个长期支持(LTS)版本。

与 RHEL 8.7 以来的 Node.js 18 相比,RHEL 8.9 中包含的 Node.js 20 提供了许多新功能、bug 修复、安全修复和性能改进。

主要变更包括:

  • V8 JavaScript 引擎已升级至版本 11.3。
  • npm 软件包管理器已升级至版本 9.8.0。
  • Node.js 引入了一个新的实验性权限模型。
  • Node.js 引入了一个新的实验性单可执行文件应用程序(SEA)功能。
  • Node.js 提供了对 Experimental ECMAScript 模块(ESM)加载程序的改进。
  • Node.js 18 中作为实验性 node:test 模块引进的原生测试运行程序现在被视为是稳定的。

要安装 nodejs:20 模块流,请使用:

# yum module install nodejs:20

如果要从 nodejs:18 流升级,请参阅 切换到更新的流

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

Bugzilla:2186718

Python tarfile 提取函数的一个新 filter 参数

要缓解 CVE-2007-4559,Python 向 tarfile 提取函数添加了一个 filter 参数。参数允许关闭 tar 功能以提高安全性(包括阻止 CVE-2007-4559 目录遍历攻击)。如果没有指定过滤器,则在 RHEL 中默认使用 'data' 过滤器,这是最安全但最有限的。另外,当应用程序受到影响时,Python 会发出一个警告。

如需更多信息,包括隐藏警告的说明,请参阅知识库文章 Python tarfile 库中目录遍历攻击的缓解(CVE-2007-4559)

Jira:RHELDOCS-16405[1]

HTTP::Tiny Perl 模块现在默认验证 TLS 证书

HTTP::Tiny Perl 模块中的 verify_SSL 选项的默认值已从 0 变为 1,以在使用 HTTPS 时验证 TLS 证书。这个更改修复了 HTTP::TinyCVE-2023-31486 和 CPAN Perl 模块的 CVE-2023-31484

为了支持 TLS 验证,这个更新在 perl-HTTP-Tiny 软件包中添加了以下依赖项:

  • perl-IO-Socket-SSL
  • perl-Mozilla-CA
  • perl-Net-SSLeay

Bugzilla:2228409[1]

Python 中的一个控制电子邮件地址解析的新环境变量

为缓解 CVE-2023-27043,一个向后兼容的更改,以确保在 Python 3 中引入了更严格的电子邮件地址的解析。

RHSA-2024:0256 中的更新引入了一个新的 PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING 环境变量。当您将此变量设置为 true 时,以前的、不太严格的解析行为是整个系统的默认设置:

export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true

但是,对受影响函数的单个调用可能仍然启用更严格的行为。

您可以通过使用以下内容创建 /etc/python/email.cfg 配置文件来取得相同的结果:

[email_addr_parsing]
PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true

如需更多信息,请参阅知识库文章 缓解 Python 中引入更严格的电子邮件地址解析的 CVE-2023-27043

Jira:RHELDOCS-17369[1]

4.9. 编译器和开发工具

改进了 glibc 中基于 Intel® Xeon® v5 硬件的字符串和内存例程性能

在以前的版本中,glibc 用于字符串和内存例程的默认缓存量会导致基于 Intel® Xeon® v5 的系统上的性能低于预期。有了此更新,已调整了要使用的缓存量,以提高性能。

Bugzilla:2180462

GCC 现在支持保留寄存器参数

有了此更新,您可以将参数寄存器内容存储到堆栈,并生成合适的 Call Frame Information (CFI),以允许 unwinder 找到它,而不会给性能造成负面影响。

Bugzilla:2168205[1]

新的 GCC Toolset 13

GCC Toolset 13 是一个编译器工具集,其提供开发工具的最新版本。它在 AppStream 存储库中以 Software Collection 的形式作为 Application Stream 提供。

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

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

工具版本

GCC

13.1.1

GDB

12.1

binutils

2.40

dwz

0.14

annobin

12.20

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

# yum install gcc-toolset-13

要从 GCC Toolset 13 运行工具:

$ scl enable gcc-toolset-13 tool

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

$ scl enable gcc-toolset-13 bash

如需更多信息,请参阅https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/developing_c_and_cpp_applications_in_rhel_8/additional-toolsets-for-development_developing-applications#gcc-toolset-13_assembly_additional-toolsets-for-development[GCC Toolset 13] 和 使用 GCC Toolset

Bugzilla:2171898[1], Bugzilla:2171928, Bugzilla:2188490

GCC Toolset 13:GCC rebase 到版本 13.1.1

在 GCC Toolset 13 中,GNU Compiler Collection (GCC)已更新至版本 13.1.1.。主要变更包括:

常规改进

  • OpenMP:

    • OpenMP 5.0:Fortran 现在支持一些非矩形循环嵌套。GCC 11 中添加了对 C/C++ 的此类支持。
    • 添加了许多 OpenMP 5.1 功能。
    • 添加了对 OpenMP 5.2 功能的初始支持。
  • 现在提供了一个新的 debug 信息压缩选项值 -gz=zstd
  • -Ofast-ffast-math-funsafe-math-optimizations 选项不再添加启动代码,来在使用 -shared 选项生成共享对象时更改浮点环境。
  • GCC 现在可以使用 Static Analysis Results Interchange Format(SARIF)发出其诊断,此格式是一个适合于捕获静态分析工具(如 GCC 的 -fanalyzer)结果的基于 JSON 的格式。您还可以使用 SARIF 来捕获机器可读格式的其他 GCC 警告和错误。
  • 实现了链接时优化改进。

新的语言和特定语言改进

C 系列:

  • 新的 -Wxor-used-as-pow 选项警告有关排他或(^)运算符的使用,用户可能指的是取幂。
  • 为记录是文件描述符的 int 参数添加了三个新的功能属性:

    • attribute((fd_arg(N)))
    • attribute((fd_arg_read(N)))
    • attribute((fd_arg_write(N)))

    -fanalyzer 也使用这些属性来检测文件描述符的滥用。

  • 已为 C++23 可移植假设添加了一个新的语句属性attribute((assume(EXPR)));。属性也在 C 或更早的 C++ 中支持。
  • GCC 现在可以控制何时将一个结构的尾随数组视为一个灵活的数组成员,以便访问此类数组的元素。默认情况下,聚合中的所有尾随数组都被视为灵活的数组成员。使用新的命令行选项 -fstrict-flex-arrays 来控制哪些数组被视为灵活的数组。

C:

  • 实现了几个 C23 功能:

    • 引入了 nullptr 常量。
    • 增强了枚举来指定底层类型。
    • 对可变参数列表的要求已放宽。
    • 引入了 auto 功能,来为对象定义启用类型推断。
    • 为对象定义引入了 constexpr 指定符。
    • 为复合字面引入了 storage-class 指定符。
    • 引入了 typeof 对象(以前作为扩展支持)和 typeof_unqual 对象。
    • 添加了新的关键字:alignas,alignofbool,false,static_assert,thread_localtrue
    • 添加了 [[noreturn]] 属性,来指定不会向其调用者返回执行的函数。
    • 添加了对空初始化器大括号的支持。
    • 添加了对 STDC_VERSION keyring_H 标头版本宏的支持。
    • 删除了 ATOMIC_VAR_INIT 宏。
    • <stddef.h> 标头添加了 unreachable 宏。
    • 删除了三角图。
    • 删除了非原型函数。
    • 通过 -Wformat 选项为 %wN%wfN 格式长度修饰符添加了 printfscanf 格式检查。
    • 添加了对 Unicode Standard Annex (UAX) 31 标识符语法的支持。
    • C23 中采用的现有功能已调整为遵循 C23 要求,且不会使用 -std=c2x -Wpedantic 选项进行诊断。
  • 新的 -Wenum-int-mismatch 选项警告枚举类型和整数类型之间的不匹配。

C++:

  • 通过 -fexcess-precision 选项实现超精度支持。它默认在严格的标准模式(如 -std=c++17 )下启用,其中其默认为 -fexcess-precision=standard。在 GNU 标准模式下,如 -std=gnu++20,其默认为 -fexcess-precision=fast,这会恢复以前的行为。

    -fexcess-precision 选项会影响以下构架:

    • 使用 x87 math 的 Intel 32 和 64 位,某些情况下的 Motorola 68000 ,其中 floatdouble 表达式以 long double 评估。
    • double 精度评估 float 表达式的 64 位 IBM Z 系统。
    • 支持 std::float16_tstd::bfloat16_t 类型的几个架构,其中这些类型以 float 精度评估。
  • 改进了对 C++23 的实验性支持,包括:

    • 添加了对复合语句末尾的标签的支持。
    • 添加了一个类型 trait ,来检测绑定到临时类型的引用。
    • 重新引入对易失性复合操作的支持。
    • 添加了对 #warning 指令的支持。
    • 添加了对分隔的转义序列的支持。
    • 添加了对命名的通用字符转义的支持。
    • char8_t 类型添加了兼容性和可移植性修复。
    • 添加了静态 operator() 函数对象。
    • 简化的隐式移动。
    • 现在,在表达式中重写等式不是一个突破性的变化。
    • 删除了不可编码的宽字符量和宽多字符量。
    • 放宽了一些 constexpr 函数限制。
    • 扩展了浮点类型和标准名称。
    • 实现了可移植假设。
    • 添加了对作为可移植源文件编码标准的 UTF-8 的支持。
    • 添加了对静态 operator[] 子脚本的支持。
  • 新警告:

    • 当值通过 std::move 移到其自身时,-Wself-move 会警告。
    • 当参考绑定到其生命周期已结束的临时参考时,-Wdangling-reference 会警告。
    • -Wpessimizing-move-Wredundant-move 警告已扩展为在更多上下文中警告。
  • 新的 -nostdlib++ 选项启用与 g++ 的链接,而无需在 C++ 标准库中隐式链接。

libstdc++ 运行时库中的更改

  • 改进了 C++20 的实验性支持,包括:

    • 添加了 <format> 标头和 std::format 函数。
    • <chrono> 标头中添加了对 std::chrono::utc_clock 时钟、其他时钟、时区和 std::format 函数的支持。
  • 改进了对 C++23 的实验性支持,包括:

    • <ranges> 标头中添加了:view::zip,views::zip_transform,views::adjacent,views::adjacent_transform,views::pairwise,views::slide,views::chunk,views::chunk_by,views::repeat, views::chunk_by,views::cartesian_product,views::as_rvalue,views::enumerate,views::as_const
    • <algorithm> 标头中添加了:ranges::contains,ranges::contains_subrange,ranges::iota,ranges::find_last,ranges::find_last_if,ranges::find_last_if_not,ranges::fold_left,ranges::fold_left_first, ranges::fold_right,ranges::fold_right_last,ranges::fold_left_with_iter,ranges::fold_left_first_with_iter
    • 支持 std::expected 类模板的 monadic 操作。
    • std::bitsetstd::to_charsstd::from_chars 函数添加了 constexpr 修饰符。
    • 添加了对扩展的浮点类型的库支持。
  • 添加了对 Library Fundamentals Technical Specification (TS)的版本 3 中 <experimental/scope> 标头的支持。
  • 添加了对 Concurrency TS 的版本 2 中 <experimental/synchronized_value> 标头的支持。
  • 添加了对许多之前在 freestanding 模式下不可用的功能的支持。例如:

    • std::tuple 类模板现在可用于独立编译。
    • libstdc++ 库向 freestanding 子集添加了组件,如 std::arraystd::string_view
    • libstdc++ 库现在使用 -ffreestanding 编译器选项,因此不再需要构建 libstdc++ 库的一个单独的独立安装。使用 -ffreestanding 编译将可用的功能限制到独立的子集,即使 libstdc++ 库是作为完整的托管的实现而构建的。

新目标和特定于目标的改进

64 位 ARM 架构:

  • 添加了对 -march= 选项的 armv9.1-aarmv9.2-aarmv9.3-a 参数的支持。

32 位和 64 位 AMD 和 Intel 架构:

  • 对于 C 和 C++,启用了流 SIMD 扩展 2 及更高版本的系统上支持 __bf16 类型。
  • 真正的 __bf16 类型现在用于 AVX512BF16 指令的内在特性。在以前的版本中,使用 __bfloat16,它是一种 short 的 typedef 。在将 GCC 12 升级到 GCC 13 时,调整您的 AVX512BF16 相关源代码。
  • 添加了新的指令集架构(ISA)扩展,以支持以下 Intel 指令:

    • AVX-IFMA ,其指令内在特性通过 -mavxifma 编译器开关提供。
    • AVX-VNNI-INT8,其指令内在特性通过 -mavxvnniint8 编译器开关提供。
    • AVX-NE-CONVERT,其指令内在特性通过 -mavxneconvert 编译器开关提供。
    • CMPccXADD,其指令内在特性通过 -mcmpccxadd 编译器开关提供。
    • AMX-FP16 ,其指令内在特性通过 -mamx-fp16 编译器开关提供。
    • PREFETCHI ,其指令内在特性通过 -mprefetchi 编译器开关提供。
    • RAO-INT,其指令内在特性通过 -mraoint 编译器开关提供。
    • AMX-COMPLEX,其指令内在特性通过 -mamx-complex 编译器开关提供。
  • GCC 现在通过 -march=znver4 编译器开关,支持基于 znver4 核的 AMD CPU。开关在自动向量化时考虑使用 512 位向量。

对静态分析器的改进

  • 静态分析器已得到 20 个新警告:

    • -Wanalyzer-allocation-size
    • -Wanalyzer-deref-before-check
    • -Wanalyzer-exposure-through-uninit-copy
    • -Wanalyzer-imprecise-fp-arithmetic
    • -Wanalyzer-infinite-recursion
    • -Wanalyzer-jump-through-null
    • -Wanalyzer-out-of-bounds
    • -Wanalyzer-putenv-of-auto-var
    • -Wanalyzer-tainted-assertion
    • 与文件描述符滥用相关的 7 个新警告:

      • -Wanalyzer-fd-access-mode-mismatch
      • -Wanalyzer-fd-double-close
      • -Wanalyzer-fd-leak
      • -Wanalyzer-fd-phase-mismatch(例如,在对套接字调用 listen 前,对套接字调用 accept
      • -Wanalyzer-fd-type-mismatch (例如,对数据报套接字使用流套接字操作)
      • -Wanalyzer-fd-use-after-close
      • -Wanalyzer-fd-use-without-check

        • 另外,还实现对 openclosecreatdupdup2dup3pipepipe2read、和 write 函数的行为的特殊处理。
    • 对滥用 <stdarg.h> 标头的四个新警告:

      • -Wanalyzer-va-list-leak 警告在 va_startva_copy 宏之后缺少 va_end 宏。
      • -Wanalyzer-va-list-use-after-va-end 警告在已对其调用了 va_end 宏的 va_list 对象类型上使用了 va_argva_copy 宏。
      • -Wanalyzer-va-arg-type-mismatch 类型检查针对实际传递 variadic 调用的参数类型的过程间执行路径中的 va_arg 宏的使用情况。
      • -Wanalyzer-va-list-exhausted 警告 va_arg 宏是否在过程间执行路径中对 va_list 对象类型使用了太多次。
  • 很多其他改进。

后向不兼容更改

对于 C++,全局 iostream 对象(如 std::cout, std::cin)的构建现在在标准库中完成,而不是在包含 <iostream> 标头的每个源文件中完成。这个更改提高了 C++ 程序的启动性能,但这意味着如果在运行时没有使用正确的 libstdc++.so 版本,则使用 GCC 13.1 编译的代码将崩溃。请参阅有关在运行时使用正确的 libstdc++.so文档。未来的 GCC 发行版将缓解这个问题,这样,带有不兼容 libstdc++.so 的程序根本不能运行。

Bugzilla:2172091[1]

GCC Toolset 13: annobin rebase 到版本 12.20

GCC Toolset 13 提供了 annobin 软件包版本 12.20。主要改进包括:

  • 添加了对将 annobin 备注移到单独的调试信息文件中的支持。这导致减小了可执行二进制文件的大小。
  • 添加了对新的较小的备注格式的支持,减少了单独 debuginfo 文件的大小以及创建这些文件所需的时间。

Bugzilla:2171923[1]

GCC Toolset 13:GDB rebase 到版本 12.1

GCC Toolset 13 提供 GDB 版本 12.1。

重要的程序错误修复和增强包括:

  • GDB 现在默认设置源代码和反汇编器的样式。如果样式干扰了 GDB 的自动化或脚本,您可以使用 maint set gnu-source-highlight enabled offmaint set style disassembler enabled off 命令禁用它。
  • GDB 现在每当遇到内部错误时都会显示回溯追踪。如果这会影响脚本或自动化,您可以使用 maint set backtrace-on-fatal-signal off 命令禁用此功能。

C/C++ 改进:

  • GDB 现在像对待功能过载一样对待涉及 C++ 模板的功能或类型。您可以省略参数列表,以在模板功能系列上设置断点,包括类型或由多个模板类型组成的功能。Tab 补全已得到类似的改进。

终端用户界面(TUI):

  • tui layout

    tui focus

    tui refresh

    tui window height
    这些分别是旧 layoutfocus ,refreshwinheight TUI 命令的新名称旧名称仍作为这些新命令的别名存在。

  • tui window width

    winwidth

    使用新的 tui window width 命令或 winwidth 别名,当窗口在水平模式下布局时调整 TUI 窗口的宽度。

  • info win

    这个命令现在在其输出中包含有关 TUI 窗口宽度的信息。

机器接口(MI)更改:

  • MI 解释器的默认版本现在是 4 (-i=mi4)。
  • 没有标志的 -add-inferior 命令现在继承当前下级的连接。这将恢复版本 10 之前的 GDB 的行为。
  • -add-inferior 命令现在接受一个 --no-connection 标志,这导致新的下级在没有连接的情况下启动。
  • 断点输出中的 script 字段(其在 MI 3 及更早版本中的语法不正确)已在 MI 4 中成为一个列表。这会影响以下命令和事件:

    • -break-insert
    • -break-info
    • =breakpoint-created
    • =breakpoint-modified

      使用 -fix-breakpoint-script-output 命令启用使用早期 MI 版本的新行为。

新命令:

  • maint set internal-error backtrace [on|off]

    maint show internal-error backtrace

    maint set internal-warning backtrace [on|off]

    maint show internal-warning backtrace

    GDB 现在在遇到内部错误或内部警告时打印其自身的回溯追踪。对于内部错误,这默认是启用的,对于内部警告,默认禁用。

  • exit

    除了现有的 quit 命令外,您还可以使用新的 exit 命令退出 GDB。

  • maint set gnu-source-highlight enabled [on|off]

    maint show gnu-source-highlight enabled
    启用或禁用 GNU Source Highlight 库来向源代码添加样式。禁用时,即使库可用,也不会使用它。当 GNU Source Highlight 库没有使用时,使用 Python Pygments 库。

  • set suppress-cli-notifications [on|off]

    show suppress-cli-notifications

    控制是否禁止为 CLI 打印通知。当您更改所选上下文(如当前的下级、线程或帧)或正在调试的程序停止时(例如:由于遇到断点、完成源步进或中断)时,会发生 CLI 通知。

  • set style disassembler enabled [on|off]

    show style disassembler enabled

    启用后,如果 GDB 是使用支持的 Python 编译的,且有 Python Pygments 软件包可用,则命令会向反编译器输出应用样式。

更改的命令:

  • set logging [on|off]

    弃用,并被 set logging enabled [on|off] 命令替换。

  • print

    使用类似 /x 的基数修改格式的浮点值打印已变为显示所需基数中值的底层字节。

  • clone-inferior

    clone-inferior 命令现在确保 TTYCMDARGs 设置从原始下级复制到新的下级。所有使用set environmentunset environment 命令对环境变量的修改也会被复制到新的下级中。

Python API:

  • 新的 gdb.add_history() 函数接受一个 gdb.Value 对象,并将其代表的值添加到 GDB 的历史记录列表中。函数返回一个整数,这是历史记录列表中新项目的索引。
  • 新的 gdb.history_count() 函数返回 GDB 值历史记录中的值数。
  • 新的 gdb.events.gdb_exiting 事件通过 gdb.GdbExitingEvent 对象调用,该对象具有包含 GDB 退出码值的只读属性 exit_code。在 GDB 开始清理其内部状态前,此事件会在 GDB 退出前触发。
  • 新的 gdb.architecture_names() 函数返回一个包含所有可能的 Architecture.name() 值的列表。每个条目都是一个字符串。
  • 新的 gdb.Architecture.integer_type() 函数返回一个给定大小和符号的整数类型。
  • 新的 gdb.TargetConnection 对象类型表示一个连接(如 info connections 命令显示的那样)。子类 gdb.RemoteTargetConnection 表示 remoteextended-remote 连接。
  • gdb.Inferior 类型现在有一个 connection 属性,它是 gdb.TargetConnection 对象的一个实例,连接被这个下级使用。如果下级没有连接,则这可以是 None
  • 当从 GDB 中删除连接时,新的 gdb.events.connection_removed 事件注册中心会发出一个 gdb.ConnectionEvent 事件。此事件有一个 connection 属性,一个用于要删除的连接的 gdb.TargetConnection 对象。
  • 新的 gdb.connections() 函数返回所有当前活跃连接的列表。
  • 新的 gdb.RemoteTargetConnection.send_packet (PACKET) 方法等同于现有的 maint packet CLI 命令。您可以使用它来向远程目标发送指定的数据包。
  • 新的 gdb.host_charset() 函数返回作为字符串的当前主机字符集的名称。
  • 新的 gdb.set_parameter (NAME,VALUE) 函数将 GDB 参数 NAME 设置为 VALUE
  • 新的 gdb.with_parameter (NAME,VALUE) 函数返回一个上下文管理器,该管理器临时将 GDB 参数 NAME 设置为 VALUE,然后在上下文退出时重置它。
  • gdb.Value.format_string 方法现在接受一个 styling 参数,该参数是一个布尔值。当为 true 时,返回的字符串可以包含转义序列以应用样式。只有在 GDB 上打开样式时,才会显示样式(请参阅 帮助设置样式)。当未指定 styling 参数时,其为默认值false,则不会将样式应用到返回的字符串。
  • 新的只读属性 gdb.InferiorThread.details 是一个包含额外的特定于目标的线程信息的字符串,或者如果没有这样的附加信息,则为 None
  • 新的只读属性 gdb.Type.is_scalar 对于 scalar 类型为 True,对所有其他类型为 False
  • 新的只读属性 gdb.Type.is_signed 仅在 Type.is_scalarTrue 时可读,对于有符号类型将为True,对于所有其他类型将为False。尝试读取 non-scalar 类型的此属性将引发一个 ValueError
  • 现在,您可以添加在 Python 中添加 GDB 和实施的 MI 命令。

如需更多信息,请参阅上游发行注记:

GDB 中有哪些变化?

Bugzilla:2172095[1]

GCC Toolset 13:bintuils rebase 到版本 2.40

GCC Toolset 13 提供 binutils 软件包版本 2.40。主要改进包括:

链接器:

  • 链接器的新 -w (--no-warnings)命令行选项抑制了任何警告或错误消息的生成。如果您需要创建一个已知无法正常工作的二进制文件,这非常有用。
  • 现在,ELF 链接器会生成一条警告信息,如果:

    • 堆栈可执行
    • 它创建了一个内存常量片段,具有 ReadWriteeXecute 全部三个权限集
    • 它会创建一个具有 eXecute 权限的线程本地数据段。

      您可以使用 --no-warn-exec-stack--no-warn-rwx-segments 选项禁用这些警告。

  • 链接器现在可以将任意 JSON 格式的元数据插入到它创建的二进制文件中。

其他工具:

  • 新的 objdump 工具的 --private 选项,用于显示文件标头中的字段,以及 Portable Executable (PE)格式的部分标头。
  • objcopystrip 的新的 --strip-section-headers 命令行选项,来从 ELF 文件中删除 ELF 部分标头。
  • objdump 工具的新的 --show-all-symbols 命令行选项,来在反汇编时显示与给定地址匹配的所有符号,而不是显示与地址匹配的第一个符号的默认功能。
  • nm 工具的新 -W (--no-weak)选项使其忽略弱符号。
  • objdump 工具现在支持对某些架构的反汇编输出的语法高亮显示。使用 --disassembler-color=MODE 命令行选项,MODE 是以下之一:

    • off
    • color - 所有终端模拟器都支持这个选项。
    • extended-color - 这个选项使用所有终端模拟器都不支持的 8 位颜色。

Bugzilla:2171924[1]

GCC Toolset 13: annobin rebase 到版本 12.20

GCC Toolset 13 提供了 annobin 软件包版本 12.20。主要改进包括:

  • 添加了对将 annobin 备注移到单独的调试信息文件中的支持。这导致减小了可执行二进制文件的大小。
  • 添加了对新的较小的备注格式的支持,它减少了各个 debuginfo 文件的大小以及创建这些文件所需的时间。

Bugzilla:2171921[1]

Valgrind rebase 到版本 3.21.0

Valgrind 已更新至版本 3.21.0。主要改进包括:

  • --vgdb-stop-at=event1,event2,…​ 选项的新 abexit 值会在程序异常退出(如非零退出码)时通知 gdbserver 工具。
  • 新的 --enable-debuginfod=[yes|no] 选项指示 Valgrind 使用 DEBUGINFOD_URLS 环境变量中列出的 debuginfod 服务器来获取在 Valgrind 下运行的程序缺少的 DWARF debuginfo 信息。此选项的默认值为 yes

    注意

    默认不设置 DEBUGINFOD_URLS 环境变量。

  • 使用 --multi 选项调用时,vgdb 工具现在支持扩展的远程协议。此模式下支持 GDB run 命令,因此您可以从单个终端运行 GDB 和 Valgrind。
  • 对于截获 malloc() 调用的工具,您可以使用 --realloc-zero-bytes-frees=[yes|no] 选项更改 realloc() 函数的行为。
  • memcheck 工具现在对大小为零的 realloc () 函数的使用情况进行检查。使用新的 --show-realloc-size-zero=[yes|no] 开关来禁用此功能。
  • 您可以对 helgrind 工具使用新的 --history-backtrace-size=value 选项,来配置要在早期访问的堆栈跟踪中记录的条目的数量。
  • --cache-sim=[yes|no] cachegrind 选项现在默认为 no,因此默认只收集指令缓存读事件。
  • cg_annotatecg_diffcg_merge cachegrind 工具的源代码已被重写,因此工具具有更灵活的命令行选项处理。例如,它们现在支持 --show-percs--no-show-percs 选项,以及现有的 --show-percs=yes--show-percs=no 选项。
  • cg_annotate cachegrind 工具现在支持区分(使用 --diff--mod-filename--mod-funcname 选项)和合并(通过传递多个数据文件)。另外,cg_annotate 现在在文件和函数级别提供更多信息。
  • DHAT 工具的新的用户请求允许您覆盖对内存块的访问数直方图的 1024 字节限制。

现在支持以下特定于架构的指令集:

  • 64 位 ARM:

    • v8.2 scalar 和 vector Floating-point Absolute Difference (FABD), Floating-point Absolute Compare Greater than or Equal (FACGE), Floating-point Absolute Compare Greater Than (FACGT)和 Floating-point Add (FADD)指令。
    • v8.2 浮点(FP)比较和条件比较指令。
    • v8.2 浮点(FP)的零变体比较指令。
  • 64-位 IBM Z:

    • 支持各种 miscellaneous-instruction-extensions facility 3vector-enhancements facility 2。这使用 -march=arch13-march=z15 选项编译的程序能够在 Valgrind 下执行。
  • IBM Power:

    • ISA 3.1 支持现已完成。
    • ISA 3.0 现在支持交付一个随机数字(darn)指令。
    • ISA 3.0 现在支持 System Call Vectored(scv)指令。
    • ISA 3.0 现在支持复制、粘贴和 cpabort 指令。

Bugzilla:2124345

SystemTap rebase 到版本 4.9

systemtap 软件包已升级到版本 4.9。主要变更包括:

  • 新的 Language-Server-Protocol (LSP)后端,用于在支持 LSP 的编辑器上更轻松地交互式起草 systemtap 脚本。
  • 访问 Python/Jupyter 交互式笔记本前端。
  • 改进了 DWARF 5 位字段的处理。

Bugzilla:2186932

elfutils rebase 到版本 0.189

elfutils 软件包已更新至版本 0.189。主要改进和 bug 修复包括:

libelf
elf_compress 工具现在支持 ELFCOMPRESS_ZSTD ELF 压缩类型。
libdwfl
对于指向 DW_TAG_unspecified_type 类型标签的 DWARF Information Entries (DIEs),dwfl_module_return_value_location 函数现在返回 0 (无返回类型)。
eu-elfcompress
-t--type= 选项现在通过zstd参数支持 Zstandard ( zstd )压缩格式。

Bugzilla:2182060

libpfm rebase 到版本 4.13

libpfm 软件包已更新至版本 4.13。有了此更新,libpfm 现在可以访问以下处理器微架构的性能监控硬件原生事件:

  • AMD Zen 4
  • ARM Neoverse N1
  • ARM Neoverse N2
  • ARM Neoverse V1
  • ARM Neoverse V2
  • 第四代 Intel® Xeon® Scalable Processors
  • IBM z16

Bugzilla:2185653, Bugzilla:2111987, Bugzilla:2111966, Bugzilla:2111973, Bugzilla:2109907, Bugzilla:2111981, Bugzilla:2047725

papi 支持新的处理器微架构

有了此增强,您可以使用以下处理器微架构上预设置的 papi 事件访问性能监控硬件:

  • ARM Neoverse N1
  • ARM Neoverse N2
  • ARM Neoverse V1
  • ARM Neoverse V2

Bugzilla:2111982[1], Bugzilla:2111988

papi 现在支持 64 位 ARM 的快速性能事件数读取操作

以前在 64 位 ARM 处理器上,所有性能事件计数器读取操作都需要使用资源密集型的系统调用。已对 64 位 ARM 更新了 papi,以便让使用性能计数器监控其自身的进程使用更快的性能事件计数器的用户空间读取。将 /proc/sys/kernel/perf_user_access 参数设置为 1 ,来将 papi 读取 2 个计数器的平均时钟周期数从 724 周期减少到 29 周期。

Bugzilla:2161146[1]

LLVM Toolset rebase 到版本 16.0.6

LLVM Toolset 已更新至版本 16.0.6。

主要改进包括:

  • 对优化的改进
  • 对新 CPU 扩展的支持
  • 改进了对新 C++ 版本的支持。

重要的向后不兼容的更改包括:

  • Clang 的默认 C++ 标准现在是 gnu++17 ,而不是 gnu++14
  • -Wimplicit-function-declaration,-Wimplicit-int-Wincompatible-function-pointer-types 选项现在默认为 C 代码错误。这可能会影响配置脚本的行为。

默认情况下,Clang 16 使用 libstdc++ 库版本 13 和 GCC Toolset 13 提供的 binutils 2.40

如需更多信息,请参阅 LLVM 发行注记Clang 发行注记

Bugzilla:2178806

Rust Toolset rebase 到版本 1.71.1

Rust Toolset 已更新至版本 1.71.1。主要变更包括:

  • 多个生成者(mpsc),单个消费者渠道的新实现,以提高性能
  • 新的 Cargo 稀疏 索引协议,来更有效地使用 crates.io 注册中心
  • 用于一次性值初始化的新的 OnceCellOnceLock 类型
  • 新的 C-unwind ABI 字符串,以启用跨 Foreign Function Interface (FFI)边界的强制展开的使用

如需了解更多详细信息,请参阅上游版本公告系列:

Bugzilla:2191740

Rust profiler_builtins 运行时组件现在可用

有了此增强,Rust profile_builtins 运行时组件现在可用。此运行时组件启用了以下编译器选项:

-C instrument-coverage
启用了覆盖率分析
-C profile-generate
启用了配置文件引导的优化

Bugzilla:2213875[1]

Go Toolset rebase 到版本 1.20.10

Go Toolset 已更新到版本 1.20.10。

主要改进包括:

  • unsafe 软件包中添加了新功能,以处理片段和字符串,而不取决于内部表示。
  • 可比较类型现在可以满足可比较约束。
  • 新的 crypto/ecdh 软件包。
  • go buildgo test 命令不再接受 -i 标志。
  • go generatego test 命令现在接受 -skip pattern 选项。
  • go buildgo install 和其它与构建相关的命令现在支持 -pgo-cover 标志。
  • go 命令现在默认在没有 C 工具链的系统上禁用 cgo
  • go version -m 命令现在支持读取更多的 Go 二进制文件类型。
  • go 命令现在默认在没有 C 工具链的系统上禁用 cgo
  • 添加了对从应用程序和集成测试收集代码覆盖配置文件的支持,而不是仅从单元测试中收集它们。

Bugzilla:2185260[1]

grafana rebase 到版本 9.2.10

grafana 软件包已更新至版本 9.2.10。主要变更包括:

  • 时间序列面板现在是默认的视觉化选项,代替了图形面板。
  • Grafana 提供了一个新的 Prometheus 和 Loki 查询构建器。
  • Grafana 现在包括多个 UI/UX 和性能改进。
  • 许可证已从 Apache 2.0 变为 GNU Affero General Public License (AGPL)。
  • heatmap 面板现在在整个 Grafana 中使用。
  • Geomaps 现在可以测量距离和区域。
  • Alertmanager 现在基于 Prometheus Alertmanager 版本 0.24。
  • Grafana Alerting 规则现在在执行错误或超时时默认返回一个 Error 状态。
  • 表达式现在可以用在公共仪表盘上。
  • 合并转换现在支持内部合并。
  • 公共仪表盘现在允许共享 Grafana 仪表盘。
  • 新的 Prometheus 流解析器现在作为一个可选功能提供。

如需更多信息,请参阅上游发行注记:

Bugzilla:2193250

grafana-pcp rebase 到版本 5.1.1

提供 Performance Co-Pilot Grafana 插件的 grafana-pcp 软件包已更新至版本 5.1.1。主要变更包括:

  • 查询编辑器:添加了用于禁用速率对话和时间利用率对话的按钮
  • Redis 数据源:

    • 删除了已弃用的 label_values (metric, label) 函数
    • 修复了具有许多系列的指标的网络错误(需要 Performance Co-Pilot 版本 6 及更高版本)
  • pmproxy API 超时设置为 1 分钟

Bugzilla:2193270

.NET 8.0 可用

Red Hat Enterprise Linux 8.9 与 .NET 版本 8.0 一起分发。主要改进包括:

  • 添加了对 C#12 和 F#8 语言版本的支持。
  • 添加了对直接使用 .NET 软件开发套件构建容器镜像的支持。
  • 许多对垃圾收集器(GC)、Just-In-Time (JIT)编译器和基本库的性能改进。

Jira:RHELPLAN-164398[1]

4.10. 身份管理

samba rebase 到版本 4.18.4

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

  • 之前版本中的安全性改进影响了高元数据工作负载的服务器消息块(SMB)服务器的性能。在这种情况下,此更新提高了性能。
  • 新的 wbinfo --change-secret-at=<domain_controller> 命令强制对指定域控制器上信任帐户密码执行更改。
  • 默认情况下,Samba 将访问控制列表(ACL)存储在文件的 security.NTACL 扩展属性中。现在,您可以使用 /etc/samba/smb.conf 文件中的 acl_xattr:<security_acl_name> 设置自定义属性名称。请注意,自定义扩展属性名称不是作为 security.NTACL 的一个受保护的位置。因此,对服务器有本地访问权限的用户可以修改自定义属性的内容,并破坏 ACL。

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

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

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

Bugzilla:2190417

ipa rebase 到版本 4.9.12

ipa 软件包已升级到版本 4.9.12 。如需更多信息,请参阅 上游 FreeIPA 发行注记

Bugzilla:2196425

现在,可以在单个 Ansible 任务中管理多个 IdM 组和服务

通过 ansible-freeipa 中的这一增强,您可以使用单个 Ansible 任务添加、修改和删除多个身份管理(IdM)用户组和服务。为此,请使用 ipagroupipaservice 模块的 groupsservices 选项。

使用 ipagroup 中提供的 groups 选项,您可以指定仅应用到特定组的多个组变量。这个组由 name 变量定义,这是 groups 选项的唯一强制的变量。

同样,使用 ipaservice 中提供的 services 选项,您可以指定仅应用到特定服务的多个服务变量。此服务由 name 变量定义,这是 services 选项的唯一强制的变量。

Jira:RHELDOCS-16474[1]

ansible-freeipa ipaserver 角色现在支持随机序列号

有了此更新,您可以将 ipaserver_random_serial_numbers=true 选项与 ansible-freeipa ipaserver 角色一起使用。这样,您可以在使用 Ansible 安装身份管理(IdM)服务器时,为 PKI 中的证书和请求生成完全随机的序列号。使用 RSNv3,您可以避免大型 IdM 安装中的范围管理,并防止重新安装 IdM 时常见的冲突。

重要

RSNv3 仅支持新的 IdM 安装。如果启用,则需要在所有 PKI 服务上使用 RSNv3。

Jira:RHELDOCS-16462[1]

ipaserver_remove_on_serveripaserver_ignore_topology_disconnect 选项现在在 ipaserver 角色中提供

如果使用 ipaserver ansible-freeipa 角色的 remove_server_from_domain 选项从身份管理(IdM)拓扑中删除一个副本导致一个断开的拓扑,则必须指定您要保留域的哪一部分。具体来说,您必须执行以下操作:

  • 指定 ipaserver_remove_on_server 值,以识别您要保留拓扑哪个部分。
  • ipaserver_ignore_topology_disconnect 设置为 True。

请注意,如果使用 remove_server_from_domain 选项从 IdM 中删除一个副本会保留一个连接的拓扑,则不需要这些选项的任何一个。

Bugzilla:2127901

ipaclient 角色现在允许在 IdM 级别上配置用户 subID 范围

有了此更新,ipaclient 角色提供了 ipaclient_subid 选项,您可以使用它在身份管理(IdM)级别上配置 subID 范围。没有明确设置为 true 的新选项,ipaclient 角色会保持默认行为,并在没有为 IdM 用户配置 subID 范围的情况下安装客户端。

在以前的版本中,角色配置了 sssd authselect 配置文件,它会自定义 /etc/nsswitch.conf 文件。subID 数据库没有使用 IdM,只依赖于 /etc/subuid/etc/subgid 的本地文件。

Bugzilla:2175766

现在,您可以使用 ipacert Ansible 模块管理 IdM 证书

现在,您可以使用 ansible-freeipa ipacert 模块为身份管理(IdM)用户、主机和服务请求或检索 SSL 证书。然后,用户、主机和服务可以使用这些证书向 IdM 进行身份验证。您还可以撤销证书,以及恢复已搁置的证书。

Bugzilla:2127906

MIT Kerberos 现在支持扩展的 KDC MS-PAC 签名

哟了此更新,红帽使用的 MIT Kerberos 实现了对 Microsoft 引入的两种 Privilege Attribute Certificate (PAC) 签名的支持,以响应最新的 CVE。具体来说,RHEL 8 中的 MIT Kerberos 支持 KB5020805 中发布的扩展 KDC 签名,并解决了 CVE-2022-37967

请注意,由于 ABI 稳定性约束,RHEL8 上的 MIT Kerberos 无法支持其他 PAC 签名类型,即 KB4598347 中定义的 Ticket 签名。

要排除与此增强相关的问题,请查看以下知识库资源:

另请参阅 BZ#2211387BZ#2176406

Bugzilla:2211390

RHEL 8.9 提供了 389-ds-base 1.4.3.37

RHEL 8.9 与 389-ds-base 软件包版本 1.4.3.37 一起分发。

Bugzilla:2188628

新的 passwordAdminSkipInfoUpdate: on/off 配置选项现在可用

您可以在 cn=config 条目下添加一个新的 passwordAdminSkipInfoUpdate: on/off 设置,以对密码管理员执行的密码更新提供精细控制。当您启用此设置时,密码更新不会更新某些属性,例如 passwordHistory,passwordExpirationTime,passwordRetryCount,pwdResetpasswordExpWarned

Bugzilla:2166332

4.11. 图形基础结构

现在完全支持 Intel Arc A 系列图形

以前作为技术预览提供的 Intel Arc A 系列图形(Alchemist 或 DG2)功能现在被完全支持。Intel Arc A 系列图形是一个启用了硬件加速的 GPU,主要用于 PC 游戏。

有了这个版本,您不再需要设置 i915.force_probe 内核选项,并且默认启用对这些 GPU 的全面支持。

Bugzilla:2041686[1]

4.12. Web 控制台

Podman 健康检查操作现在可用

您可以在创建新容器时选择以下 Podman 健康检查操作之一:

  • No action(默认):不执行任何操作。
  • Restart: 重启容器。
  • Stop :停止容器。
  • Force stop :强制停止容器,它不会等待容器退出。

Jira:RHELDOCS-16247[1]

Web 控制台的帐户页更新

此更新在 Accounts 页中引入了以下更新:

  • 现在,可以在帐户创建过程中添加自定义用户 ID,并定义主目录和 shell。
  • 在创建帐户时,密码验证会对每次击键操作主动执行检查。另外,对弱密码现在会显示一个警告。
  • 帐户详细信息页现在显示帐户的主目录和 shell。
  • 可以从帐户详情页更改 shell。

Jira:RHELDOCS-16367[1]

4.13. Red Hat Enterprise Linux 系统角色

postgresql RHEL 系统角色现在可用

新的 postgresql RHEL 系统角色会安装、配置、管理和启动 PostgreSQL 服务器。角色还优化了数据库服务器设置,以提高性能。

角色支持 RHEL 8 和 RHEL 9 管理的节点上 PostgreSQL 的当前发布的和支持的版本。

如需更多信息,请参阅 使用 postgresql RHEL 系统角色安装和配置 PostgreSQL

Bugzilla:2151371

keylime_server RHEL 系统角色

有了新的 keylime_server RHEL 系统角色,您可以使用 Ansible playbook 在 RHEL 9 系统上配置验证器和注册器 Keylime 组件。Keylime 是一个使用可信平台模块(TPM)技术的远程机器验证工具。

Bugzilla:2224387

支持新的 ha_cluster 系统角色功能

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

  • 资源配置和资源操作默认值,包括带有规则的多个默认值集合。
  • 加载和阻止 SBD watchdog 内核模块。这使得安装的硬件 watchdog 可供集群使用。
  • 向集群主机和仲裁设备分配不同的密码。因此,您可以配置一个部署,其中同一仲裁主机被加入到多个独立的集群,这些集群上的 hacluster 用户的密码不一样。

有关为实现这些功能而配置的参数的信息,请参考 使用 ha_cluster RHEL 系统角色配置高可用性集群

Bugzilla:2190483,Bugzilla:2190478,Bugzilla:2216485

storage 系统角色支持为 RAID LVM 卷配置条带大小

有了此更新,您可以在创建 RAID LVM 设备时指定自定义条带大小。为了更好的性能,请为 SAP HANA 使用自定义条带大小。建议的 RAID LVM 卷的条带大小为 64 KB。

Bugzilla:2141961

podman RHEL 系统角色现在支持 Quadlets、healthcheck 和 secret

从 Podman 4.6 开始,您可以在 podman RHEL 系统角色中使用 podman_quadlet_specs 变量。您可以通过指定一个单元文件来定义一个 Quadlet,或按名称、单元类型和规范在清单中定义一个 Quadlet。单元类型可以是以下:containerkubenetworkvolume。请注意,Qadlets 仅适用于 RHEL 8 上的 root 容器。Quadlets 适用于 RHEL 9 上的无根容器。

healthcheck 只支持 Quadlet 容器类型。在 [Container] 部分中,指定 HealthCmd 字段来定义 healthcheck 命令和 HealthOnFailure 字段,以在容器不健康时定义操作。可能的选项为 none,kill,restartstop

您可以使用 podman_secrets 变量来管理 secret。详情请查看 上游文档

Jira:RHELPLAN-154440[1]

RHEL 系统角色现在有用于挂载点自定义的新的卷选项

有了此更新,您现在可以为挂载目录指定 mount_usermount_groupmount_permissions 参数。

Bugzilla:2181661

kdump RHEL 系统角色更新

kdump RHEL 系统角色已更新至更新的版本,其带来了以下显著改进:

  • 安装 kexec-tools 后,工具套件不再产生 /etc/sysconfig/kdump 文件,因为您不再需要管理此文件。
  • 角色支持 auto_reset_crashkerneldracut_args 变量。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/kdump/ 目录中的资源。

Bugzilla:2211272

ad_integration RHEL 系统角色现在重新加入一个 AD 域

有了此更新,您现在可以使用 ad_integration RHEL 系统角色重新加入一个活动目录(AD)域。为此,请将 ad_integration_force_rejoin 变量设置为 true。如果 realm_list 输出显示该主机已在一个 AD 域中,则它将在重新加入前离开现有域。

Bugzilla:2211723

rhc 系统角色现在支持设置代理服务器类型

rhc_proxy 参数下新引入的属性 scheme 使您可以使用 rhc 系统角色来配置代理服务器类型。您可以设置两个值:http 默认值和 https

Bugzilla:2211778

ssh 角色中禁用配置备份的新选项

现在,您可以通过将新的 ssh_backup 选项设置为 false 来防止旧配置文件被覆盖前备份它们。在以前的版本中,备份配置文件是自动创建的,这可能不是必需的。ssh_backup 选项的默认值为 true,其保留原始行为。

Bugzilla:2216759

certificate RHEL 系统角色现在允许在使用 certmonger时更改证书文件模式

在以前的版本中,由 certificate RHEL 系统角色使用 certmonger 提供程序创建的证书使用默认的文件模式。但是,在某些用例中,您可能需要更严格的模式。有了此更新,您现在可以使用 mode 参数设置一个不同的证书和密钥文件模式。

Bugzilla:2218204

用于管理 systemd 单元的新 RHEL 系统角色

rhel-system-role 软件包现在包含 systemd RHEL 系统角色。您可以使用此角色来部署单元文件,并在多个系统上管理 systemd 单元。您可以通过提供 systemd 单元文件和模板,并通过指定这些单元的状态(如 started、stoped、masked 和其他)来自动化 systemd 功能。

Bugzilla:2224388

network RHEL 系统角色支持 no-aaaa DNS 选项

现在,您可以使用 no-aaaa 选项在受管节点上配置 DNS 设置。在以前的版本中,没有选项来抑制 stub 解析器生成的 AAAA 查询,包括由基于 NSS 的接口(如 getaddrinfo )触发的 AAAA 查找;只有 DNS 查找受到影响。有了这个增强,您可以压制由 stub 解析器产生的 AAAA 查询。

Bugzilla:2218595

network RHEL 系统角色支持 auto-dns 选项,来控制自动 DNS 记录更新

此功能增强为定义的名称服务器和搜索域提供支持。现在,您只能使用 dnsdns_search 属性中指定的名称服务器和搜索域,同时禁用自动配置的名称服务器和搜索域,如 DHCP 中的 dns record。有了这个增强,您可以通过更改 auto-dns 设置来禁用自动 dns 记录。

Bugzilla:2211273

firewall RHEL 系统角色支持与 ipset相关的变量

有了 firewall RHEL 系统角色的这个更新,您可以定义、修改和删除 ipset。您还可以从防火墙区中添加和删除 ipset。或者,您可以在定义防火墙富规则时使用这些 ipset

您可以使用以下变量,使用 firewall RHEL 系统角色管理 ipset

  • ipset
  • ipset_type
  • ipset_entries
  • short
  • description
  • state: presentstate: absent
  • permanent: true

以下是此改进的一些显著优点:

  • 您可以降低为许多 IP 地址定义规则的富规则的复杂度。
  • 您可以根据需要从集合中添加或删除 IP 地址,而无需修改多个规则。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/firewall/ 目录中的资源。

Bugzilla:2140880

使用 restorecon -T 0提高了 selinux 系统角色的性能

selinux 系统角色现在在所有适用的情况使用带有 restorecon 命令的 -T 0 选项。这提高了在文件上恢复默认的 SELinux 安全上下文的任务的性能。

Bugzilla:2192343

firewall RHEL 系统角色有一个禁用冲突服务的选项,如果 firewalld 被屏蔽,它不再失败

在以前的版本中,当 firewalld 服务在角色运行时或者存在冲突服务时,firewall 系统角色失败。这个更新引入了两个显著改进:

linux-system-roles.firewall 角色总是尝试在角色运行时安装、取消屏蔽,以及启用 firewalld 服务。您现在可以在 playbook 中添加一个新的变量 firewall_disable_conflicting_services ,来禁用已知的冲突服务,如 iptables.servicenftables.serviceufw.servicefirewall_disable_conflicting_services 变量默认被设置为 false。要禁用冲突服务,请将变量设置为 true

Bugzilla:2222809

podman RHEL 系统角色现在使用 getsubids 来获取 subuid 和 subgid

podman RHEL 系统角色现在使用 getsubids 命令来分别获取用户和组的 subuid 和 subgid 范围。podman RHEL 系统角色也使用此命令验证用户和组是否可用于身份管理。

Jira:RHEL-866[1]

podman_kube_specs 变量现在支持 pull_imagecontinue_if_pull_fails 字段

podman_kube_specs 变量现在支持新字段:

  • pull_image :确保镜像在使用前被拉取(pull)。默认值为 true。如果您有一些其他机制来确保镜像在系统上存在,且您不想拉取镜像,请使用 false
  • continue_if_pull_fails :如果拉取镜像失败,它不会被视为一个致命错误,并使用角色继续执行。默认值为 false。如果您有一些其他机制来确保正确的镜像在系统上存在,请使用 true

Jira:RHEL-858[1]

重置 firewall RHEL 系统角色配置现在需要最少的停机时间

在以前的版本中,当使用 previous: replaced 变量重置 firewall 角色配置时,firewalld 服务会重启。重启会增加停机时间并延长打开连接的时间,在此期间,firewalld 不会阻止来自活跃连接的流量。有了这个增强,firewalld 服务通过重新加载而不是重启来完成配置重置。重新加载最小化了停机时间,并减少了绕过防火墙规则的机会。因此,使用 previous: replaced 变量重置 firewall 角色配置现在需要最少的停机时间。

Bugzilla:2224648

4.14. 云环境中的 RHEL

cloud-init 支持 NetworkManager keyfiles

有了此更新,cloud-init 工具可以使用 NetworkManager (NM) keyfile 来配置创建的云实例的网络。

请注意,默认情况下,cloud-init 仍然使用 sysconfig 方法来进行网络设置。要将 cloud-init 配置为使用 NM keyfile,请编辑 /etc/cloud/cloud.cfg ,并将 network-manager 设置为主网络呈现器:

# cat /etc/cloud/cloud.cfg

   network:
      renderers: ['network-manager', 'eni', 'netplan', 'sysconfig', 'networkd']

Bugzilla:2219528[1]

cloud-init 现在默认使用 ESXi 上的 VMware 数据源

在使用 VMware ESXi hypervisor (如 VMware vSphere 云平台)的主机上创建 RHEL 虚拟机(VM)时。这提高了使用 cloud-init 创建 RHEL 的 ESXi 实例的性能和稳定性。但请注意,ESXi 仍与 Open Virtualization Format (OVF)数据源兼容,如果 VMware 数据源不可用,您可以使用 OVF 数据源。

Bugzilla:2230777[1]

4.15. 支持性

sos rebase 到版本 4.6

用于收集配置、诊断和故障排除数据的 sos 工具已 rebase 到版本 4.6。这个版本提供了以下改进:

  • sos 报告现在包含 /boot/grub2/custom.cfg/boot/grub2/user.cfg 文件的内容,它们可能包含对引导问题进行故障排除的重要信息。(BZ#2213951)
  • OVN-Kubernetes 的 sos 插件为互连环境收集额外的日志。有了此更新,当 ovnkube-nodeovnkube-controller 容器合并为一个时,sos 也从 ovnkube-controller 容器收集日志。

另外,重要的 bug 修复包括:

  • sos 现在在 OpenShift Container Platform 4 环境中正确收集 cgroup 数据(BZ#2186361)。
  • 在收集启用了 sudo 插件的 sos 报告时,sos 现在正确地删除了 bindpw 选项。(BZ#2143272)
  • subscription_manager 插件不再从 /var/lib/rhsm/ 路径收集代理用户名和密码。(BZ#2177282)
  • virsh 插件不再收集 virt-manager 日志中的 SPICE 远程-显示密码,这阻止了 sos 在其报告中披露密码。(BZ#2184062)
  • sos 现在屏蔽了之前在 /var/lib/iscsi/nodes/<IQN>/<PortalIP>/default 文件中显示的用户名和密码。

    重要

    生成的存档可能包含被视为敏感的数据。因此,在将其传递给任何第三方之前,您应该始终检查内容。

    (BZ#2187859)

  • 即使日志文件的大小超了,且插件超时了,sos 也会完成尾部日志收集。(BZ#2203141)
  • 当在 Pacemaker 集群节点上输入 sos collect 命令时,sos 会从同一集群节点收集 sos 报告。(BZ#2186460)
  • 当从 OpenShift Container Platform 4 环境中的主机收集数据时,sos 现在使用 sysroot 路径,这样可保证只组装正确的数据。(BZ#2075720)
  • sos report --clean 命令按预期模糊所有 MAC 地址。(BZ#2207562)
  • 禁用 hpssm 插件不再引起异常。(BZ#2216608)
  • sos clean 命令遵循已清理文件的权限。(BZ#2218279)

有关 sos 的每个发行版本的详情,请参阅 上游发行注记

Jira:RHELPLAN-156196[1]

4.16. 容器

Podman 支持拉取和推送 zstd 压缩的镜像

您可以拉取和推送使用 zstd 格式压缩的镜像。zstd 压缩比 gzip 效率更高,更快。它可以减少拉取和推送镜像所需的网络流量和存储量。

Jira:RHELPLAN-154313[1]

Podman 中的 Quadlet 现在可用

从 Podman v4.6 开始,您可以使用 Quadlet 从容器描述中自动生成一个 systemd 服务文件。Quadlets 可能比 podman generate systemd 命令更容易使用,因为描述侧重于相关的容器详情,且没有在 systemd 下运行容器的技术复杂性。请注意,Qadlets 仅适用于有根容器。

如需了解更多详细信息,请参阅 Quadlet 上游文档使用 Quadlet 使 systemd 更好地用于 Podman 文章。

Jira:RHELPLAN-154431[1]

Container Tools 软件包已更新

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

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

  • podman kube play 命令现在支持 --configmap=<path> 选项,来为 Kubernetes YAML 文件提供 pod 容器中使用的环境变量。
  • podman kube play 命令现在支持 --configmap 选项的多个 Kubernetes YAML 文件。
  • podman kube play 命令现在支持存活度探测中的 containerPort 名称和端口号。
  • podman kube play 命令现在将 ctrName 作为别名添加到 pod 网络。
  • podman kube playpodman kube generate 命令现在支持 SELinux 文件类型标签和 ulimit 注解。
  • 添加了一个新命令 podman secret exists,它验证具有指定名称的 secret 是否存在。
  • podman create,podman run,podman pod createpodman pod clone 命令现在支持一个新选项 --shm-size-systemd,它允许限制特定于 systemd 挂载的 tmpfs 的大小。
  • podman create 和 podman run 命令现在支持一个新选项 --security-opt label=nested,它允许在受限容器中进行 SELinux 标记。
  • Podman 现在支持对在 pod 内运行的容器进行自动更新。
  • Podman 现在可以使用 SQLite 数据库作为后端,来提高稳定性。默认保留 BoltDB 数据库。您可以通过在 containers.conf 文件中设置 database_backend 字段来选择数据库。
  • Podman 现在支持 Quadlets 从容器描述中自动生成一个 systemd 服务文件。该描述侧重于相关的容器详情,隐藏了在 systemd 下运行容器的技术复杂性。

有关显著变化的详情,请查看 上游发行注记

Jira:RHELPLAN-154443[1]

Podman 现在支持 Podmansh 登录 shell

从 Podman v4.6 开始,您可以使用 Podmansh 登录 shell 管理用户访问权限和控制。要切换到 CGroups v2,请将 systemd.unified_cgroup_hierarchy=1 添加到内核命令行。配置用户的设置,以使用 /usr/bin/podmansh 命令作为登录 shell ,而不是标准的 shell 命令,例如 /usr/bin/bash。当用户登录到系统设置时,podmansh 命令在名为 podmansh 的 Podman 容器中运行用户的会话。用户登录的容器是使用 Quadlet 文件定义的,这些文件是在 /etc/containers/systemd/users/ 目录中创建的。在这些文件中,将 [Container] 部分中的 ContainerName 字段设置为 podmansh。当用户会话启动时,systemd 会自动启动 podmansh,并继续运行,直到所有用户会话退出为止。

如需更多信息,请参阅 Podman v4.6.0 引入了 Podmansh: 革命性的登录 Shell

Jira:RHELPLAN-163002[1]

现在,可提供带有 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-160659[1]

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

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

新内核参数

gather_data_sampling=[X86,INTEL]

使用这个内核参数,您可以控制 Gather Data Sampling (GDS)缓解。

(GDS)是一个硬件漏洞,其允许对之前存储在向量寄存器中的数据进行非特权推测访问。

默认情况下,此问题在更新的微码中被缓解。缓解可能会有性能影响,但可以被禁用。在没有微码缓解的系统上,禁用 AVX 服务器作为一种缓解。可用值包括:

  • force :禁用 AVX ,以缓解没有微码缓解的系统。如果存在微码缓解,则无效。已知在带有 bug 的 AVX 枚举用户空间中会导致崩溃。
  • off :禁用 GDS 缓解。
rdrand=[X86]

使用这个内核参数,您可以隐藏 RDRAND 支持的广告。这会影响某些 AMD 处理器,因为 BIOS 支持有 bug,特别是围绕挂起或恢复路径。

  • force :覆盖内核的决定,来隐藏 RDRAND 支持的广告。

更新的内核参数

intel_pstate=[X86]

您可以为 CPU 性能扩展使用此内核参数。可用值包括:

  • disable - 不启用 intel_pstate 作为支持的处理器的默认扩展驱动程序。
  • [NEW] active - 使用 intel_pstate 驱动程序绕过 cpufreq 的扩展调控层,并为 p-state 选择提供自己的算法。在 active 模式下,intel_pstate 提供两种 P-state 选择算法:powersave 和 performance。它们运行的方式取决于硬件管理的 P-states (HWP)功能是否已在处理器中启用了,并可能在处理器型号上也启用了。
  • passive - 使用 intel_pstate 作为扩展驱动程序,但将其配置为与通用 cpufreq 调控一起工作(而不是启用其内部调控)。这个模式不能与硬件管理的 P-states (HWP)功能一同使用。
  • force - 在默认禁止它,而使用acpi-cpufreq的系统上启用 intel_pstate。强制 intel_pstate 驱动程序而不是 acpi-cpufreq 可能会禁用平台功能,如热控制和功率封顶,这依赖指示给 OSPM 的 ACPI P-States 信息,因此应谨慎使用。这个选项不能与 intel_pstate 驱动程序不支持的处理器一起工作,或不能在使用 pcc-cpufreq 而不是 acpi-cpufreq 的平台上工作。
  • no_hwp - 不启用硬件 P 状态控制(HWP)(如果可用)。
  • hwp_only - 仅在支持硬件 P 状态控制(HWP)的系统上加载 intel_pstate (如果可用)。
  • support_acpi_ppc - 强制 ACPI _PPC 性能限制。如果 Fixed ACPI Description Table 将首选的电源管理配置文件指定为 "Enterprise Server" 或 " Performance Server",则默认打开此功能。
  • per_cpu_perf_limits - 使用 cpufreq sysfs 接口允许每个逻辑 CPU P-State 性能控制限制。
rdt=[HW,X86,RDT]

使用这个内核参数,您可以打开或关闭单个 RDT 功能。列表包括:cmt,mbmtotal,mbmlocal,l3cat,l3cdp,l2cat,l2cdp,mba,[NEW] smba,[NEW] bmec.

例如,要打开 cmt 并关闭 mba ,请使用:

rdt=cmt,!mba
tsc=[x86]

使用这个内核参数,您可以禁用对 TSC 的时钟源稳定性检查。这个参数采用的格式是:<string>

  • reliable :将 tsc 时钟源标记为 reliable,这会在运行时禁用时钟源验证,以及引导时所做的稳定性检查。用于对较旧的硬件和在虚拟化环境中启用高分辨率计时器模式。
  • noirqtime: 不要使用 TSC 来进行 irq 核算。用于在 RDTSC 较慢的任何平台上运行时禁用 IRQ_TIME_ACCOUNTING,这个核算可能会增加开销。
  • unstable: 将 TSC 时钟源标记为 unstable,这会在引导时将 TSC 标记为 unconditionly unstable ,并避免在 TSC watchdog 通知后出现任何进一步的混乱。
  • nowatchdog: 禁用时钟源 watchdog。在具有严格的延迟要求的情况下使用(其中来自时钟源 watchdog 的中断是不可接受的)。
  • recalibrate: 强制在其 TSC 频率是从使用 MSR or CPUID(0x15)的 HW 或 FW 获得的系统上对 HW 计时器(HPET 或 PM 计时器)进行强制重新校准。如果差别超过 500 ppm,则警告。

新的 sysctl 参数

nmi_wd_lpm_factor=(仅限 PPC)

应用到 NMI watchdog 超时的因素(仅在 nmi_watchdog 设置为 1时)。这个因素代表了在 LPM 过程中计算 NMI watchdog 超时时添加到 watchdog_thresh 的百分比。软锁定超时不会受到影响。

  • 0 表示没有更改。
  • 默认值为 200 表示 NMI watchdog 设置为 30s (基于 watchdog_thresh 等于 10)。
txrehash

使用这个内核参数,您可以控制对套接字的默认哈希 rethink 行为。

  • 如果设为 1 (默认),则在侦听套接字上执行哈希 rethink。
  • 如果设为 0, 则不会执行哈希 rethink。

第 6 章 设备驱动程序

6.1. 新驱动程序

网络驱动程序

  • Thunderbolt/USB4 网络驱动程序(thunderbolt_net)
  • Broadcom 802.11 无线 LAN fullmac 驱动程序(brcmfmac)(仅在 64 位 ARM 架构中)

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

  • MediaTek 设备版本 0.1的蓝牙支持 (btmtk),仅在 IBM Power Systems、Little Endian、AMD 和 Intel 64 位构架中
  • DRM Buddy Allocator (drm_buddy),仅在 64 位 IBM Z 架构中
  • DRM 显示适配器帮助程序( drm_display_helper),仅在 64 位 IBM Z 架构中
  • Microsoft Azure Network Adapter IB 驱动程序(mana_ib),仅在 AMD 和 Intel 64 位构架中
  • Linux USB 视频类驱动程序(uvc)(仅在 IBM Power Systems、Little Endian、AMD 和 Intel 64 位构架中
  • Intel Meteor Lake PCH pinctrl/GPIO 驱动程序(pinctrl-meteorlake),仅在 AMD 和 Intel 64 位构架中
  • Intel In Field Scan (IFS)设备(intel_ifs),仅在 AMD 和 Intel 64 位构架中
  • Intel Uncore Frequency 通用模块(intel-uncore-frequency-common),仅在 AMD 和 Intel 64 位构架中
  • Intel Uncore Frequency Limits 驱动程序 (intel-uncore-frequency),仅在 AMD 和 Intel 64 位构架中
  • AMD SoundWire 驱动程序(soundwire-amd),仅在 AMD 和 Intel 64 位构架中
  • DisplayPort Alternate 模式 (typec_displayport),仅在 64 位 ARM 架构、IBM Power Systems、Little Endian 和 AMD 和 Intel 64 位构架中
  • virtio-mem 驱动程序(virtio_mem),仅在 AMD 和 Intel 64 位构架中

6.2. 更新的驱动程序

网络驱动程序更新

  • Realtek RTL8152/RTL8153 Based USB Ethernet Adapters (r8152)已更新至版本 v1.12.13(只在 64 位 ARM 架构、IBM Power Systems、Little Endian 和 AMD 和 Intel 64 位构架中)

以下驱动程序已更新至 4.18.0-513.5.1 内核版本

  • Intel® 10 Gigabit PCI Express Network Driver (ixgbe),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架
  • Intel® 10 Gigabit Virtual Function Network Driver (ixgbevf),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架
  • Intel® 2.5G Ethernet Linux Driver (igc),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架
  • Intel® Ethernet Adaptive Virtual Function Network Driver (iavf),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架
  • Intel® Ethernet Connection XL710 Network Driver (i40e),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架
  • Intel® Ethernet Switch Host Interface Driver (fm10k),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、AMD 以及 Intel 64 位构架
  • Intel® Gigabit Ethernet Network Driver (igb),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架
  • Intel® Gigabit Virtual Function Network Driver (igbvf),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架
  • Intel® PRO/1000 网络驱动程序(e1000e),仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架
  • Mellanox 第 5 代网络适配器(ConnectX series) core 驱动程序 (mlx5_core)
  • Netronome Flow Processor (NFP)驱动程序(nfp)

图形、存储和各种驱动程序更新

  • Broadcom MegaRAID SAS 驱动程序(megaraid_sas)已更新至版本 07.725.01.00-rc1(仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、 AMD 以及 Intel 64 位构架)
  • Microchip Smart Family Controller 版本的驱动程序(smartpqi)已更新至版本 2.1.22-040(仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、AMD 以及 Intel 64 位构架)
  • Emulex LightPulse Fibre Channel SCSI 驱动程序(lpfc)已更新至版本 0:14.0.0.21 (仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、AMD 以及 Intel 64 位构架)
  • MPI3 Storage Controller Device Driver (mpi3mr)已更新至版本 8.4.1.0.0(只适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、AMD 以及 Intel 64 位构架中)
  • QLogic Fibre Channel HBA 驱动程序(qla2xxx)已更新至版本 10.02.08.200-k(仅适用于 64 位 ARM 架构、IBM Power Systems、Little Endian 、AMD 以及 Intel 64 位构架)

第 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.9 中修复的对用户有严重影响的 bug。

8.1. 安装程序和镜像创建

liveimg--noverifyssl 选项不再检查服务器的使用 HTTPS 下载的镜像的证书

在以前的版本中,安装程序忽略 liveimg kickstart 命令的 --noverifyssl 选项。因此,如果无法验证服务器的使用 HTTPS 协议下载的镜像的证书,安装过程会失败。有了这个更新,这个问题已被解决,liveimg kickstart 命令的 --noverifyssl 选项可以按预期工作。

Bugzilla:1886985

8.2. 安全性

从 NFS 文件系统引导现在可以在 SELinux 设置为 enforcing 模式的情况下工作

在以前的版本中,当使用 NFS 作为 root 文件系统时,SELinux 标签不会从服务器转发,从而导致 SELinux 设置为 enforcing 模式时引导失败。

有了此修复,SELinux 已被修复为在初始 SELinux 策略作为支持安全标签加载前,正确标记创建的 NFS 挂载。因此,NFS 挂载现在可以在服务器和客户端之间转发 SELinux 标签,引导可以在 SELinux 设置为 enforcing 模式的情况下成功。

Bugzilla:1753646[1]

现在,自动屏幕锁定可以正常工作,即使删除了 USB 智能卡读卡器,

在 RHEL 8.9 之前,opensc 软件包不能正确处理删除 USB 智能卡读卡器。因此,即使 GNOME 显示管理器(GDM)被配置为在删除智能卡时锁定屏幕,系统仍保持解锁。另外,重新连接 USB 读卡器后,在删除智能卡后,屏幕也不会锁定。在本发行版本中,用于处理删除 USB 智能卡读卡器的代码已被修复。因此,屏幕被正确锁定,即使智能卡或 USB 智能卡读卡器被删除了。

Bugzilla:2097048

SCAP enable_fips_mode 规则现在仅在 64 位 IBM Z 构架上检查 fips=1

在以前的版本中,SCAP 安全指南规则 enable_fips_mode 确实检查 /boot/grub2/grubenv 文件的内容。因此,64 位 IBM Z 架构没有对 FIPS 模式使用 /boot/grub2/grubenv 文件。有了此更新,OVAL 规则 enable_fips_mode 现在测试 Linux 内核的参数 fips=1 是否在 64 位 IBM Z 架构上的 /boot/loader/entries/rhcs.conf 文件中存在。

Bugzilla:2129100

SCAP journald 规则不再修复无效的配置

在以前的版本中,SCAP 安全指南规则 journald_compressjournald_forward_to_syslogjournald_storage 在补救脚本中包含一个 bug,其在 /etc/systemd/journald.conf 配置文件中向相应的选项添加了额外的引号。因此,journald 服务无法解析配置选项,并忽略它们。因此,配置选项无效,OpenSCAP 报告假的通过结果。有了此更新,规则和补救脚本已被修复,不会添加额外的引号。规则现在为 journald 创建了一个有效的配置。

Bugzilla:2169857

现在可以使用安全配置文件配置镜像

配置挂载点选项的 SCAP 安全指南规则已重新制定,现在您还可以在镜像构建器中构建操作系统镜像时使用它们来强化镜像。因此,您现在可以使用与特定安全配置文件一致的分区配置来构建镜像。

Bugzilla:2130185

从与 AIDE 配置相关的 SSG 规则中删除严格的要求

在以前的版本中,SCAP 安全指南(SSG)规则 aide_build_database 需要存在 /var/lib/aide/aide.db.new.gz/var/lib/aide/aide.db.gz 文件才能通过。因为 AIDE 工具不需要 /var/lib/aide/aide.db.new.gz 文件,所以这个更新从 aide_build_database 规则中删除了相应的要求。因此,该规则只需要 /var/lib/aide/aide.db.gz 文件就能通过。

此外,SCAP 安全指南规则 aide_periodic_cron_checking 现在对 /etc/cron.daily/etc/cron.weekly 文件中的条目不太严格。现在,您可以使用额外的包装程序调度 aide --check 命令,同时遵守规则。

Bugzilla:2175684

pam_faillock 相关的 SCAP 规则有正确的描述

在以前的版本中,与 pam_faillock 相关的 SCAP 安全指南规则包含与一些配置文件值不一致的描述。因此,描述不正确。有了此更新,规则描述现在使用 XCCDF 变量。

这个更改会影响以下规则:

  • accounts_passwords_pam_faillock_deny
  • accounts_passwords_pam_faillock_interval
  • accounts_passwords_pam_faillock_dir
  • accounts_passwords_pam_faillock_unlock_time

Bugzilla:2175882

当挂载 /boot/efi 时,file_permissions_efi_user_cfg SCAP 规则不再失败

在以前的版本中,UEFI 文件的默认权限不被接受。因此,当 /boot/efi 分区使用虚拟文件分配表(VFAT)文件系统时,不可能使用 chmod 命令更改权限。因此,file_permissions_efi_user_cfg 规则失败。此更新将默认权限从 0600 改为 0700。因为 CIS 也接受 0700 权限,所以评估和补救现在与 CIS 配置文件很好地保持一致。

Bugzilla:2184487

SSG 补救现在与 configure_openssl_cryptopolicy保持一致

在以前的版本中,SCAP 安全指南(SSG)补救向 opensslcnf.config 文件中添加了 = 字符。此语法与 configure_openssl_cryptopolicy 规则的描述不匹配。因此,在向 opensslcnf.config 插入 .include = 而不是 .include 的补救后,合规性检查可能会失败。有了这个版本,补救脚本与规则描述保持一致,使用 configure_openssl_cryptopolicy 的 SSG 补救不再因为额外的 = 而失败。

Bugzilla:2192893

postfix_prevent_unrestricted_relay 规则现在接受 = 符号周围的空格

在以前的版本中,SCAP 规则 xccdf_org.ssgproject.content_rule_postfix_prevent_unrestricted_relay 的 OVAL 检查太严格,它不考虑在 = 符号周围包含空格的 postconf 配置赋值语句。因此,即使对技术上满足规则要求的配置,最终报告也将此规则报告为失败。有了此更新,规则被修改了,检查接受 = 符号周围有空格的语句。现在,对于正确的配置语句,最终的报告规则将此规则标记为通过。

Bugzilla:2170530

SCAP 规则现在正确地评估 /var/log/var/log/audit 分区是否存在

在以前的版本中,一些与 /var/log/var/log/audit 分区相关的 SCAP 规则会被评估和修复,即使合适的磁盘分区不存在。这会影响以下规则:

  • mount_option_var_log_audit_nodev
  • mount_option_var_log_audit_noexec
  • mount_option_var_log_audit_nosuid
  • mount_option_var_log_nodev
  • mount_option_var_log_noexec
  • mount_option_var_log_nosuid

因此,这些规则会被评估,并在最终报告中被错误地报告为失败,即使目录 /var/log/var/log/audit 不是单独分区的挂载点。此更新添加了一个适用性检查,来确定 /var/log/var/log/audit 是否为单个分区的挂载点。因此,当目录不是单个分区的挂载点时,规则不会在配置中被评估,规则在最终报告中被标记为 notapplicable

Bugzilla:2176008

SCAP 规则 accounts_passwords_pam_faillock_interval 现在涵盖新的 STIG ID

在以前的版本中,SCAP 安全指南规则 accounts_passwords_pam_faillock_interval 没有涵盖 RHEL-08-020012 和 RHEL-08-020013。因此,规则 accounts_passwords_pam_faillock_interval 检查所有这三个文件中的 faillock 配置:/etc/pam.d/password-auth,/etc/pam.d/system-auth/etc/security/faillock.conf。有了此更新,规则现在涵盖 STIG ID RHEL-08-020012 和 RHEL-08-020013。

Bugzilla:2209073

Red Hat CVE 源已更新

红帽常见漏洞和披露(CVE)源版本 1 (CVE) https://access.redhat.com/security/data/oval/ 已下架,并被 https://access.redhat.com/security/data/oval/v2/ 的 CVE 源版本 2 所替代。

因此,scap-security-guide 软件包提供的 SCAP 源数据流中的链接已更新为链接到 Red Hat CVE 源的新版本。

Bugzilla:2222583

wget 工具在访问受限资源时不再使 TLS 握手失败

在以前的版本中,当在 TLS 中启用了基于票据的会话恢复时,wget 工具预期恢复一个 TLS 会话,即使服务器要求客户端重新验证以访问受限资源。这个行为会导致 wget 使第二个 TLS 握手失败。有了此更新,wget 可以正确发起一个新的握手,对受限资源的访问不再失败。

Bugzilla:2089817

pam_cap 中的设置被正确地应用到 SELinux 的系统

在以前的版本中,SELinux 策略不包含用于 pam_cap 模块的规则。因此,当使用 ssh 或控制台登录时,在/etc/security/capability.conf 配置文件中将 pam_cap 控制的登录功能授予用户无法正常工作。此更新在策略中添加了一个新规则。因此,在 /etc/security/capability.conf 中授予能力现在可以正常工作,登录时会考虑使用 pam_cap 配置的用户能力。

Bugzilla:2172541

systemd-fsck-root 服务现在在启用了 SELinux 的系统上可以被正确标记

在以前的版本中,/run/fsck 目录是由 systemd-fsck-root 服务或 fsck 命令创建的,但 SELinux 策略不包含用于正确标记目录的规则。因此,systemd-fsck-root 服务无法正常工作。有了此更新,/run/fsck 的正确标签和文件转换被添加到策略中。因此,systemd-fsck-root 服务可以正常工作,而不报告错误。

Bugzilla:2184348[1]

SELinux 策略现在允许 D-Bus 上的双向通信

在以前的版本中,SELinux 策略包含只允许 D-Bus 消息总线系统上两个域之间单向通信的规则。但是,此类通信在两个方向上都必须被允许。当 Pacemaker 高可用性集群资源管理器执行 hostnamectltimedatectl 命令时也会发生这种情况。因此,Pacemaker 执行的这些命令会超时,而没有收到 D-Bus 上的响应,因为 SELinux 阻止了它。对 SELinux 策略的此更新允许 D-Bus 上的双向通信。因此,需要 D-Bus 上双向通信的由 Pacemaker 执行的命令可以成功完成。

Bugzilla:2196524

tangd-keygen 现在可以正确地处理非默认 umask

在以前的版本中,tangd-keygen 脚本不会更改生成的密钥文件的文件权限。因此,在具有阻止其他用户读取密钥的默认用户文件创建模式掩码(umask)的系统上,tang-show-keys 命令会返回错误消息 Internal Error 500 ,而不是显示密钥。有了这个更新,tangd-keygen 为生成的密钥文件设置文件权限,因此脚本现在可以在具有非默认 umask 的系统上正常工作。

Bugzilla:2188743

Clevis 现在处理 SHA-256 指纹

在此更新之前,Clevis 客户端无法识别通过 thp 配置选项指定的 SHA-256 指纹。因此,客户端没有绑定到使用 SHA-256 指纹的 Tang 服务器,每个对应的 clevis encrypt tang 命令都会报告一个错误。有了此更新,Clevis 使用 SHA-256 识别指纹,并正确处理它们。因此,Clevis 客户端不仅可以使用 SHA-1 绑定到 Tang 服务器,还可以使用 SHA-256 指纹绑定到 Tang 服务器。

Bugzilla:2209058

Rsyslog 即使没有能力也可以启动

当 Rsyslog 以普通用户或在容器化环境中执行时,rsyslog 进程没有能力。因此,在这种情况下 Rsyslog 无法丢弃能力,并在启动时退出。有了此更新,如果没有能力,进程不再尝试丢弃能力。因此,Rsyslog 可以启动,即使它没有能力。

Jira:RHELPLAN-160541[1]

fapolicyd 服务不再运行从可信数据库中删除的程序

在以前的版本中,fapolicyd 服务错误地将一个程序作为可信程序处理,即使它已从可信数据库中删除了。因此,输入 fapolicyd-cli --update 命令无效,即使程序被删除了也可以执行。有了此更新,fapolicyd-cli --update 命令可以正确地更新可信程序数据库,删除的程序不再被执行。

Jira:RHEL-630

fapolicyd 服务现在创建具有正确所有权的 RPM 数据库文件

在以前的版本中,fapolicyd 服务在 /var/lib/rpm/ 目录中创建并拥有 RPM 数据库文件。因此,其他程序无法访问文件,这导致可用性控制错误。有了此更新,fapolicyd 创建具有正确所有权的文件,不再发生错误。

Jira:RHEL-829

8.3. 软件管理

yum needs-restarting -s 命令现在可以正确地显示 systemd 服务的列表

在以前的版本中,当您使用带有 -s--services 选项的 needs-restarting 命令时,当检测到非 systemd 或故障进程时会出现一个错误。有了此更新,yum needs-restarting -s 命令会忽略这样的进程,并显示警告信息,其中包含受影响的 systemd 服务的列表。

Bugzilla:2122587

dnf-automatic 命令现在正确地报告交易的退出状态

在以前的版本中,dnf-automatic 命令返回交易的成功退出码,即使此交易过程中一些操作没有成功完成。这可能对使用 dnf-automatic 自动部署勘误的机器构成安全风险。有了此更新,这个问题已被解决,dnf-automatic 现在会在交易过程中报告软件包的每个问题。

Bugzilla:2170093

YUM 现在可以正确地处理 proxy=_none_

您可以使用 YUM proxy=_none_ 配置选项来禁止更改代理设置。在以前的版本中,如果您在主配置文件中设置了 proxy=_none_,YUM 会检测到一个错误。此更新修复了这个 bug,YUM 现在可以正确处理 proxy=_none_

注意

RHEL 8 YUM proxy=_none_ 配置与 RHEL 7 中的 YUM 配置兼容。

Bugzilla:2155713

现在,当 dbus 拥有的文件被 zlib更新时,needs-restarting 插件现在可以正确地要求系统重启

在以前的版本中,当运行 YUM needs-restarting 插件时,当 dbus 软件包拥有的文件被依赖的 zlib 软件包更新时,它不会提示重启系统。有了此更新,这个问题已被解决,needs-restarting 插件现在会显示一个信息,即当 zlib 被更新时您必须重启 dbus

Bugzilla:2092033

8.4. Shell 和命令行工具

对于长路径,which 命令不再失败

在以前的版本中,当您在路径超过 256 个字符的目录中执行 which 命令时,命令会失败,并显示 Can't get current working directory 错误信息。有了此修复,which 命令现在对路径长度限制使用 PATH_MAX 值。因此,命令不再失败。

Bugzilla:2140566

ReaR 现在支持带有 OUTPUT=USB的 UEFI 安全引导

在以前的版本中,OUTPUT=USB ReaR 输出方法(其将救援镜像保存在可引导磁盘驱动器上)不尊重 SECURE_BOOT_BOOTLOADER 设置。因此,在启用了 UEFI 安全引导的系统上,带有救援镜像的磁盘不会引导,因为引导装载程序没有签名。

有了此修复,OUTPUT=USB ReaR 输出方法使用您在创建救援磁盘时在 SECURE_BOOT_BOOTLOADER 设置中指定的引导装载程序。要使用签名的 UEFI shim 引导装载程序,请在 /etc/rear/local.conf 文件中更改以下设置:

SECURE_BOOT_BOOTLOADER=/boot/efi/EFI/redhat/shimx64.efi

因此,当启用了 UEFI 安全引导时,救援磁盘是可以启动的。在带有 UEFI 的所有系统上将变量设置为这个值是安全的,即使安全引导没有被启用。它甚至被推荐用于一致性。有关 UEFI 引导过程和 shim 引导装载程序的详情,请参考 UEFI:引导系统时会发生什么

Bugzilla:2233526

ipmievd 现在会在 SEL 请求超时时正确识别 SEL 响应

ipmievd 服务通过 /dev/ipmi0 设备发送系统事件日志(SEL)请求。在以前的版本中,由于返回的 IPMI 消息缺少 ID 检查,超时请求会导致下一个请求的不正确处理。例如,如果重置了 Baseboard Management Controller (BMC),来自 ipmievd 服务的 SEL 请求会因为没有 SEL 响应而超时。因此,因为没有相应的 SEL 响应,ipmievd 无法正常工作,。因此,您不能获得正确的硬件状态,大量错误的硬件信息被输出到 /var/log/messages。有了此修复,ipmitoolipmievd 会根据请求的 ID 检查返回的 IPMI 消息的 ID,并跳过非相应的 SEL 请求。ipmevd 不再记录不正确的硬件信息。

Bugzilla:2224567[1]

8.5. 网络

Intel Corporation I350 Gigabit Fiber Network Connection 现在在内核更新后提供一个链接

在以前的版本中,带有 Small Formfactor Pluggable (SFP) transceiver 模块而没有 External Thermal Sensor (ETS)的硬件配置导致 igb 驱动程序错误地初始化 Inter-Integrated Circuit (I2C)来读取 ETS。因此,连接无法获得链接。有了此 bug 修复,igb 驱动程序仅在带有 ETS 的 SFP 可用时初始化 I2C。因此,连接获得链接。

Bugzilla:2130727[1]

8.6. 引导加载程序

grubby 现在可以正确地将参数传给新内核

当您使用 grubby 工具添加新内核且不指定任何参数,或者将参数留空时,grubby 不会将任何参数传给新内核,也不会设置 root。使用 --args--copy-default 选项可确保新参数被追加到默认参数后面。

Bugzilla:1900829

8.7. 文件系统和存储

multipathd 在所有路径中添加了持久保留注册密钥

在以前的版本中,当 multipathd 守护进程启动时,它识别现有多路径设备的一个路径上的持久保留的注册密钥,而不是该设备的所有路径都有注册密钥。因此,如果在 multipathd 停止时,带有持久保留的多路径设备出现新路径,则不会在那些路径上建立持久保留。这允许路径上的 IO 处理,即使它们应该被保留密钥禁止。

有了此修复,如果 multipathd 在任何设备路径上找到一个持久保留注册密钥,它会将密钥添加到所有活动的路径中。因此,多路径设备现在在所有路径上正确建立了持久保留,即使路径设备在 multipathd 未运行时第一次出现。

Bugzilla:2164871

LUN 现在在操作系统安装过程中可见

在以前的版本中,系统没有使用固件源的身份验证信息,特别是在涉及带有存储在 iSCSI iBFT (Boot Firmware Table)中 CHAP (Challenge-Handshake Authentication Protocol) 的 iSCSI 硬件卸载的情况。因此,在安装过程中 iSCSI 登录失败。

有了udisks2-2.9.4-9.el9 固件身份验证中的修复,这个问题已被解决,LUN 在安装和初始引导过程中可见。

Bugzilla:2213193[1]

8.8. 高可用性和集群

在所有待处理的操作完成前,Pacemaker Designated Controller 选举不再完成

当集群选择一个新的 Designated Controller (DC)时,所有节点都将其当前历史记录发送给新的 DC,后者将其保存到 CIB。因此,如果在选择新 DC 时操作已在进行中,且节点将当前历史记录发送给新 DC 后的操作完成了,则操作的结果可能会丢失。有了此修复,在所有待处理的操作都完成前,DC 选举不会完成,且没有丢失操作结果。

Bugzilla:2010084

fence_scsi 代理现在可以自动检测共享的 lvmlockd 设备

在以前的版本中,fence_scsi 代理没有自动检测共享的 lvmlockd 设备。有了此更新,当 devices 属性没有设置时,fence_scsi 可以自动检测 lvmlockd 设备。

Bugzilla:2187329

资源粘性现在可以与托管分数正确进行比较

链式资源托管是指与被分配的资源托管的资源一起托管的资源。在以前的版本中,如果原始托管有一个有限的负分数,并且链式托管是强制的,则可以从其节点禁止被分配的原始资源,即使 resource-stickiness 被设置为 INFINITY。有了此修复,链式托管现在被按比例考虑,粘性可以正确地与托管分数进行比较。

Bugzilla:1632951[1]

crm_resource 命令现在允许禁止或移动只有一个活跃副本的捆绑包

在以前的版本中,当 crm_resource 命令检查带有单个副本的捆绑包是否处于活跃状态时,命令会计算容器处于活跃状态的节点,以及为容器本身创建的客户机节点。因此,crm_resource 命令不会禁止或移动具有单个活跃副本的捆绑包。有了此修复,crm_resource 命令在在决定活跃副本数时,仅计算捆绑包容器处于活跃状态的节点。

Bugzilla:1578820

mysql 资源代理现在可以与可升级的克隆资源一起正常工作

在以前的版本中,由于提升分数在提升的和非提升的值之间发生了变化,mysql 资源代理会移动在节点间 Master 角色中操作的克隆资源。有了此修复,已提升的节点保持已提升状态。

Bugzilla:2039692

未提升的克隆实例不再不必要重启

在以前的版本中,按数字顺序分配可升级的克隆实例,已提升的实例排第一。因此,如果需要启动已提升的克隆实例,在某些情况下会意外重启未提升的实例,因为实例号更改了。有了此修复,当为节点分配实例号时,角色会被考虑,因此不会发生不必要的重启。

Bugzilla:1931023

将隔离 watchdog 配置为第二个隔离设备,现在在第一个设备超时时会隔离节点

在以前的版本中,当将 watchdog 隔离设备配置为隔离拓扑中的第二个设备时,在计算隔离操作时不会考虑 watchdog 超时。因此,如果第一个设备超时了,隔离操也会超时作,即使 watchdog 会隔离节点。有了此修复,watchdog 超时包含在隔离操作超时中,如果第一个设备超时,则隔离操作成功。

Bugzilla:2168633

当列表按节点分组时,带有规则的位置约束不再显示

不会给带有规则的位置约束分配节点。在以前的版本中,当您按节点分组列表时,带有规则的位置约束会在空节点下显示。有了此修复,不再显示带有规则的位置约束,并给出一条警告信息,表示带有规则的约束没有显示。

Bugzilla:2166294

更新多路径 SCSI 设备的 pcs 命令现在可以正常工作

由于 Pacemaker CIB 文件中的变化,pcs stonith update-scsi-devices 命令会按设计停止工作,从而导致一些集群资源不需要的重启。有了此修复,这个命令可以正常工作,并更新 SCSI 设备,而无需重启在同一节点上运行的其他集群资源。

Bugzilla:2179010

当打开 pscd Web UI 时,pcsd-ruby 守护进程的内存占用量现在减少了

在以前的版本中,当 pcsd Web UI 打开时,pcsd-ruby 守护进程的内存用量会在几个小时内稳步增加。有了此修复,在 pcsd-ruby 守护进程中运行的 web 服务器现在定期执行安全重启。这会释放分配的内存,并减少内存占用。

Bugzilla:2189958[1]

azure-events-az 资源代理不再对 Pacemaker 2.1 及之后的版本产生错误

azure-events-az 资源代理执行 crm_simulate -Ls 命令,并解析输出。使用 Pacemaker 2.1 及更高版本,crm_simulate 命令的输出不再包含文本 Transition Summary:,这会导致一个错误。有了此修复,当缺失此文本时,代理不再会产生错误。

Bugzilla:2181019

8.9. 编译器和开发工具

使用 guru 模式的 systemtap 脚本现在可以更快地编译

systemtap guru 模式存活度分析使用 dyninst 库来解析二进制文件。较新的内核通过 CONFIG_RETPOLINE=y 启用缓解代码,替换传统的 RET 指令,并跳转到到一个 thunk。因此,二进制分析需要很长时间,因为存活度分析需要检查跳到 thunk 所导致的控制流图的所有额外的边缘。

有了此更新,当内核代码使用 thunks 时,systemtap 会禁用存活度分析,因此使用 guru 模式的 systemtap 脚本可以更快地编译。

Bugzilla:2126805

eu-addr2line -C 现在可以正确地识别其他参数

在以前的版本中,当您在来自 elfutilseu-addr2line 命令中使用 -C 参数时,以下单个字符参数会消失。因此,eu-addr2line -Ci 命令的行为方式与 eu-addr2line -C 相同,而 eu-addr2line -iC 可以按预期正常工作。这个bug 已被修复,eu-addr2line -Ci 现在可以识别这两个参数。

Bugzilla:2236183

eu-addr2line -i 现在可以正确地处理使用 GCC 链接时间优化编译的代码

在以前的版本中,elfutils 中包含的 libdw 库中的 dwarf_getscopes 函数无法找到使用 GCC link-time 优化编译的函数的抽象原始定义。因此,当您在 eu-addr2line 命令中使用 -i 参数时,eu-addr2line 无法显示使用 gcc -flto 编译的代码的内联函数。有了此更新,libdw dwarf_getscopes 函数在内联范围的正确编译单元中查找,eu-addr2line -i 可以按预期正常工作。

Bugzilla:2162495

8.10. 身份管理

SSSD 现在在评估基于 GPO 的访问控制时使用 sAMAccountName

在以前的版本中,如果 ldap_user_name 在 AD 客户端上被设置为 sAMAccountName 以外的值,则基于 GPO 的访问控制失败。有了此更新,在评估基于 GPO 的访问控制时,SSSD 总是使用 sAMAccountName。即使 ldap_user_name 在 AD 客户端上被设置为与 sAMAccountName 不同的值,基于 GPO 的访问控制现在也可以正常工作。

Jira:SSSD-6107

SSSD 现在在检索用户时可以处理 user_attributes 选项中的重复属性

在以前的版本中,如果 sssd.confuser_attributes 选项中包含重复属性,则 SSSD 无法正确处理这些重复。因此,无法检索具有这些属性的用户。有了此更新,SSSD 可以正确处理重复。因此,现在可以检索具有重复属性的用户。

Jira:SSSD-6177

更改安全参数现在可以正常工作

在以前的版本中,当使用 dsconf instance_name security set 命令更改安全参数时,操作会失败并显示错误:

Name 'log' is not defined

有了此更新,security 参数更改可以正常工作。

Bugzilla:2166284

目录服务器现在根据打开的描述符的最大数计算 dtablesize

在以前的版本中,管理员可以使用 nsslapd-conntablesize 配置参数手动设置连接表大小。因此,当连接表大小设置的太低时,它会影响服务器可以支持的连接数。有了这个更新,目录服务器现在可以动态计算连接表的大小,从而有效地解决了连接表大小太小的问题。另外,您不再需要手动更改连接表大小。

Bugzilla:2210491

dsctl healthcheck 命令现在默认使用密码存储模式 PBKDF2-SHA512

在以前的版本中,dsctl healthcheck 命令默认使用 SSHA512 密码存储模式。因此,命令会报一个警告,因为它不能检测新的密码存储模式 PBKDF2-SHA512。有了此更新,dsctl healthcheck 命令现在默认使用 PBKDF2-SHA512 密码存储模式,且不会发生警告。

Bugzilla:2220890

现在,常规用户的分页搜索不会影响性能

在以前的版本中,当目录服务器位于搜索负载下时,常规用户的分页搜索可能会影响服务器性能,因为锁与轮询网络事件的线程发生冲突。另外,如果在发送页搜索时发生网络问题,则整个服务器都没有响应,直到 nsslapd-iotimeout 参数过期为止。有了此更新,锁被分成几个部分,以避免与网络事件争用。因此,在常规用户的分页搜索过程中不会影响性能。

Bugzilla:2224505

现在,您可以如预期在目录服务器中启用和禁用密码

在以前的版本中,当您试图使用 Web 控制台启用或禁用默认密码之外启用或禁用特定密码时,服务器只启用或禁用特定的密码,并记录类似如下的错误:

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)不支持同时处理默认密码和特定密码。因此,目录服务器可以启用或禁用特定的密码或默认密码。有了此更新,当您设置默认密码时,web 控制台现在提示 Allow Specific CiphersDeny Specific Ciphers 字段将被清除。

Bugzilla:1817505

现在不再允许删除 IdM admin 用户

在以前的版本中,如果您是 admins 组的成员,则无法阻止您删除身份管理(IdM) admin 用户。缺少 admin 用户会导致 IdM 和活动目录 (AD)之间的信任停止正常工作。有了此更新,您不再可以删除 admin 用户。因此,IdM-AD 信任可以正常工作。

Bugzilla:1821181

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

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

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

JIRA:SSSD-6096

8.11. 图形基础结构

安装程序不再在具有 ASPEED 2600 的服务器上冻结

在以前的版本中,当您在具有 ASPEED 2600 On System Management Chipset 的服务器上启动安装程序时,图形 RHEL 8.8 安装程序会出现黑屏,无响应。因此,您无法在服务器上安装 RHEL 8.8。

有了此版本,这个问题已被解决。现在,对 ASPEED 2600 的安装会按预期进行。

Bugzilla:2189645[1]

8.12. Web 控制台

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

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

有了此更新,web 控制台可以正确地处理在根文件系统中添加 Tang 密钥。因此,web 控制台完成了在不同场景中使用 Network-Bound Disk Encryption (NBDE)自动解锁 LUKS 加密卷所需的所有绑定步骤。

Bugzilla:2212350

VNC 控制台现在可以在大多数分辨率下正常工作

在以前的版本中,当在某些显示分辨率下使用虚拟网络计算(VNC)控制台时,会出现鼠标偏移问题,或者只有接口的一部分可见。因此,无法使用 VNC 控制台。

有了这个更新,这个问题已被解决,VNC 控制台可以在大多数分辨率下正常工作,但非常高的分辨率除外,如 3840x2160。

请注意,记录的和显示的光标位置之间的小偏移可能仍然存在。但是,这不会影响 VNC 控制台的可用性。

Bugzilla:2030836

8.13. Red Hat Enterprise Linux 系统角色

storage 角色现在可以在不卸载的情况下调整挂载的文件系统的大小

在以前的版本中,storage 角色无法调整挂载的设备的大小,即使文件系统支持在线调整大小。因此,storage 角色在调整大小前卸载所有文件系统,例如,对于正在使用的文件系统,调整大小会失败,例如,在调整正在运行的系统的 / 目录的大小时。

有了此更新,storage 角色现在支持调整支持在线调整大小的挂载的文件系统(如 XFS 和 Ext4)的大小。因此,挂载的文件系统现在可以调整大小,而不用卸载它们。

Bugzilla:2168738

certificate RHEL 系统角色现在在决定是否执行新证书请求时检查证书密钥大小

在以前的版本中,在评估是否请求新证书时,certificate RHEL 系统角色不检查证书的密钥大小。因此,角色有时在应该发布新证书请求时没有发布新证书请求。有了此更新,certificate 现在检查 key_size 参数,以确定是否应执行一个新证书请求。

Bugzilla:2186057

使用 rhc 角色创建的 Insights 标签现在可以正确应用

在以前的版本中,当使用 rhc 角色创建 Insights 标签时,标签没有存储在正确的文件中。因此,标签没有发送给 Insights,因此它们没有应用到 Insights 清单中的系统。

有了此修复,标签会被正确存储,并应用到 Insights 清单中存在的系统。

Bugzilla:2209441

RHEL 7 上的 firewall RHEL 系统角色不再尝试安装不存在的 Python 软件包

在以前的版本中,当从另一个角色调用 RHEL 7 上的 firewall 角色,且该角色在使用 python3 时,firewall 角色会尝试为该 Python 版本安装 python3-firewall 库。但是,该库在 RHEL 7 中不提供。因此,python3-firewall 库没有找到,您会收到以下出错信息:

No package matching 'python3-firewall' found available, installed or updated

有了此更新,firewall 角色不会尝试安装 python-firewallpython3-firewall 库。因此,当python3 已在受管节点上安装了,firewall 角色不会在 RHEL 7 上失败。

Bugzilla:2216521

在创建前无法从成员磁盘中删除数据的问题不再存在

在以前的版本中,当创建 RAID 卷时,在组成 RAID 卷前,系统不能有效地从成员磁盘中删除现有的数据。有了此更新,RAID 卷可以根据需要从成员磁盘中删除任何已存在的数据。

Bugzilla:2224094

podman_registries_conf 变量现在可以正确地配置 unqualified-search-registries 字段

在以前的版本中,在配置 podman_registries_conf 变量后,podman RHEL 系统角色会失败。因此,在 /etc/containers/registries.conf.d/50-systemroles.conf 文件中不会生成 unqualified-search-registries = ["registry.access.redhat.com"] 设置。有了此更新,这个问题已被解决。

Bugzilla:2226077

raid_chunk_size 参数不再返回一个错误信息

在以前的版本中,RAID 池和卷不允许用于 raid_chunk_size 属性。有了此更新,您现在可以为 RAID 池和卷配置 raid_chunk_size 属性,而不会遇到任何限制。

Bugzilla:2193057

在检查模式下将 firewall RHEL 系统角色与不存在的服务一起运行不再失败

在以前的版本中,在检查模式下将 firewall 角色与不存在的服务一起运行会失败。此修复实现了对检查模式的 Ansible 最佳实践的最好遵守。因此,启用或禁用不存在的服务不再在检查模式下使角色失败。相反,会显示一个警告提示您确认服务是否已在之前的 playbook 中定义了。

Bugzilla:2222433

kdump 角色以幂等方式添加 authorized_keys

在以前的版本中,添加 authorized_key 的任务每次都添加一个额外的换行符。因此,该角色不是幂等的。有了此修复,添加新的 authorized_key 可以正常工作,并智能以幂等方式添加单个密钥值。

Bugzilla:2232391

如果缺少 authorized_keyskdump 系统角色不会失败

在以前的版本中,如果 kdump_ssh_user 变量中定义的用户无法访问 目录中的 .ssh 目录或空的.ssh/authorized_keys 文件,kdump 系统角色将无法添加 SSH 授权密钥。有了此修复,kdump 系统角色可以正确地将授权密钥添加到 SSH 配置中。因此,基于密钥的身份验证可以在上述场景中可靠地工作。

Bugzilla:2232392

当在检查模式中使用 previous: replaced 时,firewall RHEL 系统角色可以正确地报告更改

在以前的版本中,当在检查模式中使用 previous: replaced 参数时,firewall 角色不会检查是否有文件更改了。因此,该角色会给出一个有关未定义变量的错误。此修复在检查模式中添加了新的检查变量,以评估是否 previous: replaced 参数了更改任何文件。检查 firewalld.conf 文件会评估 rpm 数据库,以确定同软件包中提供的版本相比,文件是否已更改了。因此,在使用 previous: replaced 参数时,firewall 角色现在可以正确地报告更改。

Jira:RHEL-899[1]

为系统角色启用 kdump 需要在 RHEL 9 及更新的版本上使用 failure_action 配置参数

在以前的版本中,在 kdump 配置过程中使用default选项不成功,并在日志中打印以下警告:

kdump: warning: option 'default' was renamed 'failure_action' and will be removed in the future.
please update /etc/kdump.conf to use option 'failure_action' instead.

因此,如果使用了 default 选项,角色无法成功启用 kdump。此更新解决了这个问题,您可以使用 failure_action 参数在多个系统上配置内核转储参数。因此,在上述场景中启用 kdump 可以正常工作。

Jira:RHEL-907[1]

当将区域分配给网络管理器接口时,firewall RHEL 系统角色可以正确地报告更改

在以前的版本中,当不存在任何更改时,网络管理器接口分配会报告更改。有了此修复,文件 library/firewall_lib.py 中的 try_set_zone_of_interface 模块返回第二个值,它表示接口的区是否已更改。当向 Network Manager 处理的接口分配区域时,模块现在可以正确地报告更改。

Jira:RHEL-918[1]

kdump 角色成功为 kdump_ssh_server 身份验证更新了 .ssh/authorized_keys

在以前的版本中,kdump 角色无法访问 .ssh 目录,来安全地验证用户,以登录到 kdump_ssh_server。因此,kdump 角色没有更新 .ssh/authorized_keys 文件和 SSH 机制,来验证kdump_ssh_server是否失败。在这个版本中解决了这个问题。因此,kdump_ssh_server 上的 kdump_ssh_user 身份验证可以可靠地工作。

Jira:RHEL-1398[1]

firewall 系统角色的 previous: replaced 参数现在覆盖以前的配置,而不删除它

在以前的版本中,如果您向变量列表中添加了 previous: replaced 参数,则 firewall 系统角色会删除所有现有用户定义的设置,并将 firewalld 重置为默认设置。此修复在 firewalld 中使用 EL7 版本中引入的回退配置来保留之前的配置。因此,当您在变量列表中使用 previous: replaced 参数时,在重置时不会删除 firewall.conf 配置文件,但文件中的文件和注释被保留。

Jira:RHEL-1496[1]

kdump 角色以等幂方式向 authorized_keys 添加多个密钥

在以前的版本中,同时向 authorized_keys 文件中添加多个 SSH 密钥会将一个主机的密钥值替换为另一个主机的密钥值。此更新通过使用 lineinfile 模块来管理 authorized_keys 文件解决了这个问题。lineinfile 按顺序迭代任务,检查现有的密钥,并一次在一台主机上的一个原子操作中写入新密钥。因此,在多个主机上添加 SSH 密钥可以正常工作,不会替换另一个主机的密钥值。

注意:在 play 级别使用 serial: 1 play serial 关键字来控制一次执行的主机的数量。

Jira:RHEL-1500[1]

8.14. 虚拟化

向虚拟机热插一块 Watchdog 卡不再失败

在以前的版本中,如果没有 PCI 插槽可用,向正在运行的虚拟机(VM)添加一块 Watchdog 卡会失败,并显示以下错误:

Failed to configure watchdog
ERROR Error attempting device hotplug: internal error: No more available PCI slots

有了此更新,这个问题已被解决,向正在运行的虚拟机中添加一块 Watchdog 卡现在可以按预期正常工作。

Bugzilla:2173584

第 9 章 技术预览

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

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

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[1]

可作为技术预览的 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[1], Bugzilla:1856415

act_mpls 模块作为技术预览提供

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

Bugzilla:1839311[1]

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

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

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

Bugzilla:1906489

9.3. 内核

soft-RoCE 作为技术预览提供

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

Bugzilla:1605216[1]

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[1]

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

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

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

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

Bugzilla:1769727

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

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

Bugzilla:1837187[1]

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

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

Bugzilla:1843266[1]

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[1]

9.4. 文件系统和存储

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

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

Bugzilla:1627455[1]

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[1]

Stratis 现在作为技术预览提供

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

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

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

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

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

Jira:RHELPLAN-1212[1]

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

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

Bugzilla:1696451[1]

在 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[1]

9.5. 高可用性和集群

pacemaker podman bundles 作为技术预览

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

Bugzilla:1619620[1]

作为技术预览的 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[1]

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[1]

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[1], 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[1]

9.8. 图形基础结构

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

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

Bugzilla:1698565[1]

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[1]

用于 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[1], JIRA:RHELPLAN-7677, Bugzilla:1501607

Intel vGPU 作为技术预览提供

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

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

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

请注意,这个功能已弃用,并将在以后的 RHEL 主发行版本中完全删除。

Bugzilla:1528684[1]

创建嵌套虚拟机

对于装有 RHEL 8 的 Intel、AMD64、IBM POWER 以及 IBM Z 系统主机上运行的 KVM 虚拟机,嵌套的 KVM 虚拟化作为技术预览提供。使用此功能,在物理 RHEL 8 主机上运行的 RHEL 7 或 RHEL 8 虚拟机可作为虚拟机监控程序,并托管自己的虚拟机。

Jira:RHELPLAN-14047[1], 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[1]

RHEL 客户机中的 Intel TDX

作为技术预览,Intel Trust Domain Extension (TDX)功能现在可在 RHEL 8.8 及之后的版本中使用。如果主机系统支持 TDX,您可以部署硬件隔离的 RHEL 9 虚拟机(VM),称为信任域(TD)。但请注意,TDX 目前无法与 kdump 一起工作,启用 TDX 会导致 kdump 在虚拟机上失败。

Bugzilla:1836977[1]

使用 virtiofs 在主机和虚拟机之间共享文件

作为技术预览,RHEL 8 现在提供 virtio 文件系统(virtiofs)。使用 virtiofs,您可以在主机系统及其虚拟机(VM)之间高效地共享文件。

Bugzilla:1741615[1]

9.10. 云环境中的 RHEL

RHEL 机密虚拟机现在在 Azure 上作为技术预览提供

有了更新的 RHEL 内核,现在您可以在 Microsoft Azure 上创建并运行机密虚拟机(VM)作为技术预览。但是,在 Azure 上引导时无法加密 RHEL 机密虚拟机镜像。

Jira:RHELPLAN-122316[1]

9.11. 容器

Podman 的 SQLite 数据库后端作为技术预览提供

从 Podman v4.6 开始,Podman 的 SQLite 数据库后端作为技术预览提供。要将数据库后端设置为 SQLite,请在 /etc/containers/containers.conf 配置文件中添加 database_backend = "sqlite" 选项。在切换到 SQLite 数据库后端前,请运行 podman system reset 命令,来将存储重置回初始状态。请注意,您必须重新创建所有容器和 pod。SQLite 数据库保证好的稳定性和一致性。容器堆栈中的其他数据库也会被移到 SQLite。BoltDB 保留默认的数据库后端。

Jira:RHELPLAN-154428[1]

podman-machine 命令不被支持

用于管理虚拟机的 podman-machine 命令仅作为技术预览提供。相反,可以直接从命令行运行 Podman。

Jira:RHELDOCS-16861[1]

第 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[1]

ignoredisk Kickstart 命令的 --interactive 选项已被弃用

在以后的 Red Hat Enterprise Linux 版本中使用 --interactive 选项会导致严重安装错误。建议您修改 Kickstart 文件删除该选项。

Bugzilla:1637872[1]

Kickstart autostep 命令已弃用

autostep 命令已弃用。有关这个命令的相关部分已从 RHEL 8 文档中删除。

Bugzilla:1904251[1]

10.2. 安全性

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[1]

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[1]

NTLM 和 Krb4 已在 Cyrus SASL 中弃用

NTLM 和 Kerberos 4 验证协议已弃用,并可能在以后的 RHEL 主版本中删除。这些协议不再被视为安全的,已从上游实现中删除。

Jira:RHELDOCS-17380[1]

使用 /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[1]

TPM 1.2 已被弃用

可信平台模块(TPM)安全加密处理器标准将在 2016 年更新至版本 2.0。TPM 2.0 比 TPM 1.2 提供了很多改进,它和之前的版本不向后兼容。在 RHEL 8 中弃用了 TPM 1.2,它可能会在下一个主发行版本中删除。

Bugzilla:1657927[1]

crypto-policies 派生的属性现已被弃用

随着自定义策略中 crypto-policies 指令作用域的引入,以下派生属性已被弃用: tls_cipherssh_cipherssh_groupike_protocolsha1_in_dnssec。另外,使用 protocol 属性而不指定范围现也已被弃用。有关推荐的替代品,请参阅 crypto-policies(7) 手册页。

Bugzilla:2011208

10.3. 订阅管理

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.4. 软件管理

rpmbuild --sign 已弃用

从 RHEL 8.1 开始,rpmbuild --sign 命令被弃用。在以后的 Red Hat Enterprise Linux 版本中使用这个命令可能会导致错误。建议您使用 rpmsign 命令替代。

Bugzilla:1688849

10.5. 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[1]

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[1]

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 后端。

Jira:RHEL-6859

raw 命令已被弃用

raw (/usr/bin/raw)命令已被弃用。在以后的 Red Hat Enterprise Linux 版本中使用这个命令可能会导致错误。

Jira:RHELPLAN-133171[1]

10.6. 网络

PF_KEYv2 内核 API 已弃用

应用程序可以使用 PV_KEYv2 和较新的 netlink API 配置内核的 IPsec 实现。PV_KEYv2 不是在上游主动维护的,且缺少重要的安全功能,如现代密码、卸载和扩展的序列号支持。因此,从 RHEL 8.9 开始,PV_KEYv2 API 被弃用。如果您在应用程序中使用此内核 API,请迁移它,以使用现代 netlink API 作为替代。

Jira:RHEL-1257[1]

在 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[1]

dropwatch 工具已弃用

dropwatch 工具已弃用。以后的发行版本中不再支持该工具,因此不建议在新部署中使用它。作为此软件包的替代品,红帽建议使用 perf 命令行工具。

有关使用 perf 命令行工具的更多信息,请参阅红帽客户门户网站的 Perf入门 部分或 perf手册页。

Bugzilla:1929173

xinetd 服务已弃用

xinetd 服务已弃用,并将在 RHEL 9 中删除。作为替换,请使用 systemd。详情请查看 如何将 xinetd 服务转换为 systemd

Bugzilla:2009113[1]

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[1]

Linux firewire 子系统及其关联的用户空间组件在 RHEL 8 中已弃用

firewire 子系统提供了接口来使用和维护 IEEE 1394 总线上的任何资源。在 RHEL 9 中,内核 软件包将不再支持 firewire 。请注意,firewire 包含几个由 libavc1394libdc1394libraw1394 软件包提供的用户空间组件。这些软件包也会被弃用。

Bugzilla:1871863[1]

使用无磁盘引导为 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[1]

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[1]

禁用了 NFSv3 over UDP

默认情况下,NFS 服务器不再默认在 User Datagram Protocol(UDP)套接字上打开或监听。这个变化只影响 NFS 版本 3,因为版本 4 需要传输控制协议(TCP)。

RHEL 8 不再支持通过 UDP 的 NFS。

Bugzilla:1592011[1]

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[1]

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[1]

10.10. 高可用性和集群

支持 clufter 工具的 pcs 命令已被弃用

支持 clufter 工具来分析群集配置格式的 pcs 命令已被弃用。现在,这些命令会显示一个警告信息,提示该命令已弃用,并且与这些命令相关的部分已从 pcs 帮助显示和pcs(8)手册页中删除。

以下命令已被弃用:

  • 用于导入 CMAN / RHEL6 HA 群集配置的 pcs config import-cman
  • pcs config export 用于将集群配置导出到可重新创建同一集群的 pcs 命令列表中

Bugzilla:1851335[1]

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[1]

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[1]

通过 WinSync 与 IdM 的间接 AD 集成已弃用

由于一些功能的限制,不会在 RHEL 8 中对 WinSync 进行积极的开发:

  • WinSync 只支持一个活动目录(AD)域。
  • 密码同步需要在 AD 域控制器上安装额外的软件。

对于具有更好的资源和安全分离的更健壮的解决方案,红帽建议对于与活动目录的间接集成使用 跨林信任 。请参阅 间接集成 文档。

Jira:RHELPLAN-100400[1]

以 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[1]

对 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[1]

libreoffice 已被弃用

LibreOffice RPM 软件包现已弃用,并将在以后的主 RHEL 发行版本中删除。LibreOffice 在 RHEL 7、8 和 9 的整个生命周期中仍然被完全支持。

作为 RPM 软件包的替代,红帽建议您从 Document Foundation 提供的以下源中安装 LibreOffice:

Jira:RHELDOCS-16300[1]

10.15. 图形基础结构

不再支持 AGP 图形卡

Red Hat Enterprise Linux 8 不支持使用图形端口(AGP)总线的图形卡。推荐使用 PCI-Express bus 图形卡替换。

Bugzilla:1569610[1]

Motif 已被弃用

Motif 小部件工具包已在 RHEL 中被弃用,因为上游 Motif 社区的开发不活跃。

以下 Motif 软件包已被弃用,包括其开发和调试变体:

  • motif
  • openmotif
  • openmotif21
  • openmotif22

另外,motif-static 软件包已删除。

红帽建议使用 GTK 工具包作为替代品。与 Motif 相比,GTK更易于维护,并提供了新功能。

JIRA:RHELPLAN-98983[1]

10.16. Web 控制台

Web 控制台不再支持不完整翻译

RHEL web 控制台不再提供翻译少于 50% 的语言支持。如果浏览器要求转换成这种语言,用户界面将为英语。

Bugzilla:1666722

remotectl 命令已弃用

remotectl 命令已弃用,并将在以后的 RHEL 版本中不可用。您可以使用 cockpit-certificate-ensure 命令作为替代。但请注意,cockpit-certificate-ensure 没有与 remotectl 相同的功能。它不支持捆绑的证书和密钥 keychain 文件,并要求将它们拆分。

Jira:RHELPLAN-147538[1]

10.17. Red Hat Enterprise Linux 系统角色

geoipupdate 软件包已弃用

geoipupdate 软件包需要第三方订阅,同时下载专有内容。因此,geoipupdate 软件包已被弃用,并将在下一个主要 RHEL 版本中删除。

Bugzilla:1874892[1]

在 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[1]

virt-manager 已被弃用

虚拟机管理器(也称 virt-manager) 已弃用。RHEL web 控制台(也称为 Cockpit )旨在在以后的版本中成为其替代品。因此,建议您使用 web 控制台使用 GUI 管理虚拟化。但请注意,virt-manager 中的一些可用功能可能在 RHEL web 控制台中不可用。

Jira:RHELPLAN-10304[1]

对虚拟机快照的支持有限

目前只对使用 UEFI 固件的虚拟机支持创建虚拟机(VM)的快照。另外,在快照操作过程中,QEMU 监控可能会被阻止,这会影响某些工作负载的 hypervisor 性能。

另请注意,创建虚拟机快照的当前机制已被弃用,红帽不推荐在生产环境中使用虚拟机快照。

Bugzilla:1686057

Cirrus VGA 虚拟 GPU 类型已弃用

随着 Red Hat Enterprise Linux 的主要更新,Cirrus VGA GPU 设备将在 KVM 虚拟机中不再被支持。因此,红帽建议使用 stdvgavirtio-vga 设备,而不是 Cirrus VGA

Bugzilla:1651994[1]

SPICE 已被弃用

SPICE 远程显示协议已弃用。因此,RHEL 8 中仍支持 SPICE,但红帽建议对远程显示流使用备用解决方案:

  • 要访问远程控制台,请使用 VNC 协议。
  • 对于高级远程显示功能,请使用 RDP、HP RGS 或 Mechdyne TGX 等第三方工具。

请注意,SPICE 使用的 QXL 图形设备也已被弃用。

Bugzilla:1849563[1]

IBM POWER 上的 KVM 已被弃用

在 IBM POWER 硬件中使用 KVM 虚拟化已被弃用。因此,RHEL 8 仍支持 IBM POWER 上的 KVM,但在以后的 RHEL 主发行版本中将不被支持。

Jira:RHELPLAN-71200[1]

使用基于 SHA1 的签名进行 SecureBoot 镜像验证已弃用

在 UEFI(PE/COFF)可执行文件中使用基于 SHA1 的签名执行 SecureBoot 镜像验证已过时。反之,红帽建议使用基于 SHA2 算法或更新版本的签名。

Bugzilla:1935497[1]

使用 SPICE 将智能卡读取器附加到虚拟机已被弃用

SPICE 远程显示协议已在 RHEL 8 中被弃用。由于将智能卡读取器附加到虚拟机(VM)的唯一方法取决于 SPICE 协议,因此在虚拟机中使用智能卡已在 RHEL 8 中被弃用。

在 RHEL 未来的主版本中,将智能卡读取器附加到虚拟机的功能仅被第三方远程视觉解决方案支持。

Bugzilla:2059626

基于 RDMA 的实时迁移已弃用

有了这个更新,使用 Remote Direct Memory Access (RDMA)迁移正在运行的虚拟机已被弃用。因此,仍可以使用 rdma:// 迁移 URI 来通过 RDMA 请求迁移,但这个功能将在以后的 RHEL 主发行版本中不被支持。

Jira:RHELPLAN-153267[1]

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[1]

container-tools:1.0 已弃用

container-tools:1.0 模块已弃用,将不再接收安全更新。建议您使用较新支持的稳定模块流,如 container-tools:2.0container-tools:3.0

Jira:RHELPLAN-59825[1]

container-tools:2.0 模块已被弃用

container-tools:2.0 模块已被弃用,并将不再接受安全更新。建议您使用更新的支持的稳定模块流,如 container-tools:3.0

Jira:RHELPLAN-85066[1]

除了 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 网络堆栈已弃用

容器网络接口 (CNI)网络堆栈已弃用,并将在以后 RHEL 次要发行本中从 Podman 中删除。在以前的版本中,容器只能通过 DNS 连接到单个 Container Network Interface (CNI)插件。podman v.4.0 引入了一个新的 Netavark 网络堆栈。您可以将 Netavark 网络堆栈与 Podman 和其他Open Container Initiative(OCI)容器管理应用程序一起使用。Podman 的 Netavark 网络堆栈也与高级 Docker 功能兼容。多个网络中的容器可以访问任何这些网络上的容器。

如需更多信息,请参阅 将网络堆栈从 CNI 切换到 Netavark

Jira:RHELDOCS-16755[1]

container-tools:3.0 已弃用

container-tools:3.0 模块已弃用,将不再接收安全更新。要继续在 RHEL 上构建并运行 Linux 容器,请使用较新的、稳定且受支持的模块流,如 container-tools:4.0

有关切换到更新的流的说明,请参阅 切换到更新的流

Jira:RHELPLAN-146398[1]

Inkscape 和 LibreOffice Flatpak 镜像已弃用

作为技术预览提供的 rhel9/inkscape-flatpakrhel9/libreoffice-flatpak Flatpak 镜像已被弃用。

红帽建议对这些镜像使用以下替代方案:

  • 要替换 rhel9/inkscape-flatpak,请使用 inkscape RPM 软件包。
  • 要替换 rhel9/libreoffice-flatpak,请参阅 LibreOffice 弃用发行注记

Jira:RHELDOCS-17102[1]

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-9
  • gcc-toolset-9-annobin
  • gcc-toolset-9-build
  • gcc-toolset-9-perftools
  • gcc-toolset-9-runtime
  • gcc-toolset-9-toolchain
  • 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-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 目标驱动程序

 

nvmet-fc

NVMe/Fabrics FC 目标驱动程序

[a] 在 RHEL 8.0 中禁用了,由于客户请求,在 RHEL 8.4 中被重新启用了。

第 11 章 已知问题

这部分论述了 Red Hat Enterprise Linux 8.9 中的已知问题。

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[1]

在 Anaconda 作为应用程序运行的系统中意外 SELinux 策略

当 Anaconda 作为应用程序运行在已安装的系统上(例如,使用 -image anaconda 选项对镜像文件执行另一次安装)时,不禁止系统在安装过程中修改 SELinux 类型和属性。因此,某些 SELinux 策略的元素可能会在运行Anaconda 的系统上发生更改。

要临时解决这个问题,请不要在生产系统上运行 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[1]

reboot --kexecinst.kexec 命令不提供可预测的系统状态

使用 reboot --kexec Kickstart 命令或 inst.kexec 内核引导参数执行 RHEL 安装不会提供与完全重启相同的可预期系统状态。因此,在不重启的情况下切换安装的系统可能会导致无法预计的结果。

请注意,kexec 功能已弃用,并将在以后的 Red Hat Enterprise Linux 版本中删除。

Bugzilla:1697896[1]

USB CD-ROM 驱动器作为 Anaconda 中的安装源不可用

当源为 USB CD-ROM 驱动器,并且指定了 Kickstart ignoredisk --only-use= 命令时,安装会失败。在这种情况下,Anaconda 无法找到并使用这个源磁盘。

要临时解决这个问题,请使用 harddrive --partition=sdX --dir=/ 命令从 USB CD-ROM 驱动器安装。因此,安装不会失败。

Jira:RHEL-4707

在安装程序中不默认启用网络访问

几个安装功能需要网络访问,例如:使用 Content Delivery Network(CDN)、NTP 服务器支持和网络安装源注册系统。但默认情况下不启用网络访问,因此在启用网络访问前无法使用这些功能。

要临时解决这个问题,请添加 ip=dhcp 在启动安装时启用网络访问。另外,使用引导选项传递 Kickstart 文件或位于网络中的库也会解决这个问题。因此可以使用基于网络的安装功能。

Bugzilla:1757877[1]

带有 iso9660 文件系统的硬盘分区安装失败

您不能在使用 iso9660 文件系统进行分区的系统中安装 RHEL。这是因为将设置为忽略包含 iso9660 文件系统分区的硬盘的更新安装代码。即使在没有使用 DVD 的情况下安装 RHEL,也会发生这种情况。

要临时解决这个问题,请在 Kickstart 文件中添加以下脚本,以便在安装开始前格式化磁盘。

注:在执行临时解决方案前,请备份磁盘上的数据。erafs 命令对磁盘中的所有现有数据进行格式化。

%pre
wipefs -a /dev/sda
%end

因此,安装可以正常工作,且没有任何错误。

Jira:RHEL-4711

HASH MMU 模式的 IBM Power 系统无法引导,并显示内存分配失败

具有 HASH 内存分配单元(MMU) 模式的 IBM Power Systems 最多支持 192 个核的 kdump 。因此,如果在超过 192 个核上启用了 kdump,则系统会无法引导,显示内存分配失败。这个限制是因为 HASH MMU 模式下早期引导过程中的 RMA 内存分配。要临时解决这个问题,请使用启用了 fadumpRadix MMU 模式,而不是使用 kdump

Bugzilla:2028361[1]

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

因此,安装过程成功完成。

Jira:RHEL-4744

使用 stig 配置集补救构建的镜像无法引导,并显示 FIPS 错误

RHEL 镜像构建器不支持 FIPS 模式。当使用由 xccdf_org.ssgproject.content_profile_stig 配置文件补救自定义的 RHEL 镜像构建器时,系统无法引导,并显示以下错误:

Warning: /boot//.vmlinuz-<kernel version>.x86_64.hmac does not exist
FATAL: FIPS integrity test failed
Refusing to continue

在系统镜像安装后,使用 fips-mode-setup --enable 命令手动启用 FIPS 策略无法正常工作,因为 /boot 目录在不同的分区上。如果禁用了 FIPS,则系统可以成功引导。目前,还没有可用的临时解决方案。

注意

安装镜像后,您可以使用 fips-mode-setup --enable 命令手动启用 FIPS。

Jira:RHEL-4649

11.2. 安全性

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[1]

在安装过程中强化系统时,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 可以正常工作。

Jira:RHEL-1826

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[1]

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

fapolicyd 工具错误地允许执行更改的文件

在对文件进行任何更改后,文件的 IMA 哈希应该正确更新,fapolicyd 应该阻止更改的文件的执行。但是,这不会因为 IMA 策略设置与通过 evctml 程序哈希的文件中的差异而发生。因此,IMA 哈希没有在更改的文件的扩展属性中被更新。因此,fapolicyd 错误地允许更改的文件的执行。

Jira:RHEL-520[1]

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[1]

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 卡中使用的不同的 PKCS #15 文件偏移中读取缓存。因此,OpenSC 可能无法列出卡对象,并防止从不同的应用程序使用它们。

要临时解决这个问题,请在 /etc/opensc.conf 文件中设置 use_file_caching = false 选项来关闭文件缓存。

Jira:RHEL-4077

通过 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[1]

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[1]

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[1]

/etc/selinux/config 中的SELINUX=disabled 无法正常工作

/etc/selinux/config 中使用 SELINUX=disabled 选项禁用 SELinux 会导致内核在启用了 SELinux 的情况下引导,并在稍后的引导过程中切换到禁用模式。这可能导致内存泄漏。

要临时解决这个问题,请在内核命令行中添加 selinux=0 参数来禁用 SELinux,如 使用 SELinux 中的在引导时更改 SELinux 模式部分所述。

Jira:RHELPLAN-34199[1]

通过 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 规则一起实施。

Jira:RHEL-1804

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 规格一起使用。

Jira:RHEL-1810

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

重建 rpm 数据库会分配不正确的 SELinux 标签

使用 rpmdb --rebuilddb 命令重建 rpm 数据库,会为 rpm 数据库文件分配不正确的 SELinux 标签。因此,一些使用 rpm 数据库的服务可能无法正常工作。要在重建数据库后临时解决这个问题,请使用 restorecon -Rv /var/lib/rpm 命令重新标记数据库。

Bugzilla:2166153

64 位 ARM 架构上错误地使用了审计的 ANSSI BP28 HP SCAP 规则

SCAP 安全指南(SSG)中的 ANSSI BP28 High 配置文件包含以下安全内容自动化协议(SCAP)规则,后者配置 Linux 审计子系统,但在 64 位 ARM 架构上无效:

  • audit_rules_unsuccessful_file_modification_creat
  • audit_rules_unsuccessful_file_modification_open
  • audit_rules_file_deletion_events_rename
  • audit_rules_file_deletion_events_rmdir
  • audit_rules_file_deletion_events_unlink
  • audit_rules_dac_modification_chmod
  • audit_rules_dac_modification_chown
  • audit_rules_dac_modification_lchown

如果您使用这个配置文件配置在 64 位 ARM 机器上运行的 RHEL 系统,则审计守护进程会因为使用了无效的系统调用而无法启动。

要临时解决这个问题,可以使用定制的配置文件从数据流中删除前面提到的规则,或通过编辑 /etc/audit/rules.d 目录中的文件来删除 -S <syscall> 片段。文件不得包含以下系统调用:

  • Creat
  • open
  • rename
  • rmdir
  • unlink
  • chmod
  • chown
  • lchown

于上述两种临时解决方法中的任何一种,即使在 64 位 ARM 系统上使用 ANSSI BP28 High 配置文件后,审计守护进程也可以启动。

Jira:RHEL-1897

在 kickstart 安装过程中修复与服务相关的规则可能会失败

在 kickstart 安装过程中,OpenSCAP 工具有时会错误地显示服务的 enabledisable 状态补救不需要。因此,OpenSCAP 可能会将安装的系统上的服务设置为不合规的状态。作为临时解决方案,您可以在 kickstart 安装后扫描并修复该系统。这可以解决与服务相关的问题。

Bugzilla:1834716

11.3. 订阅管理

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.4. 软件管理

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[1]

当 scriptlet 失败时,YUM 事务被报告为成功

从 RPM 版本 4.6 开始,允许安装后 scriptlet 失败,而不会对事务造成致命影响。这个行为也被传播到 YUM。这导致 scriptlets 可能会偶尔失败,而整个软件包事务报告为成功。

目前还没有可用的临时解决方案。

请注意,这是预期行为,其在 RPM 和 YUM 之间保持一致。scriptlet 中的任何问题都应在软件包层面上解决。

Bugzilla:1986657

11.5. 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

Jira:RHEL-6846

在不使用清洁磁盘进行恢复时,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

sysstat 软件包中的 %vmeff 指标显示不正确的值

sysstat 软件包提供 %vmeff 指标来测量页面回收效率。sar -B 命令返回的 %vmeff 列的值不正确,因为 sysstat 不会解析后续内核版本提供的所有相关的 /proc/vmstat 值。要临时解决这个问题,您可以从 /proc/vmstat 文件中手动计算 %vmeff 值。详情请查看 为什么在 RHEL 8 和 RHEL 9 中 sar (1) 工具报告 %vmeff 值超过 100 % ?

Jira:RHEL-12008

11.6. 基础架构服务

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.7. 网络

RoCE 接口因为网络接口名称的意外更改而丢失了其 IP 设置

如果两个条件都满足,则 RDMA over Converged Ethernet (RoCE)接口会因为网络接口名称的意外更改而丢失其 IP 设置:

  • 用户从 RHEL 8.6 系统或更早的版本升级。
  • RoCE 卡按 UID 枚举。

要临时解决这个问题:

  1. 使用以下内容创建 /etc/systemd/network/98-rhel87-s390x.link 文件:

    [Match]
    Architecture=s390x
    KernelCommandLine=!net.naming-scheme=rhel-8.7
    
    [Link]
    NamePolicy=kernel database slot path
    AlternativeNamesPolicy=database slot path
    MACAddressPolicy=persistent
  2. 重启系统以使更改生效。
  3. 升级到 RHEL 8.7 或更高版本。

请注意,按功能 ID (FID)枚举且不是唯一的 RoCE 接口仍然会使用无法预测的接口名称,除非您设置了 net.naming-scheme=rhel-8.7 内核参数。在这种情况下,RoCE 接口将切换到具有 ens 前缀的可预测的名称。

Jira:RHEL-11398[1]

启用了 IPv6_rpfilter 选项的系统的网络吞吐量较低

firewalld.conf 文件中启用了 IPv6_rpfilter 选项的系统目前在高流量场景(如 100 Gbps 链接)中遇到次优性能和低网络吞吐量。要临时解决这个问题,请禁用 IPv6_rpfilter 选项。为此,请在 /etc/firewalld/firewalld.conf 文件中添加以下行:

IPv6_rpfilter=no

因此,系统性能更好,但安全性也有所降低。

Bugzilla:1871860[1]

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[1]

tuned-adm profile powerave 命令会导致系统变得无响应

执行 tuned-adm profile powersave 命令会导致使用旧的Thunderx(CN88x)处理器的Penguin Valkyrie 2000 2-socket 系统处于无响应状态。因此,需要重启系统以便恢复工作。要临时解决这个问题,如果您的系统符合上述说明,请避免使用 powersave 配置集。

Bugzilla:1609288[1]

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[1]

重新加载相同的崩溃扩展可能会导致分段错误

当您加载已加载的崩溃扩展文件的副本时,可能会触发分段错误。目前,crash 工具会检测原始文件是否已被加载。因此,由于两个完全相同的文件在 crash 工具中并存,因此会发生命名空间冲突,这会触发 crash 工具,从而导致分段错误。

您可以通过只加载 crash 扩展文件一次来临时解决此问题。因此,在描述的场景中不再会出现分段错误。

Bugzilla:1906482

将虚拟功能附加到虚拟机时连接会失败

使用传奇 ionic设备驱动程序的 Pensando 网卡会默默地接受 VLAN 标签配置请求,并在将网络虚拟功能(VF)附加到虚拟机(VM)上时尝试配置网络连接。这些网络连接会失败,因为卡的固件还没有支持这个功能。

Bugzilla:1930576[1]

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[1]

在内存热插拔操作后,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[1]

使用 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[1]

具有大核数的系统上实时内核的硬件认证可能需要传递 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 会导致功耗的大量增加,因此只有在运行延迟敏感实时工作负载时才必须启用它。

Jira:RHEL-9318[1]

在 RHEL 8 上,调试内核无法在崩溃捕获环境中引导

由于 调试内核的内存密集型特性,当调试内核在使用,且触发了内核 panic 时会出现问题。因此,调试内核无法作为捕获内核启动,而是生成堆栈跟踪。要临时解决这个问题,请根据需要增大崩溃内核内存。因此,调试内核会在崩溃捕获环境中成功引导。

Bugzilla:1659609[1]

在引导时分配崩溃内核内存失败

在某些 Ampere Altra 系统上,当 BIOS 设置中禁用了 32 位区域时,在引导过程中分配崩溃内核内存会失败。因此,kdump 服务无法启动。这是因为 4 GB 以下的内存碎片导致,没有足够大的碎片来包含崩溃内核内存。

要临时解决这个问题,请在 BIOS 中启用 32 位内存区域,如下所示:

  1. 在您的系统中打开 BIOS 设置。
  2. 打开 Chipset 菜单。
  3. Memory Configuration 下,启用 SSlave 32-bit 选项。

因此,在 32 位区域中的崩溃内核内存分配会成功,kdump 服务可以按预期工作。

Bugzilla:1940674[1]

QAT 管理器没有为 LKCF 保留备用设备

Intel® QuickAssist Technology (QAT)管理器(qatmgr)是一个用户空间进程,默认情况下会使用系统中的所有 QAT 设备。因此,没有为 Linux 内核加密框架(LKCF)保留任何 QAT 设备。不需要临时解决这种情况,因为此行为是预期的,大多数用户都将使用来自用户空间的加速。

Bugzilla:1920086[1]

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[1]

使用 page_poison=1 可能会导致内核崩溃

当在带有错误 EFI 实现的固件上使用 page_poison=1 作为内核参数时,操作系统可能会导致内核崩溃。默认情况下,这个选项被禁用,不推荐启用它,特别是在生产系统中。

Bugzilla:2050411[1]

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[1]

IBM Power 系统上的安全引导不支持迁移

目前在 IBM Power 系统上,在成功迁移物理卷(PV)后不会引导逻辑分区(LPAR)。因此,在分区上启用了安全引导的任何类型的自动迁移都会失败。

Bugzilla:2126777[1]

kmod 中的 weak-modules 不能与模块间依赖一起工作

kmod 软件包提供的 weak-modules 脚本决定了哪些模块与安装的内核 kABI 兼容。但是,在检查模块的内核兼容性时,weak-modules 按照构建它们的内核的从高到低版本来处理模块符号依赖项。因此,针对不同内核版本构建的具有相互依赖关系的模块可能会被解释为不兼容,因此 weak-modules 脚本不能在此场景下工作。

要临时解决这个问题,请在安装新内核前针对最新的库存内核进行构建或放置额外的模块。

Bugzilla:2103605[1]

Ampere Altra 服务器中的 kdump 进入 OOM 状态

Ampere Altra 和 Altra Max 服务器中的固件当前会导致内核分配太多事件、中断和命令队列,这消耗了太多内存。因此,kdump 内核进入内存不足(OOM)状态。

要临时解决这个问题,请通过将 crashkernel= 内核选项的值增加到 640M,来为 kdump 保留额外的内存。

Bugzilla:2111855[1]

11.9. 文件系统和存储

保存一个 LUKS 卷的 LVM mirror 设备有时将变为无响应

在某些情况下,保存 LUKS 卷的片段类型的 mirror LVM 设备可能会变得无响应。无响应设备会拒绝所有 I/O 操作。

要解决这个问题,红帽建议在有弹性软件定义的存储之上使用带 raid1 的片段类型的 LVM RAID 1 设备而不是镜像( mirror )。

raid1 segment 类型是默认的 RAID 配置类型,它作为推荐的解决方案替换 mirror

要将 mirror 设备转换为 raid1,请参阅将镜像 LVM 设备转换为 RAID1 设备

Bugzilla:1730502[1]

无法将 /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[1]

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[1], Bugzilla:1808012, Bugzilla:1798631

使用 NVMe/TCP 驱动程序时不支持设备映射器多路径。

在 NVMe/TCP 设备之上使用设备映射器多路径可能会导致性能降低和错误处理。要避免这个问题,请使用原生 NVMe 多路径而不是 DM 多路径工具。对于 RHEL 8,您可以向内核命令行中添加 nvme_core.multipath=Y 选项。

Bugzilla:2022359[1]

blk-availability systemd 服务停用了复杂的设备堆栈

systemd 中,默认的块停用代码并不总是正确处理虚拟块设备的复杂堆栈。在一些配置中,虚拟设备在关闭过程中可能无法被删除,这会导致记录错误信息。要临时解决这个问题,请执行以下命令来停用复杂块设备堆栈:

# systemctl enable --now blk-availability.service

因此,复杂虚拟设备堆栈会在关闭过程中被正确停用,且不会生成错误消息。

Bugzilla:2011699[1]

XFS 配额警告经常被触发

使用配额计时器会导致配额警告的触发过于频繁,这导致软配额的强制执行的速度比应该执行的速度更快。要临时解决这个问题,请不要使用软配额,这会防止触发警告。因此,警告信息量将不再强制软配额限制,会尊重配置的超时时间。

Bugzilla:2059262[1]

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

当使用 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 库被加载并在单个进程中使用时,这些库之间可能会发生符号冲突。因此,如果 mod_securitymod_auth_openidc 模块也由 httpd 配置加载,则使用 PHP ldap 扩展的 Apache httpd 子进程可能会意外终止。

从因为RHEL 8.3 更新到 Apache Portable Runtime(APR)库,您可以通过设置 APR_DEEPBIND 环境变量来临时解决这个问题,该变量在载入 httpd 模块时,允许使用 RTLD_DEEPBIND 动态链接器选项。当 APR_DEEPBIND 环境变量启用时,在加载冲突库的 httpd 配置中不再崩溃。

Bugzilla:1819607[1]

当有 32 位应用程序调用 getpwnam() 时,可能会失败

当 NIS 用户使用32 位应用程序调用 getpwnam() 函数时,如果没有 nss_nis.i686 软件包,则调用会失败。要临时解决这个问题,使用 yum install nss_nis.i686 手动安装缺少的软件包。

Bugzilla:1803161

11.11. 身份管理

将 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[1]

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)管理帐户进行身份验证。

Jira:RHEL-4847

在 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>

Jira:RHEL-4910

ldap_id_use_start_tls 选项使用默认值时的潜在风险

当使用没有 TLS 的 ldap:// 进行身份查找时,可能会对攻击向量构成风险。特别是中间人(MITM)攻击,例如,攻击者可以通过更改 LDAP 搜索中返回的对象的 UID 或 GID 来冒充用户。

目前,强制 TLS 的 SSSD 配置选项 ldap_id_use_start_tls 默认为 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[1]

从 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

Jira:RHEL-13125[1]

迁移的 IdM 用户可能会因为不匹的域 SID 而无法登录

如果您使用 ipa migrate-ds 脚本将用户从一个 IdM 部署迁移到另一个,则这些用户可能会在使用 IdM 服务时有问题,因为它们之前存在的安全标识符(SID)没有当前 IdM 环境的域 SID。例如,这些用户可以使用 kinit 工具检索 Kerberos 票据,但不能登录。要临时解决这个问题,请参阅以下知识库文章: Migrated IdM 用户因为不匹配的域 SID 而无法登录

Jira:RHELPLAN-109613[1]

FIPS 模式下的 IdM 不支持使用 NTLMSSP 协议来建立双向跨林信任

在活动目录(AD)和启用了 FIPS 模式的身份管理(IdM)之间建立双向跨林信任会失败,因为新技术局域网管理器安全支持提供程序 (NTLMSSP)身份验证不符合 FIPS。FIPS 模式下的 IdM 不接受在尝试验证时 AD 域控制器使用的 RC4 NTLM 哈希。

Jira:RHEL-4898

IdM Vault 加密和解密在 FIPS 模式下失败

如果启用了 FIPS 模式,则 OpenSSL RSA-PKCS1v15 填充加密会被阻止。因此,身份管理(IdM) Vault 无法正常工作,因为 IdM 目前正在使用 PKCS1v15 填充来用传输证书包装会话密钥。

Jira:RHEL-12153[1]

为 Kerberos 主体设置过期日期时不正确的警告

如果您为 Kerberos 主体设置了密码过期日期,则使用 32 位签名的整数变量将当前的时间戳与过期时间戳进行比较。如果过期日期在将来超过 68 年,则会导致整数变量溢出,从而导致显示以下警告信息:

Warning: Your password will expire in less than one hour on [expiration date]

您可以忽略此消息,密码将在配置的日期和时间正确过期。

Bugzilla:2125318

11.12. 桌面

无法从软件仓库中禁用 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[1]

在桌面和应用程序间进行拖放操作无法正常工作

由于 gnome-shell-extensions 软件包中的一个 bug,drag-and-drop 功能目前在桌面和应用程序间无法正常工作。以后的发行版本中将重新添加对这个功能的支持。

Bugzilla:1717947

WebKitGTK 无法在 IBM Z 上显示网页

当尝试在 IBM Z 架构上显示网页时,WebKitGTK 网页浏览器引擎会失败。网页保持空白,WebKitGTK 进程意外终止。

因此,您无法使用那些使用 WebKitGTK 的应用程序的某些功能来显示网页,如下所示:

  • Evolution 邮件客户端
  • GNOME 在线帐户设置
  • GNOME 帮助应用程序

Jira:RHEL-4158

11.13. 图形基础结构

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[1]

多个 HDR 显示在单个 MST 拓扑上可能无法打开

在使用带有 nouveau 驱动程序的 NVIDIA Turing GPU 的系统上,使用DisplayPort 集线器(如笔记本电脑基座),该集线器上插有多个支持HDR的显示器,可能会导致其无法打开。这是因为系统错误地认为 hub 中没有足够的带宽来支持所有显示器。

Bugzilla:1812577[1]

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[1]

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[1]

11.14. 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

rhc_auth 包含激活密钥时,rhc 系统角色在已注册的系统上会失败

如果为 rhc_auth 参数指定了激活密钥,在在已经注册的系统上执行 playbook 文件会失败。要临时解决这个问题,在已经注册的系统上执行 playbook 文件时不要指定激活密钥。

Bugzilla:2186908

11.15. 虚拟化

使用大量队列可能会导致 Windows 虚拟机失败

当启用了虚拟可信平台模块(vTPM)设备,且将 multi-queue virtio-net 功能配置为使用超过 250 个队列时,Windows 虚拟机(VM)可能会失败。

这个问题是由 vTPM 设备的限制造成的。vTPM 设备对于打开的文件描述符的最大数量有一个硬性的限制。因为会为每个新队列打开多个文件描述符,因此可能会超过内部 vTPM 的限值,从而导致虚拟机失败。

要临时解决这个问题,请选择以下两个选项之一:

  • 保持 vTPM 设备启用,但使用少于 250 个队列。
  • 禁用 vTPM 设备以使用超过 250 个队列。

Jira:RHEL-13336[1]

在 AMD Milan 系统上有时无法提供 Milan VM CPU 类型

在某些 AMD Milan 系统上,默认在 BIOS 中禁用了增强 REP MOVSB(erms)和 Fast Short REP MOVSB(fsrm)功能标记。因此,在这些系统上可能无法使用 Milan CPU 类型。另外,在具有不同功能标志设置的 Milan 主机之间的虚拟机实时迁移可能会失败。要临时解决这个问题,在主机的 BIOS 中手动打开 ermsfsrm

Bugzilla:2077770[1]

当在 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[1]

当使用很多 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[1]

在 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[1]

带有启用 Hyper-V 的 Windows Server 2016 虚拟机无法引导

目前,无法引导使用 Windows Server 2016 作为客户端操作系统的虚拟机,它启用了 Hyper-V 角色,并使用以下 CPU 模型之一:

  • EPYC-IBPB
  • EPYC

要临时解决这个问题,使用 EPYC-v3 CPU 模型,或者为虚拟机手动启用 xsaves CPU 标记。

Bugzilla:1942888[1]

将 POWER9 客户端从 RHEL 7-ALT 主机迁移到 RHEL 8 会失败

目前,将 POWER9 虚拟机从 RHEL 7-ALT 主机系统迁移到 RHEL 8 会变得没有响应,显示Migration status: active状态)。

要临时解决这个问题,在 RHEL 7-ALT 主机上禁用 Transparent Huge Pages(THP),这样可使迁移成功完成。

Bugzilla:1741436[1]

使用 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[1]

在某些情况下,在 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[1]

在主机上重启 OVS 服务可能会阻止在其上运行的虚拟机的网络连接

当 Open vSwitch (OVS)服务在主机上重启时或崩溃时,在此主机上运行的虚拟机(VM)无法恢复网络设备的状态。因此,虚拟机可能无法完全接收数据包。

此问题只会影响在 virtio 网络堆栈中使用压缩 virtqueue 格式的系统。

要临时解决这个问题,使用 virtio 网络设备定义中的 packed=off 参数来禁用压缩的 virtqueue。当禁用压缩的 virtqueue 时,网络设备的状态在某些情况下可以从 RAM 中恢复。

Bugzilla:1792683

虚拟机迁移过程中的 NFS 故障会导致迁移失败和源虚拟机 coredump

目前,如果 NFS 服务或服务器在虚拟机(VM)迁移过程中关闭,则源虚拟机的 QEMU 在重新开始运行时无法重新连接到 NFS 服务器。因此,迁移会失败,并在源虚拟机上发起 coredump。目前,还没有可用的临时解决方案。

Bugzilla:2177957

nodedev-dumpxml 无法正确列出某些介质设备的属性

目前,nodedev-dumpxml 无法正确列出使用 nodedev-create 命令创建的介质设备的属性。要临时解决这个问题,请使用 nodedev-definenodedev-start 命令。

Bugzilla:2143160

启动带有 NVIDIA A16 GPU 的虚拟机有时会导致主机 GPU 停止工作

目前,如果您启动了一个使用 NVIDIA A16 GPU 直通设备的虚拟机,在某些情况下,主机系统上的 NVIDIA A16 GPU 物理设备会停止工作。

要临时解决这个问题,请重新 hypervisor ,并将 GPU 设备的 reset_method 设置为 bus

# echo bus > /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method
# cat /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method
bus

详情请查看 红帽知识库

Jira:RHEL-2451[1]

11.16. 云环境中的 RHEL

在 VMware 主机上的 RHEL 虚拟机中设置静态 IP 无法正常工作

目前,当使用 RHEL 作为 VMware 主机上虚拟机(VM)的客户机操作系统时,DatasourceOVF 功能无法正常工作。因此,如果您使用 cloud-init 实用程序将虚拟机的网络设置为静态 IP,然后重启虚拟机,则虚拟机的网络将更改为 DHCP。

要临时解决这个问题,请参阅 VMware 知识库

Jira:RHEL-12122

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[1]

当使用多个客户机磁盘引导 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[1]

如果 RHEL 实例是由 cloud-init 提供的,且使用 NFSv3 挂载条目配置的,则其在 Azure 上无法引导

目前,如果 VM 是由 cloud-init 工具提供的,且虚拟机的客户机操作系统在 /etc/fstab 文件中有 NFSv3 挂载条目,则在 Microsoft Azure 云平台上引导 RHEL 虚拟机(VM)会失败。

Bugzilla:2081114[1]

11.17. 支持性

getattachment 命令无法一次下载多个附件

redhat-support-tool 命令提供了用于下载附件的 getattachment 子命令。但是,getattachment 目前只能下载单个附件,无法下载多个附件。

作为临时解决方案,您可以通过在 getattachment 子命令中一个一个地传递每个附件的问题单号和 UUID 来下载多个附件。

Bugzilla:2064575

redhat-support-tool 无法用于 FUTURE 加密策略

因为客户门户网站 API 中的证书使用的加密密钥不满足 FUTURE 系统范围的加密策略的要求,所以 redhat-support-tool 程序目前无法使用这个策略级别。

要临时解决这个问题,在连接到客户门户网站 API 时使用 DEFAULT 加密策略。

Jira:RHEL-2345

在 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[1]

11.18. 容器

在较旧的容器镜像中运行 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[1]

第 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:2188628,Bugzilla:2166332,Bugzilla:2166284,Bugzilla:2210491,Bugzilla:2220890,Bugzilla:2224505,Bugzilla:1817505

NetworkManager

Bugzilla:2144521, Bugzilla:2151987

发行注记

JIRA:RHELDOCS-16861,JIRA:RHELDOCS-16755,JIRA:RHELDOCS-1661 2,JIRA:RHELDOCS-17102

SLOF

Bugzilla:1910848

accel-config

Bugzilla:1843266

anaconda

Bugzilla:1770969,Bugzilla:1886985,Bugzilla:1656662,Bugzilla:2050140,JIRA:RHEL-4707,JIRA:RHEL-4711,JIRA:RHEL-4744

ansible-freeipa

Bugzilla:2127901,Bugzilla:2175766,Bugzilla:2127906

apr

Bugzilla:1819607

audit

Bugzilla:2216666

authselect

Bugzilla:1892761

bacula

Jira:RHEL-6859

brltty

Bugzilla:2008197

clevis

Bugzilla:2209058

cloud-init

Bugzilla:2219528, Bugzilla:2230777, Jira:RHEL-12122

cockpit

Bugzilla:1666722

cockpit-appstream

Bugzilla:2212350,Bugzilla:2030836

cockpit-machines

Bugzilla:2173584

coreutils

Bugzilla:2030661

corosync-qdevice

Bugzilla:1784200

crash

Bugzilla:1906482

crash-ptdump-command

Bugzilla:1838927

createrepo_c

Bugzilla:1973588

crypto-policies

Bugzilla:2219912,JIRA:RHEL-2345,Bugzilla:1919155,Bugzilla:1660839

cups-filters

Bugzilla:2118406

device-mapper-multipath

Bugzilla:2164871, Bugzilla:2022359, Bugzilla:2011699

distribution

Bugzilla:1657927

dnf

Bugzilla:2170093, Bugzilla:1986657

dnf-plugins-core

Bugzilla:2122587, Bugzilla:2092033

edk2

Bugzilla:1741615, Bugzilla:1935497

elfutils

Bugzilla:2182060,Bugzilla:2162495

fapolicyd

JIRA:RHEL-628,JIRA:RHEL-630,JIRA:RHEL-829,JIRA:RHEL-520,Bugzilla:2054741

fence-agents

Bugzilla:2187329, Bugzilla:1775847

firewalld

Bugzilla:1871860

fuse

Bugzilla:2171095

gcc

Bugzilla:2168205

gcc-toolset-12-gdb

Bugzilla:2172095

gcc-toolset-13

Bugzilla:2171898

gcc-toolset-13-annobin

Bugzilla:2171923,Bugzilla:2171921

gcc-toolset-13-binutils

Bugzilla:2171924

gcc-toolset-13-gcc

Bugzilla:2172091

gdb

Bugzilla:1853140

gfs2-utils

Bugzilla:2180782

glibc

Bugzilla:2180462

gnome-shell-extensions

Bugzilla:1717947

gnome-software

Bugzilla:1668760

gnutls

Bugzilla:2089817,Bugzilla:1628553

golang

Bugzilla:2185260

grafana

Bugzilla:2193250

grafana-pcp

Bugzilla:2193270

grub2

Bugzilla:1583445

grubby

Bugzilla:1900829

initscripts

Bugzilla:1875485

ipa

Bugzilla:2196425,Bugzilla:1821181,JIRA:RHEL-4847,JIRA:RHEL-4898,JIRA:RHEL-12153,Bugzilla:1664719,Bugzilla:1664718,Bugzilla:2101770

ipmitool

Bugzilla:2224567, Jira:RHEL-6846

iproute

Jira:RHEL-424

kernel

Bugzilla:1989283,Bugzilla:2144529,Bugzilla:1753646,Bugzilla:2130727,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:1920086,Bugzilla:1971506,Bugzilla:2059262,Bugzilla:2050411,Bugzilla:2106341,Bugzilla:2189645,Bugzilla:1605216,Bugzilla:1519039,Bugzilla:1627455, Bugzilla:1501618,Bugzilla:1633143,Bugzilla:1814836,Bugzilla:1839311,Bugzilla:1696451,Bugzilla:1348508,Bugzilla:1837187,Bugzilla:1660337,Bugzilla:2041686, Bugzilla:1836977,Bugzilla:1878207, Bugzilla:1665295,Bugzilla:1871863,Bugzilla:1569610,Bugzilla:1794513

内核/网络/IPSec

Jira:RHEL-1257

内核/网络/NIC 驱动程序

Jira:RHEL-11398

内核/虚拟化/KVM

Jira:RHEL-2451

kernel-rt/其它

Jira:RHEL-9318

kexec-tools

Bugzilla:2173791, Bugzilla:2111855

kmod

Bugzilla:2103605

krb5

Bugzilla:2211390,JIRA:RHEL-4910,Bugzilla:2125318,Bugzilla:1877991

leapp-repository

Bugzilla:2097003

libdnf

Bugzilla:2155713

libgnome-keyring

Bugzilla:1607766

libguestfs

Bugzilla:1554735

libnftnl

Bugzilla:2211096

libpfm

Bugzilla:2185653

libreswan

Bugzilla:1989050

libselinux-python-2.8-module

Bugzilla:1666328

libvirt

Bugzilla:1664592,Bugzilla:1332758,Bugzilla:2143160,Bugzilla:1528684

llvm-toolset

Bugzilla:2178806

lvm2

Bugzilla:1496229, Bugzilla:1768536

mariadb

Bugzilla:1942330

mesa

Bugzilla:1886147

nfs-utils

Bugzilla:2081114, Bugzilla:1592011

nftables

Bugzilla:2061942

nodejs

Bugzilla:2186718

nss

Bugzilla:1817533, Bugzilla:1645153

nss_nis

Bugzilla:1803161

opencryptoki

Bugzilla:2159697

opencv

Bugzilla:1886310

openmpi

Bugzilla:1866402

opensc

Bugzilla:2097048, Jira:RHEL-4077, Bugzilla:1947025

openscap

Bugzilla:2217441,Bugzilla:2161499

openssh

Bugzilla:2044354

openssl

Bugzilla:1810911

osbuild-composer

Jira:RHEL-4649

oscap-anaconda-addon

Jira:RHEL-1826, Bugzilla:1843932, Bugzilla:1665082, Jira:RHEL-1810

pacemaker

Bugzilla:1876173,Bugzilla:2160206,Bugzilla:2078611,Bugzilla:2030869,Bugzilla:2010084,Bugzilla:1632951,Bugzilla:1578820,Bugzilla:1931023,Bugzilla:2168633

papi

Bugzilla:2111982,Bugzilla:2161146

pcs

Bugzilla:2166294,Bugzilla:2179010,Bugzilla:2189958,Bugzilla:2166289,Bugzilla:1619620,Bugzilla:1851335

perl-HTTP-Tiny

Bugzilla:2228409

pki-core

Bugzilla:1729215, Jira:RHEL-13125, Bugzilla:1628987

podman

JIRA:RHELPLAN-154313,JIRA:RHELPLAN-154431,JIRA:RHELPLAN-154440,JIRA:RHELPLAN-154443,JIRA:RHELPLAN-163002,JIRA:RHELPLAN-160659,JIRA:RHELPLAN-154428

postfix

Bugzilla:1787010,Bugzilla:1711885

pykickstart

Bugzilla:1637872

python3.11-lxml

Bugzilla:2157673

python36-3.6-module

Bugzilla:2165702

qemu-kvm

JIRA:RHEL-13336,Bugzilla:1740002,Bugzilla:1719687,Bugzilla:1966475,Bugzilla:1792683,Bugzilla:2177957,Bugzilla:1651994

rear

Bugzilla:2233526,Bugzilla:1925531,Bugzilla:2083301

redhat-support-tool

Bugzilla:2064575

resource-agents

Bugzilla:2040110,Bugzilla:2049319,Bugzilla:2039692,Bugzilla:2181019

restore

Bugzilla:1997366

rhel-system-roles

Bugzilla:2151371,Bugzilla:2224387,Bugzilla:2190483,Bugzilla:2141961,Bugzilla:2181661,Bugzilla:2211272,Bugzilla:2211723,Bugzilla:2211778,Bugzilla:2216759,Bugzilla:2218204, Bugzilla:2224388,Bugzilla:2218595,Bugzilla:2211273,Bugzilla:2140880, Bugzilla:2192343,Bugzilla:2222809,JIRA:RHEL-866,JIRA:RHEL-858,Bugzilla:2168738, Bugzilla:2186057,Bugzilla:2209441,Bugzilla:2216521,Bugzilla:2224094,Bugzilla:2224648,Bugzilla:2226077,Bugzilla:2193057,Bugzilla:2222433,Bugzilla:2232391, Bugzilla:2232392,JIRA:RHEL-899,JIRA:RHEL-907,JIRA:RHEL-918,JIRA:RHEL-1398,JIRA:RHEL-1496,JIRA:RHEL-1500,Bugzilla:2186908,Bugzilla:2021685, Bugzilla:2006081

rpm

Bugzilla:1688849

rsyslog

JIRA:RHELPLAN-160541,Bugzilla:1679512,JIRA:RHELPLAN-10431

rust-toolset

Bugzilla:2191740,Bugzilla:2213875

samba

Bugzilla:2190417, Bugzilla:2009213, Jira:RHELPLAN-13195

scap-security-guide

Bugzilla:2155789, Bugzilla:2157877, Bugzilla:2167999, Bugzilla:2221695, Bugzilla:2129100, Bugzilla:2169857, Bugzilla:2130185, Bugzilla:2175684, Bugzilla:2175882, Bugzilla:2184487, Bugzilla:2192893, Bugzilla:2170530, Bugzilla:2176008, Bugzilla:2209073, Bugzilla:2222583, Bugzilla:2028428, Bugzilla:2118758, Jira:RHEL-1804, Jira:RHEL-1897

selinux-policy

Bugzilla:2172541,Bugzilla:2184348,Bugzilla:2196524,Bugzilla:2166153,Bugzilla:1461914

scs

Bugzilla:2011413

spice

Bugzilla:1849563

sssd

Bugzilla:2065692, Bugzilla:2056483, Bugzilla:1947671

subscription-manager

Bugzilla:2170082

sysstat

Jira:RHEL-12008

systemtap

Bugzilla:2186932, Bugzilla:2126805

tang

Bugzilla:2188743

tuned

Bugzilla:2113900

udica

Bugzilla:1763210

udisks2

Bugzilla:2213193

valgrind

Bugzilla:2124345

vdo

Bugzilla:1949163

virt-manager

Bugzilla:2026985

vsftpd

Bugzilla:2069733

wayland

Bugzilla:1673073

webkit2gtk3

Jira:RHEL-4158

which

Bugzilla:2140566

xorg-x11-server

Bugzilla:1698565

其他

JIRA:RHELDOCS-16405,Bugzilla:2232558,JIRA:RHELDOCS-16247,JIRA:RHELDOCS-16474,JIRA:RHELDOCS-16462,JIRA:RHELPLAN-156196,JIRA:RHELDOCS-16339,JIRA:RHELDOCS-16367, JIRA:RHELDOCS-17369,Bugzilla:2236183,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:RHELDOCS-16861,Bugzilla:1642765,Bugzilla:1646541,Bugzilla:1647725,JIRA:RHELDOCS-17380,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:RHELDOCS-16755,JIRA:RHELPLAN-146398,JIRA:RHELPLAN-153267,Bugzilla:2225332,JIRA:RHELPLAN-147538,JIRA:RHELDOCS-1661 2, JIRA:RHELDOCS-17102,JIRA:RHELDOCS-16300

附录 B. 修改历史记录

0.0-12

2024 年 6 月 7 日星期五,Brian Angelica (bangelic@redhat.com)

0.0-11

2024 年 5 月 10 日星期五,Brian Angelica (bangelic@redhat.com)

0.0-10

2024 年 5 月 9 日星期四,Gabriela Fialova (gfialova@redhat.com)

0.0-9

2024 年 4 月 29 日星期一,Gabriela Fialova (gfialova@redhat.com)

0.0-8

2024 年 3 月 4 日星期一, Lucie Vařáková (lvarakova@redhat.com)

0.0-7

2024 年 2 月 29 日星期四, Lucie Vařáková (lvarakova@redhat.com)

0.0-6

2024 年 2 月 13 日星期二, Lucie Vařáková (lvarakova@redhat.com)

0.0-5

2024 年 2 月 2 日星期五, Lucie Vařáková(lvarakova@redhat.com)

0.0-4

2024 年 1 月 19 日星期五, Lucie Vařáková(lvarakova@redhat.com)

0.0-3

2024 年 1 月 10 日星期三, Lucie Vařáková(lvarakova@redhat.com)

0.0-2

2023 年 11 月 16 日星期四,Lenka Špačková (lspackova@redhat.com)

0.0-1

2023 年 11 月 15 日星期三, Lucie Vaááková(lvarakova@redhat.com)

  • Red Hat Enterprise Linux 8.9 发行注记发布 。
0.0-0

2023 年 9 月 27 日星期三, Lucie Vaááková(lvarakova@redhat.com)

  • 发布 Red Hat Enterprise Linux 8.9 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.