10.0 发行注记


Red Hat Enterprise Linux 10.0

Red Hat Enterprise Linux 10.0 发行注记

Red Hat Customer Content Services

摘要

本发行注记提供了已在 Red Hat Enterprise Linux 10.0 中实现的改进和添加的高级覆盖,并在此版本中记录了已知问题,以及值得注意的已修复的问题、技术预览、已弃用的功能、在 RHEL 10 中删除的功能和其他详情。
有关安装 Red Hat Enterprise Linux 的详情,请参考 第 3.1 节 “安装”

对红帽文档提供反馈

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

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

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

第 1 章 概述

1.1. RHEL 10.0 中的主要变化

RHEL 安装程序的主要亮点:

  • 新创建的用户默认将具有管理特权权限,除非您取消了选项。
  • 现在,您可以使用新选项而不是时区图来设置所需的时区。
  • 用于图形远程访问的远程桌面协议(RDP)取代了 VNC。

RHEL 镜像构建器的主要亮点:

  • RHEL 镜像构建器 cockpit-composer 软件包已弃用,并被新的 cockpit-image-builder 插件替代。
  • 磁盘镜像(如 AWS 或 KVM)没有单独的 /boot 分区。

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

安全性

作为技术预览,系统范围的加密策略(crypto-policies)、OpenSSL、GnuTLS 和 NSS 工具包,以及 OpenSSH 套件现在可以使用 post-quantum (PQ)算法

使用新的 sudo RHEL 系统角色,您可以一致地大规模管理跨 RHEL 系统的 sudo 配置。

RHEL 10 引入了 Sequoia PGP 工具 sqsqv,它补充了用于管理 OpenPGP 加密和签名的现有 GnuPG 工具。

OpenSSL TLS 工具包引入了符合 FIPS 的 PKCS #12 文件的创建,使用硬件令牌的 pkcs11-provider 的创建,以及许多其他改进。

RHEL 10 包含 OpenSSH 套件版本 9.9 ,与 RHEL 9 中提供的 OpenSSH 8.7 相比,它提供了很多修复和改进。

SELinux 用户空间版本 3.8 为 audit2allow 引入了一个新选项,其提供 CIL 输出模式、对 SELinux 沙盒的 Wayland 支持和其他改进。

Keylime 代理组件在 0.2.5 版本中提供,它提供了对用于设备识别的 Initial Device Identity (IDevID)和 Initial Attestation Key (IAK)的支持,并默认使用 TLS 1.3。此外,新的 keylime-policy 工具集成了 Keylime 策略的所有管理任务。

与 RHEL 9 相比,安全合规 产品在工具和内容方面有了很大的发展。您仍然可以执行您需要的所有操作,以使您的系统接近合规状态,虽然您可能需要使用与以前版本的 RHEL 不同的工具。

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

内核

这个版本向内核提供了几个重要改进和新功能。通过引入对 IBM Z (s390x)系统上 virtio-gpu 的有限支持,我们扩展了图形功能,以增强虚拟化体验。

为提高可用性和部署,rteval 工具已容器化,简化了其与各种环境的集成。您可以从通过 Quay.io 容器注册中心公开提供的容器镜像运行 rteval 工具及其运行时依赖项。

现在支持动态 EFIVARS pstore 后端。您可以在支持的后端(比如 NVMeEFIVARS)之间切换,而无需重启系统。

现在支持 rh_waived 内核命令行引导参数,来在 RHEL 中启用 waived 功能。但是,waived 功能在 RHEL 10 中默认被禁用。

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

RHEL 10.0 提供以下动态编程语言:

  • Python 3.12
  • Ruby 3.3
  • Node.js 22
  • Perl 5.40
  • PHP 8.3

RHEL 10.0 包括以下版本控制系统:

  • Git 2.45
  • Subversion 1.14

以下 web 服务器随 RHEL 10.0 一起发布:

  • Apache HTTP Server 2.4.62
  • nginx 1.26

以下代理缓存服务器可用:

  • Varnish Cache 7.4
  • Squid 6.10

RHEL 10.0 提供以下数据库服务器:

  • MariaDB 10.11
  • MySQL 8.4
  • PostgreSQL 16
  • Valkey 7.2

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

编译器和开发工具
系统工具链

RHEL 10.0 提供以下系统工具链组件:

  • GCC 14.2
  • glibc 2.39
  • Annobin 12.55
  • binutils 2.41
性能工具和调试器

RHEL 10.0 提供以下性能工具和调试器:

  • GDB 14.2
  • Valgrind 3.23.0
  • SystemTap 5.1
  • Dyninst 12.3.0
  • elfutils 0.192
  • libabigail 2.6
性能监控工具

RHEL 10.0 提供以下性能监控工具:

  • PCP 6.3.0
  • Grafana 10.2.6
编译器工具集

RHEL 10.0 提供以下编译器工具集:

  • LLVM Toolset 19.1.7
  • Rust Toolset 1.84.1
  • Go Toolset 1.23

有关详细的更改,请参阅 新功能 - 编译器和开发工具

身份管理

身份管理的主要亮点:

  • IdM 服务器只部分发挥作用,或者根本不起作用。特别是,您无法安装 ipa-server-dns 软件包,并且无法使用 -setup-dns 选项配置嵌入的 DNS 服务器。集成的 DNS 功能将不可用,直到对 bind-dyndb-ldap 和其他受影响的组件所需的更新完成了。

如需更多信息,请参阅 已知问题 - 身份管理

Web 控制台

使用 cockpit-files 软件包提供的新 文件浏览器,您可以在 RHEL web 控制台中管理文件和目录。

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

Red Hat Enterprise Linux 系统角色

10.0 RHEL 系统角色中的主要新功能:

  • 使用新的 RHEL 系统角色 aide,您可以检测对文件、目录和系统二进制文件的未授权更改。
  • 使用 systemd RHEL 系统角色,除了系统单元外,您现在还可以管理用户单元
  • 您可以使用 ha_cluster RHEL 系统角色以可反馈到角色的格式导出现有集群的 corosync 配置,来创建相同的集群。
  • 您可以使用 podman RHEL 系统角色管理类型 Pod 的四元组单元。
  • metrics RHEL 系统角色现在支持 Valkey 作为 Redis 的一个替代。

如需更多信息,请参阅 新功能和增强 - Red Hat Enterprise Linux 系统角色

1.2. 原位升级

从 RHEL 9 原位升级到 RHEL 10

目前支持的原位升级路径包括:

  • 在以下构架上从 RHEL 9.6 原位升级到 RHEL 10.0:

    • AMD 和 Intel 64 位构架(x86-64-v3)
    • 64 位 ARM 架构(ARMv8.0-A)
    • IBM Power Systems, Little Endian(POWER9)
    • 64 位 IBM Z (z14)

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

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

从 RHEL 8 原位升级到 RHEL 10

无法直接从 RHEL 8 原位升级到 RHEL 10。但是,您可以执行从 RHEL 8 原位升级到 RHEL 9,然后执行第二个原位升级到 RHEL 10 。如需更多信息,请参阅 使用 Leapp 对多个 RHEL 主版本进行原位升级

1.3. 红帽客户门户网站 Labs

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

1.4. 其他资源

Red Hat Insights 服务可让您主动发现、检查并解决已知的技术问题,所有 RHEL 订阅都可以使用它。有关如何安装 Red Hat Insights 客户端并将您的系统注册到该服务的说明,请查看 Red Hat Insights 入门页面。

注意

公共发行注记包括访问原始跟踪票据的链接,但私有发行注记无法查看,因此不包括链接。[1]



[1] 公共发行注记包括访问原始跟踪票据的链接,但私有发行注记无法查看,因此不包括链接。

第 2 章 构架

Red Hat Enterprise Linux 10.0 与内核版本 6.12.0 一起发布,它在最低要求版本(括号中所述)下支持以下构架:

  • AMD 和 Intel 64 位构架(x86-64-v3)
  • 64 位 ARM 架构(ARMv8.0-A)
  • IBM Power Systems, Little Endian
  • 64-bit IBM Z

请确定为每个构架购买正确的订阅。

第 3 章 RHEL 10 中的内容发布

3.1. 安装

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

  • 安装 ISO:包含 BaseOS 和 AppStream 软件仓库的完整安装镜像,并允许您在没有附加软件仓库的情况下完成安装。在产品下载页面中,安装 ISO 被称为 Binary DVD

    注意

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

  • 引导 ISO:用来引导到安装程序的最小引导 ISO 镜像。这个选项需要访问 BaseOS 和 AppStream 软件仓库来安装软件包。软件仓库是安装 ISO 镜像的一部分。您还可以在安装过程中注册红帽 CDN 或 Satellite,以使用来自红帽 CDN 或 Satellite 的最新 BaseOS 和 AppStream 内容。

3.2. 软件仓库

Red Hat Enterprise Linux 10 通过两个主要存储库发布:

  • BaseOS
  • AppStream

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

BaseOS 存储库中的内容旨在提供底层操作系统功能的核心集合,其为所有安装提供基础。这部分内容采用 RPM 格式,它的支持条款与之前的 RHEL 版本相似。

AppStream 仓库的内容包括额外的用户空间应用程序、运行时语言和数据库来支持各种工作负载和使用案例。

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

有关 RHEL 10 存储库及其提供的软件包的更多信息,请参阅 软件包清单

3.3. 应用程序流

用户空间组件的多个版本会以 Application Streams(应用程序流)的形式提供,其更新频率会比核心操作系统软件包的更新频率更快。这为自定义 RHEL 提供了更大的灵活性,而不影响平台或特定部署的基本稳定性。

提供以下格式的应用程序流:

  • RPM 格式
  • 软件集合
  • Flatpaks
注意

在以前的 RHEL 主版本中,一些应用程序流作为 RPM 格式的扩展,以模块形式提供。在 RHEL 10 中,红帽不打算提供任何使用模块化作为打包技术的应用程序流,因此没有与 RHEL 10 一起分发的模块内容。

每个应用程序流组件都有一个给定的生命周期,可以与 RHEL 10 的生命周期一样或更短。

RHEL 10 通过提供可以使用 dnf install 命令作为 RPM 软件包安装的初始应用程序流版本,提高了应用程序流体验。

注意

某些 RPM 格式的初始应用程序流的生命周期比 Red Hat Enterprise Linux 10 的生命周期短。

始终决定您要安装哪个应用程序流版本。

需要快速更新的内容(如备用编译器和容器工具)在滚动流中提供,它们不会并行提供备用版本。

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

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

新内核参数

accept_memory=

[MM]

值:

lazy(默认)
默认情况下,惰性接受未接受的内存,以避免较长的引导时间。lazy 选项会添加一些运行时开销,直到所有内存最终被接受为止。在大多数情况下,开销可以忽略不计。
eager
对于某些工作负载或用于调试目的,您可以使用 accept_memory=eager 来在启动过程中接受所有内存。

arm64.nomops

[ARM64]

无条件禁用 Memory Copy 和 Memory Set 指令支持。

cgroup_favordynmods=

[KNL]

启用或禁用 favordynmods

值:

  • true
  • false

默认为 CONFIG_CGROUP_FAVOR_DYNMODS 的值。

early_page_ext

[KNL]

page_ext 初始化强制到早期阶段,以覆盖早期的引导分配。

请注意,作为副作用,可能会禁用一些优化来实现这一点:例如,禁用并行内存初始化。因此,引导过程可能需要更长的时间,特别是在有大量内存的系统上。

可以通过 CONFIG_PAGE_EXTENSION=y 提供。

fw_devlink.sync_state=

[KNL]

当可以探测的所有设备都完成探测时,此参数控制使用尚未收到 sync_state () 调用的设备做什么。

值:

strict(默认)
继续等待消费者成功探测。
timeout
deferred_probe_timeout 已到期或被 late_initcall()(如果 CONFIG_MODULESfalse )调用后,放弃等待消费者,并对任何还没有收到其 sync_state() 的设备调用 sync_state()

ia32_emulation=

[X86-64]

值:

true
允许加载 32 位程序,并执行 32 位系统调用,实质上在引导时覆盖 IA32_EMULATION_DEFAULT_DISABLED
false
无条件禁用 IA32 模拟。

kunit.enable=

[KUNIT]

启用执行 KUnit 测试。要求将 CONFIG_KUNIT 设置为完全启用。

您可以使用 KUNIT_DEFAULT_ENABLED 覆盖默认值。

默认值为 1(启用)。

mtrr=debug

[X86]

在引导时启用打印与 MTRR 寄存器相关的调试信息。

rcupdate.rcu_cpu_stall_cputime=

[KNL]

提供抽样期间内对 CPU 时间及中断和任务的计数的统计。对于多个连续的 RCU 停滞,所有抽样周期都在第一个 RCU 停滞超时的一半开始。

rcupdate.rcu_exp_stall_task_details=

[KNL]

在加速的 RCU CPU 停滞警告期间,打印阻止当前加速的 RCU 宽限期的任何任务的堆栈转储。

spec_rstack_overflow=

[X86]

控制 AMD Zen CPU 上的 RAS 溢出缓解。

值:

off
禁用缓解
microcode
仅启用微码缓解。
safe-ret(默认)
启用仅软件安全 RET 缓解。
ibpb
通过对内核条目发出 IBPB 来启用缓解。
ibpb-vmexit
仅在 VMEXIT 上发出 IBPB。这个缓解特定于云环境。

workqueue.unbound_cpus=

[KNL,SMP]

指定来约束要在未绑定工作队列中使用的一个或一些 CPU 。

值 :CPU 的一个列表。

默认情况下,所有在线 CPU 都对未绑定工作队列可用。

更新的内核参数

amd_iommu=

[HW, X86-64]

将参数传递给系统中的 AMD IOMMU 驱动程序。

值:

fullflush
已弃用,等同于 iommu.strict=1
off
不要初始化系统中发现的任何 AMD IOMMU。
force_isolation
为所有设备强制进行设备隔离。不再允许 IOMMU 驱动程序根据需要解除隔离要求。此选项不会覆盖 iommu=pt
force_enable
在启用了 IOMMU 且已知有 bug 的平台上强制启用 IOMMU。请谨慎使用这个选项。
New:pgtbl_v1 (默认)
对 DMA-API 使用版本 1 页表。
New:pgtbl_v2
对 DMA-API 使用版本 2 页表。
New: irtcachedis
禁用中断重新映射表(IRT)缓存。

nosmt

[KNL, PPC, S390]

禁用对称多线程(SMT)。等同于 smt=1

[KNL, X86, PPC]

禁用对称多线程(SMT)。

nosmt=force
强制禁用 SMT。无法使用 sysfs 控制文件撤消。

page_reporting.page_reporting_order=

[KNL]

报告顺序的最小页。

值 :整数。

调整报告顺序的最小页。

New: 在超过 MAX_ORDER 时,页报告被禁用。

tsc=

禁用 TSC 的时钟源稳定性检查。

值:

[x86] reliable
将 tsc 时钟源标记为可靠。这在运行时禁用了时钟源验证,并在引导时完成了稳定性检查。用于对较旧的硬件和在虚拟化环境中启用高分辨率计时器模式。
[x86] noirqtime
不要使用 TSC 来做 irq 核算。用来在任何 RDTSC 较慢的平台上运行时间禁用 IRQ_TIME_ACCOUNTING,这个核算可能会增加开销。
[x86] unstable
将 TSC 时钟源标记为不稳定。这在启动时将 TSC 标记为无条件不稳定,并在 TSC watchdog 注意到后,避免任何进一步摇摆。
[x86] nowatchdog
禁用时钟源 watchdog。在具有严格延迟要求的情况下使用,其中不接受来自 时钟源 watchdog 的中断。
[x86] recalibrate
在 TSC 频率通过 MSR 或 CPUID (0x15)获取时,强制针对 HW 计时器(HPET 或 PM 计时器)重新计算。如果差别超过 500 ppm,则警告。
New: [x86] watchdog

使用 TSC 作为 watchdog 时钟源,使用它来检查其他 HW 计时器(HPET 或 PM 计时器),但仅在 TSC 被认为值得信任的系统上。

早期的 tsc=nowatchdog 抑制了这个。后期的 tsc=nowatchdog 覆盖了这个。控制台消息标记任何此类抑制或覆盖。

usbcore.authorized_default=

[USB]

默认的 USB 设备授权。

值:

New: -1 (默认)
授权了(与 1 相同)。
0
未授权。
1
授权了。
2
如果设备连接到内部端口,则授权。

删除的内核参数

  • cpu0_hotplug
  • sysfs.deprecated

新的 sysctl 参数

io_uring_group

值:

1
进程必须是特权的(CAP_SYS_ADMIN),或者在 io_uring_group 组中,以创建一个 io_uring 实例。
-1 (默认)
只有具有 CAP_SYS_ADMIN 功能的进程才能创建 io_uring 实例。

numa_balancing_promote_rate_limit_MBps

不同内存类型之间过高的提升或降级吞吐量可能会损害应用程序延迟。您可以使用此参数来对提升吞吐量进行速率限制。每节点的最大提升吞吐量(以 MB/s 为单位)被限制为不超过设置值。

规则是将其设置为 PMEM 节点写入带宽的 1/10。

更新了 sysctl 参数

io_uring_disabled

防止所有进程创建新的 io_uring 实例。启用这个会缩小内核的攻击面。

值:

New: 0
所有进程都可以正常创建 io_uring 实例。
New: 1

对于不在 io_uring_group 组中的非特权进程,io_uring 创建被禁用。io_uring_setup() 失败,并显示 -EPERM。仍可使用现有的 io_uring 实例。

如需更多信息,请参阅 io_uring_group 的文档。

New: 2(默认)
对所有进程,io_uring 创建被禁用。io_uring_setup() 总是失败,并显示 -EPERM 。仍可使用现有的 io_uring 实例。

第 5 章 设备驱动程序

5.1. 新驱动程序

Expand
表 5.1. 加密的驱动程序
描述Name仅限于构架

IAA 压缩加速器加密驱动程序

iaa_crypto

AMD 和 Intel 64 位构架

Intel® QuickAssist Technology - 0.6.0

intel_qat

AMD 和 Intel 64 位构架

Intel® QuickAssist Technology - 0.6.0

qat_4xxx

AMD 和 Intel 64 位构架

Intel® QuickAssist Technology - 0.6.0

qat_c3xxx

AMD 和 Intel 64 位构架

Intel® QuickAssist Technology - 0.6.0

qat_c3xxxvf

AMD 和 Intel 64 位构架

Intel® QuickAssist Technology - 0.6.0

qat_c62x

AMD 和 Intel 64 位构架

Intel® QuickAssist Technology - 0.6.0

qat_c62xvf

AMD 和 Intel 64 位构架

Intel® QuickAssist Technology - 0.6.0

qat_dh895xcc

AMD 和 Intel 64 位构架

Intel® QuickAssist Technology - 0.6.0

qat_dh895xccvf

AMD 和 Intel 64 位构架

Expand
表 5.2. 网络驱动程序
描述Name仅限于构架
 

bcm-phy-ptp

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

 

mt7925-common

64 位 ARM 架构、AMD 和 Intel 64 位构架

 

mt7925e

64 位 ARM 架构、AMD 和 Intel 64 位构架

 

mt792x-lib

64 位 ARM 架构、AMD 和 Intel 64 位构架

PCI 总线上 Bosch M_CAN 控制器的 CAN 总线驱动程序

m_can_pci

IBM Power 系统、AMD 和 Intel 64 位构架

Bosch M_CAN 控制器的 CAN 总线驱动程序

m_can

IBM Power 系统、AMD 和 Intel 64 位构架

8 个设备 USB2CAN 接口的 CAN 驱动程序

usb_8dev

IBM Power 系统、AMD 和 Intel 64 位构架

EMS Dr 的 CAN 驱动程序。Thomas Wuensche CAN/USB 接口

ems_usb

IBM Power 系统、AMD 和 Intel 64 位构架

Kvaser CAN/USB 设备的 CAN 驱动程序

kvaser_usb

IBM Power 系统、AMD 和 Intel 64 位构架

PEAK-系统 USB 适配器的 CAN 驱动程序

peak_usb

IBM Power 系统、AMD 和 Intel 64 位构架

Intel® Infrastructure Data Path Function Linux 驱动程序

idpf

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Marvell 88Q2XXX 100/1000BASE-T1 Automotive Ethernet PHY 驱动程序

marvell-88q2xxx

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Marvell Octeon EndPoint NIC 驱动程序

octeon_ep

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Microchip 251x/25625 CAN 驱动程序

mcp251x

AMD 和 Intel 64 位构架

Microchip MCP251xFD 系列 CAN 控制器驱动程序

mcp251xfd

AMD 和 Intel 64 位构架

NXP imx8 DWMAC Specific Glue 层

dwmac-imx

64 位 ARM 架构

 

bcm-phy-ptp

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Realtek 802.11ax wireless 8852C 驱动程序

rtw89_8852c

64 位 ARM 架构、AMD 和 Intel 64 位构架

Realtek 802.11ax wireless 8852CE 驱动程序

rtw89_8852ce

64 位 ARM 架构、AMD 和 Intel 64 位构架

串行线 CAN 接口

slcan

IBM Power 系统、AMD 和 Intel 64 位构架

PEAK PCAN PCIe/M.2 FD 系列卡的 Socket-CAN 驱动程序

peak_pciefd

IBM Power 系统、AMD 和 Intel 64 位构架

 

bcm-phy-ptp

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

 

mt7925-common

64 位 ARM 架构、AMD 和 Intel 64 位构架

 

mt7925e

64 位 ARM 架构、AMD 和 Intel 64 位构架

 

mt792x-lib

64 位 ARM 架构、AMD 和 Intel 64 位构架

Expand
表 5.3. 平台驱动程序
描述Name仅限于构架

AMD HSMP Platform Interface 驱动程序 - 2.0

amd_hsmp

AMD 和 Intel 64 位构架

AMD Platform Management Framework 驱动程序

amd-pmf

AMD 和 Intel 64 位构架

Intel TPMI 枚举模块

intel_vsec_tpmi

AMD 和 Intel 64 位构架

Intel TPMI SST 驱动程序

isst_tpmi

AMD 和 Intel 64 位构架

Intel TPMI UFS 驱动程序

intel-uncore-frequency-tpmi

AMD 和 Intel 64 位构架

Intel Uncore Frequency 通用模块

intel-uncore-frequency-common

AMD 和 Intel 64 位构架

Intel Uncore Frequency Limits 驱动程序

intel-uncore-frequency

AMD 和 Intel 64 位构架

Intel WMI Thunderbolt 强制电源驱动程序

intel-wmi-thunderbolt

AMD 和 Intel 64 位构架

Mellanox PMC 驱动程序

mlxbf-pmc

64 位 ARM 架构

 

intel-hid

AMD 和 Intel 64 位构架

 

isst_tpmi_core

AMD 和 Intel 64 位构架

Expand
表 5.4. 图形驱动程序和各种驱动程序
描述Name仅限于构架

AMD XCP 平台设备

amdxcp

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

DRM 执行上下文

drm_exec

 

范围子分配器帮助程序

drm_suballoc_helper

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

 

regmap-ram

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

 

regmap-raw-ram

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

 

regmap-ram

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

 

regmap-raw-ram

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

 

regmap-ram

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

 

regmap-raw-ram

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Arm FF-A 接口驱动程序

ffa-module

64 位 ARM 架构

NVIDIA BlueField-3 GPIO 驱动程序

gpio-mlxbf3

64 位 ARM 架构

passthrough 设备的 I/O 地址空间管理

iommufd

 

CS42L43 核心驱动程序

cs42l43

AMD 和 Intel 64 位构架

CS42L43 SoundWire 驱动程序

cs42l43-sdw

AMD 和 Intel 64 位构架

MEI GSC 代理

mei_gsc_proxy

AMD 和 Intel 64 位构架

 

pwrseq_emmc

64 位 ARM 架构

 

pwrseq_simple

64 位 ARM 架构

Synopsys DWC MSHC 的 SDHCI 平台驱动程序

sdhci-of-dwcmshc

64 位 ARM 架构

 

arm_cspmu_module

64 位 ARM 架构

NVIDIA pinctrl 驱动程序

pinctrl-mlxbf3

64 位 ARM 架构

NXP i.MX93 电源域驱动程序

imx93-pd

64 位 ARM 架构

Intel RAPL TPMI 驱动程序

intel_rapl_tpmi

AMD 和 Intel 64 位构架

Mellanox BlueField 电源驱动程序

pwr-mlxbf

64 位 ARM 架构

NXP i.MX93 src 驱动程序

imx93-src

64 位 ARM 架构

通过 configfs 提供信任的安全模块证明报告

tsm

AMD 和 Intel 64 位构架

5.2. 更新的驱动程序

Expand
表 5.5. 存储驱动程序更新
描述Name当前版本仅限于构架

Broadcom MegaRAID SAS 驱动程序

megaraid_sas

07.727.03.00-rc1

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Microchip Smart 系列控制器的驱动程序

smartpqi

2.1.24-046

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Emulex LightPulse Fibre Channel SCSI 驱动程序

lpfc

0:14.2.0.16

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

MPI3 Storage Controller Device 驱动程序

mpi3mr

8.5.0.0.50

 

第 6 章 新功能及功能增强

此版本添加了以下主要新功能和改进。

6.1. 安装程序和镜像创建

bootc-image-builder 现在支持创建带有高级分区的镜像模式磁盘镜像

有了此增强,bootc-image-builder 工具获得了更多自定义分区的选项。您可以使用 bootc-image-builder 工具创建带有自定义挂载点的 image-mode RHEL 的磁盘镜像,包括自定义挂载选项、基于 LVM 的分区和基于 LVM 的 SWAP。例如,通过使用 'config.toml'As 因此更改 //boot 目录的大小,您可以使用高级分区布局创建磁盘镜像。

Jira:RHELDOCS-18532[1]

RHEL 10 磁盘镜像中可预测的网络接口名称

RHEL 10 磁盘镜像默认使用可预测的网络接口名称。net.ifnames=0 内核参数已从内核参数中删除,该参数启用了可预测的命名方案。因此,使用 RHEL Image Builder 创建的系统镜像具有一致的、可预测的网络接口名称,使网络配置在不同的硬件配置之间更可靠。

如需更多信息,请参阅配置内核命令行参数 以了解更多详细信息。

Jira:RHELDOCS-18880[1]

默认情况下,在 Anaconda 中创建的新用户都是管理员

在以前的版本中,当从 instllation 程序创建新用户时,在图形安装中 为这个用户帐户选项添加管理权限 会被取消选择。启动 RHEL 10,此选项默认被选择。因此,新创建的用户默认在系统中有管理特权。如果需要,您可以不选择这个选项,以删除新用户的管理特权。

Jira:RHELDOCS-18425[1]

添加了对 CA 证书的 Kickstart 支持,以便在安装过程中启用加密的 DNS 配置

添加了对 Kickstart 文件中的 %certificate 部分的支持,以便将 CA 证书安装到 instllation 程序环境中以及安装的系统中。这简化了设置过程,并确保安装后加密的 DNS 可以正常工作,从而减少了手动配置和安全漏洞。证书以 Base64 ASCII 格式内联,并通过 --dir--filename 选项导入。此增强有助于将加密的 DNS 配置作为 Zero Trust Architecture 要求的一部分。在安装过程中设置的加密 DNS 从一开始就确保安全的 DNS 解析,从而在自动化部署中提高了安全性和合规性。

Jira:RHEL-61434[1]

现在在 RHEL 安装程序中提供 NVMe over Fabrics 设备

现在,您可以将 NVMe over Fabrics 设备添加到 RHEL 安装中,以便扩展本地设备之外的 NVMe 存储的好处,从而通过网络启用相同的高性能、低延迟访问。在 RHEL 安装程序中,您可以在 Installation Destination 屏幕中添加磁盘时,在 NVMe Fabrics Devices 部分中选择这些设备。

Jira:RHELDOCS-18819[1]

远程桌面协议(RDP)替换了用于图形远程访问的 VNC

用于图形远程访问的协议已从 VNC 替换为远程桌面协议(RDP)、一种更强大且安全的图形远程访问。它提供一个可靠且加密的连接,克服了 VNC 的限制,VNC 缺少加密支持,并强制实施了密码长度限制。

现在,您可以安全地连接到图形安装会话。作为这个更改的一部分,引进了 inst.vncinst.vncpasswordinst.vncconnect 内核引导选项,以及新的选项 inst.rdpinst.rdp.passwordinst.rdp.username

Jira:RHEL-38407

RHEL 镜像构建器支持 [customization.installer] ,来将 Kickstart 文件注入到构建的工件中

有了此增强,您可以使用 RHEL 镜像构建器中新的 [customization.installer] 蓝图自定义字段来添加自己的 kickstart 文件。您可以使用 ISO instllation 程序( 如镜像安装程序或 边缘安装程序 )的自定义,并可以选择以下选项之一:

  • 在安装过程中设置所有值。
  • 在 Kickstart 中启用 unattended = true 字段,以获得完全无人值守的安装。
  • 使用 Kickstart 字段注入您自己的 Kickstart。

根据您指定的字段,您可以获得无人值守安装,或 instllation 程序要求输入必填字段。或者,您可以根据预定义的配置默认值选择完全无人值守的安装。因此,您可以在为裸机部署构建 ISO 镜像时获得更大的灵活性。

Jira:RHELDOCS-19583[1]

bootc-image-builder 现在支持创建带有高级分区的镜像模式磁盘镜像

有了这个增强,bootc-image-builder 工具获得了更多自定义分区并创建带有高级分区布局的磁盘镜像的选项。您可以使用 bootc-image-builder 工具创建带有自定义挂载点的 image-mode RHEL 的磁盘镜像,包括自定义挂载选项、基于 LVM 的分区和基于 LVM 的 SWAP,来例如使用 config.toml 更改 //boot 目录的大小。

Jira:RHELDOCS-19291[1]

RHEL 镜像构建器的新 cockpit-image-builder 插件

对于 RHEL 10,RHEL 镜像构建器有一个新的用户界面。因此,您可以从新的自定义选项、与 Insights 服务的集成,以及在 RHEL 镜像构建器和 Insights 镜像构建器之间共享的兼容性中获益。

Jira:RHELDOCS-20166[1]

RHEL 磁盘镜像具有相同的默认区域设置和时区

在以前的版本中,RHEL 磁盘镜像没有默认的区域设置和时区集。在这个版本中,RHEL 磁盘镜像默认具有相同的区域设置和时区,即默认的区域设置是 C.UTF-8,默认的时区是 UTC。

Jira:RHELDOCS-20168[1]

默认使用 UEFI 在 AWS 上构建 RHEL 镜像的能力

在以前的版本中,您只能使用旧的 BIOS 引导在 AWS 上引导 RHEL 镜像。有了此增强,您可以默认使用 UEFI 在 AWS 上引导 RHEL 镜像。因此,安全引导现在提高了您工作负载的安全性。

Jira:RHELDOCS-20169[1]

RHEL 10 磁盘镜像不再有单独的 /boot 分区

RHEL 10 公共磁盘镜像,如 AWS 镜像或 KVM 镜像,都没有单独的 /boot 分区。在 RHEL 镜像中,/boot/ 分区删除的目标是机密计算。

此更改防止 /boot 分区超过磁盘空间,这通常是 /boot 在单独分区上的情况。因此,操作故障不太可能发生。

Jira:RHELDOCS-18902[1]

RHEL 镜像构建器现在支持蓝图自定义,以使用高级分区创建磁盘镜像

有了这个增强,RHEL 镜像构建器为自定义分区提供了更多选项,从而使用高级分区布局创建磁盘镜像。您可以使用自定义挂载选项、基于 LVM 的分区和基于 LVM 的 SWAP 自定义蓝图,例如,将 / 和 /boot 目录的大小改为蓝图文件中的 //boot 目录。

Jira:RHELDOCS-19106[1]

6.2. 安全性

keylime-agent-rust 在版本 0.2.5 中提供

keylime-agent-rust 软件包(其包含 Keylime 代理)在 RHEL 10 中的 0.2.5 版本中提供。此版本提供重要的改进和 bug 修复,最重要的是:

  • 添加了对设备身份的 Initial Device Identity(IDevID)和 Initial Attestation Key (IAK)的支持。已添加了以下配置选项:

    enable_iak_idevid
    (默认:false)允许使用 IDevID 和 IAK 证书来识别设备。
    iak_idevid_template
    (默认:detect)指定设置用于 IDevID 和 IAK 的算法的模板(在 用于身份和认证的 TPM 2.0 密钥,第 7.3.4 章节 中定义)。detect 关键字根据配置的证书中使用的算法来设置模板。
    iak_idevid_name_alg
    (默认:sha256)指定 IDevID 和 IAK 中使用的摘要算法。仅在 iak_idevid_template 选项没有设置为 detect 时使用。
    iak_idevid_asymmetric_alg
    (默认:rsa)指定 IDevID 和 IAK 中使用的签名算法。仅在 iak_idevid_template 选项没有设置为 detect 时使用。
    iak_cert
    (默认:default)指定包含 X509 IAK 证书的文件的路径。默认路径为 /var/lib/keylime/iak-cert.crt
    idevid_cert
    (默认:default)指定包含 X509 IDevID 证书的文件的路径。默认路径为 /var/lib/keylime/idevid-cert.crt
  • 使用新的 ima_ml_pathmeasuredboot_ml_path 配置选项支持可配置的 IMA 和测量引导事件日志位置。
  • 本地 DNS 名称、本地 IP 和配置的联系人 IP 作为生成的自签名 X509 证书的主题备用名称的一部分被包含。
  • registrar_ip 配置选项支持带有或没有方括号的 IPv6 地址。
  • tpm_ownerpassword 配置选项中支持十六进制编码值。
  • TLS 1.3 在到代理的连接中被启用。

Jira:RHEL-38409

提供了 libreswan 版本 4.15

在 RHEL 10 中提供了 libreswan 软件包版本 4.15 。与之前版本中提供的版本 4.12 相比,此版本提供了大量改进:

  • 通过 libsystemd 删除了对 libxz 的依赖。
  • 在 IKEv1 中,默认的提议已为 Encapsulating Security Payload (ESP)设置为 aes-sha1 ,为 Authentication Header (AH)设置为 sha1
  • IKEv1 拒绝将经过身份验证的加密与关联数据(AEAD)和非空 INTEG 合并的 ESP 提议。
  • 当连接没有提议时,IKEv1 拒绝交换。
  • IKEv1 有一个更有限的默认密码套件:

    IKE={AES_CBC,3DES_CBC}-{HMAC_SHA2_256,HMAC_SHA2_512HMAC_SHA1}-{MODP2048,MODP1536,DH19,DH31}
    ESP={AES_CBC,3DES_CBC}-{HMAC_SHA1_96,HMAC_SHA2_512_256,HMAC_SHA2_256_128}-{AES_GCM_16_128,AES_GCM_16_256}
    AH=HMAC_SHA1_96+HMAC_SHA2_512_256+HMAC_SHA2_256_128
  • libcap-ng 库的失败不再无法恢复。
  • pluto 工具中,为 AEAD 算法设置了 TFC 填充。

Jira:RHEL-52935[1]

在添加大量连接时,Libreswan 速度更快

在此更新之前,对于 libreswan IPsec 实现,在某些情况下需要大约 30 分钟时间才能添加 1,000 个连接。libreswan 的最新版本跳过了编号的连接上的 getservbyname() 函数,且将现有连接的验证卸载到 pluto 守护进程可显著减少大型配置文件的加载时间。因此,添加 1,000 个连接的时间应该大约 50 秒,而不是对同一配置的 30 分钟。

Jira:RHEL-74850[1]

提供了 GnuTLS 版本 3.8.9

RHEL 10 提供了 gnutls 软件包版本 3.8.9 。除了其他改进外,此版本还包含以下与早期版本不兼容的与安全相关的更改:

  • 支持 TLS 中的证书压缩(RFC 8879)。
  • 支持最佳非对称加密填充方案(RSA-OAEP)(RFC 8017)。
  • 已添加了用于跨多个调用的任意长度的 SHAKE 哈希的增量计算的 API。
  • 使用 PKCS #1 v1.5 填充的 RSA 加密和解密已弃用,默认不允许使用。
  • 在 FIPS 模式中,gnutls 现在默认使用基于密码的消息身份验证代码 1 (PBMAC1)导出 PKCS #12 文件,如 RFC 9579 中所定义的。如果您需要与在 FIPS 模式下运行的系统的互操作性,请明确使用 PBMAC1。
  • GnuTLS 现在检查在线证书状态协议(OCSP)响应中的所有记录。在此更新之前,当在单个 OCSP 响应中提供了多个记录时,只会检查第一个记录。此版本的 GnuTLS 会检查所有记录,直到服务器证书匹配为止。
  • FIPS 模式下批准的用于验证的最小 RSA 密钥大小增加到 2048 位。

Jira:RHEL-69524[1]

提供的 OpenSSH 的版本为 9.9

RHEL 10 提供 OpenSSH 版本 9.9,与 RHEL 9 中提供的 OpenSSH 8.7 相比,其提供了很多修复和改进。有关更改的完整列表,请参阅 openssh-9.9p1/ChangeLog 文件。最重要的更改如下:

  • 限制转发和使用已添加到 ssh-agent 程序中的密钥的系统已添加到 sshsshdssh-addssh-agent 程序中。
  • 对使用 FIDO 标准的改进:

    • verify-required 证书选项已添加到 ssh-keygen
    • 对 FIDO 密钥处理的修复减少了对支持内部用户验证的密钥的不必要的 PIN 提示。
    • 检查 ssh-keygen 程序中现有匹配凭证会在覆盖凭证前提示用户。
  • ssh_config 配置文件中的新的 EnableEscapeCommandline 选项为交互式会话启用了 EscapeChar 菜单中的命令行选项。
  • 新的 ChannelTimeout 关键字指定 sshd 守护进程是否以及应该如何快速关闭不活跃的通道。
  • ssh-keygen 工具默认生成 Ed25519 密钥,但在 FIPS 模式下,默认为 RSA。
  • 当仅发送少量数据时,ssh 客户端通过在固定间隔发送交互式流量(默认为每 20 毫秒)来执行按键时间模糊处理。它还在最后一次实际按键操作后的随机间隔内发送假的按键操作,由 ObscureKeystrokeTiming 关键字定义。
  • 对 DSA 密钥的支持已删除。
  • pam-ssh-agent 子组件已删除。
  • ssh-keysign 工具现在在单独的子软件包中。
  • 使用新的 ChannelTimeout 类型,如果所有通道在指定间隔内缺少流量,sshsshd 会关闭所有打开的通道。这是对现有每个通道超时的补充。
  • sshd 服务器阻止那些反复身份验证失败、反复连接但从未完成验证或导致服务器崩溃的客户端地址。
  • sshd 服务器会惩罚没有成功完成身份验证的客户端地址。惩罚由 sshd_config 中的新的 PerSourcePenalties 关键字控制。
  • sshd 服务器分为监听器二进制 sshd 和每个会话二进制 sshd-session。这可减少不需要支持 SSH 协议的监听程序二进制大小。这也删除了对禁用特权隔离和禁用 sshd 的重新执行的支持
  • 在可移植的 OpenSSH 中,sshd 不再使用 argv[0] 作为 PAM 服务名称。您可以使用 sshd_config 文件中的新的 PAMServiceName 指令在运行时选择服务名称。默认值为 "sshd"。
  • HostkeyAlgorithms 关键字允许 ssh 禁用从证书主机密钥到纯主机密钥的隐式回退。
  • 组件总体上已被强化,并可更好地与 PKCS #11 标准配合使用。
  • 作为技术预览,OpenSSH 支持后量子密码学(PQC)。

Jira:RHEL-60564

pkcs11-provider 添加了自定义配置

pkcs11-provider 通过使用 OpenSSL 程序中的 pkcs11 URI 来允许直接访问硬件令牌。安装后,pkcs11-provider 会自动启用,并默认加载使用 p11-kit 驱动程序,通过 pcscd 守护进程检测到的令牌。因此,如果您使用 pkcs11 URI 规范向支持该格式的应用程序提供一个密钥 URI,则您可以通过安装无需进一步更改 OpenSSL 配置的软件包来使用系统可用的令牌。卸载软件包也会删除 OpenSSL 配置片段,这防止 OpenSSL 解析配置文件时出现错误。

Jira:RHEL-29672

文件上下文等同于在 SELinux 策略中设置为 /var/run = /run

之前的 /run = /var/run 文件上下文等同现在已反转为 /var/run = /run,且 SELinux 策略源相应地已被更新。等同已被反转为与实际文件系统状态匹配,并防止一些用户空间工具报告错误。从用户或管理员视角来看,此更改不应可见。如果您有任何包含 /var/run 文件中文件规范的自定义模块,请将其改为 /run

Jira:RHEL-36094[1]

OpenSSL 将 pkcs11-provider 用于硬件令牌

因为 OpenSSL 3.0 弃用了引擎,并使用提供商替代了它们,所以 RHEL 10 将 openssl-pkcs11 引擎替换为 pkcs11-provider。这允许 OpenSSL 在应用程序中使用硬件令牌,如 apache HTTPD、libssh绑定 以及与 OpenSSL 链接的其他应用程序,并使用存储在 HSM、智能卡或其他带有 PKCSGRESS 驱动程序的非对称私钥。

Jira:RHEL-40124

新的 capability.conf (5) 手册页

添加了 capability.conf (5) 手册页。它提供了对 capability.conf 配置文件和 pam_cap.so 模块参数的描述。

Jira:RHEL-31988

提供了 libkcapi 版本 1.5.0

在 RHEL 10.0 中,lib kcapi 软件包在上游版本 1.5.0 中提供。此版本提供各种 bug 修复、优化和增强,最重要的是:

  • sha* 应用程序已被删除,并替换为名为 kcapi-hasher 的单个应用程序。与原始 sha* 应用程序具有等同名称的 kcapi-hasher 的符号链接已添加到 binlibexec 目录中。这个更改不会导致任何已知的回归。
  • 打印使用 SHA-3 的文件的校验和的 sha3sum 命令已添加。
  • kcapi_md_sha3 manufacturer 包装器 API 已添加。

Jira:RHEL-50457[1]

更严格的 SSH 主机密钥权限已被恢复

所需的主机密钥权限已从之前不太严格的 0640 改为 0600,这也是上游使用的值。之前拥有所有 SSH 密钥的 ssh_keys 组也已被删除。因此,ssh-keysign 工具使用 SUID 位,而不是 SGID 位。

Jira:RHEL-59102[1]

提供了 libssh 版本 0.11.1

提供了 libssh SSH 库版本 0.11.1 ,它提供了新的功能,最重要的是:

  • 更好的异步 SFTP IO
  • PKCS #11 提供者支持 OpenSSL 3.0
  • 测试 GSSAPI 身份验证
  • 代理跳转

Jira:RHEL-64319

提供了 p11-kit 版本 0.25.5

在 RHEL 10 中提供了 p11-kit 软件包版本 0.25.5。与之前的版本相比,这个版本提供了改进和修复,最重要的是:

  • p11-kit RPC 协议中已添加了对递归属性的支持。
  • 添加了检查库的运行时间版本的功能。
  • 无法再通过宏访问版本信息。
  • 使用新的 --id 选项,您可以将 ID 分配给使用 generate-keypair 命令生成的密钥对,或使用 import-object 命令导入。
  • 使用新的 --provider 选项,您可以在使用 p11-kit 命令时指定 PKCS #11 模块。
  • 修复了 p11-kit 中的一个 bug ,其中无法在 generate-keypair 中识别 EdDSA 机制。
  • 当不支持 C_GetInterface 函数时,p11-kit 会返回到 C_GetFunctionList 函数。

Jira:RHEL-46898[1]

pkeyutil 现在支持封装和解封

pkeyutil OpenSSL 子命令支持执行封装和解封加密操作。新的后量子加密(PQC)算法 ML-KEM (FIPS 203)仅允许封装和解封操作,现在您可以通过 pkeyutil 使用 RSASVE 和 ML-KEM 等算法。

Jira:RHEL-54156

GnuTLS 可以使用证书压缩

如果客户端和服务器都支持,GnuTLS 会根据 RFC 8879 ,使用 zlibbrotlizstd 压缩方法压缩客户端和服务器证书。此方法减少了数据使用量,并且用户不会察觉到。

Jira:RHEL-42514[1]

OpenSSL 中的新 no-atexit 选项

OpenSSL 现在使用 no-atexit 选项进行构建,因此 OPENSSL_cleanup 函数不再被注册为一个 atexit 处理程序。使用这个选项可能会导致 valgrind 调试工具报告 OpenSSL 启动时分配的资源的一次性内存泄漏。

Jira:RHEL-40408

提供了 setools 版本 4.5.0

在 RHEL 10 中提供了 setools 软件包版本 4.5.0。此版本提供了 bug 修复和增强,最重要的是:

  • 信息流分析和域转换分析的图形结果已添加到 apolsedtaseinfoflow 工具中。
  • 已在 apol 中添加了工具提示和详情弹,以帮助跨引用查询,并分析结果以及上下文相关帮助。

Jira:RHEL-29967

NSS rebase 到 3.112

NSS 加密工具包软件包已更新到上游版本 3.112,它提供很多改进和修复。最值得注意的是,以下内容:

  • 现在支持 DTLS 1.3 协议(RFC 9147)。
  • PBMAC1 支持已被添加到 PKCS #12 (RFC 9579)。
  • 已添加了对 X25519Kyber768Draft00 混合后量子密钥协议的实验性支持(draft-tls-westerbaan-xyber768d00)。它将在以后的发行版本中被删除。
  • lib::pkix 是 RHEL 10 中的默认验证器。
  • 具有小于 2048 位密钥的 RSA 证书根据系统范围的加密策略在 SSL 服务器中停止工作。
  • 添加了对基于 Module-Lattice 的数字签名算法(ML-DSA)的支持,它是一个 post-quantum 加密(PQC)标准。
  • 添加了对 MLKEM1024 键封装机制的 SSL 的混合支持。

这个版本中出现以下已知问题:* 更新 NSS 数据库密码会破坏 ML-DSA seed。如需更多信息,请参阅 RHEL-114443

Jira:RHEL-46839

OpenSSL 可以创建符合 FIPS 的 PKCS #12 文件

OpenSSL 安全通信套件已更新,现在可以根据 RFC 9579 文档创建 PKCS #12 文件。

Jira:RHEL-36659

DEFAULT 加密策略使用其他范围

crypto-policies 软件包现在提供额外的范围 @pkcs12,@pkcs12-legacy,@smime@smime-legacy,并在 DEFAULT 系统范围加密策略中使用它们。当网络安全服务(NSS)是底层加密库时,用于 PKCS #12 和 S/MIME 的加密算法的选择现在遵循系统范围加密策略。因此,您可以使用自定义策略和子策略更轻松地选择具有较高粒度的算法。范围使用以下密码、哈希和密钥交换:

cipher@pkcs12 = AES-256-CBC AES-128-CBC
cipher@pkcs12-import = 3DES-CBC+ RC2-CBC+
cipher@smime = AES-256-CBC AES-128-CBC 3DES-CBC
cipher@smime-import = RC2-CBC+
hash@{pkcs12,smime} = SHA2-256 SHA2-384 SHA2-512 SHA3-256 SHA3-384 SHA3-512 \
	SHA2-224 SHA3-224
hash@{pkcs12-import,smime} = SHA1+
key_exchange@smime = RSA DH ECDH

LEGACY 加密策略使用比 DEFAULT 策略不太严格的密码、哈希和密钥交换选择,而 FUTURE 策略更严格。因此,您可以自定义 NSS 中用来导入和导出 PKCS #12 文件和 S/MIME 加密以及解密的算法。NSS 目前是唯一链接到新提供的范围的加密库。

Jira:RHEL-50655

FIPS 模式下的 OpenSSH 默认生成 RSA 密钥

在以前的版本中,OpenSSH 中的 ssh-keygen 工具默认生成 RSA 密钥。在 RHEL 10 提供的版本中,ssh-keygen 默认在非 FIPS 模式下生成 ed25519 密钥,在 FIPS 模式下默认生成 RSA 密钥。

Jira:RHEL-37324

NSS 在 FIPS 模式下创建符合 FIPS 的 PKCS #12

PKCS.509 使用临时机制进行完整性检查。由于 PKCS #12 版本 1.1 的发布,已在 PKCS #5 版本 2.0 中创建了更严格的完整性检查的方法:基于密码的消息验证代码 1 (PBMAC1)。这个更新根据 RFC 9579 文档,在 PKCS #12 文件中添加了网络安全服务(NSS)的 PBMAC1 支持。因此,NSS 现在可以读取任何使用 RFC 9579 的 .p12 文件,并可在用户请求时生成符合 RFC-9579 的消息验证代码(MAC)。为了兼容性,当不在 FIPS 模式下时,NSS 默认会生成旧的 MAC。有关生成新 MAC 的更多信息,请参阅您系统上的 pk12util (1) 手册页。

Jira:RHEL-39732

提供了 opensc 版本 0.26.1

RHEL 10 在上游版本 0.26.1 中提供了 opensc 软件包。最显著的改进和 bug 修复是:

  • 解密后删除了用于删除与 RSA PKCS #1 v1.5 填充相关的时间侧通道泄漏的额外修复
  • 统一的 OpenSSL 日志记录
  • 支持 pkcs11-tool 工具中的 HKDF、RSA OEAP 加密、AES GCM 和 AES GMAC 机制
  • 针对未初始化内存问题的 CVE 的修复:CVE-2024-45615, CVE-2024-45616, CVE-2024-45617, CVE-2024-45618, CVE-2024-45619 和 CVE-2024-45620
  • 修复了导致在 Chromium Web 浏览器中崩溃的对齐内存的分配
  • 修复了读取 TeleSec Chipcard Operating System (TCOS)卡驱动程序中的证书

Jira:RHEL-71523

OpenSC 软件包分成 openscopensc-lib

在 RHEL 10 中,opensc 软件包已被分成 openscopensc-lib 子软件包,以便在 Flatpak 应用程序中启用对智能卡的支持。

Jira:RHEL-73314

新软件包:tpm2-openssl

RHEL 10 包括新的 tpm2-openssl 软件包,其中包含 OpenSSL TLS 工具包的 TPM2 提供商。TPM2 提供商通过 OpenSSL API 启用来自受信任的平台模块(TPM) 2.0 芯片中的加密密钥。

Jira:RHEL-30799[1]

基于规则的过滤和审计事件的转发

使用新的 audisp-filter 插件,您可以以灵活的方式根据自定义 ausearch 表达式来抑制具体的审计事件,这应该减少到下游插件的不必要的输出。

此插件充当 Audit 和其他插件之间的桥梁。它过滤掉某些审计事件,并仅转发与配置文件中指定的规则对应的事件。

因此,您可以使用 allowlist 或 blocklist 模式选择性地过滤审计事件。使用 audisp-filter 的每个插件都可以定义自己的、包含匹配规则的配置文件。一个常见用例是排除嘈杂或不相关的审计事件,并仅将重要事件转发到 syslog 插件。这允许 syslog 记录过滤的事件,使审计日志更易于管理。

Jira:RHEL-5199

SELinux 策略中限制的其他服务

此更新将额外的规则添加到限制以下 systemd 服务的 SELinux 策略中:

  • iio-sensor-proxy
  • samba-bgqd
  • tlshd
  • gnome-remote-desktop
  • pcm-sensor-server

因此,这些服务不再使用 unconfined_service_t SELinux 标签运行,这违反了 CIS 服务器级别 2 基准 "Ensure No Daemons are Unconfined by SELinux" 规则,并在 SELinux enforcing 模式下成功运行。

Jira:RHEL-62355

CentOS Stream 10 的 selinux-policy Git 存储库现在可以公开访问

现在,CentOS Stream 贡献者可以通过为 fedora-selinux/selinux-policy Git 存储库的 c10s 分支做出贡献来参与 SELinux 策略的开发。这些贡献随后被用于改进 RHEL 10 的 SELinux 策略。

Jira:RHEL-33844

提供了 setroubleshoot 版本 3.3.35

RHEL 10 中提供了 setroubleshoot 软件包版本 3.3.35 。此版本提供各种修复和增强,最重要的是:

  • 已修复对 CoreOS 的回溯追踪。
  • 已更新损坏的 AppStream 元数据。
  • 已使用的图标的路径已被修复为最近更新的路径。

Jira:RHEL-68957

其他 libvirt 服务的规则已添加到 SELinux 策略

以下与 libvirt 服务相关的 SELinux 类型已添加到 SELinux 策略:

  • virt_dbus_t
  • virt_hook_unconfined_t
  • virt_qmf_t
  • virtinterfaced_t
  • virtnetworkd_t
  • virtnodedevd_t
  • virtnwfilterd_t
  • virtproxyd_t
  • virtqemud_t
  • virtsecretd_t
  • virtstoraged_t
  • virtvboxd_t
  • virtvzd_t
  • virtxend_t

Jira:RHEL-46893

与 EPEL 软件包相关的 SELinux 策略模块已移到 selinux-policy-epel

只与 Enterprise Linux (EPEL)存储库的额外软件包中包含的软件包,而不是任何 RHEL 软件包相关的 SELinux 策略模块已从 selinux-policy 软件包移到新的 selinux-policy-epel 软件包。因此,selinux-policy 更小,系统执行诸如重建和加载 SELinux 策略等操作更快。

Jira:RHEL-73505

提供了 SELinux 用户空间版本 3.8

RHEL 10 包含 SELinux 用户空间组件版本 3.8 。与之前的版本相比,此版本引入了改进和修复,最重要的是:

  • 新的 audit2allow -C 选项已添加到 CIL 输出模式中。
  • semanage 工具允许修改 add 上的记录。
  • semanage 工具不再对本地 fcontext 定义进行排序。
  • checkpolicy 程序支持 nodecon 语句的 CIDR 表示法。
  • SELinux sandbox 工具支持 Wayland 显示协议。
  • 策略存储中的文件上下文和所有权会在 SELinux 策略重建过程中保留。
  • 二进制 file_contexts.bin 文件的格式已被更改,使用旧格式的文件被忽略。新格式已优化,且不依赖于架构。您可以通过重建 SELinux 策略,以新格式创建二进制文件 _contexts.bin 文件。
  • selabel_lookup 库调用的性能显著提高。

Jira:RHEL-69451

提供了 rsyslog 版本 8.2412.0

在 RHEL 10.0 中提供了 rsyslog 软件包版本 8.2412.0 。除了其他修复和增强,您可以将规则集绑定到 imjournal 模块。通过这种优化,可以在输入阶段过滤和处理日志消息,这减少了主消息队列上的负载。通过最大程度减少资源利用率,此功能确保更平稳地处理大量日志。

Jira:RHEL-70110[1]

提供支持 PKCS #11 的 Clevis 版本 21

RHEL 10 提供了 clevis 软件包版本 21 。此版本包含很多改进和 bug 修复,特别是:

  • 添加了 clevis-pin-pkcs11 子软件包,其提供了使用 PKCS #11 设备(智能卡)解锁 LUKS 加密卷的 pkcs11 密码。
  • 添加了对 clevis-udisks2 子软件包的两个检查。
  • 添加了防止 "Address in use" 错误的修复。

Jira:RHEL-60113

提供了 jose 版本 14

在 RHEL 10 中提供了 jose 软件包版本 14。jose 工具是一种 Javascript 对象签名和加密(JOSE)标准的 C 语言实现。最重要的改进和修复包括:

  • 改进了对 OpenSSL 中 oct JWK 类型的 len 函数的绑定检查,作为对 SAST(静态应用程序安全测试)报告的错误的一个修复。
  • 受保护的 JSON Web 加密(JWE)标头不再包含 zip
  • jose 工具通过使用高解压缩块避免了潜在的拒绝服务(DoS)攻击。

Jira:RHEL-38084

提供了 Keylime 版本 7.12

RHEL 10 提供了 Keylime 版本 7.12,其提供了重要的修复和增强,最重要的是:

  • 新的 keylime-policy 工具将 Keylime 运行时策略的所有管理任务与已测量的引导策略集成在一起,并改进了生成策略的性能。
  • verifiertenant Keylime 组件不再需要 agent 组件的有效负载。

Jira:RHEL-75794

提供了 libreswan 版本 5.2

在 RHEL 10 中,提供 Libreswan 上游版本 5.2。此版本提供很多 bug 修复和增强,最重要的是:

  • whack 命令的重复的 --ctlsocket 选项已修复(RHEL-75605)。
  • 交叉流的预期失败已修复(RHEL-73236)
  • 解析 protoport 配置已优化(RHEL-74850)。
  • ipsec showhostkey 命令的不正确输出已修复(RHEL-75975)。
  • 执行 ipsec --rereadsecrets 时崩溃已修复(RHEL-69403)。
  • keyingtriesdpd* 选项被忽略。
  • 引进了网络命名空间的 ipsec-interface-managed=no 选项。
  • 特定于 Linux 的更新:

    • 添加了对 Linux 内核 6.7 及更高版本中数据包卸载计数器的支持。
    • 根据 RFC 9347 实现 IP-TFS (IP 流量流安全)支持。
    • 通过对出站 SA 上的重播窗口设置为 0 来确保与 Linux 内核 6.10+ 的兼容。
    • 修复了与入站安全关联(SA)上 nopmtudisc 设置相关的问题。IKEv2 改进:
    • 引入了对 RFC 5723 IKE 会话恢复的支持,启用了不需要重新身份验证的会话恢复。
    • 添加了对 draft-ietf-ipsecme-ikev2-qr-alt-04 的支持,增强了密钥交换机制。
    • 在 INTERMEDIATE 交换中实现了 PPK (Post-quantum Pre-shared Key),以提高安全性。
注意
使用带有 SHA-1 的 PKCS #1 1.5 RSA 的对等验证需要使用自定义加密策略子策略在 NSS 中明确允许 SHA-1 签名。在经过身份验证的对等不支持 RFC 7427 时,当配置了 authby=rsa-sha1 或在默认配置中时,这是必需的。

Jira:RHEL-81045

SSH 现在提供了一个链接,其中包含有关 SSH 登录错误消息的更多详情

如果出现早期错误,ssh 命令行工具会提供一个到红帽客户门户网站页面的链接,其中包含有关常见错误消息和解决它们的步骤的更多详情。这在使用交互模式时帮助对 SSH 登录问题进行故障排除。

Jira:RHEL-62718[1]

提供了 nettle 版本 3.10.1

RHEL 10 包含 nettle 库软件包版本 3.10.1 。此版本提供各种 bug 修复、优化和增强,最重要的是:

  • SHA-256 哈希、AES-GCM 加密和 AES 解密通常在 64 位 PowerPC 上得到了优化。
  • 添加了一个新的确定性随机位生成器 DRBG-CTR-AES256。
  • 添加了一个 SHA-3 系列的任意长度哈希函数 SHAKE-128。
  • 添加了对 RSA-OAEP 方案的支持。
  • 添加了 SHAKE 哈希算法的增量接口。

Jira:RHEL-79116[1]

OpenSCAP rebase 到 1.3.12

OpenSCAP 软件包已更新到上游版本 1.3.12。这个版本提供 bug 修复和各种改进。如需更多信息,请参阅 OpenSCAP 发行注记

Jira:RHEL-88845

0.1.76 中提供的 SCAP 安全指南

详情请参阅 SCAP 安全指南发行注记

Jira:RHEL-74239

6.3. RHEL for Edge

RHEL 提供了 greenboot 软件包版本 0.15.8

greenboot 软件包已更新至版本 0.15.8,它提供了 bug 修复和增强。主要变更包括:

  • 修复了当 bootcrpm-ostree 可用时 bootcrpm-ostree 的兼容性。
  • 常规 bug 修复:如果 bootc 不可用,请使用 rpm-ostree 进行回滚。

Jira:RHEL-80003

6.4. 订阅管理

rhc 连接 过程中使用 CLI 选项控制功能启用,以更好地进行控制

使用增强的 rhc connect 命令,您现在可以使用 --enable-feature--disable-feature CLI 选项启用或禁用特定的功能。默认情况下,以下功能已启用:

  • 内容:提供对红帽 CDN 存储库的访问。
  • 分析:触发 Red Hat Insights 系统注册。
  • 远程管理:启动 yggdrasil.service

另外,强制实施功能依赖,以防止无效的配置。当使用 --format json 时,输出现在包含功能启用详情,改进了自动化和可见性。

Jira:RHEL-65517[1]

subscription-manager status 命令只描述注册状态

在以前的版本中,simple Content Access (SCA)模式中的 subscription-manager status 命令的输出包括几个详细信息,如合规状态。有了此增强,subscription-manager status 命令的输出已被简化为只声明注册状态。

Jira:RHEL-78003[1]

6.5. 软件管理

现在默认不会下载存储库元数据

在以前的版本中,当您下载了存储库的元数据时,filelists 元数据也会被默认下载。filelists 元数据较大,通常不需要。有了此更新,默认不会下载此元数据,这提高了响应速度,并节省了磁盘空间。filelists 元数据也不再从存储库下载或更新,在运行 dnf 命令时不会加载到 DNF 事务中。如果 dnf 命令需要 filelists 元数据或包含与文件相关的参数,则元数据会被自动载入。

注意

当软件包有需要处理 filelists 元数据的文件路径依赖项时,事务会失败,并显示依赖项解析错误及以下提示:

(try to add '--skip-broken' to skip uninstallable packages or '--setopt=optional_metadata_types=filelists' to load additional filelists metadata)
注意

如果要重新启用默认的 filelist 元数据下载,您可以将 filelists 值添加到 /etc/dnf/dnf.conf 配置文件中的 optional_metadata_types 选项中。

Jira:RHEL-12355[1]

DNF 现在使用 librpmio 处理 PGP 密钥

要验证 RPM 软件包签名,RPM 使用 rpm-sequoia 库,而不是之前使用的自定义 PGP 解析器。有了此更新,可以在 DNF 存储仓库上验证 PGP 签名的 librepo 库现在也通过 librpmio 库使用 rpm-sequoia。因此,为了提供一致的用户体验,dnflibrpmrpm 组件现在使用同样的 PGP 实现。

Jira:RHEL-47106

提供了 dnf-plugins-core 版本 4.7.0

RHEL 10 提供了 dnf-plugins-core 软件包版本 4.7.0 ,其包括一个新的 python3-dnf-plugin-pre-transaction-actions 软件包。这个软件包包括一个新的 pre-transaction-actions DNF 插件,允许您在启动 RPM 事务时运行命令。如需更多信息,请参阅系统上的 dnf-pre-transaction-actions (8) 手册页。

Jira:RHEL-38831

提供了 createrepo_c 版本 1.0.0

RHEL 10 提供了createrepo_c 软件包版本 1.0.0 。与以前版本相比的显著变化包括:

  • 默认压缩从 gz 切换到 zstd,其提供较小的可快速解压的元数据。请注意,gz 压缩仍被支持。
  • 要节省时间和磁盘空间,默认情况下不再生成 SQLite 数据库格式的元数据。请注意,您仍然可以使用 --database 开关或 sqliterepo_c 工具创建此元数据。
  • 管理 group.xml 元数据已经标准化。在以前的版本中,这个元数据出现两次,作为压缩的和未压缩的元数据。有了此更新,组元数据只作为压缩的元数据出现一次,并具有 元数据类型。

    注意

    group.xml 元数据与 RHEL 7 中的 YUM 不兼容。如果需要,您仍然可以使用 modifyrepo_c 命令创建带有旧布局的存储库。

Jira:RHELDOCS-18997[1]

DNF、PackageKit 和 microdnf 工具现在在升级过程中只安装新推荐的软件包

exclude_from_weak_autodetect 选项可以自动探测到安装的软件包的弱依赖项,并阻止安装满足已被无主题依赖项的软件包安装。在此次更新之前,这个选项默认被设置为 False。因此,在升级该软件包时,软件包的所有现有的弱依赖项都被安装了,即使一些弱依赖项之前没有安装。有了此更新,exclude_from_weak_autodetect 选项的默认值已被设置为 true。因此,在升级过程中,使用 DNF、PackageKit 或 microdnf 工具现在只安装了新推荐的软件包。

注意

您可以手动更改 /etc/dnf/dnf.conf 配置文件中的 exclude_from_weak_autodetect 的默认值。

Jira:RHELDOCS-19415[1]

RPM 数据库重定位到 /usr

有了此更新,RPM 数据库已从 /var/lib/rpm 目录移到 /usr/lib/sysimage/rpm 目录。将数据库存储在 /usr 中简化了系统快照的创建和回滚,因为不再需要考虑 /var 的内容。它还使 RHEL 与基于 rpm-ostree 的系统(如 RHEL CoreOS)保持一致,这些系统已在 /usr 目录下存储了 RPM 数据库。

注意

这个变化对大多数用户没有可见的影响,因为 RPM 在其功能上没有变化。但是,执行操作系统级别快照(通常包含 /usr 目录)的高级用户不再需要将位于 /var/lib/rpm 的 RPM 数据库包含在快照中,以便在回滚时保留系统状态。

Jira:RHELDOCS-19417[1]

新的 --exclude-services 标志,来从过时的进程列表中排除 systemd 服务

您可以使用 dnf needs-restarting --services 列出需要重启的 systemd 服务。有了此更新,一个新的 --exclude-services 已添加到 dnf needs-restarting 中。您可以使用此标志从过时的进程列表中排除 systemd 服务。

Jira:RHEL-56137

RHEL 用户的镜像模式现在可以使用 dnf --transient 执行在重启时重置的软件包事务

在以前的版本中,RHEL 用户的镜像模式可能会通过运行 bootc usr-overlay 命令临时安装、删除和升级软件包,来解锁系统,然后通过运行 DNF 命令来进行更改。如果您使用 bootc usr-overlay,当系统重启时,/usr 目录覆盖会消失,对其所做的所有更改都将重置。对其他目录的更改,包括 /etc 中的配置以及 /var 中的程序状态,在重启后保持不变。

有了此更新,已向 DNF 中添加了一个新的 --transient 标志和一个新的 persistence 配置选项,以提高 bootc 系统上的用户体验。您现在可以使用以下选项之一跳过 bootc usr-overlay 步骤:

  • 使用 dnf --transient 命令。
  • dnf.conf 文件中将 persistence 选项设置为 transient
注意

与使用 bootc usr-overlay 不同,,--transientpersistence=transient 确保 /usr 目录在事务之前、期间和之后仍然对其他进程保持只读。

例如,要临时安装 make 软件包,请输入:

# dnf install --transient make

Jira:RHEL-76849

6.6. Shell 和命令行工具

RHEL 10 提供 polkit 版本 125

polkit 软件包已升级至版本 125。主要改进包括:

  • polkit 使用 tmpfiles.d 文件将配置存储在 /etc/polkit-1 目录中。
  • polkit 现在对动态日志级别更改支持 syslog-style 日志级别和 LogControl 协议。

rebase 允许在下次引导时删除 /etc/polkit-1/<subdirs> 目录,以及使用合适的访问规则自动重新创建它们。它通过删除 /etc 将 OS 重置为出厂设置 方法,来与 polkit 保持一致。现在,如果 /etc/polkit-1 目录已删除,用户不必重新安装 polkit。

另外,polkit.service 单元文件现在包含一个在调用 polkitd 守护进程时指定的新参数,即, --log-level=<level>。默认在 RHEL 10 中,此参数被设置为 --log-level=err,仅记录错误消息。如果省略参数 --log-level,则只记录关键消息。

此更改允许用户控制应该如何在日志中,特别是在日志中详细记录 polkit 。增强解决了出于调试目的而记录每个载入的 .rules 文件的需求,防止日志被不必要的信息淹没。

Jira:RHEL-55287

RHEL 10 提供了 ksh 版本 93u+m/1.0.10

KornShell (ksh) shell 已升级到 93u+m/1.0.10 版本。主要变化有:

  • alarm 命令(一个 ksh 的 shell 内置部分)不再被支持,并将被删除。替代品是 cron 守护进程,一个用于必须在固定间隔运行任务的工具。
  • ksh shell 现在能够处理超过 32767 的并发后台作业,但受系统限制。
  • 修复了一个 bug ,该 bug 在 trap 操作中导致 exit 的不正确的默认退出状态,以及在运行具有命令替换重定向的外部命令时,在某些系统上出现的竞争情况。
  • 各种其他 bug 修复

Jira:RHEL-45981

traceroute 现在默认为 IPv6

在以前的版本中,traceroute 默认为 IPv4 地址,即使 IPv6 地址可用。有了此增强,traceroute 现在默认为 IPv6(如果可用)。

Jira:RHEL-58449

polkit-rules 可见性中的变化

之前在 polkit-123 版本中,/usr/share/polkit-1/rules.d 目录中文件的默认文件模式被明确设置,因此不会继承父目录的模式。/etc/polkit-1/rules.d 目录中文件的默认文件模式之前归 polkitd 所有。有了此增强,显著更改包括以下内容:

/usr/share/polkit-1/rules.d 目录
  • /usr/share/polkit-1/rules.d 中文件的默认权限掩码从 700 polkitd root 变为 755 root root,现在对所有用户可见。
  • 更改背后的原因是此目录中的文件被各种软件包认可,并可在项目的公共存储库中访问。
  • 在以前的版本中,权限掩码或文件模式是不标准的。新文件权限掩码也与文件系统层次结构标准(FHS)保持一致。
/etc/polkit-1/rules.d 目录
  • /etc/polkit-1/rules.d 目录中的文件代表系统管理员所创建的调整(自定义规则,与位于 /usr/share/polkit-1/rules.d 中的厂商规则不同)。这些文件可包含有关特定人员及其特权的特定于客户的数据。
  • /etc/polkit-1/rules.d 目录中文件的默认权限掩码已改为 0750 root polkitd ,以提高安全性。polkit 守护进程在 polkitd 组中,这个组对文件只有 read 权限,而不是 write 权限。即使在未经授权访问 polkit 守护进程的情况下,攻击者也无法更改规则,且也无法授予某人任何其他特权。这些文件也对 rootpolkitd 组以外的任何用户不可见。
注意

不要将 自定义 .rules 文件存储在 /usr/share/polkit-1/rules.d 中。为了安全起见,请将您的自定义规则存储或迁移到 /etc/polkit-1/rules.d 目录 中。

Jira:RHELDOCS-16414[1]

RHEL 10 提供了 systemd 版本 257

systemd 软件包已 rebase 到版本 257。主要变更包括:

  • cgroup v1 的支持(包括 legacyhybrid 层次结构)现在被视为过时。现在,systemd 始终使用 cgroup v2,即使在内核命令行上设置了 systemd.legacy_systemd_cgroup_controller=yes
  • System V 服务脚本的支持已弃用,并将在以后的版本中删除。
  • 现在,默认配置文件在 /usr/lib/systemd/ 目录中,而不是 /etc/systemd/ 中。默认配置文件可以被 /etc 中的用户配置覆盖,或使用类似单元文件的置入文件覆盖。如需了解更多详细信息,请参阅特定配置文件的 systemd-system.conf (5)手册页中的 CONFIGURATION DIRECTORIES AND PRECEDENCE 部分。

注意:现在 更新您的软件以包括原生 systemd 单元文件,而不是传统的 System V 脚本,以保持与将来的 systemd 版本的兼容性。

Jira:RHELDOCS-19411[1]

RHEL 10 提供了 ReaR 版本 2.9

ReaR 工具已升级至版本 2.9。主要变化包括:

  • 在 IBM Z 上,IPL 输出方法现已弃用。提供了 RAMDISK 输出方法作为替代方案。OUTPUT=RAMDISK 功能在所有支持的硬件构架上是一样的,这与特定于 IBM System Z 的、已弃用的 OUTPUT=IPL 功能不同。

请注意,恢复 RAM 磁盘镜像的名称以及 ReaR 生成的内核与 OUTPUT=RAMDISK 不同。内核名为 kernel-$RAMDISK_SUFFIX,ramdisk 镜像命名为 initramfs-$RAMDISK_SUFFIX.imgRAMDISK_SUFFIX 是一个您可以在 /etc/rear/local.conf 中设置的配置变量。如果没有设置变量,则默认为系统的主机名。如果您将 OUTPUT=IPL 设置与之前的 ReaR 版本搭配使用,请将其改为 OUTPUT=RAMDISK 并调整任何使用生成的内核和 RAM 磁盘镜像文件的自动化,具体取决于上述新命名规则,以便在删除 IPL 输出方法时与将来的 ReaR 版本兼容。

  • ISO_VOLID 配置变量的默认值(其使用 OUTPUT=ISO 设置时指定生成的 ISO 镜像的标签)被改为 REAR-ISO。之前 ReaR 版本中的默认值是 RELAXRECOVER。如果您需要通过标签挂载生成的 ISO 9660 文件系统,请调整 mount 命令,以适应标签更改。或者,您可以将 /etc/rear/local.conf 中的 ISO_VOLID 变量设置为 RELAXRECOVER ,以恢复之前的行为。

Jira:RHEL-72557[1]

tmux 服务现在可用

系统管理员现在可以在引导时为特定用户设置一个 tmux 会话。这在设置了 KillUserProcesses=yes 参数,且没有为 linger 配置用户的系统上非常有用。

Jira:RHEL-62152

RHEL 10 提供了 openCryptoki 版本 3.24.0

提供了 openCryptoki 软件包版本 3.24.0。添加了对以下情况的支持:

  • 非 IBM Z 平台上的 CCA 令牌(x86_64、ppc64)
  • IBM Dilithium
  • 具有 SHA-224、SHA-384 和 SHA-512 加密和解密的 RSA-OAEP
  • PKCS #11 v3.0 SHA-3 机制
  • SHA-2 机制
  • 基于 SHA 的密钥派生机制
  • 使用特定于令牌的用户组保护令牌
  • 在 z14 及之后的版本上的使用 KMA 指令的新的 libica AES-GCM API

Jira:RHEL-58996[1]

systemd-resolved 服务被完全支持,但 DNSSEC 验证除外

在这个更新前,systemd-resolved 服务作为一个技术预览提供,它被 RHEL 10.0 完全支持,但 DNSSEC 验证除外(如 systemd-resolved中实现),它是一个技术预览。

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

Jira:RHEL-88550

6.7. 基础架构服务

tuned-ppd,Valkey,libcpuiddnsconfd 软件包现在可用

以下软件包包括在 Red Hat Enterprise Linux 中:

  • tuned-ppdtune-ppddrop-in power-profiles-daemon 替代品,其使用 TuneD 作为后端。
  • Valkey :替换 Redis 并提供相同的功能。
  • libcpuid :在 TuneD 中启用准确的 CPU 型号标识。
  • dnsconfd :一个本地 DNS 缓存配置守护进程,其简化了设置 DNS 缓存、分割 DNS、通过 TLS 的 DNS 以及其它 DNS 功能。

Jira:RHELDOCS-18925[1]

root 用户的 GECOS 字段被改为 Super User

在以前的版本中,GECOS/description 的应用程序输出显示为 root。现在,/etc/passwd 文件中用户 root 的 GECOS/描述已从 root 变为 Super User

Jira:RHELDOCS-18776[1]

dnsconfd 守护进程现在可以安装

有了此增强,您现在可以安装 dnsconfd,一个本地 DNS 缓存配置守护进程。新配置的守护进程提供了一种简单的方法,来设置 DNS 缓存、分割 DNS、通过 TLS 的 DNS 和其它 DNS 功能。

Jira:RHEL-34791[1]

Kea DHCP 服务器替换了 ISC DHCP

Kea 是 RHEL 中的一个新的动态主机配置协议(DHCP)服务器解决方案。Kea DHCP 是 Internet Systems Consortium(ISC)的一种实现,其中包括可完全正常工作的 DHCPv4、DHCPv6 和动态 DNS 服务器。Kea DHCP 服务器有以下优点:

  • 它是一个带有模块钩子的可扩展服务器解决方案。
  • 它允许通过 REST API 重新配置。
  • 它有一个允许分离数据(租期)和执行环境的设计。

Jira:RHEL-9306[1]

现在,在 CUPS 配置中可以禁用弱密码

在以前的版本中,当您禁用了系统范围的加密策略中的弱密码以及 CUPS 配置时,配置更改不会生效。有了此增强,如果用户希望通过系统策略禁用特定的加密算法,CUPS 会遵循系统设置,除非在 CUPS 配置文件中设置了 SSLOptions NoSystem。在这种情况下,CUPS 不再提供系统范围的禁用算法。

因此,默认情况下,Cupsdlibcups 遵循系统加密策略。您可以通过在以下配置文件中设置 SSLOptions NoSystem 来选择退出加密策略:

  • /etc/cups/client.conf :用于使用 libcups 的应用程序
  • /etc/cups/cupsd.conf: 用于 cupsd 守护进程

设置 NoSystem 值并不安全,因为如果系统加密策略禁用了弱算法,它会允许启用弱算法。只有在通信中的其他部分不支持任何更好的加密算法时,才应使用它。

Jira:RHEL-68415[1]

Postfix 的版本为 3.8.5

RHEL 10.0 在 3.8.5 中提供 postfix。主要变更包括:

  • 简单邮件传输协议(SMTP)和本地邮件传输协议(LMTP)客户端支持查找 DNS SRV 记录。
  • 在以前的版本中,PostgreSQL 客户端编码被硬编码,并设置为 LATIN1。在这个版本中,您可以使用 encoding 参数来配置编码。默认: UTF8
  • Postfix 支持线程退回。使用这些功能,邮件读取器可以在与原始消息相同的电子邮件线程中显示非发送、延迟发送或成功发送通知。
  • 当操作失败并显示 errno == 0 时,Postfix 会记录 Application error 而不是 Success 或 Unknown error: 0,表示错误源自非内核代码。
  • Postfix 随机化内存哈希表的初始状态,以防止涉及大量攻击者查找键的哈希冲突攻击。
  • postqueue 命令会在字符串中被格式化为 JSON 或旧输出前清理不可打印的字符,如新行。
  • 默认情况下,Postfix 使用 Lightning Memory-Mapped Database (LMDB)后端。以前的默认后端 Berkeley DB (BDB)在 RHEL 10 中不可用。如果您使用 BDB 并从以前的 RHEL 版本升级到 RHEL 10,则必须转换数据库。详情请查看 Postfix 在升级到 RHEL 10 后失败带有不支持的字典 type: hash

Jira:RHELDOCS-20766[1]

6.8. 网络

RHEL 10 提供了 nftables 版本 1.1.1

RHEL nftables 框架已实现了来自上游版本 1.1.0 和 1.1.1 的更改。此更新提供了多个 bug 修复和增强。主要变更包括:

  • 添加了对 JSON 格式的多个设备的支持。
  • 在列出表时提高了性能。
  • 添加了虚拟局域网(VLAN) ID 匹配,并设置了支持,包括 802.1ad (Q-in-Q)标准。
  • 在字节速率限制器中启用了零突发。
  • 添加了对 list hooks 的出口支持。
  • 修复了 nft list hook 命令中列出不一致的问题。

如需了解更多详细信息和更改的完整列表,请参阅:

Jira:RHEL-65346

RHEL 10 提供了 iptables 版本 1.8.11

iptables 框架已升级至 1.8.11 版本,其提供了多个 bug 修复和增强。主要变更包括:

  • 新的 arptables-translate 工具
  • ebtables-nft:

    • 在匹配之前打印反(感叹号),它们反转以 iptables 保持一致。
    • 支持 -replace--list-rules 命令选项。
  • iptables-translate:

    • 将协议名称查找与 iptables 保持一致。
    • 支持套接字与 TPROXY 目标匹配。
  • iptables:

    • dccpipcomp 协议启用隐式扩展查找,以便在 -p <proto> 后不需要额外的 -m <proto> 命令选项。
  • iptables-save:

    • 避免为了一致性而调用 getprotobynumber() 函数,并提高了大型规则集的性能。
  • arptables-nft:

    • 修复了 --h-type 值和 --proto-type 掩码的错误格式化,它们导致了 arptables-restore 引起的误解。
    • 当在 --h-type--opcode--proto-type匹配中指定时,改进了无效的掩码。
  • iptables-nft

    • 修复了极端错误情况下的错误消息。
    • 修正了反向有效载荷匹配的不正确组合。

如需了解更多详细信息,请参阅 上游文档

Jira:RHEL-66725

RHEL 10 提供了 firewalld 版本 2.3.0

firewalld 服务版本 2.3.0 提供了多个改进。主要变更包括:

  • 添加了 StrictForwardPorts(布尔值,默认为 "no")配置选项,其允许 firewalld 严格控制目标 NAT 流量。启用后,只允许 firewalld 中明确启用的转发端口。这意味着容器发布的端口将被阻止。有关该功能的更多信息,请参阅 StrictForwardPorts
  • 添加了对以下服务的支持:

    • Advanced Linux Sound Architecture (ALSA)序列器上的客户端/服务器(seqnet)
    • 音乐播放器守护进程 (MPD)
    • Radsec
    • SlimeVR

有关发行版本更新的详情,请查看 上游存储库

Jira:RHEL-65865

RHEL 10 提供了 xdp-tools 版本 1.5.1

xdp-tools 软件包已升级至版本 1.5.1 ,其提供多个改进和 bug 修复。主要变更包括:

  • 添加了 xdp-forward 工具,其在支持的网络设备之间启用 XDP 加速的数据包转发。
  • 更新了 xdp-trafficgen 工具,以支持指定用户数据报协议(UDP)数据包大小。
  • 为创建 XDP 套接字(XSK)和用户内存(UMEM)对象添加了一个新的基于选项的 API。

Jira:RHEL-45730

RHEL 内核支持 netkit 网络设备类型

RHEL 内核现在支持 netkit 网络设备类型,其为容器启用基于 Berkeley Packet Filter (BPF)的高性能网络。这个变化应该会对使用支持 netkit 网络设备类型的容器网络接口(CNI)部署的容器化应用程序的效率、可扩展性和响应性有积极影响,特别是在云环境和高吞吐量系统中。

Jira:RHEL-51429[1]

i40e 驱动程序支持对 MDD 事件的自动重置行为

当检测到恶意驱动程序检测(MDD)事件时,用于 PCIe* 40 Gigabit Ethernet 的 Intel® Network Adapter 驱动程序现在可以重置有问题的 Single Root I/O Virtualization(SR-IOV)虚拟功能(VF)。您可以通过新的 mdd-auto-reset-vf 选项来激活这个自动重置行为,如下例所示:

ethtool --set-priv-flags _ethX_ *mdd-auto-reset-vf* on

当 VF 发送被归类为恶意的格式错误的数据包时,可能会导致 Tx 队列冻结,使其在几分钟内不可用。但是,如果启用了 mdd-auto-reset-vf ,当 MDD 事件发生时,优美的 VF 重置会自动恢复操作状态。

Jira:RHEL-73034[1]

nmstate 支持对 Libreswan 配置的 require-id-on-certificate 设置

有了此增强,互联网协议安全(IPsec)规范的一种实现 libreswan 现在通过使用 NetworkManager ,支持对 VPN 配置的 require-id-on-certificate 设置。有了此功能,您可以使用 require-id-on-certificate 选项配置主题备用名称(SAN)验证。因此,这个实现根据指定的设置正确强制实施了 SAN 验证:

  • 当设置为 no 时不会执行 SAN 验证
  • 当设置为 yes 时,SAN 会被验证

Jira:RHEL-58812[1]

RHEL 10 提供了 wpa_supplicant 版本 2.11

wpa_supplicant 服务已升级至版本 2.11 ,其提供了多个改进和 bug 修复。主要变更包括:

  • 添加了对设备置备协议(DPP)版本 3 的支持。
  • 添加了对 GCM-AES-256 密码套件的支持。
  • 添加了对基本服务集(BSS)颜色更新的支持。
  • 实施了 OpenSSL 3.0 API 更改。

如需更多信息以及更改的完整列表,请参阅 上游公告

Jira:RHEL-59010[1]

6.9. 内核

RHEL 10.0 中的内核版本

Red Hat Enterprise Linux 10.0 与内核版本 6.12.0 一起发布。

现在支持动态 EFIVARS pstore 后端

使用此版本,您可以在运行时动态启用 EFIVARS pstore 后端,来有效地管理系统存储。

在以前的版本中,pstore 存储后端需要重启才能修改其配置。使用此版本,您可以在支持的后端(如 NVMeEFIVARS)间切换,而无需重启系统。

另外,pstore 日志记录中的增强功能使当前活动后端的指示更加清晰。

如果您的系统上没有注册 pstore 后端,请为 UEFI 引导启用 efi_pstore

# echo "N" > /sys/module/efi_pstore/parameters/pstore_disable
[   90.116913] pstore: Using crash dump compression: deflate
[   90.118433] pstore: Registered efi_pstore as persistent store backend

Jira:RHELDOCS-19988[1]

rteval 工具的容器化

使用此更新,您可以从通过 Quay.io 容器注册中心公开获得的容器镜像运行带有其所有运行时依赖项的 rteval 工具。您可以:

  • 享受部署灵活性,而旧的 RHEL 版本可以获得较新版本的 rteval
  • 创建一个隔离环境,以确保性能评估不会中断其他系统进程或消耗过量资源。
  • 在同一或多个主机上运行多个 rteval 实例。
  • 将特定的系统资源分配给 rteval,确保更好的资源使用控制。

或者,您可以使用相关的 Docker 文件构建带有 rteval 的自己的容器镜像。此 Docker 文件位于上游存储库中,并作为源 RPM (SRPM)的一部分提供。

Jira:RHEL-28059[1]

rtla-timerlat 测试过程中在本地禁用 CPU 空闲状态的新选项:deepest-idle-state

deepest-idle-state 的参数是最深允许的空闲状态数。如果参数中的值为 -1 ,则它禁用所有空闲状态。在 rtla-timerlat 中,而不是使用 /dev/cpu_dma_latency 来全局禁用处于空闲状态的 CPU,添加了 deepest-idle-state 选项来为正在运行测量的 CPU 设置最深允许的空闲状态。

因此,您可以在 rtla-timerlat 测试期间节省电力,并反映实时工作负载,并使用 deepest-idle-state 而不是使用 /dev/cpu_dma_latency 来全局禁用它们。

Jira:RHEL-40744[1]

Deadline (DL)服务器为 CFS 任务实现一个两阶段调度程序

RHEL 10 引入了一个新的内核内 Deadline(DL)服务器,它实现了一个两阶段调度程序。它为完全公平调度程序(CFS)任务提供了保证的执行时间,从而减轻了由 Real Time (RT)或 Deadline (DL)任务导致的潜在饥饿。

新的 DL 服务器,以 deadline 优先级运行,每 1 秒调度一次 CFS 任务,为执行分配一个初始 50 毫秒的运行时窗口。这确保 CFS 任务收到定期 CPU 时间,即使被更高优先级 RT 或 DL 任务抢占时。可以使用 /sys/kernel/debug/sched/fair_server/cpu*/{runtime, period} 根据每个 CPU 来调整 runtime 和 period 参数。设置 0 运行时将禁用指定 CPU 的 DL 服务器。

DL 服务器消除了对外部工具(如 stallD )的需要,来防止饥饿,并消除了对此类工具的手动配置和调优的要求。

这为直接在内核中调度的 CFS 任务提供了一个强大的、集成的且透明的解决方案。

Jira:RHEL-58211[1]

发布了 Landlock,一个新的 Linux 安全模块(LSM)

RHEL 10.0 引入了 Landlock,它是一个新的使您的容器更安全的安全功能。Landlock 为 Podman 等进程设置严格的规则,以便通过内核 API 限制对文件系统的访问,无论权限级别如何定义规则,并允许用户在进程可访问的范围内创建硬限制。

使用 Landlock,您可以构建可减轻与错误配置或恶意针对的进程相关的潜在风险的程序。这使得容器和整个系统更加安全。

Jira:RHEL-40283[1]

现在支持 rh_waived 内核命令行引导参数

使用此版本,支持 rh_waived 内核命令行引导参数。rh_waived 用于在 RHEL 中启用豁免功能。豁免功能是被视为不需要维护、不安全、基本或已弃用的内核功能。这些功能默认在 RHEL 10 中被禁用。要使用豁免功能,您必须手动启用它们。

Jira:RHEL-26170[1]

新的 timerlat-interval INTV_UScyclictest-interval INTV_US 选项

有了这个增强,您可以使用 rteval 命令的以下新选项来修改运行 timerlatcyclictest 线程中的基础或定期间隔选项:

  • timerlat-interval INTV_US
  • cyclictest-interval INTV_US

请注意,如果您没有将其中一个选项与 rteval 一起使用,则会应用默认值。

Jira:RHEL-67424[1]

使用 cyclictest 对延迟测试在本地禁用空闲状态的新选项

  • cyclictest 工具默认将 /dev/cpu_dma_latency 设置为 0,以避免从空闲状态唤醒时增加延迟,这会禁用所有 CPU 上的空闲状态。
  • 新的 deepest-idle-state 选项只禁用被选为进行测试的 CPU 上的空闲状态。参数指定最深允许的空闲状态,将其设置为 -1 会禁用测量的 CPU 上的所有空闲状态。
  • 使用 cyclictest 进行调优应该会反映实时工作负载测试,因此使用 deepest-idle-state 而不是使用 /dev/cpu_dma_latency 来禁用 CPU 空闲状态反映了一个用例,其中实时工作负载仅禁用运行的 CPU 上的空闲状态。
  • 因此,解决所有用例的 cyclictest 覆盖范围增加了,而功耗降低了。

Jira:RHEL-65488[1]

验证 kdump 过程以防止系统失败的新的集成测试

有了这个增强,您可以在任何软件或硬件更新后检查 kdump 进程的日志文件,以防止系统失败。在分析输出日志文件后,配置条目(如 memory issuesblacklist of some drivers)已被修正,以验证 kdump 过程,并生成 vmcore。这确保在任何软件或硬件更新后,在系统崩溃之前,kdump 过程已被验证和修正。

Jira:RHEL-29941[1]

6.10. 引导加载程序

RHEL 10 提供了 grub2 版本 2.12

grub2 版本 rc2.12 提供了很多 bug 修复和增强。主要变化有:

  • GCC 13 支持。
  • clang 14 支持。
  • binutils 2.38 支持。
  • 支持使用固件调用的动态 GRUB 运行时内存添加。
  • PCI 和 MMIO UART 支持。
  • SDL2 支持。
  • LoongArch 支持。
  • TPM 驱动程序修复。
  • 许多文件系统修复。
  • 许多 CVE 和 Coverity 修复。
  • 调试支持改进。
  • 测试改进。
  • 文档改进。
  • VLAN 支持

Jira:RHEL-15032[1]

6.11. 文件系统和存储

RHEL 10 提供了 python-blivet 版本 3.10

python-blivet 软件包已 rebase 到版本 3.10,提供了各种 bug 修复和增强。最显著的更改有:

  • 删除了对 Python 2 的支持。
  • 支持向现有 Stratis 池添加磁盘。
  • 支持带有 Clevis 或 Tang 的 Stratis 加密。
  • 支持半自动调整 lvmpv 格式的大小,以填充底层块设备。

Jira:RHEL-45175

RHEL 10 提供了 cryptsetup 版本 2.7

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

  • libcryptsetup 软件包的改进,以支持启用了 kdump 的系统上的 LUKS 加密的设备。
  • 对 LUKS2 SED OPAL 功能的关键修复。
  • 避免 LUSK2 SED OPAL 功能的已知或已修复的问题。

Jira:RHEL-33395[1]

GPT 现在是 IBM Power Systems、Little Endian 和 64 位 IBM Z 架构的默认分区表

现在,在安装过程中为所有新分区的磁盘安装 RHEL 10 时,默认选择 GPT 分区表而不是 MS-DOS。

重要

对于 64 位 IBM Z 构架上的直接访问存储设备(DASD)驱动器(其中 DASD 分区表保持不变),默认不会选择 GPT 分区表。

此更新简化并标准化了不同架构和平台中的默认分区行为。

注意

AMD 和 Intel 64 位构架以及其他产品,如 RHEL 镜像模式,已默认使用 GPT 分区表。

Jira:RHEL-52200

snapm 现在在 RHEL 中可用

快照管理器(snapm)是一个新组件,旨在帮助管理系统状态快照。您可以使用它来回滚更新或更改,并引导至以前的系统快照。管理跨多个卷的快照并为快照引导和快照回滚配置引导条目通常比较复杂,且容易出错。快照管理器自动化这些常见任务,并与 Boom Boot 管理器无缝集成,从而简化了这个过程。有了此更新,您可以轻松地制作系统状态的快照,应用更新,并在需要时恢复到之前的系统状态。

Jira:RHEL-59006[1]

RHEL 10 提供了 device-mapper-multipath 版本 0.9.9

device-mapper-multipath 软件包已从版本 0.8.7 更新至 0.9.9。主要改进包括:

  • multipathd.socket systemd 单元不再默认启用。multipathd 继续在引导时自动运行。但是,如果停止了,如果有块设备 uevent 或某些 multipath 命令在运行,则它不会自动重启。要使其保持启用,请手动重启或在 multipathd.socket systemd 文件中取消以下内容的注释:
# WantedBy=sockets.target
  • multipathd 现在默认尝试作为一个具有中等优先级(10)的实时进程运行。如果失败了,它继续以一个正常进程运行,但优先级增加了。您可以通过修改标准 systemd 选项来控制这一点,如 multipathd.service systemd 文件中的 LimitRTPRIO 和 CPUWeight。
  • systemctl reload multipathd.servicemultipathd reconfigure 命令现在仅在某些东西改变了时才重新加载设备,而不是重新加载每个 multipath 设备,包括未更改的设备。要强制重新加载所有设备,请运行:
multipathd reconfigure all
  • 以下 multipath.conf 选项已弃用,并在 RHEL 10 中无法识别。如果它们包含在 multipath 文件中,则 multipath 会触发一条警告消息:

    • RHEL 9:

      • multipath_dir
      • config_dir
      • bindings_file
      • wwids_file
      • prkeys_file
      • getuid_callout
      • disable_changed_wwids
    • RHEL 8:

      • default_selector
      • default_path_grouping_policy
      • default_uid_attribute
      • default_getuid_callout
      • default_features
      • default_path_checker
  • 路径分组策略 group_by_tpg 已通过其 ALUA 目标端口组引入到组路径。这确保具有相同目标端口组的所有路径都属于同一个的 pathgroup。它的功能类似于 group_by_prio 策略,但可防止在路径更改优先级时错误分组。
重要

多路径设备中的所有路径都必须将其优先级函数设置为 aluasyfs 来使用此策略。

  • 引入了配置设置 detect_pgpolicydetect_pgpolicy_use_tpg ,它们可以在 overrides, devices, 和 defaults 部分中设置。

    • 如果启用了 detect_pgpolicymultipath 会为 aluasysfs 优先级排序器将 path_grouping_policy 设置为 group_by_priogroup_by_tpg 。如果被禁用了,则使用为设备设置的 path_grouping_policy 配置。detect_pgpolicy 默认被启用。
    • 如果启用了 detect_pgpolicy_use_tpg,则 detect_pgpolicypath_grouping_policy 设置为 group_by_tpg。如果被禁用了,则 detect_pgpolicypath_grouping_policy 设置为 group_by_priodetect_pgpolicy_use_tpg 默认被禁用。
  • multipathd 中格式化输出的新通配符:

    • 新映射格式通配符:

      • k: max_sectors_kb
    • 新路径格式通配符:

      • I: 初始状态
      • L: LUN 十六进制
      • A:alua 目标端口组
      • k: max_sectors_kb

Jira:RHELDOCS-19812[1]

dm-vdo 模块已添加到内核中

有了此更新,kmod-kvdo 模块已在 RHEL 10 内核中被 dm-vdo 模块替代。另外,Virtual Data Optimizer (VDO) sysfs 参数已被删除。有关删除的 sysfs 参数的更多信息,请参阅 文件系统和存储中删除的功能

Jira:RHELDOCS-19842[1], Jira:RHELDOCS-19066

nvme-clicryptsetup 现在可用于 NVMe SED 上的 Opal 自动化

NVMe 自助加密驱动器(SED)支持硬件加密技术的 Opal 存储规范,以保护存储在驱动器中的数据。在以前的版本中,对 NVMe SED 的 Opal 支持需要手动交互来管理访问数据的密码。

有了这个更新,您可以使用 nvme-clicryptsetup 自动化加密管理和驱动器解锁。

运行以下命令,来在 NVMe SSD 上使用 NVMe SED 选项:

  • 要发现 SED Opal 锁定功能:
# nvme sed discover /dev/nvme0n1
Locking Features:
	Locking Supported: Yes
	Locking Feature Enabled: No
	Locked: No
  • 要初始化用于锁定的 SED Opal 设备:
# nvme sed initialize /dev/nvme0n1
New Password:
Re-enter New Password:
# nvme sed discover /dev/nvme0n1
Locking Features:
	Locking Supported: Yes
	Locking Feature Enabled: Yes
	Locked: No
  • 要锁定一个 SED Opal 设备:
# nvme sed lock /dev/nvme0n1
# nvme sed discover /dev/nvme0n1
Locking Features:
	Locking Supported: Yes
	Locking Feature Enabled: Yes
	Locked: Yes
  • 要解锁一个 SED Opal 设备:
# nvme sed unlock /dev/nvme0n1
# nvme sed discover /dev/nvme0n1
Locking Features:
	Locking Supported: Yes
	Locking Feature Enabled: Yes
	Locked: No
  • 要更改 SED Opal 设备密码:
# nvme sed password /dev/nvme0n1
Password:
New Password:
Re-enter New Password:
  • 要从锁定恢复一个 SED Opal 设备:
# nvme sed lock /dev/nvme0n1
# nvme sed discover /dev/nvme0n1
Locking Features:
        Locking Supported:         Yes
        Locking Feature Enabled:   Yes
        Locked:                    Yes
# nvme sed unlock /dev/nvme0n1
# nvme sed discover /dev/nvme0n1
Locking Features:
        Locking Supported:         Yes
        Locking Feature Enabled:   Yes
        Locked:                    No
# nvme sed revert /dev/nvme0n1
  • 要重置 SED Opal 设备,以禁用具有破坏性恢复的锁定:
# nvme sed lock /dev/nvme0n1
# nvme sed discover /dev/nvme0n1
Locking Features:
        Locking Supported:       Yes
        Locking Feature Enabled: Yes
        Locked: Yes
# nvme sed revert -e /dev/nvme0n1
Destructive revert erases drive data. Continue (y/n)? y
    Are you sure (y/n)? y
    Password:
    # nvme sed discover /dev/nvme0n1
    Locking Features:
        Locking Supported:       Yes
        Locking Feature Enabled: No
        Locked:                  No

注意:使用没有 -e 参数的 nvme sed revert ,以避免删除 NVMe 磁盘上的数据。

该设备可以是 NVMe 字符设备,如 /dev/nvme0、NVMe 块设备,如 / dev/nvme0 n1,或 mctp 地址,格式为 mctp:<net>,<eid>[:ctrl-id]

在 RHEL 10 上通过 nvme-cli 使用 NVMe OPAL 设备的命令示例:

  • 初始化、锁定和解锁 NVMe 磁盘,并验证解锁后磁盘上的数据是否保持不变:
# mount /dev/nvme0n1p1 /mnt/
# dd if=/dev/urandom of=/mnt/test.file bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 3.65616 s, 294 MB/s
# md5sum /mnt/test.file
57edc80dab5bf803d0944e281bf2e9dd  /mnt/test.file
# umount /dev/nvme0n1p1
# nvme sed discover /dev/nvme0n1
Locking Features:
	Locking Supported:         Yes
	Locking Feature Enabled:   No
	Locked:                    No
# nvme sed initialize /dev/nvme0n1
New Password:
Re-enter New Password:
# nvme sed lock /dev/nvme0n1
# nvme sed discover /dev/nvme0n1
Locking Features:
	Locking Supported:         Yes
	Locking Feature Enabled:   Yes
	Locked:                    Yes
# mount /dev/nvme0n1p1 /mnt/
mount: /mnt: can't read superblock on /dev/nvme0n1p1.
       dmesg[8] may have more information after a failed mount system call.
# nvme sed unlock /dev/nvme0n1
# mount /dev/nvme0n1p1 /mnt/
# md5sum /mnt/test.file
57edc80dab5bf803d0944e281bf2e9dd  /mnt/test.file
# umount /dev/nvme0n1p1
# nvme sed discover /dev/nvme0n1
Locking Features:
    Locking Supported:         Yes
    Locking Feature Enabled:   Yes
    Locked:                    No
# nvme sed revert /dev/nvme0n1
Password:
# nvme sed discover /dev/nvme0n1
Locking Features:
    Locking Supported:         Yes
    Locking Feature Enabled:   No
    Locked:                    No

Jira:RHELDOCS-19877[1]

RHEL 10 提供具有 TLS 支持的 NFS

完全支持具有传输层安全(TLS)的网络文件系统(NFS)。此功能通过为远程过程调用(RPC)流量启用 TLS 提高了 NFS 安全性,确保客户端和服务器间加密的通信。详情请参阅 配置具有 TLS 支持的 NFS 服务器

请注意,带有 TLS 的 NFS 依赖来自内核 TLS (kTLS)的支持。kTLS 的通用功能是作为技术预览提供。详情请查看 技术预览功能 章节中的发行注记。

Jira:RHEL-74415[1]

CIFS 客户端提供了在 SMB 共享下创建特殊文件的能力

Common Internet File System(CIFS)客户端默认能够创建原生服务器消息块(SMB)符号链接。您还可以使用 reparse=default|nfs|wsl 挂载选项,通过网络文件系统(NFS)或 Windows Subsystem for Linux(WSL)重解析点创建特殊文件,如字符设备、块设备、管道和套接字。

Jira:RHEL-78152[1]

原子写现在可用

RHEL 10 引入了原子写,作为跨文件系统、块层和驱动程序的跨子系统增强。RWF_ATOMIC 标志用于启用撕裂写保护。这确保系统崩溃或电源故障后,在稳定存储上存在所有写数据或没有任何写数据。在这种情况下,不会发生部分数据写或撕裂写。

现有的写操作不是原子的,可以在操作过程中中断。这会导致在崩溃和电源故障时部分写入数据。

此增强使提供关键数据一致性保证的应用程序(如数据库)能够优化其一致性算法的性能。

Jira:RHEL-60811[1]

默认启用自动 RAID 检查

在这个版本中,raid-check 服务被默认启用。这样可确保 raid-check.service 在系统引导后以调度的间隔自动运行,执行定期 RAID 一致性检查而无需手动干预。

Jira:RHEL-86165[1]

6.12. 高可用性和集群

pcs 现在在创建或更新资源时验证资源参数

当您创建或更新集群资源时,pcs 命令行界面现在会自动要求资源代理验证您输入的参数。如果指定了 --agent-validation,无效的参数会产生错误。为了保持向后兼容性,如果您没有指定 --agent-validation,无效的参数会打印一条警告,但不会防止错误配置。

Jira:RHEL-35670

新的 -yes 标志,以确认潜在的破坏性操作

要确认潜在的破坏性操作,如销毁集群、解除阻止仲裁或确认被隔离的节点,pcs 命令行界面现在支持 --yes 标志。在以前的版本中,您可以使用 --force 标志确认这些操作,该标志也用于覆盖验证错误。当将这两个功能合并在一个标志中时,当用户只是想覆盖验证错误时,可能会无意中确认潜在的破坏性操作。现在您应该使用 --force 标志来覆盖验证错误,且您应该使用 --yes 标志来确认潜在的破坏性操作。

Jira:RHEL-36612

新的 pcs status wait 命令

pcs 命令行界面现在提供 pcs status wait 命令。此命令可确保 Pacemaker 完成对 Cluster Information Base (CIB)的更改所需的任何操作,不需要执行任何进一步的操作,使实际集群状态与请求的集群状态匹配。

Jira:RHEL-38491[1]

pcs 支持查询集群中资源状态的新命令

pcs 命令行界面现在提供 pcs status query resource 命令,以查询集群中单个资源的各种属性。这些命令查询:

  • 资源的存在
  • 资源的类型
  • 资源的状态
  • 有关集体资源成员的各种信息
  • 资源在哪些节点上运行

您可以将这些命令用于基于 pcs 的脚本,因为不需要解析纯文本输出。

Jira:RHEL-38489[1]

新的 pcs resource defaultspcs resource op defaults 选项用于以文本、JSON 和命令格式显示配置

pcs resource defaultspcs resource op defaults 命令及其别名 pcs stonith defaultspcs stonith op defaults 现在提供 --output-format 选项。

  • 指定 --output-format=text 以纯文本格式显示配置的资源默认值或操作默认值,这是此选项的默认值。
  • 指定 --output-format=cmd 会显示从当前集群默认值配置中创建的 pcs resource defaultspcs resource op defaults 命令。您可以使用这些命令在不同系统上重新创建配置的资源默认值或资源操作默认值。
  • 指定 --output-format=json 以 JSON 格式显示配置的资源默认值或资源操作默认值,这适用于机器解析。

Jira:RHEL-38487[1]

pcsd Web UI 现在作为一个 RHEL web 控制台附加组件提供

当安装了 cockpit-ha-cluster 软件包时,pcsd Web UI 现在作为 HA 集群管理 RHEL web 控制台附加组件提供。它不再作为独立接口运行。

Jira:RHEL-23048

关闭 panic 节点,而无需自动重启的新的 Pacemaker 选项

您现在可以将 /etc/sysconfig/pacemaker 配置文件中的 PCMK_panic_action 变量设置为 offsync-off。当您将此变量设置为 offsync-off 时,节点会在 panic 情况后保持关闭,而不是自动重启。

Jira:RHEL-39057

用于以文本、JSON 和命令格式显示集群资源标签的新的 pcs tag 命令选项

pcs tag [config] 命令现在支持以下用例的 --output-format 选项:

  • 通过指定 --output-format=text,以纯文本格式显示配置的文本。这是此选项的默认值。
  • 通过指定 --output-format=cmd 显示从当前集群标签配置创建的命令。您可以使用这些命令在不同的系统上重新创建配置的标签。
  • 通过指定 --output-format=json 以 JSON 格式显示配置的标签,这适合机器解析。

Jira:RHEL-21047

支持以 JSON 格式和 pcs 命令导出隔离级别配置

pcs stonith configpcs stonith level config 命令现在支持 --output-format= 选项,来以 JSON 格式显和 pcs 命令示隔离级别配置。

  • 指定 --output-format=cmd 会显示从配置隔离级别的当前集群配置创建的 pcs 命令。您可以使用这些命令在不同系统上重新创建配置的隔离级别。
  • 指定 --output-format=json ,以 JSON 格式显示隔离级别配置,这适用于机器解析。

Jira:RHEL-38483

使用单个 pcs 命令删除多个资源

在此更新之前,pcs resource deletepcs resource removepcs stonith deletepcs stonith remove 命令支持一次只移除一个资源。有了此更新,您现在可以使用单个命令一次删除多个资源。

Jira:RHEL-61889

简化了全局唯一集群资源克隆的配置

要将集群资源克隆配置为全局唯一,现在在创建之前创建的资源或资源组的克隆时配置克隆选项 clone-node-max > 1 就足够了。也不再需要配置克隆选项 globally-unique="true"

Jira:RHEL-56675

支持使用 SL/TLS 证书加密 Pacemaker 远程连接

您现在可以使用 X.509 (SSL/TLS)证书加密 Pacemaker 远程连接。在以前的版本中,预共享密钥(PSK)只支持加密。通过对 SL/TLS 证书的支持,您可以使用现有主机证书进行 Pacemaker 远程连接。

要为 Pacemaker 远程连接配置 SSL/TLS 证书:

  1. 使用 pcs cluster node add-guest 命令或 pcs cluster node add-remote 命令创建远程连接。当您创建远程连接时,连接使用 PSK 加密。
  2. 通过在所有集群节点和 Pacemaker 远程节点上更新 PCMK_ca_filePCMK_cert_filePCMK_key_file 以及可选的 PCMK_crl_file 变量来将远程连接转换为使用证书。

有关使用 SL/TLS 证书配置加密的详情,请参考 pacemaker_remote 节点的主机和客户机身份验证

Jira:RHEL-7600

更新了 Pacemaker 规则中的日期规范和 duration 选项

Pacemaker 规则不再支持以下选项:

  • 无效的 duration 选项: monthdays,moon,weekdays,weekyears,yearsdays
  • 无效的 date-spec 选项:moon,yearsdays

Pacemaker 规则现在支持以下选项:

  • 支持的 duration 选项现在为 seconds,minutes,hours,days,weeks,monthsyears
  • 支持的 date-spec 选项现在为 secondsminutes,hours,monthdays,weekdays,yeardays ,months,weeks,yearsweekyears

您可以在以下 pcs 命令中配置将 durationdate-spec 选项合并的规则:

  • pcs resource defaults
  • pcs stonith defaults
  • pcs resource op defaults
  • pcs stonith op defaults
  • pcs constraint location

Jira:RHEL-49527, Jira:RHEL-49524

从 Booth 配置中删除后,从 CIB 中删除 Booth 集群票据

使用 pcs booth ticket remove 命令删除 Booth 集群票据后,Booth 票据的状态会在 Cluster Information Base (CIB)中保持 loaded 。在从一个站点上的 Booth 配置中删除一个票据,并使用 pcs booth pull 命令将 Booth 配置拉取到另一个站点后,也会出现这种情况。当您配置一个票据约束时,这可能会导致问题,因为即使票据约束被删除后,也可以授予票据约束。因此,集群可能冻结或隔离一个节点。您可以使用 pcs booth ticket cleanup 命令从 CIB 中删除 Booth 票据来防止这种情况。

有关从 CIB 中删除 Booth 票据的详情,请参考 删除 Booth 票据

Jira:RHEL-12709, Jira:RHEL-7602

支持新的 Ha 集群管理功能

对于 RHEL 10,pcsd Web UI 现在作为 RHEL web 控制台附加组件,作为 HA 集群管理应用程序提供。它不再作为独立接口运行。HA 集群管理应用程序现在支持以下功能:

  • 当您将 placement-strategy 集群属性设置为 default 时,HA 集群管理应用程序在节点和资源的使用率属性旁边会显示一条警告。此警告指出,由于 placement-strategy 配置,使用率没有任何影响。
  • HA 集群管理应用程序支持 dark 模式,您可以通过 masthead 中的用户菜单进行设置。

Jira:RHEL-38493[1], Jira:RHEL-38496

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

RHEL 10 中的 Python 3.12

Python 3.12 是 RHEL 10 中的默认 Python 实现。Python 3.12 作为 BaseOS 存储库中的非模块化 python3 RPM 软件包被分发,通常被默认安装。Python 3.12 将支持 RHEL 10 的整个生命周期。

其他版本的 Python 3 将通过 AppStream 存储库作为具有较短生命周期的 RPM 软件包发布,并可并行安装。python 命令(/usr/bin/python)和其他 Python 相关的命令(如 pip )位于未指定版本的表单中,并指向默认的 Python 3.12 版本。

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

  • Python 引入了一个用于通用类和函数的新 type 语句和新类型参数语法。
  • 格式化的字符串字面(f-string)已在语法中被正式化,现在被直接集成到解析器中。
  • Python 现在提供一个唯一的每解释器全局解释器锁(GIL)。
  • 现在,您可以使用 Python 代码中的缓冲协议。
  • CPython 中的字典、列标和理解现在是内联的。这显著提高了理解执行的速度。
  • CPython 现在支持 Linux perf 分析器。
  • CPython 现在对支持的平台提供堆栈溢出保护。
  • Python 3.12 使用 GCC 的 -O3 优化标记进行编译,该标记已默认在上游使用。因此,您可以观察到 Python 应用程序和解释器的性能有所提高。

例如,要从 Python 3.12 堆栈安装软件包,您可以使用以下命令:

# dnf install python3
# dnf install python3-pip

例如,要运行解释器,例如,您可以使用以下命令:

$ python
$ python3
$ python3 -m pip --help

Jira:RHELDOCS-18402[1], Jira:RHEL-45315

RHEL 10 引入了 Perl 5.40

RHEL 10 包括 Perl 5.40,与以前可用的 5.32 版本相比,其提供了各种改进。

  • 内核改进:

    • Perl 现在支持 Unicode 15.0。
    • 现在,您可以使用一个新的 -g 命令行选项,它是 umask 选项 -0777 的一个别名。
    • -M 命令行选项现在接受空格。
    • 新的 内置 模块现在为新的始终存在的功能提供文档。
    • 添加了一个新的 try/catch 功能。
    • 弃用警告现在有特定的子类来提供精细的控制。请注意,您仍然可以在单个声明中禁用所有弃用警告。
    • @INC 钩子已被改进,包括 $INC 变量和新的 INCDIR 方法。
    • 现在在编译时间会检测流出 deferfinally 模块的控制流。
    • 在模式中使用 (?{ …​ })(?{ …​ }) 现在会在该模式中全局禁用各种优化。
    • REG_INF 正则表达式引擎限定符的限制已从 65,536 增加到 2,147,483,647。
    • 新的正则表达式变量 ${^LAST_SUCCESSFUL_PATTERN} 允许访问当前范围中匹配的最后一个成功的模式。
    • 引入了一个新的 __CLASS__ 关键字。
    • Perl 现在支持一个新的 ^^ 逻辑 XOR 运算符。
  • 不兼容的更改:

    • 物理空 sort 函数现在会触发一个编译时间错误。
    • readline() 函数不再清除流错误和 EOF 标志。
    • INIT 块不再在 BEGIN 块内的 exit() 函数后运行。
    • 对未知软件包调用 import 方法现在会产生一条警告。
    • return 函数不再允许一个间接对象。
    • 错误和警告中的更改现在可以在测试中导致失败。
  • 弃用:

    • ' 字符用作软件包名称分隔符已弃用。
    • switch 功能和智能匹配运算符 ~~ 已被弃用。
    • 使用 goto 函数从外部范围跳到内部范围已弃用。
  • 内部更改:

    • 已删除多个已弃用的 C 函数。
    • 内部 C API 功能现在在支持它的平台上使用 __attribute__(hidden) 属性隐藏。这意味着它们不再从这些平台上的 XS 模块调用。
  • 模块:

    • Term::TableTest2::Suite 模块已添加到 Perl Core 中。
    • 大多数模块都已更新。

如需更多信息,请参阅 perl5340delta,perl5360delta,perl5380deltaperldelta 手册页。

Jira:RHELDOCS-18869[1]

RHEL 10 引入了 Ruby 3.3

RHEL 10 包括 Ruby 3.3.7。这个版本提供了几个性能改进、程序错误和安全修复以及新功能:

主要改进包括:

  • 您可以使用新的 Prism 解析器而不是 RipperPrism 是 Ruby 语言的一个可移植的、容错的和可维护的递归下降解析器。
  • YJIT,Ruby 即时(JIT)编译器实现,不再是实验性的,它提供了主要的性能改进。
  • 改进了 Regexp 匹配算法,以减少潜在的正则表达式拒绝服务(ReDoS)漏洞的影响。
  • 新的实验性 RJIT (一个纯 Ruby JIT)编译器取代了 MJIT。在生产环境中使用 YJIT。
  • 现在提供了一个新的 M:N 线程调度程序。

其他显著变化:

  • 现在,您必须使用 Lrama LALR 解析器生成器,而不是 Bison
  • 已删除了几个弃用的方法和常量。
  • Racc gem 已从默认 gem 提升到捆绑 gem。

要安装 Ruby 3.3,请输入:

# dnf install ruby

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

Jira:RHELDOCS-19658[1]

RHEL 10 提供了 Node.js 22

RHEL 10 与 Node.js 22 一起分发。与之前可用的 Node.js 20 相比,这个版本提供了许多新功能、bug 修复、安全修复和性能改进。

主要变更包括:

  • V8 JavaScript 引擎已升级至版本 12.4。
  • 现在在可用的构架(AMD 和 Intel 64 位构架和 64 位 ARM 架构)上默认启用了 V8 Maglev 编译器。
  • Maglev 提高了短期 CLI 程序的性能。
  • npm 软件包管理器已升级至 10.8.1 版本。
  • node --watch 模式现在被视为稳定。在 watch 模式下,监视文件中的更改导致 Node.js 进程重启。
  • 与浏览器兼容的 WebSocket 实现现在被视为稳定,并默认启用。因此,提供了 Node.js 的 WebSocket 客户端,而没有外部依赖。
  • Node.js 现在包含从 package.json 执行脚本的一个实验性功能。要使用这个功能,请运行 node --run <script-in-package.json> 命令。

要安装 Node.js 22,请输入:

# dnf install nodejs

Jira:RHEL-35992

RHEL 10 引入了 PostgreSQL 16

RHEL 10 与 PostgreSQL 版本 16 一起分发。

主要改进包括:

  • 增强的批量加载提高了性能。
  • libpq 库中的新的 load_balance_hosts 选项支持更高效的负载均衡。
  • /var/lib/pgsql/data/ 目录中的配置文件支持包括自定义 pg_hba.confpg_ident.conf 文件。
  • /var/lib/pgsql/data/pg_hba.conf 文件支持匹配数据库和角色条目的正则表达式。

其他更改包括:

  • 没有 postmaster 二进制文件。改为使用 postgres 二进制文件。此更改仅影响使用 postmaster 启动服务的用户。
  • 软件包中没有 PDF 文档。改为使用 上游文档

如需更多信息,请参阅使用 PostgreSQL

要安装 PostgreSQL 16,请输入:

# dnf install postgresql16

Jira:RHEL-62694

RHEL 10 引入了 MySQL 8.4

RHEL 10 与 MySQL 8.4 一起分发。与之前提供的 8.0 版本相比,主要变化包括:

  • 弃用的 mysql_native_password 身份验证插件不再启用。
  • 当升级到 MySQL 8.4 时,具有 BINLOG_ADMIN 特权的用户帐户或角色会自动被授予 TRANSACTION_GTID_TAG 特权。
  • 安装 MySQL 8.4 时,会在服务器的数据目录中创建或更新 mysql_upgrade_history 文件。文件为 JSON 格式,包括有关安装的版本、安装的日期和时间的信息,以及发行版本是否是长期支持(LTS 系列)或创新系列的一部分。
  • 在数据库中授权使用 %_ 字符作为通配符已被弃用,通配符功能将在以后的 MySQL 发行版本中被删除。这些字符将被视为文字。当 partial_revokes 服务器系统变量设为 ON 时,它们已被视为文字。
  • 在检查特权时,服务器将 % 字符视为 localhost 的同义词已被弃用。
  • 弃用的 --ssl-admin-ssl 服务器选项及 have_sslhave_openssl 服务器系统变量已被删除。改为使用 --tls-version--admin-tls-version 服务器系统变量。
  • 弃用的 default_authentication_plugin 系统变量已被删除。改为使用 authentication_policy 服务器系统变量。
  • 弃用的 SET_USER_ID 特权已被删除。改为您可以将 SET_ANY_DEFINER 特权用来创建定义器对象,以及用于孤立对象保护的 ALLOW_NONEXISTENT_DEFINER 特权。
  • 弃用的 mysql_upgrade 工具已被删除。

如需更多信息,请参阅 上游 MySQL 文档

Jira:RHEL-36050

RHEL 10 提供了带有 pgvector 扩展的 PostgreSQL 16

RHEL 10 与 PostgreSQL 16 一起分发。除了 pgaudit,pg_repackdecoderbufs 扩展外,Postgreql 堆栈现在还提供 pgvector 扩展。使用 pgvector 扩展,您可以直接存储和查询 PostgreSQL 数据库中嵌入的高维度向量,并执行向量相似性搜索。向量嵌入的是通常在机器学习和 AI 应用程序中使用的数据的数字表示,用来捕获文本的语义含义、镜像或其他数据类型。

Jira:RHEL-35993[1]

RHEL 10 引入了 MariaDB 10.11

RHEL 10 与 MariaDB 10.11 一起分发。主要变更包括:

  • 新的 sys_schema 功能。
  • 原子数据定义语言(DDL)语句。
  • 新的 GRANT …​ TO PUBLIC 特权。
  • 将 SUPER 与 READ ONLY ADMIN 特权分开。
  • 新的 UUID 数据库数据类型。
  • 支持安全套接字层(SSL)协议版本 3;MariaDB 服务器现在需要正确配置的 SSL 才能启动。
  • 通过 natural_sort_key()函数支持自然排序。
  • 一个用于任意文本格式的新的 SFORMAT 函数。
  • 对 UTF-8 字符集和 UCA-14 排序规则的更改。
  • systemd 套接字激活文件位于 /usr/share/ 目录中。请注意,与上游不同,它们不是 RHEL 中默认配置的一部分。
  • 包含 MariaDB 字符串而不是 MySQL 的错误消息。
  • 中文语言中提供的错误消息。
  • 对默认 logrotate 文件的更改。
  • 对于 MariaDB 和 MySQL 客户端,在命令行上指定的连接属性(例如,--port=3306)现在强制客户端与服务器之间通信的协议类型,如 tcp、socket、pipe 或 memory。

Jira:RHELDOCS-19550[1]

6.14. 编译器和开发工具

RHEL 10 引入了 GCC 14.2

RHEL 10 与 GNU Compiler Collection (GCC)版本 14.2 一起发布。

自 GCC 13 以来的显著变化包括:

  • 优化和诊断改进
  • 新的 -fhardened umbrella 选项,其启用一组强化标记
  • 新的 -fharden-control-flow-redundancy 选项,来检测将控制转换到函数中间的攻击
  • 新的 strub 类型属性,来控制函数和变量的堆栈清理属性
  • 新的 -finline-stringops 选项,来强制某些 mem* 函数的内联扩展
  • 支持新的 OpenMP 5.1、5.2 和 6.0 功能
  • 几个新的 C23 功能
  • 多个新的 C++23 和 C++26 功能
  • 几个已解决的 C++ 缺陷报告
  • 对 C++ 库中 C++20、C++23 和 C++26 的新的和改进了的实验性支持
  • 支持 64 位 ARM 架构中的新 CPU
  • 64 位 Intel 架构中的多个新指令集架构(ISA)扩展,例如:AVX10.1、AVX-VNNI-INT16、SHA512 和 SM4
  • GCC 的静态分析器中的新警告
  • 某些警告变为错误; 详情请参阅 移植到 GCC 14
  • 各种 bug 修复

有关 GCC 14 中更改的更多信息,请参阅 上游 GCC 发行注记

Jira:RHEL-45041

GCC 14 默认为 x86-64-v3

RHEL 10 中的 GCC 14 默认为 x86-64-v3 微架构级别。这个级别默认启用某些功能,如 AVX 和 AVX2 指令集,以及融合的 multiply-add(FMA)指令集。详情请查看相关 文章

Jira:RHEL-33254

GCC 默认为在 IBM Power 系统上使用 IEEE128 浮点格式

在 RHEL10 中,GCC 默认在 IBM Power 系统上对所有长双精度浮动点数使用 IEEE128 浮点格式,而不是早期的仅用于软件的 IBM-DOUBLE-DOUBLE 代码。因此,您可以注意到使用长双精度浮点数执行操作的 C 或 C++ 代码中的性能改进。

请注意,这个 128 位长双精度浮点 ABI 与 RHEL 8 及更早版本中使用的浮点 ABI 不兼容。从 IBM POWER9 开始,支持执行 IEEE128 操作的硬件指令。

Jira:RHEL-24760[1]

GCC 14 支持 FUJITSU-MONAKA CPU

从 RHEL 10.0 开始,GNU Compiler Collection (GCC)支持 FUJITSU-MONAKA。因此,您可以使用 -mcpu=fujitsu-monaka 命令行选项为这个平台创建代码。

Jira:RHEL-65765[1]

GCC 14 支持 POWER 11 架构

从 RHEL 10.0 开始,GNU Compiler Collection (GCC)支持 POWER 11 架构。因此,您可以使用 -mcpu=power11 命令行选项为 POWER 11 创建代码。

Jira:RHEL-24762[1]

RHEL 10 包括 annobin 版本 12.55

RHEL 10 与 annobin 版本 12.55 一起分发。与之前可用的版本 12.32 相比,显著的变化包括:

  • 更新了工具,以构建并使用 GCC 、Clang、LLVM 和 Go 编译器的较新版本
  • 对使用 GCC 命令行选项 -Wimplicit-int-Wimplicit-function-declaration 的记录和测试
  • 改进了对 LLVM 的支持
  • 新测试
  • 一个识别是否使用已弃用的 OpenSSL Engine 代码的新的检查
  • 现在支持多个 --debug-rpm 选项
  • 各种 bug 修复

Jira:RHEL-526[1]

RHEL 10 包括 binutils 版本 2.41

RHEL 10 与 binutils 版本 2.41 一起发布。与之前可用的 2.40 版本相比,显著的变化包括:

  • binutils 工具支持 64 位 Intel 和 ARM 架构中的架构扩展。
  • 链接器现在接受 --remap-inputs <PATTERN>=<FILE> 命令行选项,来使用 <FILE> 代替与 <PATTERN> 匹配的任何输入文件。另外,您可以使用 --remap-inputs-file=<FILE> 选项指定一个包含任意数量的这些重新映射指令的文件。
  • 对于 ELF 目标,您可以使用链接器命令行选项 --print-map-locals ,来在链接器映射中包含本地符号。
  • 对于大多数基于 ELF 的目标,您可以使用 --enable-linker-version 选项,将链接器的版本作为字符串插入到 .comment 部分中。
  • 链接器脚本语法有一个用于输出部分的新命令 ASCIZ "<string>",其在当前位置插入一个零终止的字符串。
  • 您可以使用新的 -z nosectionheader 链接器命令行选项省略 ELF 部分标头。

Jira:RHELDOCS-18761[1]

GCC 可以为 Power 10 或更高版本生成 ROP 保护指令

IBM Power 10 及之后的平台针对面向返回编程(ROP)(其是利用程序中漏洞的一种常见原语)进行了保护。有了此增强,您可以使用 {{-mrop-protect}} 标志,GCC 会为这些平台创建 ROP 保护指令。请注意,由于没有运行时支持,因此生成的指令目前没有效果,并且 CPU 将它们视为无操作(NOP)指令。但是,开发人员可以使用 {{-mrop-protect}} 标志来整合 ROP 保护机制,当为这些平台启用了 ROP 保护时,应用程序将更加安全。

Jira:RHEL-36791[1]

binutils 现在支持 IBM Z 指令集的 arch15 扩展

有了此增强,binutils 支持 IBM Z 平台上 CPU 的 arch15 扩展。开发人员现在可以在汇编源文件中使用 arch15 扩展提供的新功能,或者当更新的编译器可用时,也可以在编译的程序中使用 arch15 扩展。这可能导致更小、更快速的程序。

Jira:RHEL-56896[1]

binutilsld 链接器支持 --section-ordering-file 选项

现在,您可以将新的 --section-ordering-file 命令行选项与 ld.bfd(默认的系统链接器)一起使用, 来对可以从彼此接近中获益的代码或数据部分进行分组。

此功能通过减少缓存未命中提高了程序的性能。您可以使用分析工具来分析一段时间以来程序代码的使用,然后改进可执行文件中的代码分组。因此,您可以更好地控制程序在内存中的布局。

--section-ordering-file 选项还增强了与 goldlld 链接器的兼容性,其已提供了此功能。

详情请查看博客文章 对链接器部分排序的实用指南

Jira:RHEL-36305

glibc 现在支持启用了 Intel APX 的函数的动态链接

不兼容的动态链接器 trampoline 被识别为 Intel Advanced Performance Extensions (APX)应用程序的潜在不兼容的源。作为临时解决方案,可以使用 BIND_NOW 可执行文件,或者只使用标准调用约定。有了此更新,glibc 的动态链接器保留了与 APX 相关的寄存器。

注意

由于这个变化,在堆栈的顶部之外需要额外的空间。严格限制此空间的用户可能需要调整或评估堆栈限制。

Jira:RHEL-25045

RHEL 10 提供了 glibc 版本 2.39

RHEL 10 引入了 GNU C 库(glibc)版本 2.39。

Jira:RHEL-25850

glibc 中 AMD Zen 3 和 Zen 4 性能的优化

在以前的版本中,AMD Zen 3 和 Zen 4 处理器有时使用 memcpymemmove 库例程的 Enhanced Repeat Move String (ERMS)(ERMS)版本,无论最优选择是什么。使用这个对 glibc 的更新,AMD Zen 3 和 Zen 4 处理器使用 memcpymemmove 的最优版本。

Jira:RHEL-25530

RHEL 10 提供了 GDB 版本 14.2

GDB 已更新至版本 14.2。以下段落列出了自 GDB 12.1 以来的显著变化。

概述:

  • info breakpoints 命令现在将禁用的断点的启用的断点位置显示为 y- 状态。
  • 添加了对使用 ELF 的 Zstandard (ELFCOMPRESS_ZSTD)压缩的 debug 部分的支持。
  • 默认情况下,文本用户界面(TUI)不再为当前位置指示器突出显示的源代码和汇编代码设置样式。要重新启用样式,请使用新命令 set style tui-current-position
  • 新的 $_inferior_thread_count 方便变量包含当前 下级中活跃线程的数量。
  • 对于具有多个代码位置的断点,GDB 现在使用 <breakpoint_number>.<location_number> 语法打印代码位置。
  • 当命中断点时,GDB 现在将 $_hit_bpnum$_hit_locno 方便变量设置为命中断点数和代码位置号。现在,您可以使用 disable $_hit_bpnum 命令禁用最后命中的断点,或使用 disable $_hit_bpnum.$_hit_locno 命令禁用特定的断点代码位置。
  • 添加了对 NO_COLOR 环境变量的支持。
  • 添加了对大于 64 位的整数类型的支持。
  • 您可以使用多目标功能配置的新命令来配置远程目标功能集(请参阅命令中的 set remote <name>-packetshow remote <name>-packet)。
  • 添加了对 Debugger Adapter 协议的支持。
  • 现在,您可以使用新的 inferior 关键字使断点特定于下级(请参阅命令中的 breakwatch )。
  • 现在,您可以使用新的 $_shell() 便捷函数在表达式评估期间运行 shell 命令。

对现有命令的更改:

  • break,watch

    • 现在,在 breakwatch 命令中多次使用 threadtask 关键字会导致错误,而不是使用关键字的最后一个实例的线程或任务 ID。
    • 现在在同一 breakwatch 命令中使用多个 threadtaskinferior 关键字无效。
  • printf,dprintf

    • printfdprintf 命令现在接受 %V 输出格式,它与 print 命令格式化表达式的方式相同。您还可以通过在命令后使用方括号 […​] 中的附加打印选项来修改输出格式,例如:printf "%V[-array-indexes on]", <array>
  • list

    • 您现在可以使用 . 参数打印当前帧内执行点附近的位置,或者,如果 inferior 尚未启动,则打印 main() 函数开头附近的位置。
    • 尝试列出文件中比可用的更多的源行,现在会发出一个警告,让用户参考 . 参数。
  • 记录用户定义的

    • 现在,可以记录用户定义的别名。

新命令:

  • set print nibbles [on|off] (默认值: off), show print nibbles - 控制 print/t 命令是否以四位组(nibbles)的形式显示二进制值。
  • set debug infcall [on|off] (默认值: off),show debug infcall - 显示关于 inferior 功能调用的额外的调试信息。
  • set debug solib [on|off] (默认值: off), show debug solib - 打印有关共享的库处理的额外的调试信息。
  • set print characters <LIMIT> show print charactersprint -characters <LIMIT> - 控制可打印一个字符串的多少个字符。
  • set debug breakpoint [on|off] (默认值: off), show debug breakpoint - 打印有关断点插入和删除的额外的调试信息。
  • maintenance print record-instruction [ N - 打印给定指令的记录信息。
  • maintenance info frame-unwinders - 以优先级顺序(第一个最高)列出当前有效的帧 unwinders。
  • maintenance wait-for-index-cache - 等待所有等待对索引缓存的写完成。
  • info main - 打印有关主符号的信息,以识别程序的入口点。
  • set tui mouse-events [on|off](默认值:on ),show tui mouse-events - 控制鼠标点击事件是否被发送到 TUI 和 Python 扩展( 当为 on时)或终端(当为 off 时)。

机器接口(MI)更改:

  • MI 版本 1 已被删除。
  • MI 现在在反向执行历史记录耗尽时报告 no-history
  • -break-insert 命令的输出中,threadtask 断点字段不再被报告两次。
  • 不再对不存在的线程 ID 创建特定于线程的断点。
  • -stack-list-arguments-stack-list-locals-stack-list-variables-var-list-children 命令中的 --simple-values 参数现在将引用类型视为 simple(如果目标是 simple)。
  • -break-insert 命令现在接受一个新的 -g thread-group-id 选项,来创建特定于 inferior 的断点。
  • 断点创建的通知和 -break-insert 命令的输出现在可以包括一个可选的用于主断点和每个断点位置的 inferior 字段。
  • 说明 breakpoint-hit 停止原因的异步记录现在包含一个可选字段 locno,在多位置断点时提供代码位置号。

GDB Python API 中的更改:

  • 事件

    • 一个新的 gdb.ThreadExitedEvent 事件。
    • 一个新的 gdb.executable_changed 事件注册表,它发出具有 progspacereload 属性的 ExecutableChangedEvent 对象。
    • 新的 gdb.events.new_progspacegdb.events.free_progspace 事件注册表,它发出 NewProgpspaceEventFreeProgspaceEvent 事件类型。这两个事件类型都有一个属性 progspace,来指定添加到 GDB 中,或从 GDB 删除的 gdb.Progspace 程序空间。
  • gdb.unwinder.Unwinder

    • name 属性现在是只读的。
    • __init__ 函数的 name 参数必须是 str 类型,否则会引发一个 TypeError
    • enabled 属性现在只接受 bool 类型。
  • gdb.PendingFrame

    • 新方法:name,is_valid,pc,language,find_sal,blockfunction,它们镜像 gdb.Frame 类的类似方法。
    • create_unwind_info 函数的 frame-id 参数现在可以是一个整数,也可以是 pcspspecial 属性的 gdb.Value 对象。
  • 一个新的 gdb.unwinder.FrameId 类,它可以传递给 gdb.PendingFrame.create_unwind_info 函数。
  • gdb.disassembler.DisassemblerResult 类不能再细分。
  • gdb.disassembler 模块现在包含样式支持。
  • 一个新的 gdb.execute_mi (COMMAND, [ARG]…​) 函数,它调用 GDB/MI 命令,并将结果返回为一个 Python 字典。
  • 一个新的 gdb.block_signals() 函数,它返回一个阻止 GDB 需要处理的任何信号的上下文管理器。
  • threading.Thread 类的一个新 gdb.Thread 子类,它在 start 方法中调用 gdb.block_signals 函数。
  • gdb.parse_and_eval 函数有一个新的 global_context 参数,来限制对全局符号的解析。
  • gdb.Inferior

    • 一个新 arguments 属性,其保留 inferior 的命令行参数(如果已知)。
    • 一个新的 main_name 属性,它包含 inferior 的 main 函数的名称(如果已知)。
    • 新的 clear_envset_envunset_env 方法,它们可在启动前修改 inferior 的环境。
  • gdb.Value

    • 一个分配对象值的新的 assign 方法。
    • 一个将类数组值转换为数组的新的 to_array 方法。
  • gdb.Progspace

    • 一个新的 objfile_for_address 方法,它返回涵盖给定地址的 gdb.Objfile 对象(如果存在)。
    • 一个新的 symbol_file 属性,保存对应于 Progspace.filename 变量的 gdb.Objfile 对象(或 None ,如果文件名为 None)。
    • 一个新的 executable_filename 属性,其保存具有由 exec-filefile 命令设置的文件名的字符串,如果没有设置可执行文件,则为 None
  • gdb.Breakpoint

    • 一个新的 inferior 属性,其包含特定于 inferior 的断点的 inferior ID(一个整数),或 None,如果没有设置这样的断点 。
  • gdb.Type

    • 新的 is_array_likeis_string_like 方法,其反映一个类型可以是类似数组或类似字符串,无论类型的实际类型代码是什么。
  • 一个新的 gdb.ValuePrinter 类,可用作应用 pretty-printer 的结果的基类。
  • 一个新实现的 gdb.LazyString.__str__ 方法。
  • gdb.Frame

    • 一个新的 static_link 方法,它返回嵌套的函数帧的外部帧。
    • 一个新的 gdb.Frame.language 方法,它返回帧语言的名称。
  • gdb.Command

    • GDB 现在重新格式化 gdb.Command 类的 doc 字符串和 gdb.Parameter 子类,以便在使用字符串作为 help 输出前从每行中删除不必要的前导空格。
  • gdb.Objfile

    • 一个新的 is_file 属性。
  • 一个新的 gdb.format_address (ADDRESS, PROGSPACE, ARCHITECTURE) 函数,其使用与从反汇编器中打印地址、符号和偏移信息时相同的格式。
  • 一个新的 gdb.current_language 函数,它返回当前语言的名称。
  • 一个用于包装 GDB 的反汇编器的新 Python API,包括 gdb.disassembler.register_disassembler(DISASSEMBLER, ARCH), gdb.disassembler.Disassembler ,gdb.disassembler.DisassembleInfogdb.disassembler.builtin_disassemble(INFO, MEMORY_SOURCE)gdb.disassembler.DisassemblerResult
  • 一个新的 gdb.print_options 函数,它以 gdb.Value.format_string 函数接受的形式返回当前打印选项的字典。
  • gdb.Value.format_string 函数

    • 如果在 print 或其他类似的操作中被调用,GDB.Value.format_string 现在使用 print 命令提供的格式。
    • gdb.Value.format_string 现在接受 summary 关键字。
  • 一个新的 gdb.BreakpointLocation Python 类型。
  • gdb.register_window_type 方法现在限制一组可接受的窗口名称。

特定于架构的更改:

  • AMD 和 Intel 64 位构架

    • 添加了对使用 libopcodes 库的反汇编器样式的支持,该库现在被默认使用。您可以使用 set style disassembler * 命令修改反汇编器输出的样式。要使用 Python Pygments 样式,请使用新的 maintenance set libopcodes-styling 命令。
  • 64 位 ARM 架构

    • 添加了为内存标记(MTE)转储内存标签数据的支持。
    • 添加了对 Scalable Matrix Extension 1 和 2 (SME/SME2)的支持。有些功能仍被视为实验性的或 alpha,例如,ZA 状态的手动函数调用,或者根据 DWARF 跟踪 Scalable Vector Graphics(SVG)更改。
    • 添加了对线程本地存储(TLS)变量的支持。
    • 添加了对硬件观察点的支持。
  • 64 位 IBM Z 架构

    • 对 IBM Z 目标上新 arch14 指令的记录和重播的支持,但专用的函数辅助指令 NNPA 除外。
  • IBM Power Systems, Little Endian

    • 添加了对 POWER11 的基本启用支持。

有关自 GDB 10.2 的 RHEL 9 系统版本以来的更改,请参阅 GDB 11.2 的 GCC Toolset 12 版本GDB 12.1 的 GCC Toolset 13 版本 的发行注记。

JIRA:RHEL-33256, JIRA:RHEL-39324, JIRA:RHEL-24764

RHEL 10 提供了 elfutils 版本 0.191

elfutils 软件包已更新至版本 0.191。主要改进包括:

  • libdw 库中的更改:

    • dwarf_addrdie 函数现在支持缺少 debug_aranges 部分的二进制文件。
    • 改进了对 DWARF 软件包文件的支持。
    • 已添加了一个新的 dwarf_cu_dwp_section_info 函数。
  • debuginfod 服务器中的缓存驱除逻辑已改进,以提高小、频繁或慢文件(如 vdso.debug )的保留。
  • eu-srcfiles 工具现在可以获取 DWARF/ELF 文件的源文件,并将它们放到 zip 存档中。

Jira:RHEL-29197

RHEL 10 提供了 SystemTap 版本 5.1

RHEL 10 包括 SystemTap 追踪和探测工具版本 5.1。自 5.0 版本开始的显著变化包括:

  • 一个实验性 的--build-as=USER 标志,以在脚本编译过程中减少特权。
  • 改进了对主机 PID 识别的容器中运行的探测进程的支持。
  • 对用户空间硬件断点和监视点的新探测。
  • 支持 --runtime=bpf 模式的 --remote 操作。
  • 改进了内核用户传输的稳健性。

Jira:RHEL-29529

RHEL 10 提供了 Valgrind 版本 3.23.0

Valgrind 套件已更新至版本 3.23.0。主要改进包括:

  • --track-fds=yes 选项现在警告文件描述符的双重关闭,生成可抑制的错误,并支持 XML 输出。
  • --show-error-list=no|yes 选项现在接受一个新值 all,来也打印抑制的错误。
  • 在 64 位 IBM Z 架构上,Valgrind 现在支持神经网络处理辅助(NNPA)工具向量指令:VCNFVCLFNHVCFNVCLFNLVCRNFNNPA (z16/arch14)。
  • 在 64 位 ARM 架构上,Valgrind 现在支持 dotprod 指令(sdot/udot)。
  • 在 AMD 和 Intel 64 位构架上,Valgrind 现在为 x86_64-v3 微架构提供更准确的指令支持。
  • Valgrind 现在为可检测内存重叠的 wcpncpymemccpystrlcatstrlcpy 函数提供包装器。
  • Valgrind 现在支持以下 Linux syscall:mlock2fchmodat2pidfd_getfd

Jira:RHEL-29535

RHEL 10 引入了 Dyninst 版本 12.3.0

RHEL 10 与 Dyninst 库版本 12.3.0 一起分发。

Jira:RHEL-49597[1]

提供了 SystemTap 版本 5.2

RHEL 10.0 在版本 5.2 中提供 SystemTap 追踪和探测工具。

一个显著的增强是基于 elfutils 0.192 的基于 debuginfod-metadata 探测的完整激活。使用此功能,您可以通过为所有匹配名称搜索 debuginfod 服务器来编写 systemtap 脚本,以针对给定二进制或库的所有版本。

Jira:RHEL-64042

RHEL 10 引入了 debugedit 5.1

RHEL 10 与 debugedit 5.1 一起分发。最显著的更改有:

  • debugedit 工具现在使用更快的 xxhash 算法来生成 buildid
  • find-debuginfo 工具支持以下新选项:
  • -v--verbose,来为处理的所有文件添加更多输出
  • -q--quiet ,来静音所有非错误输出
  • find-debuginfo 工具现在将 -j 选项也传递给 dwz 工具,该工具启用了并行处理。
  • debugedit 工具现在处理压缩的 DWARF 调试 ELF 部分。
  • debugedit 工具现在处理更多 clang 编译器所使用的 DWARF5 结构。

Jira:RHEL-64137

RHEL 10 提供了 elfutils 版本 0.192

elfutils 软件包已更新至版本 0.192。主要改进包括:

  • debuginfod:

    • 通过使用 Fedora 和 RHEL 中的 RPM IMA 方案,添加了按文件的签名验证,以进行完整性检查。
    • 用于元数据查询的新 API:file name → buildid
    • 服务器端从内核 debuginfo 软件包提取文件非常快。现在它花费的时间从 ~50 秒下降到不到 0.25 秒。
  • libdw:

    • 新函数 dwfl_set_sysroot,dwfl_frame_unwound_sourcedwfl_unwound_source_str
  • stacktrace

Jira:RHEL-64046

RHEL 10 提供了 libabigail 2.6

RHEL 10 提供了 libabigail 库版本 2.6。主要变更包括:

  • 使用 BPF 类型格式(BTF)和通用跟踪格式(CTF)更好地支持 Linux 内核模块分析。
  • 改进了中间端的内部类型比较算法。
  • 改进了 abipkgdiffabidwabilint 工具中的日志记录
  • 修复多个程序错误。

有关进一步的更改,请参阅 上游发行注记

Jira:RHEL-64063

提供了 valgrind 版本 3.24.0

RHEL 10.0 提供了 valgrind 套件版本 3.24.0。主要改进包括:

  • --track-fds=yes 选项现在在使用错误的文件描述符时显示可抑制的错误,并错误被写到 XML 输出。如果不使用选项,显示的警告将被弃用,并将在以后的版本中删除。
  • 错误消息现在支持 Ada 名称分解。
  • deflate-conversion 工具(z15/arch13)现在支持 IBM Z 平台上的紧缩压缩调用(DFLTCC)指令。
  • 在 IBM Z 平台上,valgrind 现在支持消息安全协助(MSA)工具及其 1-9 扩展提供的指令。
  • Valgrind 现在支持以下新的 Linux 系统调用:

    • open_tree
    • move_mount
    • fsopen
    • fsconfig
    • fsmount
    • fspick
    • landlock_create_ruleset
    • landlock_add_rule
    • landlock_restrict_self

Jira:RHEL-64056

提供了 Go Toolset 版本 1.23

RHEL 10.0 提供了 Go Toolset 版本 1.23。主要改进包括:

  • for-range 循环接受以下类型的迭代函数:

    • func(func() bool)
    • func(func(K) bool)
    • func(func (K, V) bool)

      调用迭代参数函数会为 for-range 循环创建迭代值。有关参考链接,请参阅 上游发行注记

  • Go Toolchain 可以收集使用情况和中断统计信息,以帮助 Go 团队了解 Go Toolchain 是如何使用和工作的。默认情况下,Go Telemetry 不会上传遥测数据,仅将其存储在本地。如需更多信息,请参阅 上游 Go Telemetry 文档
  • go vet 子命令包含 stdversion 分析器,它标记对在引用文件中使用的 Go 版本太新符号的引用。
  • cmdcgo 功能支持 -ldflags 选项,来将标记传递给 C 链接器。当您使用非常大的 CGO_LDFLAGS 环境变量时,go 命令会自动使用这个标志来避免 argument list too long 错误。
  • trace 工具容忍部分破坏的跟踪,并尝试恢复跟踪数据。这在崩溃时特别有用,因为您可以获得导致崩溃的跟踪。
  • 运行时在未处理的 panic 或其他不可恢复的错误后打印的回溯行为传输缩进,以区分 goroutine 的堆栈追踪。
  • 使用配置文件引导的优化的编译器构建时间开销降低到个位数百分比。
  • 新的 -bindnow 链接器标志在构建动态链接的 ELF 二进制时启用立即函数绑定。
  • //go:linkname 链接器指令不再引用标准库中的内部符号,以及没有对其定义标记为 //go:linkname 的运行时。
  • 如果程序不再引用 TimerTicker,则垃圾回收会立即清理它们,即使还没有调用它们的 Stop 方法。与 TimerTicker 关联的计时器渠道现在没有缓冲,容量为 0。这确保每次调用 ResetStop 方法时,在调用后不会发送或接收过时的值。
  • 新的 unique 软件包为规范化值(如 interninghash-consing)提供了工具。
  • 新的 iter 软件包提供了基本定义,以与用户定义的迭代器一起工作。
  • slicesmaps 软件包引入了几个与迭代器一起使用的新功能。
  • 新的 structs 软件包为修改包含 struct 类型的属性(如内存布局)的 struct 字段提供类型。
  • 在以下软件包中进行了次要更改:

    • archive/tar
    • crypto/tls
    • crypto/x509
    • database/sql
    • debug/elf
    • encoding/binary
    • go/ast
    • go/types
    • math/rand/v2
    • net
    • net/http
    • net/http/httptest
    • net/netips
    • path/filepath
    • reflect
    • runtime/debug
    • runtime/pprof
    • runtime/trace
    • slices
    • sync
    • sync/atomic
    • syscall
    • testing/fstest
    • text/template
    • time
    • unicode/utf16

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

Go Toolset 是一个滚动应用程序流,红帽只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-34260

RHEL 10 引入了 LLVM Toolset 19.1.7

RHEL 10 与 LLVM Toolset 版本 19.1.7 一起分发。

LLVM 编译器的显著变化:

  • LLVM 现在使用 debug 记录,一个用于调试信息的更高效的表示。

Clang 的显著更新:

  • C++14 大小的重新分配现在默认启用。
  • C++17 支持已完成。
  • 添加了对 C++20 支持的改进,特别是围绕模块、概念和类模板参数推导(CTAD)。
  • 添加了对 C++23、C++2c、C23 和 C2y 支持的改进。

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

LLVM Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-57456

RHEL 10.0 包括了 Rust Toolset 版本 1.84.1

RHEL 10.0 与 Rust Toolset 版本 1.84.1 一起分发。自之前可用的 1.79.0 版本以来显著的改进包括:

  • 新的 LazyCellLazyLock 类型延迟了初始化,直到第一次使用为止。它们使用每个实例中包含的初始化功能扩展了早期的 OnceCellOnceLock 类型。
  • 标准库中的新排序实现提高了运行时性能和编译时间。它们还会尝试检测比较器没有产生总顺序的情况,从而导致该 panic 而不是返回未排序的数据。
  • 添加了对不透明返回类型的精确捕获。新的 use<..> 语法指定了 impl Trait 返回类型中使用的通用参数和生命周期。
  • const 代码添加了许多新功能,例如:

    • 浮点支持
    • const 直接用于内联汇编
    • 对静态的引用
    • 可变参考和指针
  • unsafe 代码添加了许多新功能,例如:

    • 严格的来源 API
    • &raw 指针语法
    • 安全寻址静态
    • 在不安全的 extern 块中声明安全项目
  • Cargo 依赖项解析器现在是版本感知的。如果依赖项 crate 指定了其最低支持的 Rust 版本,则 Cargo 会在解析依赖关系图时使用此信息,而不是使用最新的兼容 semver 的 crate 版本。

兼容性备注:

  • WebAssembly 系统接口(WASI)目标从 rust-std-static-wasm32-wasi 改为 rust-std-static-wasm32-wasip1。您还可以通过在命令行上使用 --target wasm32-wasip1 参数来选择 WASI 目标。如需更多信息,请参阅 对 Rust 的 WASI 目标的更改 上游博客文章。
  • 拆分 panic 钩子和 panic 处理程序参数 core::panic::PanicInfostd::panic::PanicInfo 现在是不同的类型。
  • extern "C" 功能在未捕获的 panics 上停止。使用 extern "C-unwind" 来允许跨 ABI 边界的展开。

Rust Toolset 是一个滚动应用程序流,红帽只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-59689[1]

RHEL 10 包括 PCP 版本 6.3.0

RHEL 10 与 Performance Co-Pilot (PCP)版本 6.3.0 一起分发。与以前可用的 6.2.0 版本相比,显著变化包括:

新工具和代理

  • pcp2openmetrics :一个将 Open Metrics 格式的 PCP 指标推送到远程端点的新工具
  • pcp-geolocate :一个报告 latitude 和 longitude 指标标签的新工具
  • pmcheck :一个查询和控制 PCP 组件的新工具
  • pmdauwsgi :一个从 uWSGI 服务器导出仪表的新 PCP 代理

增强的工具

  • pmdalinux :添加新内核指标(巨页、文件系统、TCP、softnet、虚拟机气球)
  • pmdalibvirt :添加了对指标标签的支持,添加了新的气球、vCPU 和域信息指标
  • pmdabpf :为使用 pcp-atop 工具改进了 eBPF 网络指标,

Jira:RHELDOCS-18787[1]

RHEL 10 提供 Grafana 版本 10.2.6

Grafana 平台已更新至版本 10.2.6。

主要改进包括:

  • 支持通过在点击和拖动时按住 shift 来放大时间序列的 y 轴和烛台可视化。
  • 创建仪表板时简化数据源选择。
  • 更新了用户界面,包括对导航和命令面板的更新。
  • 对转换的各种改进,包括对 从计算中添加字段 转换的新的一元操作模式。
  • 对仪表盘和数据视觉化的各种改进,包括重新设计的空仪表盘和仪表盘面板。
  • 新的地图和画布面板。

其他更改:

  • 对用户、访问、身份验证、授权和安全的各种改进。
  • 警报改进以及新的警报功能。
  • 公共仪表盘现在可用。

有关之前可用的 Grafana 版本 9.2 以来的更改的完整列表,请参阅 上游文档

Jira:RHEL-35761

RHEL 10 提供 grafana-pcp 版本5.2.2

RHEL 10 与 grafana-pcp 插件版本 5.2.2 一起分发。主要变更包括:

  • 插件现在使用 Valkey 而不是 Redis 作为数据源。因此,PCP Redis 数据源被重命名为 PCP Valkey
  • 新仪表盘:

    • PCP 向量顶级消费者
    • PCP 向量 UWSGI 概述
  • 在替换 RediSearch 模块之前,指标搜索对 Valkey 数据源不可用。

Jira:RHEL-67043

Grafana、PCP 和 grafana-pcp 现在使用 Valkey 存储数据

在 RHEL 10 中,Valkey 键-值存储取代了 Redis。因此,Grafana、PCP 和 grafana-pcp 插件现在使用 Valkey 而不是 Redis 存储数据。grafana-pcp 插件中的 PCP Redis 数据源现在被命名为 PCP Valkey

Jira:RHEL-45646

在 RHEL 10 中,zlib-ng-compat 替换了 zlib

新的 zlib-ng-compat 软件包提供了一个被许多不同的程序使用的通用无损数据压缩库。与 RHEL 9 中发布的 zlib 相比,这个实现提供了各种好处。例如,在可用时 zlib-ng-compat 支持硬件加速,并提高了压缩效率和性能。zlib-ng-compat 是内置的 API 和 ABI 兼容模式,以确保从 zlib 进行平稳过渡。

Jira:RHEL-24058[1]

SWIG 4.3.0 在 CRB 存储库中提供

Simplified Wrapper 和 Interface Generator (SWIG)版本 4.2.1 现在在 CodeReady Linux Builder (CRB)存储库中提供。主要变更包括:

  • Python 标准模板库(STL)容器包装程序现在使用 Python Iterator 协议。
  • SWIG 现在支持:

    • Python 稳定的应用程序二进制接口(ABI)
    • Python 3.12 和 Python 3.13
    • Ruby 3.2 和 Ruby 3.3
    • Tcl 9.0
    • PHP 8;已删除对 PHP 7 的支持。
  • 添加了对没有 C++11 自动变量尾部返回类型的 C++14 自动变量的支持。
  • 构造器、破坏器和分配操作符已被修复,包括隐式的、默认的和已删除的及相关的非可分配变量打包程序。
  • 现在提供了一个以 Node.js 二进制稳定 ABI Node-API 为目标的新的 Javascript 生成器。
  • 多个已弃用的功能已删除。
  • 添加了对 C 作为目标语言的实验性支持。
  • 在使用 nspace 功能时处理命名空间已得到改进。
  • 已为 std::unique_ptrstd::string_viewstd::filesystem 对象 增强了 STL 包装程序。
  • 添加了对 C++17 折叠表达式和 C++11 尾随返回类型的支持。
  • 改进了字符串和字符字面的处理。

请注意,不支持 CodeReady Linux Builder 存储库中包含的软件包。

Jira:RHELDOCS-19059[1]

Red Hat build of OpenJDK 21 是 RHEL 10 中的默认 Java 实现

默认的 RHEL 10 Java 实现是 OpenJDK 21。使用 java-21-openjdk 软件包,它提供 OpenJDK 21 Java 运行时环境和 OpenJDK 21 Java 软件开发套件。如需更多信息,请参阅 OpenJDK 文档

Jira:RHEL-51248

Clang 和 LLVM 现在对 debug 部分压缩支持 zstd

默认情况下,Clang 和 LLVM 工具使用 Zlib 作为 debug 部分压缩的算法。有了此增强,用户可以使用 Zstandard (zstd)算法,该算法可以达到比 Zlib 更高的压缩率。

例如,如果您在使用 Clang 编译程序时使用 zstd 压缩,请使用以下命令:

$ clang -Wa,-compress-debug-sections=zstd -Wl,--compress-debug-sections=zstd ...

Jira:RHEL-70325

llvm-doc 软件包现在只包含对上游文档的引用。

在以前的版本中,llvm-doc 软件包包含 HTML 格式的 LLVM 文档。有了此更新,软件包只提供 /usr/share/doc/llvm/html/index.html 文件,该文件包含一个对上游文档的引用。

Jira:RHEL-58900

RHEL 10 提供 cmake 版本 3.30.5

RHEL 10 与 cmake 版本 3.30.5 一起分发。有关显著的变化,请参阅 上游发行注记

Jira:RHEL-65234

RHEL 10 提供 .NET 版本 9.0 和 8.0

Red Hat Enterprise Linux (RHEL) 10 支持 .NET (9.0)的最新版本和当前长期支持的 .NET (8.0),后者是一个具有自动内存管理和现代编程语言的通用开发平台。使用 .NET,您可以高效地构建高质量的应用程序。

有关安装和使用的详情,请查看 .NET 9.0.NET 8.0 文档。

Jira:RHELDOCS-20066[1]

RHEL 10 在 1.24.4 版本中提供 Go Toolset

Go Toolset 已更新至版本 1.24.4,并发布 RHSA-2025:10677 公告。

主要改进和变化包括:

  • 语言

    • 现在,通用类型别名被完全支持,允许类型别名参数化,以提高通用的灵活性。
  • 工具

    • Go 模块系统支持 go.mod 文件中的 工具 指令,支持直接管理可执行依赖关系。
    • Go 构建go installgo test 命令现在支持结构化输出的 the -json 标志。
    • 新的 GOAUTH 环境变量为私有模块提供增强的身份验证。
  • 运行时和性能

    • 运行时改进平均将 CPU 开销降低为 2-3%。
    • 主要变化包括基于 Swiss Tables 的新映射实施,以及更有效的内存分配。
  • 标准库

    • 新的 os.Root 类型启用目录限制的文件系统访问。
    • testing.B.Loop 方法提高了基准测试。
    • runtime.AddCleanup 功能提供更灵活的最终化机制。
    • 新的 软件包引入了弱指针。
  • 加密

    • 现在,提供了 ML-KEM 后密钥交换(crypto/mlkem)、HKDF、PBKDF2 和 SHA-3 的新软件包。
    • Go Cryptographic 模块现在正在检查 FIPS 140-3 认证。
  • 额外的更新

    • vet 工具包括一个新的分析器,用于检测测试和示例中的常见错误。
    • objdump 工具现在支持更多架构。
    • Cgo 引入了改进性能和正确性的注解。

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

Go Toolset 是一个滚动应用程序流,红帽只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-101075[1]

RHEL 10 中提供 IBM Semeru JDK

IBM Semeru 是一个技术兼容性套件(TCK)认证的 Java 运行时环境(JRE)实施,由 IBM 维护。RHEL Supplementary 存储库中提供了 java-21-ibm-semeru-certified-jdk-devel 软件包,作为 Open Java Development Kit (OpenJDK)分发的替代方案,该版本包括在 RHEL AppStream 存储库中

Jira:RHELDOCS-20591[1]

6.15. 身份管理

RHEL 10 提供 python-jwcrypto 版本 1.5.6

python-jwcrypto 软件包已更新至版本 1.5.6。此版本包括针对一个问题的安全修复,其中攻击者可以通过传递一个具有高压缩率的恶意 JWE Token 来拒绝服务攻击。

Jira:RHELDOCS-20100[1]

RHEL 10 提供 ansible-freeipa 软件包版本 1.14.5

ansible-freeipa 软件包已更新至版本 1.14.5。主要改进和程序错误修复包括:

  • 您可以使用 module_defaults 为多个 ansible-freeipa 任务定义变量

    freeipa.ansible_freeipa 集合现在提供简化了 ansible-freeipa 模块使用的 module_defaults 操作组。通过使用 module_defaults,您可以设置要应用到 playbook 中使用的所有集合的模块中的默认值。为此,请使用名为 freeipa.ansible_freeipa.modulesaction_group。例如:

    - name: Test
       hosts: localhost
       module_defaults:
         group/freeipa.ansible_freeipa.modules:
           ipaadmin_password: Secret123
       tasks:
    …

    因此,playbook 更加简洁。

  • 现在可以在单个 Ansible 任务中管理多个 IdM sudo 规则

    有了 ansible-freeipa 中的这个增强,您可以使用单个 Ansible 任务添加、修改和删除多个身份管理(IdM) sudo 规则。为此,请使用 ipasudorule 模块的 sudorules 选项。因此,您可以更轻松地定义 sudo 规则,并更有效地执行它们。

    使用 sudorules 选项,您可以指定应用到特定 sudo 规则中的多个 sudo 规则参数。此 sudo 规则由 name 变量定义,后者是 sudorules 选项的唯一强制变量。 

  • 使用 ipagroup 模块删除外部成员现在可以正常工作

    在以前的版本中,使用带有 externalmember 参数的 ansible-freeipa ipagroup 模块尝试确保 IdM 组中没有外部成员不会将成员从组中删除,即使 Ansible 将任务的结果的显示为 changed。有了此修复,使用带有 externalmemberipagroup 模块可以正确地确保 IdM 组中没有外部成员。此修复允许使用 DOM\name 或 name@domain 来识别 AD 用户。

Jira:RHEL-67567

管理 IdM ID 范围不一致的新工具

有了此更新,身份管理(IdM)提供了 ipa-idrange-fix 工具。您可以使用 ipa-idrange-fix 工具分析现有的 IdM ID 范围,识别这些范围之外的用户和组,并建议创建包括它们d 新的 ipa-local 范围。

ipa-idrange-fix 工具执行以下操作:

  • 从 LDAP 读取和分析现有范围。
  • 搜索 ipa-local 范围之外的用户和组。
  • 提出新的 ipa-local 范围,来涵盖标识的用户和组。
  • 提示用户应用提议的更改。

默认情况下,工具排除 1000 以下的 ID,以防止与系统帐户冲突。红帽强烈建议在应用任何推荐的更改前创建一个全系统备份。

如需更多信息,请参阅 ipa-idrange-fix (1) 手册页。

Jira:RHEL-56917[1]

自动删除过期证书默认被启用

有了此更新,在新副本上的身份管理(IdM)中默认启用自动删除过期证书。实现这一点的前提条件是使用 RSNv3 为证书生成随机序列号,现在默认会启用 RSNv3 。

因此,现在会使用随机序列号创建证书,并在过期后自动删除,默认保留期为到期后的 30 天。

Jira:RHEL-57674

RHEL 10 提供 python-pyasn1 版本 0.6.1

python-pyasn1 软件包已更新至版本 0.6.1。更新包括各种改进和 bug 修复,包括:

  • 支持 Python 3.13
  • 删除了对 Python 2.7、3.6、3.7 的支持
  • 改进了错误处理和一致性
  • tagMap 和 typeMap 别名的运行时弃用
  • 支持之前缺少的 RELATIVE-OID 构造

Jira:RHEL-67667

ldap_id_use_start_tls 选项现在默认启用

为了提高安全性,ldap_id_use_start_tls 的默认值已从 false 改为 true。当使用没有 TLS 的 ldap:// 进行身份查找时,可能会对攻击向量构成风险。特别是中间人(MITM)攻击,例如,攻击者可以通过更改 LDAP 搜索中返回的对象的 UID 或 GID 来冒充用户。

由于未加密的通信不安全,因此默认的 ldap_id_use_start_tls 选项现在被设置为 true

Jira:RHELDOCS-19185[1]

RHEL 10 提供 certmonger 版本 0.79.20

certmonger 软件包已更新至版本 0.79.20。此更新包括各种 bug 修复和增强,最重要的是:

  • 增强了内部令牌中新证书的处理,并改进了续订的删除过程。
  • 删除了对 CKM_RSA_X_509 加密机制的令牌的限制。
  • 修复了 getcert add-scep-ca,--ca-cert--ra-cert 选项的文档。
  • 重命名 D-Bus 服务和配置文件以匹配规范名称。
  • getcert-resubmit 手册页中添加了缺失的 .TP 标签。
  • 迁移到 SPDX 许可证格式。
  • getcert list 输出中包含了所有者和权限信息。
  • cm_certread_n_parse 函数中删除了对 NSS 数据库的要求。
  • 添加了对简体中文、Georgian 和俄语使用 Webplate 的翻译。

Jira:RHEL-40922[1]

RHEL 10 提供 python-jwcrypto 版本 1.5.6

python-jwcrypto 软件包已更新至版本 1.5.6。此版本包括针对一个问题的安全修复,其中攻击者可以通过传递一个具有高压缩率的恶意 JWE Token 来拒绝服务攻击。

Jira:RHELDOCS-19191[1]

Kerberos 现在支持 Elliptic Curve Diffie-Hellman 密钥协议算法

现在支持 RFC5349 所定义的 PKINIT 的 Elliptic Curve Diffie-Hellman (ECDH)密钥协议算法。有了此更新,krb5.conf' 文件中的 pkinit_dh_min_bits 设置现在可以使用 'P-256P-384P-521 进行配置,以默认使用 ECDH。

Jira:RHEL-71881[1]

RHEL 10 提供 389-ds-base 版本 3.0.6

389-ds-base 软件包已更新至版本 3.0.6。更新包括各种改进和 bug 修复,包括:

  • 错误日志的日志缓冲
  • 以 JSON 格式写审计日志的选项
  • 在组更新时延迟更新组成员的选项
  • 配置几个 PBKDF2 迭代的选项
  • logconv.py 日志分析器工具

Jira:RHEL-67196

389-ds-base 现在完全支持 LMDB

以前在 389-ds-base 软件包中作为技术预览提供的 Lightning Memory-Mapped 数据库(LMDB)现在被完全支持。

主要优点包括:

  • LMDB 对读操作进行了高度优化。
  • LMDB 避免内存分配和内存到内存拷贝。
  • LMDB 需要最小配置。
  • LMDB 支持多线程和没有死锁的多进程环境。
  • 读取者永远不会阻止写入者,反之亦然。
  • LMDB 不需要事务日志。

从 RHEL 10 开始,所有新目录服务器实例都只使用 LMDB 作为数据库类型,并且不再有带有 BDB 的标准安装。

要将现有的 BDB 实例迁移到 LBDM,请创建一个新的 LMDB 实例,并使用一个 LDIF 文件或复制方法导入数据库内容。

目录服务器在 cn=mdb,cn=config,cn=ldbm database,cn=plugins,cn=config 条目下存储 LMDB 设置,其包含以下新配置参数:

  • nsslapd-mdb-max-size 设置数据库最大大小(以字节为单位)。

    重要:确保 nsslapd-mdb-max-size 足够存储所有预期数据。但是,参数值不能太大,从而影响性能,因为数据库文件是内存映射的。

  • nsslapd-mdb-max-readers 设置可以同时打开的最大读操作数。目录服务器自动调整此设置。
  • nsslapd-mdb-max-dbs 设置指定可包含在内存映射的数据库文件中的最大数据库实例数。

除了新的 LMDB 设置,您还可以使用 nsslapd-db-home-directory 数据库配置参数。

Jira:RHEL-67595

RHEL 10 提供 openldap 版本 2.6.8

openldap 软件包已更新至版本 2.6.8。更新包括各种改进和 bug 修复,包括:

  • 改进了 TLS 连接的处理。
  • Kerberos SASL 可以与 STARTTLS 一起使用,即使活动目录证书是 Elliptic Curve Cryptography (ECC)证书,且 SASL_CBINDING 被设置为 tls-endpoint

Jira:RHEL-71052

目录服务器现在提供错误、审计和审计失败日志的缓冲

在此更新之前,只有访问和安全日志才有日志缓冲。有了此更新,目录服务器提供错误、审计和审核失败日志的缓冲。使用以下设置来配置日志缓冲:

  • 用于错误日志的 nsslapd-errorlog-logbuffering。默认禁用此选项。
  • 用于审计和审计失败日志的 nsslapd-auditlog-logbuffering。默认启用此选项。

详情请查看 Red Hat Directory Server 配置和 schema 参考文档中的 nsslapd-errorlog-logbufferingnsslapd-auditlog-logbuffering

Jira:RHEL-1681

现在,您可以在 PBKDF2BLUEPRINT Password Storage Schemes 插件条目中配置哈希迭代值

在此次更新之前,对于 Password Storage Schemes 插件的所有 PBKDF2 ldapmodify 条目,哈希迭代数量被硬编码(10000)。有了此更新,现在可以通过使用默认为 100000 的新的 nsslapd-pwdpbkdf2numiterations 属性来配置哈希迭代值。

您可以使用命令行或 Web 控制台配置 nsslapd-pwdpbkdf2numiterations

例如,要将值设为 150000 ,并查看不同密码存储方案中的当前值,请运行:

# dsconf <instance_name> plugin pwstorage-scheme pbkdf2-sha512 set-num-iterations 150000
# dsconf <instance_name> plugin pwstorage-scheme pbkdf2-sha512 get-num-iterations

在 Web 控制台中,进到菜单:[Database → Password Policies → Global Policy] 来配置散列迭代。

在更改默认值之前请考虑以下几点:

  • 旧密码有一个旧的哈希迭代设置,直到密码被更新为止。
  • 增加的迭代数可能会影响 BIND 操作性能。

Jira:RHEL-42485

dsctl healthcheck 现在会警告在 membership 属性上创建子字符串索引

包含 membership 属性的条目通常是一个具有多个成员的组。当更改值集时,子字符串索引的成本非常昂贵,比如删除单个成员。现在,当添加子字符串索引类型时,dsctl healthcheck 会警告有关 membership 属性上子字符串索引成本过高,并显示以下出错消息:

DSMOLE0002.如果为 membership 属性配置了子字符串索引,则从大型组中删除一个成员可能会很慢。

Jira:RHEL-76841

gssproxy systemd 服务的服务类型已更改

gssproxy systemd 服务类型已从 "forking" 改为 "notify"。此更新删除了对 PIDFile 的依赖,这是改进与 bootc 的兼容性所必需的。有了此更新,gssproxy 服务使用 "notify" 类型,提供更可靠的服务状态监控。

Jira:RHEL-71651

ACME 现在在 IdM 中被完全支持

自动化证书管理环境(ACME)服务现在在身份管理(IdM)中被完全支持。ACME 是一个用于自动标识符验证和证书颁发的协议。它的目标是通过缩短证书生命周期并避免证书生命周期管理中的手动过程来提高安全性。

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

Jira:RHELDOCS-19405[1]

HSM 现在在 IdM 中被完全支持

硬件安全模块(HSM)现在在身份管理(IdM)中被完全支持。您可以在 HSM 上为 IdM 证书颁发机构(CA)和密钥恢复授权(KRA)存储密钥对和证书。这为私钥材料增加了物理安全。

IdM 依赖于 HSM 的网络功能,来在机器之间共享密钥来创建副本。HSM 提供了额外的安全性,而不会明显影响大多数 IdM 操作。使用低级别工具时,证书和密钥会以不同的方式处理,但对大多数用户来说是无缝的。

注意

不支持将现有 CA 或 KRA 迁移到基于 HSM 的设置中。您需要在 HSM 上使用密钥重新安装 CA 或 KRA。

您需要以下内容:

  • 一个支持的 HSM。
  • HSM Public-Key Cryptography Standard (PKCS) #11 库。
  • 一个可用的插槽、令牌和令牌密码。

要使用存储在 HSM 上的密钥安装 CA 或 KRA,您必须指定令牌名称和 PKCS #11 库的路径。例如:

ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers -–token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra

Jira:RHELDOCS-17465[1]

6.16. SSSD

支持 authselect 中添加的组合并

如果您使用 authselect 工具,您不再需要手动编辑 nssswitch.conf 文件来启用组合并。有了此更新,它现在被集成到 authselect 配置文件中,消除了手动更改的需要。

Jira:RHELDOCS-19936[1]

authselect 现在是 PAM 所必需的,且不能卸载

有了此增强,authselect-libs 软件包现在拥有 /etc/nsswitch.conf 和所选的 PAM 配置,包括 /etc/pam.d/ 中的 system-auth,password-auth,smartcard-auth,fingerprint-authpostlogin。这些文件的所有权已转给 authselect-libs 软件包,其带有之前由 'glibc 软件包拥有的 /etc/nsswitch.conf' 和之前由 pam 软件包拥有的 PAM 配置文件。由于 authselectpam 软件包所必需的,所以不能卸载它。

对于从以前的 RHEL 版本升级来的系统:

  • 如果 authselect 配置已存在,则 authselect apply-changes 会自动将配置更新至最新版本。如果您的系统上没有以前的 authselect 配置,则不会进行任何更改。
  • 在由 authselect 管理的系统上,任何非 authselect 配置现在在下一个 authselect 调用过程中被强制覆盖,而没有提示。不再需要 --force 选项。

如果您需要特殊配置,请创建一个自定义 authselect 配置文件。请注意,您必须手动更新自定义配置文件,以使它们与您的系统保持同步。

您可以选择不使用 authselect

# authselect opt-out

Jira:RHELDOCS-19197[1]

Local 配置文件是新的默认 authselect 配置文件

由于删除了 SSSD 文件提供者,因此引进了一个新的 authselect local 配置文件来处理本地用户管理,而无需依赖 SSSD。local 配置文件替换了之前的 minimal 配置文件,并成为新安装的默认 authselect 配置文件,而不是 sssd 配置文件。

在升级过程中,authselect 工具会自动将现有配置从 minimal 迁移到 local 配置文件。

另外,sssd authselect 配置文件已更新,以删除 with-files-domainwith-files-access-provider 选项,它不再通过这些选项直接处理本地用户帐户。如果依赖这些选项,您必须更新 SSSD 配置,以使用 proxy provider,而不是 files provider

sssd 配置文件现在支持-with-tlog 选项,它为 SSSD 管理的用户启用会话录音。

Jira:RHELDOCS-19263[1]

在 SSSD 中支持动态 DoT 更新

SSSD 支持使用 DNS-over-TLS (DoT)执行所有动态 DNS (dyndns)查询。当 IP 地址更改了时,您可以安全地更新 DNS 记录,如身份管理(IdM)和活动目录服务器。要启用这个功能,您必须从 bind9.18-utils 软件包安装 nsupdate 工具。

您可以在 sssd.conf 文件中使用以下新选项来启用 DoT ,并配置自定义证书来保护 DNS 更新:

  • dyndns_dns_over_tls
  • dyndns_tls_ca_cert
  • dyndns_tls_cert
  • dyndns_tls_key

有关这些选项的详情,请查看您系统上的 sssd-ad (5)sssd-ad (5) 手册页。

Jira:RHELDOCS-20014[1]

新的 SSSD 选项:exop_force

您可以使用 exop_force 选项强制更改密码,即使没有剩余的宽限期登录。在以前的版本中,如果 LDAP 服务器表示没有剩余的宽限期登录,SSSD 不会尝试密码更改。现在,如果您在 sssd.conf 文件的 [domain/…​] 部分中设置了 ldap_pwmodify_mode = exop_force,SSSD 会尝试更改密码,即使没有剩余的宽限期登录。

Jira:RHELDOCS-19863[1]

使用减少了的特权运行 SSSD

要支持常规系统强化(运行具有最低特权的软件),系统安全服务守护进程(SSSD)服务现在被配置为使用 systemd 服务配置文件(服务用户)在 sssdroot 下运行。现在,这个服务用户默认为 root,无论配置了哪个服务用户( rootsssd ),除一些特权帮助程序进程外,所有 root 功能都会被丢弃。

请注意,您必须确保配置文件的正确所有权。sssd.conf 文件必须由用来运行 SSSD 服务的同一用户所有。默认情况下,在 RHEL 10 中,这是 root 用户。如果手动创建 sssd.conf 文件,或者通过 Ansible 脚本创建,您应该将所有权更改为更安全的配置,root:sssd,权限设置为 rw-r-----(0640)

Jira:RHELDOCS-18882[1]

KnownHostsCommand 的支持已添加到 SSSD 中

有了此更新,对 KnownHostsCommand 的支持已添加到 SSSD 中。您可以使用带有 SSH KnownHostsCommand 配置选项的工具 sss_ssh_knownhosts 来从远程服务器(如 FreeIPA、LDAP 等)检索主机的公钥。sss_ssh_knownhosts 工具替换了不太可靠的 sss_ssh_knownhostsproxy 工具。sss_ssh_knownhostsproxy 不再可用,并显示一条消息表示该工具已过时。

Jira:RHELDOCS-19162[1]

6.17. 桌面

添加到 GNOME 经典的窗口概述

在以前的版本中,使用 GNOME 经典会话时,没有打开的窗口概述。在这个版本中,您可以在标准 GNOME 和 GNOME 经典模式会话中使用概述。这使得概述的功能(包括系统搜索)可供 GNOME 经典模式用户使用。用户现在可以在默认的 GNOME 会话中使用 GNOME 经典模式扩展。

Jira:RHELDOCS-19060[1]

RHEL 10 在 GNOME 桌面中提供了增强字体

RHEL 10 中改进了字体外观,大多数使用变量字体(VF)的语言:

  • GNOME 默认字体已改为红帽字体(以前对 Sans 为 Sbattis Cantarell,对 Mono 为 Mudobe Source Code Pro )。
  • 对于大多数语言,默认的核心字体已从 Deja Vu 改为 Google Noto VF 系列。
  • 默认安装的中文、日语和韩语 Noto 字体现在是 VF,虽然静态字体仍然可用。
  • Indic (印度)、Thai 和 Khmer 的默认字体已改为 Noto VF,这也有 Serif 面孔。
  • 默认的 Malayalam 字体已改进。
  • 已引进了 default-fonts 元软件包来为每种语言拉取合适的默认字体,从而更轻松地安装涵盖特定语言的默认字体。默认情况下,会为 GNOME 桌面安装这些元软件包。

其他改进包括以下内容:

  • 印度的 Indic 输入法遵循新的 Inscript 2 政府标准。
  • 新的 bash-color-prompt 软件包设置一个默认的带颜色的 Bash shell 提示符。

JIRA:RHELDOCS-19579

GNOME 在线帐户可以限制提供者可以使用哪些功能

您可以使用系统配置目录中的新的 goa.conf 文件(通常名为 /etc/goa.conf ),来限制每个提供者可以使用哪些功能。

goa.conf 文件中,组名称定义提供程序类型,键定义布尔值开关来禁用特定的功能。如果您没有为功能设置任何密钥或部分,则功能被启用。

例如,要为 Google 帐户禁用邮件功能,请使用以下设置:

[google]
mail=false

您可以使用 all 特殊部分名称覆盖每个提供者。如果特定提供者中的值存在并且包含有效的布尔值,则该值具有优先权。请注意,某些禁用的功能组合可能导致不完整或无效的帐户在被 GOA 用户读取,如 Evolution 应用程序。始终首先测试更改。重启 GNOME 在线帐户,以使更改的配置生效。

Jira:RHEL-40831

支持 RHEL Flatpak Mozilla Firefox、Mozilly Thunderbird、Runtime 和 SDK

在 RHEL 10.0 中,以下应用程序在 RHEL Flatpak 中被完全支持:

  • Mozilla Firefox
  • Flatpak 运行时
  • SDK
  • Mozilla Thunderbird

另外,Satellite 6.17 中也支持 RHEL Flatpak,详情请参阅 Satellite 6.17 发行注记

要了解更多有关 RHEL Flatpak 的信息,请参阅 为桌面容器引入 Red Hat Flatpak Runtime 博客文章。

您可以通过执行以下步骤,来在 RHEL 10 系统上安装 RHEL Flatpak 应用程序:

  1. 登录到 Red Hat Container Catalog。向您的红帽客户门户网站帐户或注册中心服务帐户令牌提供凭证:

    podman login registry.redhat.io
    
    
    Username: _<your_user_name>_
    Password: _<your_password>_

    默认情况下,Podman 会保存您的凭据,直到您退出。

  2. 可选:永久保存凭证。使用以下选项之一:

    1. 保存当前用户的凭证:

      # cp $XDG_RUNTIME_DIR/containers/auth.json \
           	$HOME/.config/flatpak/oci-auth.json
    2. 在系统范围内保存凭证:

      # cp $XDG_RUNTIME_DIR/containers/auth.json \
           	/etc/flatpak/oci-auth.json

      为获得最佳实践,请在系统范围内安装凭证时使用 registry 帐户令牌登录到 Red Hat Container Catalog。

  3. 安装 Mozilla Firefox RHEL 10 Flatpak:

    $ flatpak install rhel org.mozilla.firefox
    注意

    对于 RHEL 10.0,Mozilla.Firefox 的 Mozilla Firefox RHEL Flatpak 的 ID 已从 org.mozilla. firefox 改为 org.mozilla.firefox

  4. 运行 Mozilla Firefox

    1. 从命令行:

      $ flatpak run org.mozilla.firefox
    2. 从 GNOME 活动概览启动 Firefox。

Jira:RHEL-53563[1]

RHEL 10 提供了 Papers

Papers 是 GNOME 桌面的文档查看器应用程序。Papers 支持缩略图、概述、PDF、Tiff 和漫画书格式。其他功能包括:

  • 显示签名。
  • 使用 GTK4 工具包和 libadwaita 库现代化用户界面(UI),以处理桌面和移动用例。
  • PDF 文件的签名。
注意

您不能使用 Papers 打开 PostScript 文件。要打开 PostScript 文件,请将其转换为 PDF ,并打开 PDF。Papers 无法打开 XPS 文件。

Jira:RHELDOCS-19661[1]

6.18. Web 控制台

新软件包:cockpit-files

cockpit-files 软件包在 RHEL web 控制台中提供文件管理器页面。使用文件管理器,您可以执行以下操作:

  • 浏览文件系统上您可以访问的文件和目录
  • 根据各种条件对文件和目录进行排序
  • 按子字符串过滤显示的文件
  • 复制、移动、删除和重命名文件和目录
  • 创建目录
  • 上传文件
  • 将文件路径加入书签
  • 对操作使用快捷键

Jira:RHELDOCS-16362[1]

6.19. Red Hat Enterprise Linux 系统角色

支持新的 ha_cluster 系统角色功能

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

  • 为节点和原语资源配置 utilization 属性。
  • 使用 ha_cluster_node_options 变量配置节点地址和 SBD 选项。如果同时定义了 ha_cluster_node_optionsha_cluster 变量,则会合并它们的值,ha_cluster_node_options 的值具有优先权。
  • 配置访问控制列表(ACL)。
  • 当集群事件,如节点失败或发生资源启动或停止时,将 Pacemaker 警报配置为采取外部操作。
  • 通过将 ha_cluster_install_cloud_agents 变量设置为 true,为云环境轻松安装代理。

Jira:RHEL-34893[1], JIRA:RHEL-34894, JIRA:RHEL-34898, Jira:RHEL-34885

支持导出现有集群的 corosync 配置

ha_cluster RHEL 系统角色现在支持以可反馈到角色来重新创建同一集群的格式导出现有集群的 corosync 配置。如果您没有使用 ha_cluster RHEL 系统角色创建集群,或者如果您丢失了集群的原始 playbook,您可以使用此功能为集群构建新的 playbook。

Jira:RHEL-46219

新的 sudo RHEL 系统角色

sudo 是 RHEL 系统配置的关键部分。使用新的 sudo RHEL 系统角色,您可以在 RHEL 系统中一致地大规模管理 sudo 配置。

Jira:RHEL-37551

storage RHEL 系统角色现在可以管理 Stratis 池

有了此增强,您可以使用 storage RHEL 系统角色完成以下任务:

  • 创建一个新的加密且未加密的 Stratis 池
  • 向现有 Stratis 池添加新卷
  • 向 Stratis 池添加新磁盘

有关如何管理 Stratis 池和其他相关信息的详情,请查看 /usr/share/doc/rhel-system-roles/storage/ 目录中的资源。

Jira:RHEL-40798[1]

podman RHEL 系统角色中的新变量:podman_registry_certificatespodman_validate_certs

以下两个变量已添加到 podman RHEL 系统角色中:

  • podman_registry_certificates(字典元素的列表):使您能够管理用于连接到指定的容器镜像注册中心的 TLS 证书和密钥。
  • podman_validate_certs(布尔值,默认为 null):控制从容器镜像注册中心拉取镜像是否将验证 TLS 证书。默认的 null 值意味着无论 containers.podman.podman_image 模块配置的默认值是什么,都会使用它。您可以使用 validate_certs 变量,根据每个规范覆盖 podman_validate_certs 变量。

因此,您可以使用 podman RHEL 系统角色配置 TLS 设置,以连接到容器镜像注册中心。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。或者,您可以查看 containers-certs (5) 手册页。

Jira:RHEL-34884[1]

podman RHEL 系统角色中的新变量:podman_registry_usernamepodman_registry_password

podman RHEL 系统角色现在使您能够全局或在每个规范的基础上指定容器镜像注册中心凭证。为此,您必须配置两个角色变量:

  • podman_registry_username (字符串,默认为 unset):配置使用容器镜像注册中心进行身份验证的用户名。您还必须设置 podman_registry_password 变量。您可以使用 registry_username 变量,根据每个规范覆盖 podman_registry_username。然后,每个涉及凭证的操作都会根据该规范中定义的详细规则和协议来执行。
  • podman_registry_password(字符串,默认为 unset):配置使用容器镜像注册中心进行身份验证的密码。您还必须设置 podman_registry_username 变量。您可以使用 registry_password 变量,根据每个规范覆盖 podman_registry_password。然后,每个涉及凭证的操作都会根据该规范中定义的详细规则和协议来执行。为安全起见,使用 Ansible Vault 功能加密密码。

因此,您可以使用 podman RHEL 系统角色管理带有镜像的容器,其注册中心需要进行身份验证才能访问。

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

Jira:RHEL-34890[1]

podman RHEL 系统角色中的新变量:podman_credential_files

有些操作需要以自动或无人值守的方式从注册中心拉取容器镜像,且不能使用 podman_registry_usernamepodman_registry_password 变量。

因此,podman RHEL 系统角色现在接受 containers-auth.json 文件,来对容器镜像注册中心进行身份验证。为此,您可以使用以下角色变量:

podman_credential_files(字典元素的列表)
列表中的每个字典元素定义都定义了一个带有用户凭据的文件,来向私有容器镜像注册中心进行身份验证。为安全起见,使用 Ansible Vault 功能加密这些凭据。您可以指定文件名、模式、所有者、文件的组,并且可以以不同的方式指定内容。如需了解更多详细信息,请参阅角色文档。

因此,您可以输入容器镜像注册中心凭证来执行自动和无人值守的操作。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。或者,您可以查看 containers-auth.json (5)containers-registries.conf (5) 手册页。

Jira:RHEL-34891[1]

journald RHEL 系统角色中的新变量:journald_rate_limit_interval_secjournald_rate_limit_burst

以下两个变量已添加到 journald RHEL 系统角色中:

  • journald_rate_limit_interval_sec (整数,默认为 30):配置一个时间间隔(以秒为单位),在这期间,只处理 journald_rate_limit_burst 日志消息。journald_rate_limit_interval_sec 变量对应于 journald.conf 文件中的 RateLimitIntervalSec 设置。
  • journald_rate_limit_burst (整数,默认为 10 000):配置日志消息的上限,日志消息在 journald_rate_limit_interval_sec 定义的时间内被处理。journald_rate_limit_burst 变量对应于 journald.conf 文件中的 RateLimitBurst 设置。

因此,您可以使用这些设置调优 journald 服务的性能,以便在短时间内处理记录很多消息的应用程序。

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

Jira:RHEL-34892[1]

ssh RHEL 系统角色现在可以识别 ObscureKeystrokeTimingChannelTimeout 配置选项

ssh RHEL 系统角色已更新,以反映在 OpenSSH 工具套件中添加以下配置选项:

  • ObscureKeystrokeTiming(yes|no|interval 指定符,默认为 20):配置 ssh 工具是否应该隐藏来自网络流量被动观察者中的按键间隔时间。
  • ChannelTimeout :配置 ssh 工具是否应该关闭不活跃的渠道,以及关闭的速度。

使用 ssh RHEL 系统角色时,您可以使用新选项,如本示例中所示:

- name: Non-exclusive ssh configuration
  hosts: managed-node-01.example.com
  tasks:
    - name: Configure ssh to obscure keystroke timing and set 5m session timeout
      ansible.builtin.include_role:
        name: rhel-system-roles.ssh
      vars:
        ssh_ObscureKeystrokeTiming: "interval:80"
        ssh_ChannelTimeout: "session=5m"

Jira:RHEL-40181

storage RHEL 系统角色现在可以调整 LVM 物理卷的大小

如果块设备的大小已更改,且您在 LVM 中使用这个设备,则您也可以调整 LVM 物理卷。有了这个增强,您可以使用 storage RHEL 系统角色调整 LVM 物理卷大小,以便在调整大小后与底层块设备的大小匹配。要启用自动调整大小,请在 playbook 中对池设置 grow_to_fill: true

Jira:RHEL-40797[1]

nbde_client RHEL 系统角色现在可让您跳过运行某些配置

使用 nbde_client RHEL 系统角色,您现在可以禁用以下机制:

  • 初始 RAM 磁盘
  • NetworkManager flush 模块
  • Dracut flush 模块

clevis-luks-askpass 工具在 NetworkManager 服务将操作系统放在网络上后,会解锁一些存储卷。因此,不需要对上述机制进行配置更改。

因此,您可以禁止运行上述配置,来支持高级网络设置,或者将在引导过程后期发生的卷解密。

Jira:RHEL-45718[1]

postfix RHEL 系统角色中的新变量:postfix_files

postfix RHEL 系统角色现在使您能够为 Postfix 邮件传输代理配置额外的文件。为此,您可以使用以下角色变量:

postfix_files
定义要放入 /etc/postfix/ 目录中的文件的列表,如果需要,它们可以转换为 Postfix 查找表。此变量使您能够配置简单身份验证和安全层(SASL)凭证等。为安全起见,使用 Ansible Vault 功能加密包含凭据和其他 secret 的文件。

因此,您可以使用 postfix RHEL 系统角色创建这些额外文件,并将其集成到 Postfix 配置中。

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

Jira:RHEL-46855[1]

snapshot RHEL 系统角色现在支持管理 LVM 精简池的快照

有了精简配置,您可以使用 snapshot RHEL 系统角色管理 LVM 精简池的快照。这些精简快照可以节省空间,并且仅在进行快照后写入或修改数据时才增长。角色自动检测指定的卷是否被计划用于精简池。添加的功能在不需要大量物理存储的情况下需要频繁执行快照的环境中非常有用。

Jira:RHEL-48230[1]

logging RHEL 系统角色中的新选项:reopen_on_truncate

logging_inputs 变量的 files 输入类型现在支持以下选项:

reopen_on_truncate (布尔值,默认为 false)
rsyslog 服务配置为在输入日志文件被截断时重新打开,如在日志轮转期间。reopen_on_truncate 角色选项对应于 rsyslogreopenOnTruncate 参数。

因此,您可以通过 logging RHEL 系统角色以自动的方式配置 rsyslog,以便在输入日志文件被截断时重新打开它。

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

Jira:RHEL-48609[1]

logging RHEL 系统角色中的新变量:logging_custom_config_files

您可以使用以下变量,为 logging RHEL 系统角色提供自定义日志配置文件:

logging_custom_config_files (列表)
配置要复制到默认日志记录配置目录的配置文件的列表。例如,对于 rsyslog 服务,它是 /etc/rsyslog.d/ 目录。这假设默认日志记录配置加载并处理该目录中的配置文件。默认的 rsyslog 配置有一个指令,如 $IncludeConfig /etc/rsyslog.d86].conf

因此,您可以使用不是由 logging RHEL 系统角色提供的自定义配置。

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

Jira:RHEL-50288[1]

logging RHEL 系统角色可以为 rsyslog 文件和目录设置所有权和权限

logging_outputs 变量的 files 输出类型现在支持以下选项:

  • mode (raw,默认为 null):配置与 rsyslog 服务中的 omfile 模块关联的 FileCreateMode 参数。
  • owner(字符串,默认为 null):配置与 rsyslog 中的 omfile 模块关联的 fileOwnerfileOwnerNum 参数。如果值为整数,它会设置 fileOwnerNum。否则,它会设置 fileOwner
  • group(字符串,默认为 null):配置与 rsyslog 中的 omfile 模块关联的 fileGroupfileGroupNum 参数。如果值为整数,它会设置 fileGroupNum。否则,它会设置 fileGroup
  • dir_mode(默认为 null):配置与 rsyslog 中的 omfile 模块关联的 DirCreateMode 参数。
  • dir_owner(默认为 null):配置与 rsyslog 中的 omfile 模块关联的 dirOwnerdirOwnerNum 参数。如果值为整数,它会设置 dirOwnerNum。否则,它会设置 dirOwner
  • dir_group(默认为 null):配置与 rsyslog 中的 omfile 模块关联的 dirGroupdirGroupNum 参数。如果值为整数,它会设置 dirGroupNum。否则,它会设置 dirGroup

因此,您可以为 rsyslog 创建的文件和目录设置所有权和权限。

请注意,文件或目录属性与 Ansible file 模块中相应的变量相同。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/logging/ 目录中的资源。或者,检查 ansible-doc file 命令的输出。

Jira:RHEL-50289[1]

使用 storage RHEL 系统角色在受管节点上创建指纹

如果不存在,storage 会在每次运行此角色时创建一个唯一标识符(指纹)。指纹具有 # system_role:storage 字符串的形式,写到受管节点上的 /etc/fstab 文件中。因此,您可以跟踪哪些节点由 storage 管理。

Jira:RHEL-50291[1]

新的 src 参数已添加到 network RHEL 系统角色中

已向 network_connections 变量的 ip 选项 的 route 子选项中添加了 src 参数。这个参数指定路由的源 IP 地址。它通常用于多 WAN 连接。您可以设置具有多个公共 IP 地址的机器,并且您想要确保出站流量使用与特定网络接口绑定的特定 IP 地址。因此,对 src 参数的支持可以更好地控制流量路由,并确保在上述场景中有一个更加强大且灵活的网络配置能力

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

Jira:RHEL-53901[1]

支持使用 RHEL 系统角色在 RHEL 9 集群上配置 GFS2 文件系统

Red Hat Enterprise Linux 10 通过在 RHEL 10 控制节点上使用 gfs2 RHEL 系统角色来支持配置和管理 Red Hat Global File System 2 (GFS2),以管理 RHEL 9 系统。RHEL 10 系统上不支持包含 GFS2 文件系统的 Red Hat Red Hat Enterprise Linux (RHEL) Resilient Storage Add-On。角色使用 pcs 命令行界面在 Pacemaker 集群中创建 GFS2 文件系统。

在以前的版本中,在支持的配置中设置 GFS2 文件系统需要您遵循一系列步骤,来配置存储和集群资源。gfs2 角色简化了这个过程。使用该角色,您可以在 RHEL 高可用性集群中只指定配置 GFS2 文件系统所需的最少信息。

gfs2 角色执行以下任务:

  • 为在红帽高可用性集群中配置 GFS2 文件系统安装所需的软件包
  • 设置 dlmlvmlockd 集群资源
  • 创建 GFS2 文件系统所需的 LVM 卷组和逻辑卷
  • 使用必要的资源约束创建 GFS2 文件系统和集群资源

Jira:RHEL-34828[1]

microsoft.sql.server 系统角色中的新变量:mssql_tools_versionsmssql_tls_self_sign

新的 mssql-tools18 软件包带来了与 mssql-tools 软件包的之前版本不向后兼容的功能。因此,以下变量已添加到 microsoft.sql.server 系统角色中,以适应更改:

  • mssql_tools_versions (列表,默认为版本 18):使您能够安装不同版本的 mssql-tools
  • mssql_tls_self_sign(布尔值):指定您使用的证书是否是自签名的。当您也设置了 mssql_tls_enable: true 变量时适用。
重要

当您将 mssql-tools18 与自签名 TLS 证书一起使用时,您必须设置 mssql_tls_self_sign: true,以便在 sqlcmd 命令行工具中设置 -C 标志,以便您的证书可以被信任。

因此,您可以使用这些配置来安装 mssql_tools 版本 17; 18; 或并行安装它们。

如需了解更多详细信息,请参阅 /usr/share/ansible/roles/microsoft.sql-server/ 目录中的资源。

Jira:RHEL-68468

sudo RHEL 系统角色中的新变量:sudo_check_if_configured

sudo RHEL 系统角色现在有以下变量:

  • sudo_check_if_configured(布尔值):提供一个已配置的 sudoers 文件的语义检查,以防 Ansible 设置不需要,并被跳过。

因此,如果不需要 Ansible 干预,您可以使用此设置来确保 sudo 角色幂等性。

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

Jira:RHEL-67419[1]

systemd RHEL 系统角色中的新变量:systemd_units_user

有了这个更新,systemd RHEL 系统角色现在也可以通过以下变量管理用户单元:

  • systemd_units_user(字典):每个键是传递给角色的一个列表中给定用户的名称和 root(即使没有给出 root )。每个值都是该用户的 systemd 单元的一个字典,或者是 root 的系统单元。
重要

角色不会创建新用户,如果您指定了一个不存在的用户,它将返回一个错误。

因此,您可以使用此设置,使用 systemd RHEL 系统角色管理用户单元。

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

Jira:RHEL-67420[1]

新的 RHEL 系统角色:aide

aide 是一个新的 RHEL 系统角色,用于检测对文件、目录和系统二进制文件的未授权更改。使用此角色,您可以完成以下任务:

  • 在受管节点上安装 aide 软件包。
  • 生成 /etc/aide.conf 文件,并将其模板化到受管节点。
  • 初始化(高级入侵检测环境)AIDE 数据库。
  • 在受管节点上运行 AIDE 完整性检查。
重要

角色不解释如何创建一个合适的 AIDE 配置。

因此,您可以以自动的方式大规模管理 AIDE,以解决您的安全、合规性或审计需求。

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

Jira:RHEL-67411[1]

microsoft.sql.server 系统角色为 AD 用户启用 AES 128 位和 AES 256 位加密

从 1.1.83 版本开始,adutil 工具在创建或修改活动目录(AD)用户时支持带有 AES 128 位和 AES 256 位加密的 Kerberos 协议。有了此更新,microsoft.sql.server 系统角色会在创建或修改 AD 用户时自动启用 Kerberos 协议提供的 AES 128 位和 AES 256 位加密。因此,不需要手动进行配置后任务。

Jira:RHEL-68490

sshd RHEL 系统角色验证命令和配置

在使用 commandshell 插件时,sshd 角色使用 quote 命令来确保您可以安全地使用这些命令。角色还会验证传递给这些插件的某些用户提供的角色变量。这提高了使用角色的安全性和稳健性,如果没有验证,用户提供的包含空格的变量可能会被分割,且无法正常工作。

Jira:RHEL-73441[1]

RHEL 10 为 postfix RHEL 系统角色提供一个新的变量 postfix_default_database_type

postfix 系统角色可以确定 postfix 使用的默认数据库类型,并将其作为变量 postfix_default_database_type 导出。因此,您可以根据默认数据库类型设置配置参数。

注意

Ansible 2.9 上不支持在配置参数值中使用 postfix_default_database_type

Jira:RHEL-70554[1]

podman RHEL 系统角色可以管理类型 Pod 的四元组单元

添加了podman 工具版本 5 对 Pod 四元组类型的支持。因此,podman RHEL 系统角色现在也可让您管理类型 Pod 的四元组单元。

如需了解更多详细信息,请参阅 上游文章

Jira:RHEL-67417[1]

新属性已添加到 network RHEL 系统角色 network_connections 变量中:autoconnect_retries

network RHEL 系统角色中,没有对自动尝试重新连接网络连接的次数进行精细的控制。对于扩展重试过程至关重要的某些用例中,这个限制可能会有问题,特别是在具有不稳定网络的环境中。已添加到 network_connections 角色变量的 autoconnect_retries 属性配置 NetworkManager 在自动连接失败后尝试重新连接网络连接的次数。因此,network RHEL 系统角色现在允许使用 network_connections 变量中的 autoconnect_retries 属性来配置自动连接失败后自动重新连接尝试的数量。此增强提供了对网络稳定性和性能的更好控制,特别是在具有不稳定网络的环境中。

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

Jira:RHEL-67416[1]

新属性已添加到 network RHEL 系统角色 network_connections 变量中:wait_ip

此更新增加了对 network_connections 角色变量中 ip 选项的 wait_ip 属性的支持。属性指定系统是否应只在配置了特定 IP 堆栈时才将网络连接视为已激活。您可以使用以下值配置 wait_ip

  • any: 系统会在配置了任何 IP 堆栈后将连接视为激活。
  • ipv4 :系统等待,直到配置了 IPv4 。
  • ipv6 :系统等待,直到配置了 IPv6 。
  • ipv4+ipv6 :系统等待,直到 IPv4 和 IPv6 都配置了。

因此,network RHEL 系统角色现在允许您根据特定的 IP 堆栈配置网络连接。这可使连接保持激活状态,即使没有分配 IP 地址,具体取决于所选的 wait_ip 设置。

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

Jira:RHEL-67415[1]

添加了对 Valkey 作为 Redis 的一种替代选择的支持

此更新添加了对 Valkey 内存数据结构存储的支持。它是 Redis 的一种替代选择,它不再是开源的,并已从 Linux 发行版中删除。Valkey 通常用作高性能缓存层。它将数据存储在内存中,其通过缓存频繁访问的数据来加快应用程序的速度。另外,您可以对其他性能关键操作使用 Valkey ,例如:

  • 存储和检索用户会话数据。
  • 不同应用程序部分之间的实时通信。
  • 为分析和监控提供快速数据访问。

Jira:RHEL-67413[1]

logging RHEL 系统角色中的新变量:logging_custom_templates

以下变量已添加到 logging RHEL 系统角色中:

  • logging_custom_templates :自定义模板定义的列表。当其选项为 type: filestype: forwards 时,您可以将其与 logging_outputs 变量一起使用。您可以通过在特定的 logging_outputs 规范中设置 template 选项,来为每个输出指定此自定义模板。或者,您可以使用 logging_files_template_formatlogging_forwards_template_format 全局选项将此自定义模板设置为默认被所有文件使用,并转发输出。

因此,您可以将日志条目设置为与内置默认值提供的不同的格式。

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

Jira:RHEL-67286[1]

6.20. 虚拟化

对 IBM z17 处理器的虚拟化支持

有了此更新,RHEL 上的虚拟化增加了对 IBM z17 CPU 的支持。因此,在带有 RHEL 的 IBM Z 系统上托管的虚拟机现在可以使用 z17 处理器提供的新功能。

Jira:RHEL-33137[1]

对 IBM Z 上的 Secure Execution 支持可检索的 secret

有了此更新,您可以在 IBM Z 上的 Secure Execution 虚拟机(VM)中对加密设备使用通用的基于主机的 secret。因此,在配置 Secure Execution 时,不再需要将 secret 存储在 initramfs 镜像中,这简化了创建安全的虚拟机镜像的过程。请注意,这个功能当前只在 IBM z17 处理器上支持。

Jira:RHEL-25204[1]

HPE 上的 RHEL 最多可以运行 4096 个 vCPU

使用此功能,在 Hewlett Packard Enterprise Compute Scale-Up Server 上使用 RHEL hypervisor 运行 RHEL 虚拟机(VM)实例现在支持最多 4096 个虚拟 CPU、32 个插槽和 64 TB 的内存,来处理内存数据库和其他大型计算密集型工作负载。

Jira:RHEL-57668[1]

RHEL 10 提供 nbdkit 版本 1.38

nbdkit 软件包已更新至上游版本 1.38,它提供了各种 bug 修复和增强。最显著的更改如下:

  • 块大小广告已被改进,并添加了新的只读过滤器。
  • Python 和 OCaml 绑定支持服务器 API 的更多功能。
  • 添加了内部结构完整性检查,使服务器更加强大。

有关更改的完整列表,请参阅 上游发行注记

Jira:RHEL-32748

IBM Z 上的 KVM 现在支持多个引导设备

在 IBM Z 主机上的 KVM 上运行的客户机操作系统可在主引导设备无法引导时尝试从附加设备引导。这个功能支持以下设备类型:

  • virtio-net
  • virtio-blk
  • virtio-scsi/cdrom

要为虚拟机配置引导设备的顺序,请在其 XML 配置的 <boot> 行上使用 order 参数。虚拟机现在将尝试使用多达 8 个设备进行引导。

另外,这些设备现在对其 XML 配置的 <boot> 行支持 loadparm 参数。通过使用 loadparm,可以配置客户机操作系统在从设备引导时,设备使用哪个引导条目。

Jira:RHEL-68444, Jira:RHEL-24070

对 64 位 ARM 主机上虚拟机的新支持的功能

现在对使用 64 位 ARM 架构(也称为 aarch64 )的 RHEL 主机上的虚拟机支持以下功能:

  • 在 64 位 ARM 主机之间迁移虚拟机。但请注意,迁移目前仅在两个主机都使用相同的 CPU 类型和内存页大小时才可以工作。
  • Trusted Platform Module(TPM)接口规范(TIS)硬件接口
  • 非易失性双内联内存模块(NVDIMM)内存设备
  • virtio-iommu 设备

Jira:RHELDOCS-19832[1]

RHEL 支持实时迁移带有 Mellanox 虚拟功能的虚拟机

有了此更新,您可以对附加了 Mellanox 网络设备的虚拟功能(VF)的虚拟机(VM)执行实时迁移。

但是,目前只支持具有特定固件版本的 Mellanox CX-7 网络设备。Mellanox CX-7 网络设备上的 VF 使用一个新的 mlx5_vfio_pci 驱动程序,它添加了实时迁移所需的功能,并且 libvirt 自动将新驱动程序绑定到 VF。

如需了解更多详细信息和限制,请参阅:实时迁移附加了 Mellanox 虚拟功能的虚拟机

Jira:RHELDOCS-19210[1]

virtio-net 中支持 USO

此更新为 Windows virtio-net 驱动程序添加了用户数据报协议(UDP)分段卸载(USO)功能。这使得 Windows 虚拟机可以将大型 UDP 数据包的分段卸载到底层 virtio-net 设备。因此,这减少了虚拟机中 CPU 的使用率,并提高了整体 UDP 网络性能,特别是在产生大量 UDP 流量的工作负载中。 

Jira:RHEL-1300[1]

virt-install 现在支持创建带有 SEV-SNP 的虚拟机

现在,您可以使用 virt-install 工具创建使用带有安全嵌套分页(SEV-SNP)功能的 AMD 安全加密的虚拟化的虚拟机(VM)。为此,请使用 launchSecurity sev-snp,policy=0x30000 选项。

请注意,SEV-SNP 目前仅作为技术预览提供。

Jira:RHEL-62960

支持带有为其他方提供写访问的共享 virtiofs 目录的虚拟机实时迁移

有了此更新,您可以实时迁移带有 virtiofs 共享目录的虚拟机(VM),即使多个其他方(如主机和其他虚拟机)都有对该目录的写权限。

Jira:RHEL-29027

RHEL for Real Time 中支持虚拟机

此更新在 RHEL for Real Time 中引入了对实时虚拟化的完全支持。您可以配置主机和客户机操作系统,以实现虚拟机(VM)的低延迟和确定性行为。这使得实时虚拟机适合需要实时性能的应用程序,如工业自动化、电信和汽车系统。

Jira:RHELDOCS-20116[1]

6.21. 云环境中的 RHEL

cloud-init 现在使用 NetworkManager 作为默认的网络渲染器

有了此更新,cloud-init 工具在初始化云实例时,使用 NetworkManager (NM)作为网络配置的后端。因此,在 cloud-init 设置中使用 NM keyfiles 不再需要重新配置 /etc/cloud/cloud.cfg

Jira:RHEL-29720[1]

RHEL 10 提供统一内核镜像

完全支持 RHEL 的统一内核镜像(UKI)。要使用 RHEL UKI,您必须首先安装 kernel-uki-virt 软件包。RHEL UKI 可在虚拟和云环境中增强 SecureBoot 保护。

Jira:RHELDOCS-19840[1]

增强了对有资格的 RHEL 镜像的自动注册

当为 RHEL 9.6 或更高版本以及 RHEL 10.0 或更高版本购买某些符合条件的云市场订阅时,会提供一个自动注册功能的改进版本。

通过增强的自动注册,合格市场中的任何 RHEL 实例都将自动注册到红帽,并在您在红帽帐户和特定云平台帐户之间建立可信连接后自动收到来自 Red Hat Update Infrastructure (RHUI)的内容更新,即使您没有可信连接。

如需了解更多详细信息,请参阅 理解自动注册

Jira:RHELDOCS-19664[1]

RHEL 8 - 10 的 WSL 镜像在客户门户网站上提供

用于 Linux (WSL)的 Windows 子系统的 RHEL 8、RHEL 9 和 RHEL 10 镜像现在可以从红帽客户门户网站下载。这些镜像对所有 RHEL 订阅可用,包括免费开发人员订阅。通过使用 WSL 镜像,您可以在 Windows 系统上创建 RHEL 实例。

请注意,WSL 镜像作为自支持提供。因此,它们不被红帽支持,且仅用于应用程序开发目的。

另外,如果您在 Windows WSL 主机上使用 WSL 镜像,当前在 RHEL 客户机操作系统中会存在以下问题:

  • RHEL 的 WSL 实例可能在图形界面中无法正常工作。建议使用文本用户界面。
  • 要使用 podman,除了标准配置步骤外,还必须在 /etc/containers/containers.conf 文件中添加以下行:

    [network]
    firewall_driver="iptables"
  • 要使用 cloud-init,您必须创建 /etc/cloud/cloud.cfg.d/99_wsl.cfg 文件,除了标准配置步骤外,还要将以下内容添加到其中:

    datasource_list: [WSL]
    network: {config: disabled}
  • 无法将 SELinux 设置为 enforcing 模式。
  • RHEL 的 WSL 实例中不提供 FIPS 模式。

Jira:RHELDOCS-19876

6.22. 支持性

--api-url 选项现在可用

使用 -api-url 选项,您可以根据需要调用另一个 API。例如,OCP 集群的 API。示例:sos collect --cluster-type=ocp --cluster-option ocp.api-url=_<API_URL> --alloptions.

Jira:RHEL-24523

新的 -skip-cleaning-files 选项现在可用

sos report 命令的 --skip-cleaning-files 选项允许您跳过清理所选文件。选项支持 globs 和通配符。示例: sos report -o host --batch --clean --skip-cleaning-files 'hostname'

Jira:RHEL-30893[1]

plugin 选项名称现在使用连字符而不是下划线

要确保 sos 全局选项的一致性,plugin 选项名称现在只使用连字符而不是下划线,例如,网络插件 namespace_pattern 选项现在是 namespace-pattern,且必须使用-- plugin-option networking.namespace-pattern=<pattern> 语法来指定。

Jira:RHELDOCS-18655[1]

6.23. 容器

RHEL 的镜像模式支持 FIPS 模式

有了此增强,您可以在构建 bootc 镜像时启用 FIPS 模式,来将系统配置为只使用 FIPS 批准的模块。您可以使用 bootc-image-builder,它需要在 Containerfile 配置中启用 FIPS 加密策略,或使用 RHEL Anaconda 安装,另外在 Containerfile 中启用 FIPS 模式,还需要在引导系统安装时添加 fips=1 内核参数。如需了解更多详细信息,请参阅 安装启用了 FIPS 模式的系统

以下是一个带有启用 fips=1 内核参数指令的 Containerfile 。

FROM registry.redhat.io/rhel9/rhel-bootc:latest#
# Enable fips=1 kernel argument:
https://bootc-dev.github.io/bootc//building/kernel-arguments.html
COPY 01-fips.toml /usr/lib/bootc/kargs.d/
# Install and enable the FIPS crypto policy
RUN dnf install -y crypto-policies-scripts && update-crypto-policies --no-reload --set FIPS

01-fips.toml 的内容是:

kargs = ["fips=1"]

Jira:RHELDOCS-18585[1]

支持使用 bootc-image-builder 创建和部署 VMDK

在这个版本中,您可以使用 bootc-image-builder 工具从 bootc 镜像创建虚拟机磁盘(VMDK),并将 VMDK 镜像部署到 VMware vSphere。

Jira:RHELDOCS-18398[1]

Podman 和 Buildah 支持将 OCI 工件添加到镜像索引中

有了此更新,您可以创建工件清单,并将其添加到镜像索引中。

buildah manifest add 命令支持以下选项:

  • 创建工件清单的 --artifact 选项
  • --artifact-type,--artifact-config-type ,--artifact-layer-type,--artifact-exclude-titles, 和- subject 选项来配置它所创建的工件清单的内容。

buildah manifest annotate 命令支持以下选项:

  • --index 选项对索引本身设置注解,而不是镜像索引中的一个条目
  • 用来设置镜像索引的 subject 字段的 --subject 选项。

buildah manifest create 命令支持 the- annotation 选项,将注解添加到新镜像索引中。

Jira:RHEL-33571

提供了用于禁用 Podman 健康检查事件的选项

此增强在 [engine] 部分下的 containers.conf 配置文件中添加了一个新的 healthcheck_events 选项,以禁用 health_status 事件的生成。设置 healthcheck_events=false ,来禁用日志记录健康检查事件。

Jira:RHEL-34604

Podman 中的运行时资源更改是持久的

使用 podman update 命令更新容器配置是持久的。请注意,这个增强用于 SQLite 和 BoltDB 数据库后端。

Jira:RHEL-33566

完全支持构建多架构镜像

完全支持用于创建多架构容器镜像的 podman farm build 命令。

农场是在其中运行了 UNIX Podman 套接字的一组计算机。场中的节点可以有不同架构的机器。podman farm build 命令比 podman build --arch --platform 命令快。

您可以使用 podman farm build 来执行以下操作:

  • 在农场的所有节点上构建一个镜像。
  • 将场中所有节点上的镜像捆绑到清单列表中。
  • 在所有农场节点上运行 podman build 命令。
  • 将镜像推送到 --tag 选项指定的注册中心。
  • 本地创建一个清单列表。
  • 将清单列表推送到注册中心。

清单列表包含场中存在的每个原生架构类型的一个镜像。

Jira:RHEL-34611

Podman 中用于 pod 的 Quadlets 可用

从 Podman v5.0 开始,您可以使用 Quadlet 从 pod 描述中自动生成 systemd 服务文件。

Jira:RHEL-33573

Podman v2.0 RESTful API 已更新

新字段已添加到 libpod/images/json 端点中:

  • isManifest 布尔值字段确定目标是否为清单。libpod 端点返回镜像和清单列表。
  • 镜像列表的 osarch 字段。

Jira:RHEL-34613

Kubernetes YAML 支持数据卷容器作为 init 容器

使用 "io.podman.annotations.kube.image.automount/$ctrname" 注解可在 Kubernetes YAML 中指定自动挂载的镜像列表。使用 podman run --mount type=image,source=<image>,dst=<path>,subpath=<path > 的基于镜像的挂载支持一个新的选项 subpath,来仅将镜像的一部分挂载到容器中。

Jira:RHEL-34606

containers.conf 文件是只读

存储在 containers.conf 文件中的系统连接和场信息是只读的。系统连接和农场信息将存储在 podman.connections.json 文件中,仅由 Podman 管理。Podman 继续支持旧的配置选项,如 [engine.service_destinations][farms] 部分。但是,如果需要,您仍然可以手动添加连接或场,但无法使用 podman system connection rm 命令从 containers.conf 文件中删除连接。

如果需要,您仍然可以手工编辑 containers.conf 文件。Podman v4.0 添加的系统连接在升级到 Podman v5.0 后保持不变。

Jira:RHEL-40639

对 Podman v5.0 的默认设置更改

在 RHEL 10.0 中,对 Podman v5.0 的以下默认设置更改:

  • 默认使用 cgroup v2 而不是 cgroup v1
  • pasta 是无根容器使用的默认网络,而不是 slirp4netns

Jira:RHEL-40643

新的 rhel10/rteval 容器镜像

Red Hat Container Registry 中提供了实时 registry.redhat.io/rhel10/rteval 容器镜像,以便在独立 RHEL 安装上运行延迟分析。使用 rhel10/rteval 容器镜像,您可以在容器化设置中执行延迟测试,以确定此类解决方案是否可以用于实时工作负载,或者将结果与运行 rteval 的裸机运行进行比较。要使用此功能,请订阅带有实时支持的 RHEL。不提供调优指南。

Jira:RHELDOCS-18522[1]

为 Podman 和 Buildah 提供了 --compat-volumes 选项

您可以将新的 -compat-volumes 选项与 buildah buildpodman buildpodman farm build 命令一起使用。此选项触发了对使用 VOLUME 指令标记的目录内容的特殊处理,以便其内容随后只能被 ADDCOPY 指令修改。在这些位置通过 RUN 指令所做的任何更改将被丢弃。在以前的版本中,这个行为是默认设置,但默认禁用它。

Jira:RHEL-52240

macvlanipvlan 网络接口名称可在 containers.conf 中进行配置

要指定 macvlanipvlan 网络,您可以使用 containers.conf 配置文件中的新的 interface_name 字段来调整容器中创建的网络接口的名称。

Jira:RHELDOCS-18769[1]

支持使用 bootc-image-builder 构建 GCP 镜像

通过使用 bootc-image-builder 工具,您可以生成 .gce 磁盘镜像,并在 Google Compute Engine (GCE)平台上置备实例。

Jira:RHELDOCS-18472[1]

Podman 支持推送和拉取使用 zstd:chunked 压缩的镜像

您可以推送使用 zstd:chunked 格式压缩的镜像,以减少镜像大小,并使用部分拉取。

Jira:RHEL-67260

Container Tools 软件包已更新

提供了更新的 Container Tools RPM meta-package,其中包括 Podman、Buildah、Skopeo、crunrunc 工具。Buildah 已更新至版本 1.39.0,Skopeo 已更新至版本 1.18.0。Podman v5.4 包含以下值得注意的 bug 修复和增强:

  • podman update 命令支持与健康检查相关的各种选项 :--health-cmd 定义一个新的健康检查和- -no-healthcheck,以禁用现有的健康检查。这些选项可以更轻松地在运行的容器中添加、修改或禁用健康检查。如需更多信息,请参阅 podman-update (5) 手册页。
  • podman runpodman createpodman volume create 命令的-- mount type= volume 选项支持一个新的选项 subpath=,以便仅在容器中可见卷的子集。
  • podman runpodman createpodman pod create 命令的 --userns=keep-id 选项支持一个新的选项,即-- userns=keep-id:size=,以配置用户命名空间的大小。
  • podman kube play 命令支持容器设备接口(CDI)设备。
  • podman runpodman createpodman pod create 命令支持一个新的选项,即--hosts-file 来定义用于容器中的 /etc/hosts 的基本文件。
  • podman runpodman createpodman pod create 命令支持一个新的选项,--no-hostname 可以禁用在容器中创建 /etc/hostname
  • podman network create 命令支持网桥网络的新选项,即 --opt mode=unmanaged,它允许 Podman 在系统中使用现有网络桥接而无需更改。
  • podman runpodman createpodman pod create 的--network 选项接受桥接网络 host_interface_name 的新选项,用于指定容器外创建的网络接口的名称。
  • 在删除不存在的清单时,podman manifest rm 命令支持一个新的选项(--ignore )才能成功继续。
  • podman system prune 命令支持一个新的选项,即构建构建,以从预先终止的构建容器中移除。
  • Podman 将容器主机名传递给 Netavark,它将它们用于容器的任何 DHCP 请求。
  • 从 Makefile 构建 podman 时,打包程序可以设置 BUILD_ORIGIN 环境变量。这提供了有关谁构建 Podman 二进制文件的信息,此信息显示在 podman versionpodman info 命令中。包含这些信息可以通过帮助维护人员识别构建和安装的源和方法,来协助 bug 报告。
  • podman kube generatepodman kube play 命令可以创建并运行 Kubernetes Job YAML。
  • podman kube generate 命令包括生成的 YAML 中 pod 和容器的用户命名空间信息。podman kube play 命令使用此信息在创建基于 YAML 的新 pod 时复制用户命名空间配置。
  • podman kube play 命令支持类型为镜像的 Kubernetes 卷。
  • Quadlet 生成的 systemd 单元的服务名称可使用所有支持的 Quadlet 文件中的 ServiceName 键设置。
  • Quadlets 可以使用所有 Quadlet 文件支持的新键 DefaultDependencies 来禁用其对 network-online.target 的隐式依赖项。
  • Quadlet .container.pod 文件支持一个新的密钥 AddHost,将主机添加到容器或 pod 中。
  • Quadlet .container.pod 文件中的 PublishPort 键可以接受其值中的变量。
  • Quadlet .container 文件支持两个新密钥 CgroupsModeStartWithPod,为容器配置控制组,以及容器是否通过它所属的 pod 启动。
  • Quadlet .container 文件可以通过指定要在 Network 键内共享 容器的 . container 文件来使用另一个容器的网络。
  • Quadlet .container 文件可以使用 .image 目标的 Mount=type=image 密钥将由 .image 文件管理的镜像挂载到容器中。
  • Quadlet .pod 文件支持六个新密钥、 DNS 选项DNSSearchIPIP6UserNS,来为 pod 配置 DNS、静态 IP 和用户命名空间设置。
  • Quadlet .image 文件可以通过多次指定 ImageTag 键来多次提供镜像。
  • Quadlets 可以放在 /run/containers/systemd 目录中以及现有的目录中,如 $HOME/containers/systemd/etc/containers/systemd/users
  • Quadlet 可以正确处理是符号链接的单元目录的子目录。
  • podman manifest inspect 命令在其输出中包含清单的注解。
  • podman createpodman runpodman pod create 的--add-host 选项支持指定多个主机名、分号分隔(如 podman run --add-host test1;test2:192.168.1.1)。
  • podman runpodman create 命令支持三个新选项来配置健康检查日志记录:-- health-log-destination (指定日志存储的位置)、--health-max-log-count (指定日志值得存储多少个健康检查)和 --health-max-log-size (指定健康检查日志的最大大小)。

有关值得注意的变化的更多信息,请参阅 上游发行注记

Jira:RHEL-66762

容器工具使用 sigstore 签名进行容器镜像验证

有了此更新,sigstore 签名用于容器镜像验证而不是 GPG 签名,也称为简单签名。

Jira:RHEL-32724

可以自定义 podman 健康检查日志输出

在此次更新之前,当使用健康检查配置容器时,输出只能使用 podman inspect 命令访问容器状态文件中。这使调试过程变得复杂。在这个版本中,您可以使用 podman update 命令和 --health-log-destination ,-- health-max-log-count , and-health-max-log-size 选项来配置健康检查日志输出。

如需更多信息,请参阅 podman-update 手册页。

Jira:RHEL-24623[1]

使用单个命令部署容器镜像可用

您可以使用单个命令将容器镜像部署到 RHEL 云实例中。system-reinstall-bootc 命令安装执行以下操作:

  • 拉取提供的镜像,以设置 SSH 密钥或访问系统。
  • 使用所有绑定挂载和配置的 SSH 密钥运行 bootc install to-existing-root 命令。

Jira:RHELDOCS-19516[1]

支持从头开始创建自定义 bootc 镜像

您可以从头开始创建 bootc 镜像,并完全控制镜像的内容,定制系统环境以满足特定要求。使用 bootc-base-imgectl 命令,您可以根据现有的 bootc 基础镜像创建自定义 bootc 镜像。Bootc Image from Scratch 是从容器镜像派生的,不会自动接收来自默认基础镜像的更新。要包含这些更新,您必须将它们手动合并为容器管道的一部分。另外,您可以在任何 bootc 容器镜像上使用 bootc-base-imgectl 中的 rechunk 子命令来根据需要优化或重组镜像。

Jira:RHELDOCS-19825[1]

提供了用于 bootc-image-builder 的新镜像构建进度条

在以前的版本中,您无法通过查看日志来检查镜像构建的进度。有了此增强,您可以使用 bootc-image-builder 检查您创建的镜像构建的进度。您可以在构建镜像时使用 --progress=verbose 参数恢复回之前的行为。

Jira:RHELDOCS-20170[1]

podman pod inspect 命令提供 JSON 数组,而不考虑 pod 的数量

在以前的版本中,在检查单个 pod 时,podman pod inspect 命令会忽略 JSON 数组。在这个版本中,podman pod inspect 命令在输出中生成一个 JSON 数组,而不考虑检查的 pod 数量。

Jira:RHELDOCS-18770[1]

更改 storage.conf 文件的位置

从 RHEL 10.0 开始,storage.conf 配置文件位于 /usr/share/containers 目录中,而不是 /etc/containers

Jira:RHEL-83517

composefs 只读文件系统支持 bootc/ostree 和 podman 项目

composefs 只读文件系统被完全支持,通常仅用于当前由 bootc/ostree 和 podman 项目使用。使用 composefs,您可以使用这些项目来创建和使用只读镜像,在镜像间共享文件数据,并在运行时验证镜像。因此,您挂载了一个完全验证的文件系统树,并可以机会性地细粒度共享相同的文件。

Jira:RHEL-18157[1]

6.24. Lightspeed

RHEL Lightspeed 驱动的命令行助手现在在 RHEL 中可用

RHEL Lightspeed 驱动的命令行助手在 RHEL 命令行中作为一个可选的 AI 工具提供。命令行助手包括来自多个红帽资源的知识。它为您提供了一个交互式工作流来解决问题、实现新的 RHEL 功能、查找信息等。因此,您可以体验更易于访问和更主动的指导,从而支持进一步采用 RHEL 。

Jira:RHELDOCS-20020[1]

命令行助手支持将 systemd-creds 用作密码存储管理器

RHEL Lightspeed 驱动的命令行助手使用与 RHEL 一起分发的密码存储管理器 systemd-creds 来集成 CLAD。通过使用助手,您可以将 PostgreSQL 或 MySQL 等数据库用作历史记录后端来安全地存储您的密码。因此,您可以以安全的方式列出、显示、加密和解密单元凭证。

Jira:RHELDOCS-20023[1]

第 7 章 技术预览功能

这部分提供了 Red Hat Enterprise Linux 10 中可用的所有技术预览功能的列表。

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

7.1. 安全性

系统范围后量子密码学通过 crypto-policies-pq-preview 作为技术预览提供

新的 crypto-policies-pq-preview 软件包中包含的 TEST-PQ 子策略将系统范围后量子密码学 (PQC)作为技术预览提供。您可以通过切换到 TEST-PQ 子策略并重启系统来启用 PQC,例如:

# update-crypto-policies --set DEFAULT:TEST-PQ
# reboot

请注意,RHEL 10 中的所有 PQC 算法都作为技术预览提供。当后量子密码学退出技术预览状态时,软件包和系统范围加密策略名称可能会改变。如需更多信息,请参阅 Red Hat Enterprise Linux 10 中的后量子密码学 文章(红帽博客)。

Jira:RHEL-58241

RHEL 10 软件包 liboqs,oqsprovider,nss,opensshgnutls 将 PQC 作为技术预览提供

RHEL 10.0 软件包 liboqs,oqsprovider,nss,opensshgnutls 将后量子密码学(PQC)作为技术预览提供。要启用 PQC 算法,请安装 crypto-policies-pq-preview 软件包,并应用 TEST-PQ 加密子策略。

详情请查看 RHEL 10 后量子密码学的互操作性 文章(红帽知识库)。

Jira:RHEL-65426, Jira:RHEL-65422, Jira:RHEL-58245, Jira:RHEL-58246

RHEL 中加密的 DNS 作为技术预览提供

您可以启用加密的 DNS 来保护使用 DNS-over-TLS (DoT)的 DNS 通信。加密的 DNS (eDNS)加密所有端到端的 DNS 流量,且不回退到不安全的协议,并与零信任架构(ZTA)原则保持一致。

要执行带有 eDNS 的新安装,请使用内核命令行指定启用了 DoT 的 DNS 服务器。这确保加密的 DNS 在安装过程中、引导时间和安装的系统上处于活跃状态。如果您需要一个自定义 CA 证书捆绑包,则您只能通过在 Kickstart 文件中使用 %certificate 部分来安装它。目前,自定义 CA 捆绑包只能通过 Kickstart 安装来安装。

在现有系统上,将 NetworkManager 配置为使用新的 DNS 插件 dnsconfd,后者管理 eDNS 的本地 DNS 解析器(未绑定)。添加内核参数来为早期引导过程配置 eDNS,并选择性地安装自定义 CA 捆绑包。

此外,身份管理(IdM)部署也可以使用加密的 DNS 服务器,以及支持 DoT 的集成的 DNS 服务器。

如需了解更多详细信息,请参阅 使用加密 DNS 保护系统 DNS 流量

Jira:RHELDOCS-20058[1], JIRA:RHEL-67912

7.2. 软件管理

支持使用 Sequoia PGP 签名软件包作为技术预览提供

将 RPM 配置为使用 Sequoia PGP 而不是签名软件包的 GnuPG 的 macros.rpmsign-sequoia 宏文件现在作为技术预览提供。要启用其用法,请执行以下步骤:

  1. 安装以下软件包:

    # dnf install rpm-sign sequoia-sq
  2. macros.rpmsign-sequoia 文件复制到 /etc/rpm/ 目录中:

    $ cp /usr/share/doc/rpm/macros.rpmsign-sequoia /etc/rpm/

Jira:RHEL-56363[1]

7.3. 内核

ARM64 上的 Red Hat Enterprise Linux for Real Time 现在作为技术预览提供

有了此技术预览,现在为 ARM64 启用了 Red Hat Enterprise Linux for Real Time 。在 ARM (AARCH64)上为 4k 和 64k ARM 内核启用了 ARM64 。

Jira:RHELDOCS-19635[1]

7.4. 文件系统和存储

ublk_drv 驱动程序作为技术预览提供

ublk_drv 内核模块现在作为技术预览提供。它提供了 ublk 框架,您可以使用它从用户空间创建并构建高性能块设备。目前,ublk 需要用户空间实现,如用户空间块驱动程序(ublksrv)或基于 Rust 的 ublk (rublk)才能有效地正常工作。

Jira:RHELDOCS-19891[1]

使用 TLS 的 NVMe/TCP 作为技术预览提供

使用配置了预共享密钥(PSK)的 TLS,通过 TCP (NVMe/TCP)网络流量加密 Non-volatile Memory Express (NVMe/TCP)在 RHEL 10.0 中已添加为一个技术预览。具体说明请参阅 使用带有预共享密钥的 TLS 配置 NVMe/TCP 主机

Jira:RHELDOCS-19968[1]

xfs_scrub 工具作为技术预览提供

您可以使用 xfs_scrub 工具作为技术预览来检查挂载的 XFS 文件系统上的所有元数据。它在功能上与用于卸载的 XFS 文件系统的 xfs_repair -n 命令类似。详情请查看您系统上的 xfs_scrub (8) 手册页。请注意,目前只有清理功能在 RHEL 10 内核中提供,且在线修复未启用。

Jira:RHELDOCS-20041[1]

XFS 文件系统的有限的缩小作为技术预览提供

您可以使用 xfs_growfs 工具作为技术预览来减少 XFS 文件系统的大小。您可以使用 xfs_growfs 从文件系统末尾删除块,只要以下条件都为 true :

  • 在要删除的范围内没有分配元数据或数据。
  • 请求的大小位于最后的分配组中。

Jira:RHELDOCS-20042[1]

使用大于系统页面的块挂载 XFS 文件系统作为技术预览提供

您现在可以将挂载使用大于系统页大小的块大小创建的 XFS 文件系统作为技术预览。例如,具有 16-KB 块的文件系统现在可以挂载在具有 4KB 页大小的系统上,如 x86_64。

Jira:RHELDOCS-20043[1]

io-uring 接口作为技术预览提供

io_uring 是一个异步 I/O 接口,作为技术预览提供。默认情况下,此功能在 RHEL 10 中被禁用。您可以通过设置 kernel/io_uring_disabled 变量来启用这个接口:

  • 对于所有用户:
# echo 0 > /proc/sys/kernel/io_uring_disabled
  • 仅对 root:
# echo 1 > /proc/sys/kernel/io_uring_disabled

您还可以对所有进程禁用 io_uring

# echo 2 > /proc/sys/kernel/io_uring_disabled

Jira:RHEL-65347

7.5. 编译器和开发工具

eu-stacktrace 作为技术预览提供

自 0.192 版本以来一直通过 elfutils 软件包分发的 eu-stacktrace 工具作为技术预览功能提供。eu-stacktrace 是一个原型工具,它使用 elfutils 工具包的展开库来支持采样分析器,以展开无帧指针堆栈样本数据。

Jira:RHELDOCS-19072[1]

7.6. 身份管理

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

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

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

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

Jira:RHELPLAN-121751[1]

IdM 部署中的 DNS over TLS (DoT)作为技术预览提供

使用 DNS over TLS (DoT)加密的 DNS 现在在身份管理(IdM)部署中作为技术预览提供。您现在可以加密 DNS 客户端和 IdM DNS 服务器之间的所有 DNS 查询和响应。

要开始使用此功能,请在 IdM 服务器和副本上安装 ipa-server-encrypted-dns 软件包,并在 IdM 客户端上安装 ipa-client-encrypted-dns 软件包。管理员可以使用-- dns-over-tls 选项在安装过程中启用 DoT。

IdM 将 Unbound 配置为本地缓存解析器和 BIND 来接收 DoT 请求。这个功能可以通过命令行界面(CLI)和 IdM 的非互动安装提供。

以下选项已添加到 IdM 服务器、副本、客户端和集成的 DNS 服务的安装工具中:

  • --dot-forwarder 指定一个上游启用了 DoT 的 DNS 服务器。
  • --dns-over-tls-key--dns-over-tls-cert 来配置 DoT 证书。
  • --dns-policy 将 DNS 安全策略设置为允许回退到未加密的 DNS 或强制实施严格的 DoT 使用。

默认情况下,IdM 使用 relaxed DNS 策略,该策略允许回退到未加密的 DNS。您可以使用新的 --dns-policy 选项和 enforced 设置来强制实施仅加密的通信。

您还可以通过将 ipa-dns-install 与新的 DoT 选项搭配使用,来在现有 IdM 部署中启用 DoT。

如需了解更多详细信息,请参阅 IdM 中使用 DoT 保护 DNS

Jira:RHEL-67912, Jira:RHELDOCS-20058

IdM 到 IdM 迁移作为技术预览提供

IdM 到 IdM 迁移在身份管理中作为技术预览提供。您可以使用新的 ipa-migrate 命令将所有特定于 IdM 的数据(如 SUDO 规则、HBAC、DNA 范围、主机、服务等)迁移到其他 IdM 服务器。这非常有用,例如,当将 IdM 从开发或暂存环境移到生产环境时,或者在两个生产服务器之间迁移 IdM 数据时。

Jira:RHELDOCS-18408[1]

logconv.py 作为技术预览提供

logconv.py 工具在目录服务器中作为技术预览提供。logconv.py 是旧的 logconv.pl 工具的未来替代品,您可以使用它来分析目录服务器访问日志、提取使用情况统计,以及计算发生重要事件的次数。

工具语法:

logconv.py /var/log/dirsrv/slapd-<instance_name>/access

有关工具选项和使用示例的详情,请运行 logconv.py -h 命令。

Jira:RHEL-59513

7.7. 虚拟化

用于 KVM 虚拟机的 AMD SEV、SEV-ES 和 SEV-SNP 作为技术预览提供

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

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

RHEL 还作为技术预览提供了安全嵌套分页(SEV-SNP)功能。SNP 通过改进其内存完整性保护增强了 SEV 和 SEV-ES,这有助于防止基于 hypervisor 的攻击,如数据重播或内存重新映射。

请注意:* SEV 和 SEV-ES 仅在第 2 代 AMD EPYC CPU (代号 Rome)或更新版本上工作。* SEV-SNP 仅在 3 代 AMD EPYC CPU (代号 Milan)或更新版本上工作。

另请注意,RHEL 包括 SEV、SEV-ES 和 SEV-SNP 加密,但不包括 SEV、SEV-ES 和 SEV-SNP 安全认证和实时迁移。

Jira:RHELDOCS-16800[1]

创建嵌套虚拟机

对于在 Intel、AMD64 和带有 RHEL 10 的 IBM Z 主机上运行的 KVM 虚拟机(VM),嵌套的 KVM 虚拟化作为技术预览提供。有了此功能,在物理 RHEL 10 主机上运行的 RHEL 7、RHEL 8 或 RHEL 9 虚拟机可以充当 hypervisor,并托管自己的虚拟机。

Jira:RHELDOCS-20080[1]

新软件包:trustee-guest-components

作为技术预览,此更新添加了 trustee-guest-components 软件包。这使得机密虚拟机可以证明自己,并从 Trustee 服务器获取机密资源。

Jira:RHEL-73770[1]

7.8. 容器

composefs 文件系统作为技术预览提供

composefs 使用的关键技术有:

  • OverlayFS 作为内核接口
  • 用于可挂载元数据树的增强的只读文件系统(EROFS)
  • 低层文件系统中的 fs-verity 功能(可选)

composefs 的主要优点:

  • 元数据和数据之间的分隔。composefs 不存储任何持久数据。底层元数据和数据文件存储在有效的低 Linux 文件系统中,如 ext4xfsbtrfs 等。
  • 挂载具有共享存储的多个 composefs
  • 数据文件在页面缓存中共享,以使多个容器镜像能够共享其内存。
  • 支持内容文件的 fs-verity 验证。

Jira:RHEL-52238

部分拉取 zstd:chunked 作为技术预览提供

您只能拉取使用 zstd:chunked 格式压缩的容器镜像的更改部分,从而减少了网络流量和必要的存储。您可以通过在 /etc/containers/storage.conf 文件中添加 enable_partial_images = "true" 设置来启用部分拉取。此功能作为技术预览提供。

Jira:RHEL-32266

podman artifact 命令作为技术预览提供

podman artifact 命令(可用来在命令行上与 OCI 工件一起工作)作为技术预览提供。如需进一步通知,请参阅 man page。

Jira:RHEL-70218

podman network createvrf 选项作为技术预览提供

podman network create 命令为- opt 选项提供 vrf 值,作为技术预览。vrf 值分配一个虚拟路由,并将实例(VRF)转发到网桥接口。它接受 VRF 的名称,默认为 none。

这个选项只能与 Netavark 网络后端一起使用。

Jira:RHEL-89373

7.9. 之前版本中标识的技术预览功能

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

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

7.9.1. 网络

WireGuard VPN 作为技术预览提供

WireGuard(红帽作为技术预览提供)是一个在 Linux 内核中运行的高性能 VPN 解决方案。它使用现代加密,比其他 VPN 解决方案更容易配置。此外,因为 WireGuard 较小的代码基础,减少了受攻击的风险,因此提高了安全性。

详情请查看设置 WireGuard VPN

Jira:RHELDOCS-20056[1]

KTLS 作为技术预览提供

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

请注意,内核 TLS 卸载的特定用例可能会具有更高的支持状态。详情请查看 新功能和增强 章节中的发行注记。

Jira:RHELDOCS-20440[1]

NetworkManager 启用配置 HSR 和 PRP 接口

High-availability Seamless Redundancy(HSR)和 Parallel Redundancy Protocol(PRP)是网络协议,它们针对任何单个网络组件故障提供无缝故障转移。这两个协议对应用程序层都是透明的,这意味着用户在通信过程中不会遇到任何中断或任何数据丢失,因为主路径和冗余路径之间的切换发生的很快,且用户不知道。现在,可以通过 nmcli 工具和 DBus 消息系统,使用 NetworkManager 服务启用和配置 HSR 和 PRP 接口。

Jira:RHEL-5852

PRP 和 HSR 协议现在作为技术预览提供

这个更新添加了提供以下协议的 hsr 内核模块:

  • Parallel Redundancy Protocol (PRP)
  • 高可用性无缝冗余(HSR)

IEC 62439-3 标准定义了这些协议,您可以使用这个功能在以太网网络中配置具有零时间恢复的冗余。

Jira:RHELDOCS-20472[1]

第 8 章 删除的功能

所有删除的功能在早期版本中已弃用,不再被支持。有关 RHEL 9 中存在,但已在 RHEL 10 中 删除的 功能的信息,请参考 采用 RHEL 10 时的注意事项

8.1. 安装程序和镜像创建

authauthconfig 命令已删除

Red Hat Enterprise Linux 8 中已弃用的 authauthconfig Kickstart 命令现已被删除。作为替换,请使用 authselect kickstart 命令。

Jira:RHELDOCS-18839[1]

inst.xdriver 和 inst.usefbx 选项已被删除

安装镜像的图形化系统已从 Xorg 服务器切换到 Wayland 合成器。因此,inst.xdriver 引导选项已被删除。Wayland 在不依赖 X 驱动程序的情况下运行,使其与加载任何这样的驱动程序不兼容。因此,inst.xdriver 选项不再适用。

另外,以前用来加载通用帧缓冲 X 驱动程序的 inst.usefbx 引导选项也已被删除。

Jira:RHELDOCS-18818[1]

OpenStack 镜像类型已从 RHEL 镜像构建器中弃用

从 RHEL 10.0 开始,RHEL 镜像构建器不再支持 OpenStack 镜像类型。您可以使用 .qcow2 镜像类型来构建 OpenStack 镜像。

Jira:RHELDOCS-18736[1]

使用全局热键从 Anaconda GUI 捕获屏幕截图

在以前的版本中,用户可以使用全局热键捕获 Anaconda GUI 的截图。因此,用户可以从安装环境中手动提取屏幕截图,以供进一步使用。这个功能已被删除。

Jira:RHELDOCS-18492[1]

删除了 inst.nompathdmraidnodmraid 引导选项

inst.nompathdmraidnodmraid 引导选项现已被删除,且不再使用。

Jira:RHELDOCS-18485[1]

从 Anaconda 中删除了自动 bug 报告系统

安装程序不再支持自动报告红帽问题跟踪系统的问题。您可以手动收集安装日志并报告问题,如 故障排除 部分中所述。

Jira:RHELDOCS-18426[1]

删除了 timezone Kickstart 命令的几个选项

在 Red Hat Enterprise Linux 10 中删除了 timezone Kickstart 命令的以下选项:

  • --isUtc: 改为使用选线 --utc
  • --ntpservers :使用 timesource Kickstart 命令的 option--ntp-server
  • --nontp: 使用 option --ntp-disable 作为 timesource Kickstart 命令。

Jira:RHELDOCS-18423[1]

删除了记录 Kickstart 命令的 --level 参数

logging Kickstart 命令的- level 参数已被删除。不再可以设置安装进程的日志记录级别。

Jira:RHELDOCS-18417[1]

对 %anaconda Kickstart 命令的支持已删除

对已弃用的 %anaconda Kickstart 命令的支持已删除。您可以使用内核参数和命令行选项更新 Anaconda 配置文件中的配置

Jira:RHELDOCS-18416[1]

删除了 pwpolicy Kickstart 命令

对已弃用的 pwpolicy Kickstart 命令的支持已在 Red Hat Enterprise Linux 10 中删除。

Jira:RHELDOCS-18415[1]

删除了对从 GUI 添加额外的存储库的支持

在以前的版本中,当配置安装源时,您可以为软件包安装配置额外的存储库。从 RHEL 10 开始,这个支持已删除。但是,如果要指定额外的存储库,您可以使用 Kickstart 安装方法或 inst.addrepo 引导选项。

Jira:RHELDOCS-18413[1]

从 Anaconda 中删除了 LUKS 版本选择的支持

在以前的版本中,您可以从手动安装屏幕中选择 LUKS 版本。从 RHEL 10 开始,安装程序会在所有新设备中使用 luks2 版本。对现有设备的 LUKS 版本没有任何更改。您还可以使用 Kickstart 方法选择不同的 LUKS 版本。

Jira:RHELDOCS-18412[1]

initial-setup 软件包现已被删除

initial-setup 软件包已在 Red Hat Enterprise Linux 10 中删除。作为替换,对图形用户界面,使用 gnome-initial-setup

Jira:RHELDOCS-18411[1]

在安装程序 GUI 中重新设计了 Time & Date spoke

在以前的版本中,Anaconda 用户可以使用时区映射选择时区。这个屏幕现已重新设计,时区映射已被用户设置所需时区的选项替代。

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

Jira:RHELDOCS-18410[1]

Anaconda 内置帮助已删除

在 Anaconda 安装过程中提供的所有 Anaconda 用户界面的辐条和 hub 中的内置文档已删除。请参阅官方 RHEL 文档

Jira:RHELDOCS-18414[1]

network Kickstart 命令中删除了团队选项

network Kickstart 命令中用于配置 团队设备的-- teamslaves 和-teamconfig 选项已被删除。要配置类似的网络设置,请使用 --bondslaves--bondopts 选项来设置 Bond 设备。

Jira:RHEL-33892

删除了安装过程中的 NVDIMM 重新配置支持

对在 Kickstart 和 GUI 安装过程中重新配置 NVDIMM 设备的支持已在 RHEL-10 中删除了。但是,扇区模式中的 NVDIMM 设备仍可在安装程序中使用。

Jira:RHELDOCS-19084

%packages 中的 --excludeWeakdeps--instLangs 选项已删除

在 RHEL-10 中,%packages 部分中使用的 --excludeWeakdeps--instLangs 选项已删除。要维护类似的功能,请使用更新的选项 --exclude-weakdeps--inst-langs。这些替代确保了兼容性,并在软件包管理中提供了同样的依赖项和语言控制。

Jira:RHELDOCS-19083

gdisk 已从 boot.iso 中弃用

gdisk 已从 boot.iso 镜像类型中弃用。您仍可在 Kickstart 中使用 gdisk。对于 boot.iso 镜像类型,其他工具可用来处理 GPT 磁盘,例如 parted 工具。

Jira:RHELDOCS-18904[1]

8.2. 安全性

scap-workbench 已删除

scap-workbench 软件包在 RHEL 10 中已删除。scap-workbench 图形工具被设计为在单个本地或远程系统上执行配置和漏洞扫描。作为一种替代方案,您可以使用 oscap 命令扫描本地系统的配置是否合规,使用 oscap-ssh 命令扫描远程系统的配置是否合规。如需更多信息,请参阅配置合规性扫描

Jira:RHELDOCS-19009[1]

oscap-anaconda-addon 已删除

提供使用图形安装部署符合基准的 RHEL 系统的方法的 oscap-anaconda-addon 在 RHEL 10 中已删除。作为一种替代方案,您可以通过 使用 RHEL 镜像构建器 OpenSCAP 集成创建预先强化的镜像 来构建符合特定标准的 RHEL 镜像。

Jira:RHELDOCS-19010[1]

CVE OVALv2 feed 不再提供

RHEL 10 不提供通用漏洞评估语言(CVE)开放漏洞评估语言(OVAL)版本 2 源(包含由 OpenSCAP 套件处理的声明安全数据)。红帽将继续以通用安全公告框架(CSAF)格式和漏洞利用性 eXchange (VEX)文件提供声明的安全数据,它们是 CVE OVALv2 源的后续者。OpenSCAP 套件保留 OVAL 模块,因此仍然可以使用 OVAL 数据格式。

如需更多信息,请参阅 OVAL v2 公告

或者,您可以我们 Insights for RHEL 漏洞服务,如需更多信息,请参阅 评估和监控 RHEL 系统中的安全漏洞

Jira:RHELDOCS-19071[1]

DSA 和 SEED 算法已从 NSS 中删除

由国家标准与技术研究院(NIST)创建的、现在被 NIST 完全弃用的数字签名算法(DSA)已从网络安全服务(NSS)加密库中删除。您可以改为使用 RSA 和 ECDSA 等算法。

由 Korea Information Security Agency (KISA)创建的、之前已在上游被禁用的 SEED 算法已从 NSS 加密库中删除。

Jira:RHEL-44995

fips-mode-setup 已删除

fips-mode-setup 命令已从 RHEL 中删除。要启用联邦信息处理标准(FIPS) 140 强制的加密模块自检,请在系统安装过程中启用 FIPS 模式。如需更多信息,请参阅 安全强化 文档中的 将 RHEL 切换到 FIPS 模式一章

Jira:RHEL-65652

删除了 /etc/system-fips

对通过 /etc/system-fips 文件表示 FIPS 模式的支持已从 RHEL 中删除。要在 FIPS 模式中安装 RHEL,请在系统安装过程中将 fips=1 参数添加到内核命令行。您可以通过显示 /proc/sys/crypto/fips_enabled 文件来检查 RHEL 是否在 FIPS 模式下运行。

Jira:RHELDOCS-19357[1]

心跳从 TLS 中删除了

对 TLS 中 HeartBeat 扩展的支持已删除,以减少攻击面。

Jira:RHEL-59212[1]

SRP 身份验证从 TLS 中删除了

在 TLS 中使用 Secure Remote Password 协议(SRP)的身份验证已从 gnutls 软件包中删除,且不再被支持。SRP 身份验证被视为不安全,因为它无法与 TLS 1.3 一起使用,并依赖 Cipher 块链(CBC)和 SHA-1 作为密钥交换。

Jira:RHEL-58640[1]

Keylime 不再支持 HTTP 用于撤销通知

Keylime 组件不再支持 HTTP 协议用于撤销通知 Webhook 。改为使用 HTTPS。因此,Keylime 验证器现在需要撤销通知 Webhook 服务器 CA 证书。您可以将其添加到 trusted_server_ca 配置选项中,或者将其添加到系统信任存储中。

Jira:RHEL-51279

DEFAULT 加密策略拒绝带有 RSA 密钥交换的 TLS 密码

使用 RSA 密钥交换的 TLS 密码不再在 RHEL 10 的 DEFAULT 系统范围加密策略中被接受。这些密码不提供完美的转发保密性,且不被视为与使用其他密钥交换的密码那样安全,例如 Elliptic-curve Diffie-Hellman (ECDH)密钥交换。

这个更改还减少了暴露给侧通道攻击的风险,因为 RSA 密钥交换使用 PKCS #1 v1.5 加密填充,这可能导致遭受定时侧通道攻击的漏洞。

如果您需要 RSA 密钥交换来实现与旧系统的互操作性,您可以使用 LEGACY 系统范围加密策略或应用一个自定义子策略来重新启用它。

Jira:RHEL-50464[1]

ca-certificates truststore 移动

/etc/pki/tls/certs 信任存储转换为为 OpenSSL 更好地优化的不同格式。因此,如果您直接使用 /etc/pki/tls/certs 中的文件,请切换到 /etc/pki/ca-trust/extracted 目录,其中存储了同样的数据。例如,通过 /etc/pki/tls/certs/ca-bundle.crt 访问信任捆绑包的软件应该切换为使用 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

Jira:RHEL-50293

LEGACY 加密策略在 TLS 中不允许 SHA-1 签名

RHEL 10 中的 LEGACY 系统范围加密策略不再允许在 TLS 上下文中创建或验证使用 SHA-1 的签名。因此,无论什么用例,OpenSSL 以外的库可能不再接受或创建任何使用 SHA-1 的签名。如果系统处于 LEGACY ,或者此功能使用自定义子策略重新启用了,则在不用于 TLS 时,OpenSSL 继续接受使用 SHA-1 的签名。

Jira:RHEL-50106

pam_ssh_agent_auth 已删除

pam_ssh_agent_auth 软件包已从 RHEL 10 中删除。

Jira:RHEL-45002

OpenSSL 在 TLS 中不再在 SECLEVEL=2 上允许 SHA-1

在 RHEL 10 中的 TLS 中,OpenSSL 不接受 SECLEVEL=2 上的 SHA-1 算法。如果您的场景需要使用 TLS 1.0/1.1,ze'vzev您必须明确设置 SECLEVEL=0,并切换到 LEGACY 系统范围加密策略。在 LEGACY 策略中,在 TLS 外的签名中使用 SHA-1 的应用将继续工作。

Jira:RHEL-39962

stunnel 不支持 OpenSSL ENGINE API

stunnel TLS 卸载和负载均衡代理不再支持之前弃用的 OpenSSL ENGINE API。最常见的用例是,通过 openssl-pkcs11 软件包,使用 PKCS #11 访问硬件安全令牌。作为替换,您可以使用 pkcs11-provider,它使用新的 OpenSSL 提供者 API。

Jira:RHEL-33749

OpenSSL Engine 已从 OpenSSL 中删除

OpenSSL Engine 已被弃用,并将不久从上游中删除。因此,在 RHEL 10 中,openssl-pkcs11 软件包已从 OpenSSL 中删除。改为使用提供者,如 pkcs11-provider,其在这个版本中支持。

Jira:RHEL-30437

Keylime 策略管理脚本已删除,并被替换为 keylime-policy

在 RHEL 10 中,Keylime 是由 keylime-policy 工具提供的,它替换了以下策略管理脚本:

  • keylime_convert_runtime_policy
  • keylime_create_policy
  • keylime_sign_runtime_policy
  • create_mb_refstate
  • create_allowlist.sh

脚本已被删除,且不再在 RHEL 10 中提供。

Jira:RHEL-79831

8.3. 订阅管理

几个 subscription-manager 模块已删除

由于红帽订阅服务中的一个简化的客户体验,该服务已过渡到 Red Hat Hybrid Cloud Console 和具有简单内容访问的帐户级订阅管理,所以以下之前弃用的模块已删除:

  • 附加组件
  • attach
  • auto-attach
  • import
  • remove
  • redeem
  • role
  • service-level
  • usage
  • syspurpose addons

有关这些更改的更多信息,请参阅 红帽的订阅服务到红帽混合云控制台的过渡 文章。

Jira:RHELDOCS-18989[1]

8.4. 软件管理

libreport 库的支持已删除

libreport 库的支持已从 DNF 中删除。如果要将 DNF 日志附加到 bug 报告中,您需要手动或使用不同的机制来做。

Jira:RHEL-40382

DNF debug 插件已被删除

DNF debug 插件(包含 dnf debug-dumpdnf debug-restore 命令)已从 dnf-plugins-core 软件包中删除。根据您的场景,您可以使用以下任一命令:

  • dnf list --installeddnf repoquery --installed 来列出系统上安装的软件包。
  • dnf repolist -v 来列出系统上启用的存储库。
  • dnf install $(</tmp/list) 来将源系统上安装的软件包复制到目标系统。例如:

    1. 将源系统上安装的软件包的列表保存到 /tmp/list 文件中:

      $ dnf repoquery --installed >/tmp/list
    2. /tmp/list 文件复制到目标系统。
    3. 在目标系统上复制软件包:

      $ dnf install $(</tmp/list)"

Jira:RHEL-23706[1]

无数字 %patch 语法已删除

使用没有指定数字的 %patch 指令作为 %patch 0 的缩写来应用 zero-th 补丁已删除。如果要使用 %patch,则有一条警告信息建议您使用显式语法,例如 %patch 0%patch -P 0 来应用 zero-th 补丁。

Jira:RHELDOCS-19811[1]

8.5. Shell 和命令行工具

perl (Mail::Sender) 模块已删除

perl (Mail::Sender) 模块已从 RHEL 10 中删除,而无需任何替代。因此,当达到主机或低级带宽时,net-snmp-perl 软件包中的 checkbandwidth 脚本不支持电子邮件警报。

Jira:RHEL-44478[1]

8.6. 基础架构服务

为基础设施服务设置的软件包中的重要变化

以下软件包不再包含在 Red Hat Enterprise Linux 中:

  • sendmail :红帽建议迁移到 postfix 邮件守护进程,该守护进程被支持。
  • redis :红帽建议迁移到 valkey 软件包。
  • dhcp :红帽建议迁移到可用的替代方案,如 dhcpcdISC Kea
  • mod_security :RHEL 中不再提供 mod_security 指令,但可能在第三方存储库中提供,如 Extra Packages for Enterprise Linux (EPEL)。
  • SpamAssassin : Spamassassin 或者在 EPEL 存储库中提供,而不是标准的 RHEL 存储库。过滤器取决于 libdb (Berkeley DB)库,该库因为许可证问题而不可用。
  • xsane :API 尚未移植到 Gtk3

以下软件包已被重命名:

  • gpsd :它以前作为 gpsd-minimal 被包括。

Jira:RHEL-22424[1]

ISC Kea DHCP 服务器解决方案现在可用

Kea 是 RHEL 中的一个新的动态主机配置协议(DHCP)服务器解决方案。ISC DHCP 已删除,取而代之的是 Kea,以确保将来交付 bug 修复和增强。ISC DHCP 的上游版本不再开发新功能和 bug 修复。

Jira:RHEL-14710[1]

8.7. 网络

网络团队驱动程序已被删除

teamd 服务和 libteam 库在 Red Hat Enterprise Linux 10 中删除。作为替换,配置绑定而不是网络组。

红帽注重于基于内核的绑定操作,以避免维护具有类似功能的两个功能:绑定和团队(team)。绑定代码具有较高的客户采用率,非常可靠,具有活跃的社区开发。因此,绑定代码会收到功能增强和更新。

如果您将 RHEL 9 与网络团队搭配使用,并计划升级到 RHEL 10,请在升级前将网络团队配置迁移到网络绑定

Jira:RHELDOCS-20862[1]

ATM 封装已从 RHEL 10 中删除

异步传输模式(ATM)封装为 ATM Adaptation Layer 5(AAL-5)提供第 2 层(Point-to-Point 协议、以太网)或第 3 层(IP)连接。从 RHEL 7 开始,红帽尚未为 ATM NIC 驱动程序提供支持。RHEL 9 中丢弃对 ATM 实施的支持。这些协议目前仅在支持 ADSL 技术的芯片组中使用,并被制造商逐步淘汰。因此,ATM 封装在 Red Hat Enterprise Linux 9 中已弃用,并已从 Red Hat Enterprise Linux 10 中删除。

如需更多信息,请参阅 PPP Over AAL5, Multiprotocol Encapsulation over ATM Adaptation Layer 5, 和 Classical IP and ARP over ATM

Jira:RHELDOCS-20102[1]

dhcp-client 软件包已删除

dhcp-client 软件包已从 RHEL 10 中删除,因为 ISC DHCP 客户端不再在上游维护。因此,dhclient 工具不再可用,您无法在 NetworkManager 中将它用作 DHCP 客户端。作为替代方案,使用 NetworkManager 内部的 DHCP 客户端,它也是之前 RHEL 版本中的默认设置。

Jira:RHEL-46211

mlx4 驱动程序已从 RHEL 10.0 中删除

在 RHEL 10.0 发行版本中,Mellanox ConnectX-3 网络接口控制器(NIC)的 mlx4 驱动程序已删除。您必须使用与较新的驱动程序兼容的其它 NIC。

Jira:RHEL-40070[1]

8.8. 内核

kexec_load 系统调用已删除

在 RHEL 9 中弃用的 kexec_load 系统调用已删除。在 RHEL 10 中,kexec_file_load 系统调用替换了 kexec_load,且是所有构架上的默认系统调用。另外,安全引导需要 kexec_file_load

如需更多信息,请参阅 RHEL9 中是否支持 kexec_load?

Jira:RHEL-29272[1]

crash --log dumpfile 选项已弃用

crash --log dumpfile 选项不再适用于内核版本 5.10 及更高版本。因此,crash --log 命令会失败,并显示出错消息 'crash:VMCOREINFO: no log buffer data'。

您可以使用 makedumpfile --dump-dmesg 作为一个临时解决方案,来只使用 vmcore 转储内核 dmesg 信息。

Jira:RHEL-52221[1]

8.9. 文件系统和存储

对 NVMe 设备的支持已从 lsscsi 软件包中删除

对 Non-volatile Memory Express (NVMe)设备的支持已从 lsscsi 软件包中删除。改为使用 nvme-cli,lsblkblkid 等原生工具。针对 nvme-cli 软件包报告任何缺缺失的功能。

Jira:RHEL-32144[1]

对 NVMe 设备的支持已从 sg3_utils 软件包中删除

对 Non-volatile Memory Express (NVMe)设备的支持已从 sg3_utils 软件包中删除。改为使用原生工具,如 nvme-cli 软件包,并针对 nvme-cli 报告任何缺失的功能。

Jira:RHEL-412[1]

VDO sysfs 参数已删除

Virtual Data Optimizer (VDO) sysfs 参数已删除。除了 log_levelkvdo 模块的所有模块级 sysfs 参数已删除。对于单个 dm-vdo 目标,特定于 VDO 的所有 sysfs 参数也已删除。所有 DM 目标常用的参数没有变化。当前通过更新删除的模块级参数设置的 dm-vdo 目标的配置值无法再更改。

dm-vdo 目标的统计信息和配置值无法再通过 sysfs 访问。但是,仍可使用 dmsetup message stats,dmsetup statusdmsetup table dmsetup 命令访问这些值。

Jira:RHELDOCS-19066[1]

对 GFS2 文件系统的支持已删除

从 Red Hat Enterprise Linux 10 开始,不再支持 Red Hat Enterprise Linux (RHEL) Resilient Storage Add-On。这包括 GFS2 文件系统,其也不再被支持。RHEL Resilient Storage Add-On 将继续被早期版本的 RHEL (7、8、9)及其特定维护支持生命周期支持。

Jira:RHELDOCS-19024[1]

对块转换表驱动程序的支持已删除

对块转换表驱动程序(btt.ko)的支持已删除。因此,在配置 Non-Volatile Dual In-line Memory Modules (NVDIMM)命名空间时,您不能使用扇区模式。

Jira:RHEL-68504[1]

nvme_core.multipath 参数已删除

在 RHEL 10 中,不再支持通过 RDMA 和 FC 将 DM 多路径用于 NVMe 设备。因此,nvme_core.multipath 参数已删除,原生 NVMe 多路径默认被启用,且不能被禁用。

Bug 修复和对于通过 RDMA 和 FC 将 DM 多路径用于 NVMe 设备的支持只在 RHEL 9 生命周期结束时才提供。请注意,在任何 RHEL 版本中,DM 多路径都不支持通过 TCP 的 NVMe。

Jira:RHEL-78133[1]

md-faultymd-multipath 模块已删除

在 RHEL 10 中,md-faultymd-multipath MD RAID 内核模块不再可用。Bug 修复,且支持仅在 RHEL 9 生命周期结束时提供。

Jira:RHELDOCS-19828[1]

删除了对已弃用的 XFS V4 on-disk 格式的支持

由于 Y2038 时间戳支持、安全弱点 和上游弃用 以及 计划删除,所以删除了对 XFS V4 on-disk 格式的支持。从早期 RHEL 7.3 开始,较新的 V5 on-disk 格式默认为 mkfs.xfs

在此版本之前创建的 XFS 文件系统无法挂载到 RHEL 10 系统中。要继续使用存储在旧的 V4 格式 XFS 文件系统中的数据,备份旧文件系统上的数据,使用 mkfs.xfs 创建新的 V5 文件系统,并恢复备份的数据。

Jira:RHELDOCS-20851[1]

8.10. 高可用性和集群

pcsd Web UI 不再作为独立的用户界面提供

pcsd Web UI 已修改为用作 RHEL web 控制台附加组件,不再作为独立的界面运行。

Jira:RHEL-29739

对 RHEL Resilient Storage Add-On 的支持已删除

从 Red Hat Enterprise Linux 10 以及 RHEL 10 后的任何后续版本开始,Red Hat Enterprise Linux (RHEL) Resilient Storage Add-On 不再被支持。RHEL Resilient Storage Add-On 将继续被早期版本的 RHEL (7、8、9)支持,并贯穿其各自的维护支持生命周期。

Jira:RHELDOCS-19023[1]

删除和更新了 Pacemaker CIB 元素

Pacemaker CIB 的以下配置组件已在 RHEL 10 中删除或修改了。当您升级到 RHEL 10 时,这些组件将按照所述被自动删除、修改或替换。在升级前,请确保 Pacemaker CIB 有 validate-with 属性的一个支持的值。虽然您不应该直接编辑集群配置文件,但您可以使用 pcs cluster cib 命令查看原始集群配置。

升级会修改以下 CIB 组件:

  • cib 元素的 validate-with 属性,它被设置为 pacemaker-4.0
  • stonith-action 集群属性,如果之前被设置为 poweroff,则它被设置为 off
  • 传统的可升级克隆(master)资源,这些资源通过将 master XML 元素改为 clone XML 元素,并通过设置 promotable meta 属性来更改标准可升级的克隆
  • 具有多个顶级规则的位置约束,其被转换为每个顶级规则的单独的位置约束

升级重命名以下组件:

  • crmd-finalization-timeout 集群属性,其被重命名为 join-finalization-timeout
  • crmd-integration-timeout 集群属性,其被重命名为 join-integration-timeout
  • crmd-transition-delay 集群属性,其被重命名为 transition-delay

升级从 CIB 中删除了以下组件:

  • nagios-classupstart-class 资源
  • 基于 rkt 容器的 bundle 资源。
  • restart-type 资源 meta-attribute
  • can_fail 操作 meta-attribute
  • role_after_failure 操作 meta-attribute
  • 规则的 date_spec 元素中的 moon 属性
  • remove-after-stop 集群属性。
  • Ping 节点,它们被更改为带有禁用了所有资源和禁用了探测的集群成员节点
  • 没有值属性的 NVpairs
  • 在 NVset 中使用指定名称复制 NVpairs,只为其保留第一个 NVpair

升级更改了以下默认值:

  • 现在,作为隔离设备参数配置的操作被忽略,而不是被视为默认隔离操作。
  • concurrent-fencing 集群选项现在默认为 true,且已弃用。
  • clone-node-max 大于 1 时,globally-unique 克隆选项现在默认为 true

升级删除了 lifetime 元素,并修改了 CIB,如下所示:

  • 位置约束中的 lifetime 元素已删除。

    • 如果位置约束中的 lifetime 元素没有顶级规则,则基于 lifetime 的规则变为约束的顶级规则。
    • 如果位置约束中的 lifetime 元素有多个顶级规则,它们会嵌套在一个 or 规则中。
    • 如果位置约束中的 lifetime 元素有一个顶级规则,则会添加一个新的和顶级约束规则,它们包含现有的顶级约束规则以及基于 lifetime 的规则。
  • 托管或顺序约束中的 lifetime 元素已删除。如果托管或顺序约束中包含的任何规则在其它地方被引用,则它们会被放在一个不适用于任何资源的新位置约束中。它们放置在位置约束中,因为 lifetime 元素中的规则可能包含节点属性表达式,这现在仅在位置约束规则中允许。
  • 升级后,在加载 CIB 时,无效的隔离级别会显示一条警告。

Jira:RHELDOCS-19813[1]

删除了 Red Hat High Availability Add-On 的功能

以下 Red Hat High Availability Add-On 功能在 RHEL 10 不再支持。

  • 捆绑包中的 RKT 容器.Docker 和 Podman 容器仍被支持。
  • upstartnagios 资源类。
  • 具有多个顶级规则的位置约束。每个约束只有一个规则被允许。pcs constraint rule add,pcs constraint rule deletepcs constraint rule remove 命令已删除。如果您配置了具有多个规则的约束,请运行 pcs cluster cib-upgrade 命令,以更新到最新的 CIB 模式。在更新过程中,Pacemaker 会为每个规则创建一个约束,因此每个约束中只有一个规则。
  • Pacemaker 规则的 monthdays,moon,weekdays,weekyearsyearsdays 持续时间选项。
  • 在位置约束规则中的日期中使用空格。
  • pcs stonith level add | clear | delete | remove 命令中使用逗号分隔 stonith 设备。
  • pcs stonith level clear | delete | remove 命令语法不明确。命令已被澄清,来区分目标与 stonith 设备。
  • masterslave 的传统角色名称不再被 pcs 命令行界面接受。改为使用 Promoted,Unpromoted, --promoted, promotablepromoted-max
  • pcs resource command 中使用 stonith 资源,以及 pcs stonith disable 命令的-- brief ,--no-strict,--safe and-- simulate 标志。
  • 能够使用 pcs stonith create 命令在组中创建 stonith 资源。
  • 来自 API v1 和 v2 的 stonith.create_in_group 命令。
  • pcs cluster pcsd-status 命令。使用 pcs status pcsdpcs pcsd status 命令。
  • pcs cluster certkey 命令。使用 pcs pcsd certkey 命令。
  • pcs resource | stonith [op] defaults <name>=<value>…​ 命令。使用 pcs resource | stonith [op] defaults update 命令。
  • pcs acl show 命令。使用 pcs acl config 命令。
  • pcs alert show 命令。使用 pcs alert config 命令。
  • pcs constraint [location | colocation | order | ticket] show | list 命令。使用 pcs constraint [location | colocation | order | ticket] config 命令。
  • pcs property showpcs property list 命令。使用 pcs property config 命令。
  • pcs tag list 命令。使用 pcs tag config 命令。
  • pcs resource move 命令的 --autodelete 标志。

Jira:RHEL-49521, Jira:RHEL-62719, Jira:RHEL-49524, Jira:RHEL-49520

8.11. 编译器和开发工具

32 位软件包已在 RHEL 10 中删除

针对 32 位 multilib 软件包的链接已删除。*.i686 软件包在 Red Hat Enterprise Linux 9 的生命周期中仍然被支持。

Jira:RHELDOCS-19269

8.12. 身份管理

pam_console 模块已删除

pam_console 模块已从 RHEL 10 中删除。pam_console 模块为在物理控制台或终端登录的用户授予文件权限和身份验证功能,并根据控制台登录状态和用户状态调整这些特权。作为 pam_console 的一种替代,您可以使用 systemd-logind 系统服务。有关配置详情,请查看 logind.conf (5) 手册页。

Jira:RHELDOCS-18159[1]

RSA PKINIT 方法已删除

基于私钥的 RSA 方法在 MIT Kerberos 不再被支持。出于安全考虑,它已被删除,特别是对于 Marvin 攻击的漏洞。因此,kinit 命令的 -X flag_RSA_PROTOCOL 参数不再起作用。Diffie-Hellman 密钥协议方法被用作默认的 PKINIT 机制。

Jira:RHEL-56070[1]

NIS 服务器模拟器已删除

RHEL 身份管理(IdM)不再提供 NIS 功能。

Jira:RHEL-34186

其他删除的 RHEL 身份管理的功能

以下软件包是 RHEL 9 的一部分,但没有随 RHEL 10 一起分发:

  • compat-hesiod
  • fontawesome-fonts: 考虑改为使用 fontawesome4-fonts
  • libnsl2
  • python3-netifaces: 考虑改为使用 python-ifaddr 替代

Jira:RHEL-33818

BDB 在 389-ds-base 中不再被支持

RHEL 10 中不再提供实现 389-ds-base 使用的 Berkeley 数据库(BDB)版本的 libdb 库。因此,目录服务器不再支持 BDB。

作为替换,目录服务器创建带有 Lightning Memory-Mapped Database (LMDB)的实例。

Jira:RHEL-30640

8.13. SSSD

对于 AD 和 IdM ,enumeration 功能已删除

对于 Red Hat Enterprise Linux (RHEL) 9 中的 AD 和 IdM ,已对弃用了对 enumeration 功能的支持。对于 RHEL 10 中的 AD 和 IdM ,enumeration 功能已删除。

Jira:RHELDOCS-19005

libsss_simpleifp 子软件包已删除

提供 libsss_simpleifp.so 库的 libsss_simpleifp 子软件包在 Red Hat Enterprise Linux (RHEL) 9 中已弃用。libsss_simpleifp 子软件包已在 RHEL 10 中删除。

Jira:RHELDOCS-19094

SSSD 文件提供者已删除

SSSD 文件提供者已从 RHEL 10.0 中删除。在以前的版本中,SSSD 文件提供者负责本地用户的智能卡验证和会话记录。作为替换,您可以配置 SSSD 代理提供者。

由于删除了文件提供者,authselect minimal 配置文件已被一个新的 本地 配置文件替代。

Jira:RHELDOCS-19267[1]

ad_allow_remote_domain_local_groups 选项已从 SSSD 中删除

sssd.confad_allow_remote_domain_local_groups 选项的支持已在 Red Hat Enterprise Linux (RHEL) 9.6 中弃用。ad_allow_remote_domain_local_groups 选项已在 RHEL 10 中删除。

Jira:RHEL-68319[1]

reconnection_retries 选项已删除

reconnection_retries 选项已从 RHEL 10.0 中的 SSSD 中的 sssd.conf 文件中删除。因为切换到在 SSSD 进程和响应器之间使用内部 IPC 的新架构的 SSSD 不再连接到后端,因此不再使用 reconnection_retries 选项。

Jira:RHELDOCS-18965[1]

8.14. 桌面

TigerVNC 已删除

TigerVNC 远程桌面解决方案已在 RHEL 10 中删除。

TigerVNC 在 RHEL 9 中提供虚拟网络计算(VNC)协议的服务器和客户端实现。

以下软件包已删除:

  • tigervnc
  • tigervnc-icons
  • tigervnc-license
  • tigervnc-selinux
  • tigervnc-server
  • tigervnc-server-minimal
  • tigervnc-server-module

Connections 应用程序(gnome-connections)仍然作为替代的 VNC 客户端被支持,但它不提供 VNC 服务器。TigerVNC 已被 gnome-remote-desktop 守护进程替代,后者是一个使用 RDP 协议的远程桌面服务器。您可以在以下模式中使用 gnome-remote-desktop

  • 桌面共享:使用辅助访问提供物理会话的共享
  • 无头会话:提供单个用户远程无头会话
  • 远程登录:提供图形远程登录,并替换了 XDMCP 的功能

Jira:RHELDOCS-18388[1]

Totem 媒体播放器已从 RHEL 10 中删除

RHEL 10 安装默认不包含任何媒体播放器。您可以使用任何可用的第三方媒体播放器,例如在 Flathub 上。

Jira:RHELDOCS-18389[1]

power-profiles-daemon 已在 RHEL 10 中删除

在 GNOME 中提供电源模式配置的 power-profiles-daemon 软件包已在 RHEL 10 中删除。在 RHEL 10 中,您可以使用 Tuned 守护进程管理电源配置文件。

tuned-ppd 软件包提供了对 power-profiles-daemon 的简易替代,这允许其与 GNOME 桌面和使用 power-profiles-daemon API 的应用程序一起使用。您还可以通过 /etc/tuned/ppd.conf 配置文件,使用它来覆盖三个基本的电源配置文件,包括 power-saverbalancedperformance。如果要使用自定义配置文件,您可以编辑配置文件,并将自定义配置集映射到三个基本的 power-profiles-daemon 配置文件名称。

Jira:RHELDOCS-18390[1]

gedit 已在 RHEL 10 中删除

Red Hat Enterprise Linux 中的默认图形文本编辑器 gedit 已在 RHEL 10 中删除。作为替代方案,您可以使用 GNOME 文本编辑器。

Jira:RHELDOCS-19148[1]

Tweaks 不再作为 RHEL 10 中的一个 RHEL 软件包提供

您可以使用默认的 GNOME Settings 应用程序,而不是 Tweaks 桌面应用程序,前者已扩展为包括之前只在 Tweaks 中找到的许多选项。

Jira:RHELDOCS-19125[1]

Qt5 库已在 RHEL 10 中删除

Qt5 库已被 Qt6 库替代,并具有新功能和更好的支持。

如需更多信息,请参阅 移植到 Qt 6

Jira:RHELDOCS-19132[1]

WebKitGTK 已在 RHEL 10 中删除

WebKitGTK Web 浏览器引擎已在 RHEL 10 中删除。因此,您不能再构建依赖 WebKitGTK 的应用程序。Mozilla Firefox 以外的桌面应用程序不再显示 Web 内容。RHEL 10 中不提供其他 Web 浏览器引擎。

Jira:RHELDOCS-19170[1]

Evolution 已在 RHEL 10 中删除

Evolution 是一种 GNOME 应用程序,提供集成的电子邮件、日历、联系人管理和通信功能。应用程序及其插件已在 RHEL 10 中删除。您可以在第三方源中查找备选方案,例如在 Flathub 上。

您可以使用 File 菜单中的 Back up Evolution data 项,直接在 Evolution 中备份 Evolution 数据。

Jira:RHELDOCS-19146[1]

Festival 在 RHEL 10 不支持

在 RHEL 10 中删除了对 Festival 语音合成器的支持, Festival 二进制文件、库和 Speech Dispatcher 的插件也已删除。

作为替代方案,您可以使用 Espeak NG 语音合成器。

Jira:RHELDOCS-19138[1]

GNOME 的 Eye 已被删除

GNOME (eog)镜像查看器应用程序的 Eye 已在 RHEL 10 中删除。

作为替代方案,您可以使用 Loupe 应用程序。

Jira:RHELDOCS-19134[1]

Cheese 已删除

Cheese 相机应用程序已在 RHEL 10 中删除。

作为替代方案,您可以使用 Snapshot 应用程序。

Jira:RHELDOCS-19136[1]

Devhelp 已删除

用于浏览和搜索 API 文档的图形开发人员工具 Devhelp 已在 RHEL 10 中删除。现在,您可以在特定的上游项目中在线找到 API 文档。

Jira:RHELDOCS-19153[1]

基于 GTK 3 的 gtkmm 已删除

gtkmm 是 GTK 图形工具包的一个 C++ 接口。基于 GTK 3 的 gtkmm 版本及其所有依赖项已在 RHEL 10 中删除。要在 RHEL 10 中访问 gtkmm,请迁移到基于 GTK 4 的 gtkmm 版本。

Jira:RHELDOCS-19142[1]

LibreOffice 已在 RHEL 10 中删除

LibreOffice RPM 软件包已从 RHEL 10 中删除。LibreOffice 在 RHEL 7、8 和 9 的整个生命周期中仍然被完全支持。

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

Flathub 存储库中的官方 Flatpak 软件包:链接:https://flathub.org/apps/org.libreoffice.LibreOffice。官方 RPM 软件包:链接:https://www.libreoffice.org/download/download-libreoffice/。

Jira:RHELDOCS-19152[1]

GNOME Terminal 已在 RHEL 10 中删除

在 RHEL 10 中,GNOME Terminal 已被 Ptyxis 替代。

Ptyxis 是一个面向容器的终端,可为容器系统(如 Podman 或 Toolbx)提供透明支持,对用户配置集提供强大的支持。

Jira:RHELDOCS-19155[1]

Inkscape 矢量图形编辑器已在 RHEL 10 中删除

RHEL 10 安装不包含任何矢量图形编辑器。您可以使用任何可用的第三方矢量图形编辑器,例如在 Flathub 上。

Jira:RHELDOCS-19150[1]

GNOME 经典会话已从默认安装中删除

如果您的场景需要 GNOME 经典会话,请手动安装它:

  1. 安装 gnome-classic-session 软件包:

    # dnf install gnome-classic-session
  2. 退出当前会话。
  3. 在登录屏幕(GDM)上,点用户名旁的齿轮图标。
  4. 从会话列表中选择"GNOME Classic"。
  5. 像往常一样登录。

Jira:RHEL-4137

Evince 已在 RHEL 10 中删除

Evince 是 GNOME 桌面的一个文档查看器,已在 RHEL 10 中删除。您可以使用 Papers 应用程序替代。Papers 是移植到 Gtk 4 的 Evince 的一个分支,旨在更快地添加新功能,如,列出 PDF 文档中的签名。Papers 有一部分是用 Rust 写的,改进了稳定性。

Jira:RHELDOCS-19140[1]

8.15. 图形基础结构

PulseAudio 守护进程已在 RHEL 10 中删除

PulseAudio 守护进程及其软件包 pulseaudioalsa-plugins-pulseaudio 已在 RHEL 10 中删除。

请注意,PulseAudio 客户端库和工具已被弃用,此更改仅影响在系统上运行的 audio 守护进程。

您可以使用 PipeWire 音频系统作为替代品,从 RHEL 9.0 开始,它也是默认的 audio 守护进程。PipeWire 还提供了一种 PulseAudio API 的实现。

Jira:RHELDOCS-17682[1]

Motif 已删除

Motif 是一个基于 X11 的桌面环境(DE),它由工具包和 mwm X11 窗口管理器组成。它以前已弃用,并已从 RHEL 10 中删除。作为替换,您可以使用 GTK 或 Qt 工具包。

Jira:RHELDOCS-19221[1]

xorg-x11-server 已从 RHEL 10 中删除

X.Org 服务器是 X Window 系统的一种实现,之前已弃用,并已从 RHEL 10 中删除。请注意,X11 协议没有被删除,这意味着大多数应用程序将通过 Xwayland 合成器保持兼容。如需更多信息,请参阅 用于 Wayland 和 Xorg 服务器的 Red Hat Enterprise Linux 10 计划 (红帽博客)。

Jira:RHELDOCS-19222[1]

8.16. Red Hat Enterprise Linux 系统角色

mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula 变量已弃用

随着 RHEL 未来的重大更新,mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula 变量将不再在 mssql 系统角色中支持,因为角色现在可以为 mssql_tools 版本 17 和 18 安装 odbc 驱动程序。因此,您必须改为使用没有版本号的 mssql_accept_microsoft_odbc_driver_for_sql_server_eula 变量。

重要:如果您使用带有版本号的已弃用的变量 mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula ,则角色会通知您使用新的变量 mssql_accept_microsoft_odbc_driver_for_sql_server_eula。但是,弃用的变量将继续工作。

Jira:RHEL-69315

8.17. 虚拟化

virt-v2v 工具不再从 RHEL 5 转换 Xen 虚拟机

无法再使用 virt-v2v 工具将虚拟机从 RHEL 5 Xen 主机转换为 KVM。详情请查看 红帽知识库

Jira:RHEL-37687

Red Hat Virtualization 兼容性已从 virt-v2v 中删除

因为对 Red Hat Virtualization (RHV)的维护支持已结束,所以 virt-v2v 工具不再支持将虚拟机导出到 RHV。因此,virt-v2v 中不再提供以下选项:

  • -o rhv-upload
  • -o rhv
  • -o vdsm

Jira:RHEL-36712

RHEL 10 中无法使用持久内存设备透传

因为 nvml 软件包已在 RHEL 10 中删除,所以无法再使用持久内存(pmem)设备透传。pmem 设备透传允许虚拟机以最少的模拟开销直接访问主机的物理持久内存硬件。

Jira:RHEL-23771

不支持基于 RDMA 的迁移

在 RHEL 10 中,不再支持使用远程直接内存访问(RDMA)迁移虚拟机。因此,红帽强烈建议不要使用 rdma URI 进行虚拟机迁移。

Jira:RHELDOCS-20094

与 iPXE 相关的 NIC 设备驱动程序已删除

Internet Preboot eXecution Environment (iPXE)固件为远程引导机器提供了一系列网络引导选项。iPXE 还提供了大量设备驱动程序。以下 iPXE 驱动程序不再在 RHEL 10 版本中使用,因此已被删除:

  • 完整的 ipxe-roms 子 RPM 软件包
  • 包含 ipxe-bootimgs-x86 子 RPM 软件包中的设备驱动程序的二进制文件:

    • /usr/share/ipxe/ipxe-i386.efi
    • /usr/share/ipxe/ipxe-x86_64.efi
    • /usr/share/ipxe/ipxe.dsk
    • /usr/share/ipxe/ipxe.iso
    • /usr/share/ipxe/ipxe.lkrn
    • /usr/share/ipxe/ipxe.usb

iPXE 现在依赖平台固件来为网络引导提供 NIC 驱动程序。/usr/share/ipxe/ipxe-snponly-x86_64.efi/usr/share/ipxe/undionly.kpxe iPXE 二进制文件是 ipxe-bootimgs 软件包的一部分,并使用平台固件提供的 NIC 驱动程序。

Jira:RHEL-37610

8.18. 云环境中的 RHEL

cloud-init 不再使用 python-jsonschema

此更新删除了对 python-jsonschema 软件包的 cloud-init 依赖项。因此,不再使用 cloud-init 模式验证器来验证 cloud-init 配置。

Jira:RHEL-65849[1]

8.19. 容器

rsyslog 容器镜像已删除

rsyslog 容器镜像已删除。您可以使用 support-tools 容器镜像,其中包含诊断和故障排除工具,如 sos reportstracetcpdump。使用 support-tools 镜像,您可以访问 rsyslog 镜像之前涵盖的许多功能,以及额外的工具,来增强系统支持和维护工作流。

Jira:RHELDOCS-19363[1]

cgroupv1 已删除

cgroupv1 控制组机制已删除,改为使用 cgroupv2cgroupv2 提供了一个控制组层次结构,所有的资源控制器都挂载在该结构上。RHEL 10 中默认的是 cgroupv2

Jira:RHEL-67064

runc 容器运行时已删除

runc 容器运行时已删除。RHEL 10 中的容器运行时是 crun。crun 是一个快速、占用内存少的 OCI 容器运行时,是用 C 语言编写的。crun 二进制文件比 runc 二进制文件小多达 50 倍,快两倍。使用 crun,也可以在运行容器时设置最少的进程数。crun 运行时也支持 OCI hook。

Jira:RHEL-67063

第 9 章 已弃用的功能

弃用的功能被完全支持,这意味着它们会被测试和维护,且其支持状态在 Red Hat Enterprise Linux 10 中保持不变。但是,它们可能在以后的主发行版本中不被支持,不建议在当前或将来的 Red Hat Enterprise Linux 主发行版本上进行新部署。

在主版本的发行周期内可以弃用的功能。

弃用的功能列在所有未来的发行注记中,直到被删除为止。有关已弃用的功能的完整列表,请参阅最新次版本的发行注记。有关支持长度的详情,请查看 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 应用程序流生命周期

9.1. 安装程序和镜像创建

cockpit-composer 软件包已弃用

cockpit-composer 软件包已弃用,并将在以后的主 RHEL 版本中删除。从现在开始,请使用 cockpit-image-builder

Jira:RHELDOCS-20167[1]

squashfs 软件包已弃用

squashfs 软件包已弃用,并将在以后的主 RHEL 发行版本中删除。作为替代方案,dracut 支持挂载 erofs

Jira:RHELDOCS-18903[1]

module Kickstart 命令已弃用

Anaconda 弃用了对 DNF 模块的支持,因此 module Kickstart 命令已被弃用。如果您在 Kickstart 文件的 %packages 部分或 module Kickstart 命令中使用 模块,这可能会影响您。这个变化是为了简化安装过程,并确保以后更一致的体验。

Jira:RHEL-34829

inst.gpt 引导选项现已弃用

inst.gpt 引导选项现已弃用,并将在以后的发行版本中删除。要指定首选的磁盘标签类型,请使用 inst.disklabel 引导选项。指定 gptmbr 来创建 GPT 或 MBR 磁盘标签。

Jira:RHELDOCS-18491[1]

9.2. 安全性

OpenSSL 中的 ENGINE API 已弃用

在 RHEL 10 中,ENGINE API 已弃用,并计划在以后的主发行版本中删除。没有新的应使用 ENGINE API 构建的应用程序。为了保持应用程序二进制接口(ABI)和现有应用程序正常工作,OpenSSL 仍然导出 ENGINE 符号。要防止新应用程序使用 ENGINE API,OpenSSL 会设置系统范围的 OPENSSL_NO_ENGINE 标志,且公开 ENGINE API 的头文件 engine.h 已被删除。

Jira:RHEL-45704

crypto-policies 现在为 GnuTLS 设置 allow-rsa-pkcs1-encrypt = false

在 RHEL 10 中,GnuTLS 库默认使用 RSA PKCS #1 v1.5 填充阻止加密和解密。除 LEGACY 策略外,allow-rsa-pkcs1-encrypt = false 选项已在所有系统范围加密策略(DEFAULT、FUTURE 和 FIPS)中指定。

Jira:RHEL-64746

FIPS 模式中的 HMAC-SHA-1 已弃用

HMAC-SHA-1 加密算法在 FIPS 模式中已弃用,它可能会在以后的版本中删除。在 FIPS 模式之外,保留了对 HMAC-SHA-1 的支持。

Jira:RHELDOCS-18674

9.3. 网络

ipset 已不再维护

在 RHEL 10 中,ipset 工具未被维护,并计划在以后的主发行版本中删除。红帽仅在当前发行生命周期中提供关键 bug 修复。作为 ipset 的替代选择,您可以使用 nftables 设置功能。

Jira:RHELDOCS-20147[1]

9.4. 文件系统和存储

squashfs 软件包已弃用

squashfs 已弃用,并将在下一个主发行版本中删除。它将不再获得增强功能,并且在 RHEL 10 中用于红帽内部的特定用例。考虑使用 EROFS 作为替代解决方案。

Jira:RHELDOCS-18450[1]

9.5. 高可用性和集群

弃用的 High Availability Add-On 功能

以下功能已在 Red Hat Enterprise Linux 10 中弃用,并将在下一个主发行版本中删除:

  • 将规则指定为多个参数。改为使用单个字符串参数。
  • pcs constraint location addpcs constraint colocation ad 中将 score 指定为一个独立的值。改为使用 score=value
  • 在除了 pcs resource restart | move 的 resource 命令中,以及在 pcs cluster node add-guest | add-remote 命令中指定 --wait 选项。改为使用以下命令:

    • pcs status wait 等待集群进入稳定状态。
    • pcs status query resource 命令,以验证资源在等待后处于预期状态。
  • 使用 --force 标志确认潜在的破坏性操作,如 pcs cluster destroypcs quorum unblockpcs stonith confirmpcs stonith sbd device setuppcs stonith sbd watchdog test 命令。现在,您应该使用 --yes 标志来确认潜在的破坏性操作,并保留使用 --force 标志来覆盖验证错误。
  • 使用 --force 标志来在 pcs cluster report 中确认覆盖文件。改为使用 -overwrite 标志。
  • 分配和不分配 ACL 角色,而不指定 usergroup 关键字。
  • 在顺序约束中配置 score 参数。现在,当用户尝试在顺序约束中配置 score 参数时,pcs 命令行界面会产生一条警告。

Jira:RHELDOCS-19607[1]

9.6. 编译器和开发工具

glibc 中的 utmputmpx 接口已弃用

glibc 库提供的 utmputmpx 接口包含一个计数器,从 UNIX epoch 开始计算时间。此计数器将在 2106 年 2 月 07 日时溢出。因此,utmputmpx 在 RHEL 10 中已弃用,并将在 RHEL 11 中删除。

Jira:RHELDOCS-18080[1]

9.7. 基础架构服务

FTP 客户端和服务器软件现已弃用

以下 FTP 客户端和服务器软件已弃用,并将在以后的 RHEL 主版本中删除:

  • ftp
  • lftp
  • vsftpd

这些 FTP 协议实现不再处于活跃的开发阶段。我们建议客户计划基于 FTP 将工作流迁移到其中之一:

  • OpenSSH 和 sftp 命令,它为通过 SSH 协议进行安全文件传输提供了交互式界面。
  • 基于 Apache httpd 的 WebDAV - 提供了各种客户端实施。

Jira:RHELDOCS-20610[1]

9.8. Web 控制台

RHEL web 控制台中的主机切换器已弃用

通过从单个 RHEL web 控制台会话 SSH 来提供连接到多个机器的主机切换器已弃用,并默认禁用。由于 web 技术限制,此功能并不安全。

在短期内,您可以使用 cockpit.conf 文件中的 AllowMultiHost 选项评估您场景中的风险后启用主机切换器:

[WebService]
AllowMultiHost=yes

作为更安全的替代方案,您可以使用:

  • Web 控制台登录页面(在 Web 浏览器会话中具有一个主机的安全限制)
  • Cockpit Client flatpak

Jira:RHEL-4032[1]

9.9. Red Hat Enterprise Linux 系统角色

sshd 变量已弃用,并被 sshd_config 替换

要在 RHEL 系统角色中统一编码标准,sshd 变量已被 sshd_config 变量替代。sshd 变量现已弃用,可能在以后的 RHEL 主发行版本中的 sshd Ansible 角色中删除。

Jira:RHEL-73440[1]

9.10. 虚拟化

libslirp 已弃用

在 RHEL 10 中,libslirp 网络后端已弃用,并将在以后的主发行版本中删除。

Jira:RHEL-45147

i440fx 虚拟机类型已弃用

在 RHEL 10 中,虚拟机(VM)的 i440fx 机器类型已弃用,并将在以后的 RHEL 主版本中删除。

此外,i440fx-rhel7.6 机器类型已被 i440fx-rhel10.0 替代。因此,在实时迁移到 RHEL 10 主机后,具有 i440fx-rhel7.6 机器类型的虚拟机无法正确引导。临时解决方案:实时迁移后重启虚拟机。 

Jira:RHELDOCS-18672[1]

旧的 vCPU 型号现已弃用

几个虚拟 CPU 型号现已弃用,并不支持在以后的 RHEL 主发行版本中的虚拟机(VM)中使用。值得注意的是,弃用的型号包括:

  • Intel Xeon 55xx 和 75xx Processor 系列(也称为 Nehalem)
  • Intel Xeon v2 (也称为 Ivy 桥)
  • AMD Opteron G4 和 G5

要查看已弃用的 CPU 型号的完整列表,请使用以下命令:

# /usr/libexec/qemu-kvm -cpu help | grep depre | grep -v - -v

要检查正在运行的虚拟机是否使用已弃用的 CPU 型号,请使用 virsh dominfo 工具,并查找类似于 Messages 部分中的如下行:

tainted: use of deprecated configuration settings
deprecated configuration: CPU model 'Nehalem'

Jira:RHEL-28971[1]

virt-manager 已被弃用

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

Jira:RHELPLAN-10304[1]

libvirtd 已被弃用

单体 libvirt 守护进程 libvirtd 已在 RHEL 9 中弃用,并将在以后的 RHEL 主发行版本中删除。请注意,您仍然可以使用 libvirtd 在虚拟机监控程序上管理虚拟化,但红帽建议您切换到新引入的模块化 libvirt 守护进程。具体说明和详情,请参阅 RHEL 9 配置和管理虚拟化 文档。

Jira:RHELPLAN-113995[1]

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

在 UEFI(PE/COFF)可执行文件中使用基于 SHA1 的签名执行 SecureBoot 镜像验证已过时。红帽建议改为使用基于 SHA-2 算法或更新算法的签名。

Jira:RHELPLAN-69533[1]

虚拟软盘驱动程序已弃用

用于控制虚拟软盘设备的 isa-fdc 驱动程序现已弃用,并将在以后的 RHEL 发行版本中不被支持。因此,为了确保与迁移的虚拟机(VM)的兼容性,红帽不建议在 RHEL 10.0 上托管的虚拟机中使用软盘磁盘设备。

Jira:RHELPLAN-81033[1]

qcow2-v2 镜像格式已弃用

有了 RHEL 10.0 ,虚拟磁盘镜像的 qcow2-v2 格式已弃用,并将在以后的 RHEL 主发行版本中不被支持。另外,RHEL 10.0 镜像构建器无法创建 qcow2-v2 格式的磁盘镜像。

红帽强烈建议您使用 qcow2-v3,而不是 qcow2-v2。要将 qcow2-v2 镜像转换为更新的格式版本,请使用 qemu-img amend 命令。

JIRA:RHELPLAN-75969[1]

9.11. 容器

runc 容器运行时已删除

runc 容器运行时已删除。默认容器运行时是 crun。如果您从以前的 RHEL 版本升级到 RHEL 10.0,您必须运行 podman system migrate --new-runtime=crun 命令,来为所有容器设置新的 OCI 运行时。

Jira:RHELDOCS-19051[1]

在最小容器镜像中,默认不再安装 tzdata 软件包

tzdata 软件包不再安装在 registry.access.redhat.com/ubi10-minimal 容器镜像中。因此,如果您将最小容器构建从以前的 RHEL 版本迁移到 RHEL 10.0,并且输入 microdnf reinstall tzdata 命令来重新安装 tzdata 软件包,您会收到一条错误消息,因为 tzdata 软件包不再被默认安装。在这种情况下,输入 microdnf install tzdata 命令来安装 tzdata

Jira:RHELDOCS-18700[1]

Podman v5.0 弃用

在 RHEL 10.0 中,在 Podman v5.0 中弃用了以下内容:

  • 存储在 containers.conf 文件中的系统连接和场信息现在是只读的。系统连接和场信息现在将被存储在 podman.connections.json 文件中,仅由 Podman 管理。Podman 继续支持旧的配置选项,如 [engine.service_destinations][farms] 部分。如果需要,您仍然可以手动添加连接或场,但无法使用 podman system connection rm 命令从 containers.conf 文件中删除连接。
  • slirp4netns 网络模式已被弃用,并将在以后的 RHEL 主发行版本中删除。pasta 网络模式是无根容器的默认网络模式。
  • containernetworking-plugins 软件包和 CNI 网络堆栈不再被支持。

    • 如果您从以前的 RHEL 版本升级到 RHEL 10.0,或者全新安装了 RHEL 10.0 ,则 CNI 不再可用。因此,您必须运行 podman rmi --all --force 命令来删除所有使用这些镜像的镜像和容器。
    • 如果存在,则 containers.conf 文件中 network_backend 选项的 cni 值必须改为 netavark 或可以取消设置。

Jira:RHEL-40641

podman-tests 软件包已弃用

podman-tests 软件包已在 AppStream 存储库中弃用。软件包现在在 CodeReady Linux Builder (CRB)中提供。有关 CRB 存储库的更多信息,请访问 https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/package_manifest/repositories#CodeReadyLinuxBuilder-repository

Jira:RHEL-67860

nodejs-18nodejs-18-minimal 已弃用

nodejs-18nodejs-18-minimal 容器镜像现已弃用,将不再接收功能更新。改为使用 nodejs-22nodejs-22-minimal

Jira:RHELDOCS-20283[1]

9.12. 在之前版本中识别的弃用功能

这部分提供了在 Red Hat Enterprise Linux 10 中 已弃用的 功能的概述。

9.12.1. SSSD

SMB1 协议在 Samba 中已弃用

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

为提高安全性,SMB1 默认在 Samba 服务器和客户端工具中被禁用。

Jira:RHELDOCS-16612[1]

9.13. 已弃用的软件包

本节列出了已弃用的软件包,可能不会包括在 Red Hat Enterprise Linux 未来的主发行版本中。

重要

在 RHEL 10 中,已弃用的软件包的支持状态保持不变。

以下软件包已在 RHEL 10 中弃用:

  • daxio
  • gvisor-tap-vsock-gvforwarder
  • libpmem
  • libpmem2
  • libpmemblk
  • libpmemlog
  • libpmemobj
  • libpmemobj-cpp
  • libpmempool
  • libslirp
  • nvml
  • pmempool
  • pmreorder
  • sdl2-compat
  • wget

第 10 章 已知问题

此版本的 Red Hat Enterprise Linux 10.0 会受到以下新识别的和之前已知的问题的影响。已知问题列在以后的发行注记中,直到解决为止,届时它将作为已修复问题发布。如果您遇到本节中没有列出的问题,请使用此页面右上角的按钮进行报告。

10.1. 安装程序和镜像创建

无法从签名的容器构建 ISO

尝试从 GPG 或简单签名的容器构建 ISO 磁盘镜像会导致错误,如下所示:

manifest - failed
Failed
Error: cannot run osbuild: running osbuild failed: exit status 1
2024/04/23 10:56:48 error: cannot run osbuild: running osbuild failed: exit status 1

这是因为系统无法获得镜像签名。

临时解决方案:您可以从容器镜像中删除签名,或构建一个派生的容器镜像。例如,要删除签名,您可以运行以下命令:

 $ sudo skopeo copy --remove-signatures containers-storage:registry.redhat.io/rhel9/rhel-bootc:9.4 containers-storage:registry.redhat.io/rhel9/rhel-bootc:9.4
$ sudo podman run \
       --rm \
       -it \
       --privileged \
       --pull=newer \
       --security-opt label=type:unconfined_t \
       -v /var/lib/containers/storage:/var/lib/containers/storage \
       -v ~/images/iso:/output \
       quay.io/centos-bootc/bootc-image-builder \
       --type iso --local \
       registry.redhat.io/rhel9/rhel-bootc:9.4

要构建派生的容器镜像,并避免向其添加简单的 GPG 签名,请参阅 签名容器镜像 产品文档。

Jira:RHEL-34807

主机名解析由于引导选项中加密的 DNS 和自定义 CA 而失败

当在内核命令行中使用 inst.repo=inst.stage2= 引导选项以及远程安装 URL、加密的 DNS 和 Kickstart 文件中的自定义 CA 证书时,安装程序会在处理 Kickstart 文件前尝试下载 install.img stage2 镜像。因此,主机名解析失败,从而导致在成功获取 stage2 镜像前显示一些错误。临时解决方案:在 Kickstart 文件中定义安装源,而不是内核命令行。

Jira:RHEL-80672

安装程序在最终 RPM 安装过程中变得无响应

在 RPM 安装过程中,安装程序可能会变得无响应。在问题发生前,您可能会看到重复的 配置 rootfiles.noarch 消息。临时解决方案:重启安装进程。

Jira:RHEL-67865[1]

在安装过程中使用快捷方式禁用键盘布局切换

要防止因更改键盘布局的键盘快捷键损坏而导致的混乱,此功能已在 Anaconda 中禁用。您不能在安装过程中使用快捷方式更改键盘布局。临时解决方案 :使用顶栏中的键盘布局图标切换布局。

Jira:RHEL-74504

将设备与 LACP 绑定需要更长的时间才能正常工作,从而导致订阅失败

当使用内核命令行引导选项和 Kickstart 文件配置与 LACP 绑定的设备时,会在 initramfs 阶段创建连接,但在 Anaconda 中重新激活。因此,它会导致临时中断,从而通过 rhsm Kickstart 命令造成系统订阅失败。

临时解决方案:将 -no-activate 添加到 Kickstart 网络配置,以保持网络正常工作。因此,系统订阅成功完成。

Jira:RHELDOCS-19853[1]

services Kickstart 命令无法禁用 firewalld 服务

Anaconda 中的一个 bug 阻止 services --disabled=firewalld 命令在 Kickstart 中禁用 firewalld 服务。临时解决方案 :改为使用 firewall --disabled 命令。因此,firewalld 服务被正确禁用。

Jira:RHEL-83577

如果在使用 ostreecontainer 时没有创建 /boot 分区,则安装程序会失败

当使用 ostreecontainer Kickstart 命令安装可引导容器时,如果没有创建 /boot 分区,安装会失败。出现这个问题的原因是,安装程序需要一个专用的 /boot 分区来继续容器部署。

临时解决方案:确保在 Kickstart 文件中定义了一个 /boot 分区或者在安装过程中手动创建。

Jira:RHEL-66155

当 'ignoredisk' 命令在 'iscsi' 命令之前时,Kickstart 安装失败并显示 unknown disk 错误

如果 iscsi 命令放在 ignoredisk 命令之前,则使用 kickstart 方法安装 RHEL 会失败。出现这个问题的原因是 iscsi 命令在命令解析过程中附加了指定的 iSCSI 设备,而 ignoredisk 命令同时解析设备规范。如果 ignoredisk 命令在 iscsi 命令附加之前引用了一个 iSCSI 设备名称,则安装会失败,并显示"unknown disk"错误。

临时解决方案:确保 iscsi 命令在 Kickstart 文件中被放置在 ignoredisk 命令之前,以引用 iSCSI 磁盘,并确保安装成功。

Jira:RHEL-58827

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

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

临时解决方案:使用 harddrive --partition=sdX --dir=/ 命令从 USB CD-ROM 驱动器安装。因此,安装不会失败。

Jira:RHEL-58829

驱动程序磁盘菜单无法在控制台上显示用户输入

当您在带有驱动程序磁盘的内核命令行中使用 inst.dd 选项启动 RHEL 安装时,控制台无法显示用户输入。因此,似乎应用程序没有响应用户输入并停止响应,但会显示给用户造成混淆的输出。但是,此行为不会影响功能,用户输入会在按 Enter 后被注册。

临时解决方案:要看到预期的结果,请忽略控制台中没有用户输入,并在完成添加输入后按 Enter 键。

Jira:RHEL-58828

Anaconda 可能无法在 s390xppc64le 构架中正常工作

除了已经支持的 x86_64 和 ARM 架构外,RHEL 的镜像模式支持 pp64les390x 架构。但是,Anaconda 可能无法在 s390x 和 ppc64le 构架中正常工作。

Jira:RHELDOCS-19496[1]

在救援模式中,Anaconda 安装程序似乎没有响应

当引导到救援模式并选择 ContinueSkip to shell 选项时,您可能会遇到 Anaconda 安装程序似乎被冻结的问题。尽管缺少可见的响应,但安装程序仍可以正常工作并对您的输入做出反应;但是,提示符不会在屏幕上显示,从而导致混淆。

正常继续进行您的任务,因为安装程序仍然可以正常工作,尽管没有可见的提示。

Jira:RHEL-58834[1]

10.2. 安全性

四个 libvirt 服务的 SELinux 策略规则暂时改为 permissive 模式

在以前的版本中,SELinux 策略被修改,来反映使用一组新的模块守护进程来替换旧的单片 libvirtd 守护进程。因为这个更改需要测试几个场景,所以以下服务已被临时改为 SELinux permissive 模式:

  • virtqemud
  • virtvboxd
  • virtstoraged
  • virtsecretd

为了防止无害的 AVC 拒绝,dontaudit 规则已添加到这些服务的 SELinux 策略中。

Jira:RHEL-77808[1]

加密令牌无法在 FIPS 模式下与 pkcs11-provider 一起工作

当系统在 FIPS 模式下运行时,pkcs11-provider OpenSSL 提供者无法正常工作,OpenSSL TLS 工具包返回到默认提供者。因此,OpenSSL 无法加载 PKCS #11 密钥,加密令牌无法在此场景中正常工作。

临时解决方案:在 openssl.cnf 文件的 PKCS #11 部分中设置 pkcs11-module-assume-fips = true 参数。如需更多信息,请参阅您系统上的 pkcs11-provider (7) 手册页。有了这个配置更改,pkcs11-provider 可以在 FIPS 模式下正常工作。

Jira:RHEL-68621

现在,在启用了 FIPS 的系统上强制 Extended Master Secret TLS 扩展

随着 RHSA-2023:3722 公告的发布,对于启用了 FIPS 的 RHEL 9 和 10 系统上的 TLS 1.2 连接,TLS Extended Master Secret (EMS)扩展(RFC 7627)是强制的。这符合 FIPS-140-3 要求。TLS 1.3 不受影响。

不支持 EMS 或 TLS 1.3 的传统客户端现在无法连接到在 RHEL 9 和 10 上运行的 FIPS 服务器。同样,在 FIPS 模式中的 RHEL 9 和 10 客户端无法连接到只支持没有 EMS 的 TLS 1.2 的服务器。在实践中意味着这些客户端无法连接到 RHEL 6、RHEL 7 和非 RHEL 传统操作系统上的服务器。这是因为传统的 OpenSSL 1.0.x 版本不支持 EMS 或 TLS 1.3。

另外,如果 hypervisor 使用没有 EMS 的 TLS 1.2,则从启用了 FIPS 的 RHEL 客户端连接到 hypervisor (如 VMWare ESX)现在会失败,并显示 Provider routines::ems not enabled 错误。要临时解决这个问题,请更新 hypervisor 以支持带有 EMS 扩展的 TLS 1.3 或 TLS 1.2。对于 VMWare vSphere,这意味着版本 8.0 或更高版本。

如需更多信息,请参阅 Red Hat Enterprise Linux 9.2 及之后的版本强制使用 TLS 扩展"扩展 Master Secret "。

Jira:RHEL-13340

更新 NSS 数据库密码会破坏 ML-DSA seed

生成 ML-DSA 密钥以 seed 开头,这足以派生该密钥。但是,也可以扩展密钥来加快后续操作。如果您在 NSS 数据库中有 ML-DSA 密钥,要么生成或导入,则扩展格式和 seed 可能存储。由于 NSS 如何处理数据库重新加密,如果更改了数据库密码,则不会更新 seed 属性来容纳新密码,并且其值将永久丢失,即使了解之前的密码也是如此。

临时解决方案:在更新密码前导出密钥,并在更新后重新导入它。

Jira:RHEL-114443

10.3. Shell 和命令行工具

uname 命令生成未知输出

uname 命令显示带有 flags --hardware-platform 和- processor 的未知输出。在以前的 RHEL 版本中,uname -iuname -puname -m 的别名,即使 GNU/Linux 发行版也不可移植。

作为临时解决方案,您可以使用 the -m 标志而不是 -i and -p 标志。

Jira:RHEL-74146

10.4. 基础架构服务

Nginx 不支持 PKCS #11 和 TPM

OpenSSL 引擎 API 在 RHEL 9 中已弃用,并在 RHEL 10 中从 Nginx 中删除。使用当前 OpenSSL 提供者 API 的相应功能还不可用。因此,Nginx HTTP 服务器无法通过 PKCS #11 和受信任的平台模块(TPM)设备与硬件安全模块(HSM)一起工作。

Jira:RHEL-33742

为 MariaDB 和 MySQL 使用不正确的 Perl 数据库驱动程序可能会导致意外的结果

MariaDB 数据库是 MySQL 的一个分叉。随着时间的推移,这些服务独立开发,且不再完全兼容。这些差异也会影响 Perl 数据库驱动程序。因此,如果您在 Perl 应用程序使用 DBD::mysql 驱动程序连接到 MariaDB 数据库,或者使用 DBD::MariaDB 驱动程序连接到 MySQL 数据库,则操作可能会导致意外的结果。例如,驱动程序可以从读操作中返回不正确的数据。要避免这样的问题,请在应用程序中使用与数据库服务匹配的 Perl 驱动程序。

红帽只支持以下场景:

  • MariaDB 数据库的 Perl DBD::MariaDB
  • MySQL 数据库的 Perl DBD::mysql 驱动程序

请注意,RHEL 8 仅包含 DBD::mysql 驱动程序。如果您计划升级到 RHEL 9,然后升级到 RHEL 10,且您的应用程序使用 MariaDB 数据库,请在升级后安装 perl-DBD-MariaDB 软件包,并修改应用程序以使用 DBD::MariaDB 驱动程序。

详情请查看红帽知识库解决方案 从 Perl db 驱动程序支持 MariaDB/MySQL 跨数据库连接

Jira:RHELDOCS-19770[1]

VMware vCenter 无法从正在运行的 RHEL 虚拟机中正确删除 SATA 磁盘

当使用 VMware vCenter 接口从 VMware ESXi hypervisor 上运行的 RHEL 10 客户机中删除 SATA 磁盘时,磁盘目前不会被完全删除。它会停止正常工作,并从 vCenter 界面中的客户机中消失,但 SCSI 接口仍然检测到客户端中附加的磁盘。 

Jira:RHEL-79913[1]

10.5. 网络

wpa_supplicant 服务不再依赖 OpenSSL Engine API

在 RHEL 10 中,根据联邦信息处理标准(FIPS),引擎是不兼容的,因此相应的 OpenSSL Engine API 已删除。因此,依赖 wpa_supplicant 服务无法加载 X509 证书和以 PKCS11 URI 格式存储的密钥。因此,任何 EAP-TLS 验证方法和使用 PKCS11 的变体都无法再连接到相关的网络。

Jira:RHEL-33750

如果您在运行时减少了 SR-IOV VF 的数量,则内核可能会 panic

如果以下条件都满足,则 Linux 内核可能会 panic:

  • 主机启用了输入输出内存管理单元(IOMMU)。
  • 网络驱动程序使用页池。
  • 您可以减少使用此驱动程序的网络接口的单根 I/O 虚拟化(SR-IOV)虚拟功能(VF)的数量。

临时解决方案:不要在运行时减少 VF 的数量。重启机器,来将所有接口的 VF 数量重置为 0。之后,您可以设置新的 VF 数量,因为增加数量不会导致内核 panic。

Jira:RHEL-68401[1]

10.6. 内核

crashkernel 引导参数没有在 rhel-guest-image中加载

目前,由 osbuild 构建的 RHEL 云镜像丢失了 crashkernel 内核参数。因此,kdump.service 无法启动。

临时解决方案:手动运行 kdumpctl 来设置 crashkernel 内核参数,并重启系统。kdump.service 将成功启动。

Jira:RHEL-63071[1]

kdump 服务在引导过程中失败

registry.redhat.io/rhel9/rhel-bootc 容器镜像安装到物理系统后,kdump.service 失败。

临时解决方案:确保禁用 PrivateTmp 选项:

# cat /etc/systemd/system/kdump.service.d/override.conf
[Service]
PrivateTmp=no

然后重建并重启 kdump 服务:

# touch /etc/kdump.conf
# systemctl restart kdump

Jira:RHEL-50736

卸载 kernel-uki-virt 可能会错误地删除传统内核

当在当前运行的传统内核的系统上尝试卸载 kernel-uki-virt 软件包时,传统内核也可以被错误卸载。即使没有显式软件包依赖项,也会发生这种情况。

要防止意外删除传统内核,请手动删除 kernel-uki-virt 软件包的内容。不要将 dnfyumrpm 命令用于此任务。

Jira:RHELDOCS-21385[1]

10.7. 文件系统和存储

反向映射 B+Tree (rmapbt)性能影响

默认情况下,XFS 文件系统启用 rmapbt 功能,其在较小块大小写繁重的工作负载中可能会导致性能下降。仔细评估对性能敏感的应用程序,特别是这些严重依赖写较小数据块的应用程序。

临时解决方案:要在文件系统创建过程中禁用 rmapbt 功能,请使用 -m rmapbt=0 选项。这将恢复默认行为。

Jira:RHEL-33653[1]

重启后不一致的 NVMe 设备名称

在 RHEL 10 中引入了一个启用异步 NVMe 命名空间扫描的新内核功能,来加快 NVMe 磁盘检测。由于异步扫描,/dev/nvmeXnY 设备文件在每次重启后可能会指向不同的命名空间。这可能导致不一致的设备名称。目前,对这个问题还没有已知的临时解决方案。

Jira:RHEL-85845[1]

mpi3mr 驱动程序不支持正确关闭 CPU

因为 mpi3mr 驱动程序不支持 CPU 正确关闭,所以您可能会遇到内核日志中超时警告、存储磁盘通信的问题,甚至系统挂起。当前没有解决此问题的方法。要避免它,请不要使用 CPU 精简。

Jira:RHEL-65655[1]

10.8. 高可用性和集群

ACL 角色不应引用具有两个规则的位置约束

在 Red Hat Enterprise Linux 10 中,不支持位置约束中有多个顶级规则。当从 RHEL 9 升级到 RHEL 10 时,请验证您配置的任何 ACL 角色没有引用具有两个规则的位置约束,并且仍然有效。

Jira:RHEL-62722

10.9. 编译器和开发工具

TBB 的新版本不兼容

RHEL 10 包括线程构建块(TBB)库版本 2021.11.0,它与之前分发的 RHEL 版本不兼容。您必须重建使用 TBB 的应用程序,以使它们在 RHEL 10 上运行。

Jira:RHEL-33633

10.10. 身份管理

FIPS 模式下的 IdM 不支持使用 NTLMSSP 协议来建立双向跨林信任

在活动目录(AD)和启用了 FIPS 模式的身份管理(IdM)之间建立双向跨林信任会失败,因为新技术局域网管理器安全支持提供程序 (NTLMSSP)身份验证不符合 FIPS。FIPS 模式下的 IdM 不接受在尝试验证时 AD 域控制器所使用的 RC4 NTLM 哈希。

Jira:RHEL-12154[1]

由于 EMS 强制,在 FIPS 模式下安装带有 RHEL 10 IdM 服务器的 RHEL 7 IdM 客户端会失败

TLS Extended Master Secret (EMS)扩展(RFC 7627)现在对启用了 FIPS 的 RHEL 10 系统上的 TLS 1.2 连接是强制的。这符合 FIPS-140-3 要求。但是,RHEL 7.9 及较低版本中提供的 openssl 版本不支持 EMS。因此,安装在 RHEL 10 上运行的启用了 FIPS 的 IdM 服务器的 RHEL 7 身份管理(IdM)客户端会失败。

临时解决方案:在其上安装 IdM 客户端之前,将主机升级到 RHEL 8 或更高版本。

Jira:RHELDOCS-19015[1]

DNSSEC 在 RHEL IdM 中无法正常工作

DNS 安全扩展(DNSSEC)在 RHEL 10.0 中的身份管理(IdM)中无法正常工作,因为使用 pkcs11-provider OpenSSL 提供者替换 openssl-pkcs11 OpenSSL 引擎时出现了多个未解决的问题。

OpenSSL 引入的更改会影响 RHEL IdM 中集成的 DNS 功能。具体来说,更改会影响 IdM 中的多个组件,包括 ipabindbind-dyndb-ldapsofthsmpython-cryptography,以及这些组件如何与安全模块进行交互。

Jira:RHEL-30556

通过 SSSD 运行的 adcli 自动续订主机 keytab 失败

在直接 SSSD-AD 集成中,SSSD 每天检查机器帐户密码是否超过配置的天数,如果需要,尝试更新它。配置的期限由 ad_maximum_machine_account_password_age 值设置,默认为 30 天。0 值禁用续订尝试。

但是,目前存在问题,机器帐户密码的自动续订失败。如果密码过期,这可能会导致主机丢失对 AD 域的访问。

临时解决方案:手动或者通过其他方法更新密码。不要依赖 SSSD 自动续订。

Jira:RHELDOCS-19172[1]

dsctl healthcheck 可以报告错误的数据库类型

如果您使用 Lightning Memory-Mapped Database Manager (LMDB)数据库类型创建了一个实例,运行 dsctl healthcheck 命令可能会导致以下错误消息之一,因为目录服务器会检查一个错误的配置参数:

  • DSBLE0005.后端配置属性不匹配。
  • DSBLE0006.BDB 仍被用作后端。

临时解决方案:在运行 dsctl healthcheck 之前,将 NSSLAPD_DB_LIB 环境变量设为 mdb

Jira:RHELDOCS-19014[1]

从 BDB 迁移到 LMDB 的过程中显示一条错误消息

当您运行 dsctl dblib bdb2mdb 命令从 Berkeley Database (BDB)迁移到 Lightning Memory-Mapped Database Manager (LMDB),且没有启用复制时,输出中会显示以下错误消息:

Error: 97 - 1 - 53 - Server is unwilling to perform - [] - Unauthenticated binds are not allowed

请注意,您可以忽略错误消息。发生错误的原因是目录服务器尝试查找 replication_changelog.db 文件,该文件在禁用复制时不是必需的。此错误不会阻止从 BDB 迁移到 LMDB。

当前没有解决此问题的方法。

Jira:RHELDOCS-19016[1]

ldapmodify 不会从 cn=config 中的任何属性中删除单个特定值

目前,当您尝试从 cn=config 中的任何属性中删除值时,该值将保留在属性中,服务器可能需要重启来完全删除它。

临时解决方案:通过执行一个不指定任何值的修改操作来删除整个属性,包括其所有值。然后重新添加您需要的值。另外,使用以下 dsconf 命令删除特定的值,而无需服务器重启:

# dsconf <instance_name> config delete <attribute_name>=<undesired_value>

Jira:RHEL-25071

10.11. SSSD

如果组大小超过 1500 个成员,则 SSSD 会检索不完整的成员列表

在 SSSD 与活动目录集成的过程中,当组大小超过 1500 个成员时,SSSD 会检索不完整的组成员列表。出现这个问题是因为活动目录的 MaxValRange 策略(其限制单个查询中可检索的成员的数量)默认被设置为 1500。

临时解决方案:更改活动目录中的 MaxValRange 设置,以容纳更大的组大小。

Jira:RHELDOCS-19603[1]

10.12. 桌面

在使用 Mutter 时,标准鼠标光标是虚拟机中的偏移量

当您在 Mutter 合成窗口管理器中的虚拟机(VM)配置中使用标准鼠标时,您可能会注意到物理鼠标光标和虚拟环境中实际指针之间的偏移。实际的指针甚至可能在虚拟环境中不可见。

临时解决方案:如果您的场景需要精确输入,请在虚拟机配置中使用平板电脑作为输入设备。

Jira:RHEL-69291

10.13. 图形基础结构

在使用 Mutter 时,标准鼠标光标是虚拟机中的偏移量

当您在 Mutter 合成窗口管理器中的虚拟机(VM)配置中使用标准鼠标时,您可能会注意到物理鼠标光标和虚拟环境中实际指针之间的偏移。实际的指针甚至可能在虚拟环境中不可见。

临时解决方案:如果您的场景需要精确输入,请在虚拟机配置中使用平板电脑作为输入设备。

Jira:RHEL-45898

10.14. Web 控制台

RHEL web 控制台中的 VNC 控制台无法在 ARM64 上正常工作

目前,当您在 ARM64 架构上的 RHEL web 控制台中导入虚拟机(VM),然后您尝试在 VNC 控制台中与其进行交互时,控制台不会对您的输入做出反应。

另外,当您在 ARM64 架构上的 web 控制台中创建虚拟机时,VNC 控制台不会显示您输入的最后几行。

Jira:RHEL-31993[1]

10.15. Red Hat Enterprise Linux 系统角色

ansible-core 不会将 sshpass 作为依赖项安装

ansible-core 软件包不会将 sshpass 软件包作为依赖项安装。因此,您无法使用 Ansible 通过 SSH 密码管理系统。

临时解决方案:再控制节点上,在安装 ansible-core 后手动安装 sshpass。因此,您可以在上述场景中使用 Ansible。

Jira:RHEL-86829[1]

10.16. 虚拟化

安装 VirtIO-Win 捆绑包不能被取消

目前,如果您在 Windows 客户机操作系统中从 VirtIO-Win 安装程序捆绑包开始安装 virtio-win 驱动程序,点安装过程中的 Cancel 按钮无法正确停止它。安装程序向导界面显示一个 "Setup Failed" 屏幕,但驱动程序安装了,且客户机的 IP 地址被重置了。

Jira:RHEL-53962,JIRA:RHEL-53965

安全执行虚拟机无法使用文件支持的内存支持引导

如果您配置一个带有 Secure Execution 的虚拟机,以使用文件支持的内存支持,则虚拟机当前无法引导,并显示 Protected boot has failed 错误。

临时解决方案:编辑 /etc/libvirt/qemu.conf 文件,并将 memory_backing_dir 行设置为以下值:

memory_backing_dir = "/dev/shm/"

之后,受影响的虚拟机可以按预期引导。

Jira:RHEL-58218

没有配置 discard_granularity 时,发送丢弃 I/O 请求的虚拟机可能会暂停

主机内核使未对齐的丢弃 I/O 请求失败,QEMU 使用 werror= policy 参数响应此类故障。当 werror 被设置为 stop:werror=stop 时,失败的丢弃请求会导致虚拟机(VM)暂停。这通常不可取,因为无法纠正这种情况并再次恢复虚拟机。

临时解决方案:确保在 virtio-blkvirtio-scsi 磁盘上设置了 discard_granularity 参数,并匹配主机的 /sys/block/<blkdev>/queue/discard_granularity 值。这使得虚拟机意识到对齐约束,并确保丢弃的请求被正确地对齐,因此它们不会失败。

Jira:RHEL-87642[1]

--migrate-disks-detect-zeroes 选项可能无法用于虚拟机迁移

目前,当在 RHEL 10 上迁移虚拟机(VM)时,--migrate-disks-detect-zeroes 选项可能无法正常工作,且迁移可能会在指定磁盘上没有零块检测的情况下继续进行。这个问题是由 QEMU 中的一个 bug 引起的,其中镜像作业一直依赖于打孔,从而导致一个稀疏目标文件。

Jira:RHEL-88435

具有大量可引导数据磁盘的虚拟机可能无法启动

如果您试图启动具有大量可引导数据磁盘的虚拟机(VM),则虚拟机可能无法引导,并显示以下错误:Something has gone seriously wrong: import_mok_state() failed: Volume Full

临时解决方案:减少可引导数据磁盘的数量,并使用一个系统磁盘。要确保系统磁盘是引导顺序中的第一个,请将 boot order=1 添加到 XML 配置中系统磁盘的设备定义中。例如:

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/path/to/disk.qcow2'/>
  <target dev='vda' bus='virtio'/>
  <boot order='1'/>
</disk>

仅为系统磁盘设置引导顺序。

Jira:RHEL-68418

virtiofs 共享目录中打开的文件太多可能会使 vrtiofsd 进程崩溃

当从虚拟机(VM)访问具有大量打开文件的 virtiofs 共享目录时,操作可能会失败,并显示以下错误: Too many open filesvirtiofsd 进程可能会崩溃。

临时解决方案:尝试以下任一步骤:

  • 以 root 用户身份运行 virtiofsd ,并使用 -inode-file-handles=mandatory 命令行选项。
  • 使用 --cache=never 命令行选项。
  • 使用 --rlimit-nofile 命令行选项增加 virtiofsd 允许使用的文件描述符数。

Jira:RHEL-87161[1]

具有大内存的虚拟机无法在具有 AMD Genoa CPU 的 SEV-SNP 主机上引导

目前,虚拟机(VM)无法在使用第 4 代 AMD EPYC 处理器(也称为 Genoa),并启用了 Secure Nested Paging (SEV-SNP)功能的 AMD 安全加密虚拟化的主机上引导。虚拟机没有启动,而是发生了内核 panic。

Jira:RHEL-32892[1]

virtio balloon 驱动程序有时在 Windows 10 和 Windows 11 虚拟机上无法工作

在某些情况下,virtio-balloon 驱动程序在使用 Windows 10 或 Windows 11 客户机操作系统的虚拟机(VM)上无法正常工作。因此,此类虚拟机可能无法有效地使用其分配的内存。

Jira:RHEL-12118

具有内存气球设备集的 Windows 11 虚拟机在重启过程中可能会意外关闭

目前,重新引导使用 Windows 11 客户机操作系统和内存 balloon 设备的虚拟机(VM)在某些情况下会失败,并显示 DRIVER POWER STAT FAILURE 蓝屏错误。

Jira:RHEL-935[1]

带有 VBS 和 IOMMU 设备的 Windows 虚拟机无法引导

当您通过 qemu-kvm 工具引导一个启用了基于虚拟化安全性(VBS)的 Windows 虚拟机和一个输入输出内存管理单元(IOMMU)设备时,引导序列只显示引导屏幕,从而导致引导过程不完整。

临时解决方案:确保虚拟机域 XML 被配置为如下:

<features>
  <ioapic driver='qemu'/>
</features>
<devices>
<iommu model='intel'>
   <driver intremap='on' eim='off' aw_bits='48'/>
   <alias name='iommu0'/>
</iommu>
<memballoon model='virtio'>
   <alias name='balloon0'/>
   <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
   <driver iommu='on' ats='on'/>
</memballoon>
</devices>

否则,Windows 虚拟机无法引导。

Jira:RHEL-45585[1]

在 hypervisor 启动类型设为 auto 的 Sapphire Rapids CPU 上运行的 Windows 虚拟机在重启后无法引导

如果您在运行在 Sapphire Rapids CPU 上的 Windows 虚拟机(VM)中将 hypervisor 启动类型设置为 auto,则虚拟机在重启后可能无法引导。例如,您可以使用 bcdedit /set hypervisorlaunchtype Auto 命令将 hypervisor 启动类型设置为 auto

临时解决方案:不要在 Windows 虚拟机中将 hypervisor 启动类型设置为 auto

Jira:RHEL-67699

对具有 VBS 的 Windows 客户机热插拔 vCPU 和内存无法正常工作

目前,Windows Virtualization-based Security(VBS)与热插 CPU 和内存资源不兼容。因此,尝试将内存或 vCPU 附加到启用了 VBS 的运行的 Windows 虚拟机(VM)中,仅在客户机系统重启后将资源添加到虚拟机。 

Jira:RHEL-66229, Jira:RHELDOCS-19066

在 IBM Z 上迁移虚拟机有时会删除网络配置

目前,在 IBM Z 主机间迁移虚拟机(VM)后,虚拟机的网络配置在某些情况下是重置,这会导致网络在虚拟机上不可用。要临时解决这个问题,请在启动虚拟机迁移前禁用 vhost-net 服务。

Jira:RHEL-42486[1]

在 Nutanix AHV 中使用 LVM 克隆或恢复 RHEL 10 虚拟机会导致非 root 分区消失

当在 Nutanix AHV hypervisor 上托管的虚拟机(VM)上运行 RHEL 10 客户机操作系统时,从快照中恢复虚拟机或克隆虚拟机目前会导致虚拟机中的非 root 分区在使用逻辑卷管理(LVM)时消失。因此,会出现以下问题:

  • 从快照恢复虚拟机后,虚拟机无法引导,而是进入紧急模式。
  • 通过克隆创建的虚拟机无法引导,而是进入紧急模式。

要临时解决这个问题,在虚拟机的紧急模式下执行以下操作:

  1. 删除 LVM 系统设备文件:

    # rm /etc/lvm/devices/system.devices
  2. 重新创建 LVM 设备设置:

    # vgimportdevices -a
  3. 重启虚拟机

这样,克隆或恢复的虚拟机可以正确引导。

另外,为了避免这个问题发生,请在克隆虚拟机或创建虚拟机快照前进行以下操作:

  1. 取消 /etc/lvm/lvm.conf 文件中 use_devicesfile = 0 行的注释。
  2. 重新生成 initramfs。要做到这一点,使用虚拟机中的以下步骤,并将 &lt ;kernelVersion > 替换为您要重建的内核的完整版本。

    1. 备份当前的 initramfs 配置:

      # cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bak
    2. 构建 initramfs

      # dracut -f /boot/initramfs-<kernelVersion>.img <kernelVersion>
  3. 重启虚拟机以验证引导是否成功。

RHEL-129834[1]

10.17. 云环境中的 RHEL

RDMA 设备目前无法在 vSphere 上工作

在 VMware vSphere 平台上使用 RHEL 10 实例时,vmw_pvrdma 模块目前无法正确安装。因此,VMware 半虚拟远程直接访问(PVRDMA)设备无法在受影响的实例上工作。

Jira:RHEL-41133[1]

当从 RHEL 9.6 升级到 RHEL 10.0 时,对于 cloud-init 网络配置,leapp 升级失败

如果您使用 cloud-init 默认配置部署 RHEL 9.6,并使用 sysconfig 作为默认网络配置目录,则 sysconfig 配置文件不支持 RHEL 10.0 的 ifcfg 传统格式。因此,当从 RHEL 9.6 升级到 RHEL 10.0 时,对于旧的网络配置文件(如 ifcfg- <enp1s0>), leapp 升级失败。

临时解决方案:将 sysconfig 配置文件转换为 NetworkManager 原生 keyfile 格式:

  1. 修改连接:

    # nmcli connection modify "System <enp1s0>" connection.id "cloud-init <enp1s0>"
  2. 迁移连接:

    # nmcli connection migrate /etc/sysconfig/network-scripts/ifcfg-<enp1s0>
  3. 移动连接配置文件:

    # sudo mv /etc/NetworkManager/system-connections/"cloud-init <enp1s0>.nmconnection" /etc/NetworkManager/system-connections/cloud-init-<enp1s0>.nmconnection
  4. 重新加载网络连接设置:

    # nmcli conn reload

因此,从 RHEL 9.6 leapp 升级到 RHEL 10.0 现在可以与更新的配置一起工作。

Jira:RHEL-82209[1]

将 VMware ESXi 上的 RHEL 9.6 客户机升级到 RHEL 10.0 导致 cloud-init 重写网络配置

在 VMware ESXi hypervisor 上将 RHEL 客户机从 RHEL 9.6 升级到 RHEL 10.0 后,cloud-init 工具目前无法检测 VMware 数据源,且无法从缓存中恢复其配置。因此,cloud-init 恢复回 None 数据源,并重写客户机的网络配置。

临时解决方案:在升级过程中重启客户机前,从 /etc/cloud/cloud.cfg 文件中删除 disable_vmware_customization 标志。因此,升级的客户机将保留其以前的网络配置。

Jira:RHEL-82210[1]

具有 KVM 虚拟化的嵌套虚拟机和 OVMF 无法在使用 AMD EPYC 处理器的 Azure 或 Hyper-V 上引导

当在使用 AMD EPYC 处理器的 Azure 云或 Hyper-V 中,在启用了 KVM 虚拟化的 RHEL 虚拟机上运行时,带有 Open Virtual Machine Firmware (OVMF)的嵌套虚拟机无法引导。虚拟机无法引导,并显示以下日志消息:

Code=qemu-kvm: ../hw/core/cpu-sysemu.c:76  Aborted (core dumped) .

临时解决方案:在不使用 AMD EPYC 处理器的情况下尝试引导。

Jira:RHEL-29919[1]

如果主机使用 AMD EPYC CPU 处理器,则 BIOS 或 UEFI 支持的 Hyper-V Windows Server 2016 虚拟机无法引导

使用启用了 Hyper-V 的设置,Hyper-V Windows Server 2016 虚拟机无法在 AMD EPYC CPU 主机上引导。

临时解决方案:检查以下日志消息:

kvm: Booting SMP Windows KVM VM with !XSAVES && XSAVEC.
If it fails to boot try disabling XSAVEC in the VM config.

尝试向 -cpu cmdline 中添加 xsavec=off 来引导 Hyper-V Windows Server 2016 虚拟机。

Jira:RHEL-38957[1]

10.18. 容器

Podman 和 bootc 没有共享同样的注册中心登录过程

在拉取镜像时,Podman 和 bootc 使用不同的注册中心登录过程。因此,如果您使用 Podman 登录到镜像,登录到 bootc 的注册中心将不适用于该镜像。当您为 RHEL 系统安装镜像模式时,使用以下命令登录到 registry.redhat.io:

# podman login registry.redhat.io <username_password>

然后,您可以使用以下命令尝试切换到 registry.redhat.io/rhel9/rhel-bootc 镜像:

# bootc switch registry.redhat.io/rhel9/rhel-bootc:9.4

您应该可以看到以下消息:

Queued for next boot: registry.redhat.io/rhel9/rhel-bootc:9.4

但是显示了一个错误:

ERROR Switching: Pulling: Creating importer: Failed to invoke skopeo proxy method OpenImage: remote error: unable to retrieve auth token: invalid username/password: unauthorized: Please login to the Red Hat Registry using your Customer Portal credentials. Further instructions can be found here: https://access.redhat.com/RegistryAuthentication

临时解决方案:按照步骤 配置容器拉取 secret,以使用带有 bootc 的经过验证的注册中心。

Jira:RHELDOCS-18471[1]

启用 composefs 后,cloud-init growpart 跳过

启用 composefs 时,如果您从通用基础镜像生成镜像,则 rootfs 不会增大文件系统,提示类似如下的错误:

2024-04-30 17:27:53,543 - cc_growpart.py[DEBUG]: '/' SKIPPED: stat of 'overlay' failed: [Errno 2] No such file or directory: 'overlay'

临时解决方案:您可以通过在容器中指定 rootfs 默认大小,而不是在实例创建时动态选择 100G 来添加自定义的 growpart,以便能够在容器中写一个分区配置。

Jira:RHEL-34859

FIPS bootc 镜像创建在启用了 FIPS 的主机上失败

由于 update-crypto-policies 软件包,使用启用了 FIPS 模式的 Podman 构建磁盘镜像失败,退出码为 3 :

# Enable the FIPS crypto policy
# crypto-policies-scripts is not installed by default in RHEL-10
RUN dnf install -y crypto-policies-scripts && update-crypto-policies --no-reload --set FIPS

临时解决方案:构建具有禁用了 FIPS 模式的 bootc 镜像。

Jira:RHELDOCS-19539

磁盘空间不足可能导致部署失败

在没有足够可用磁盘空间的软件包模式系统上部署 bootc 容器镜像可能会导致安装错误,并阻止系统引导。确保有足够的磁盘空间供镜像安装,并在部署前调整配置的逻辑卷。

Jira:RHELDOCS-19948[1]

Azure 上标记为 LVM 的 RHEL 镜像需要调整默认布局

当在 Azure 上使用 system-reinstall-bootcbootc install 时,标记为 LVM 的 RHEL 镜像需要调整默认布局。

临时解决方案:使用标记为 RAW 的 RHEL 镜像。这不需要调整默认布局。

Jira:RHELDOCS-19945[1]

10.19. Lightspeed

配置文件更改不会立即应用

etc/xdg/command-line-assistant/config.toml 配置文件中进行更改时,命令行助手守护进程需要大约 30 到 60 秒时间来识别更改,而不是立即应用更改。命令行助手也缺少 reload 功能。

临时解决方案:按照以下步骤操作:

  1. 进行需要对 config.toml 配置文件的更改。
  2. 运行以下命令:
# systemctl restart clad

Jira:RHELDOCS-19734[1]

10.20. 之前的版本中识别的已知问题

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

10.20.1. 网络

更新会话密钥失败会导致连接中断

内核传输层安全(kTLS)协议不支持更新会话密钥,这些密钥由对称密码使用。因此,用户无法更新密钥,从而导致连接中断。

临时解决方案:禁用 kTLS。因此,解决这一问题,可以成功更新会话密钥。

Jira:RHELPLAN-99859[1]

KTLS 不支持将 TLS 1.3 卸载到 NIC

内核传输层安全(kTLS)不支持将 TLS 1.3 卸载到 NIC。因此,即使 NIC 支持 TLS 卸载,软件加密也会与 TLS 1.3 一起使用。

临时解决方案:如果需要卸载,请禁用 TLS 1.3。因此,您只能卸载 TLS 1.2。当使用 TLS 1.3 时,性能较低,因为无法卸载 TLS 1.3。

Jira:RHELPLAN-96004[1]

第 11 章 修复的问题

此版本提供以下修复的问题,以及有严重影响的其他问题。

11.1. 安装程序和镜像创建

改进了在虚拟网络设备配置过程中安装程序的稳定性

在以前的版本中,当在 GUI 中的现有虚拟网络设备(如 Team 或 Bond)上创建 VLAN 网络设备时,安装程序可能会崩溃。当在配置更新新设备状态的用户界面的过程中,底层设备的状态发生变化时会出现这种情况。

有了此更新,在 GUI 中刷新联网状态的进程得到了优化,以处理虚拟设备状态中的变化。因此,安装程序不再因 GUI 中配置的虚拟网络设备的更改而崩溃。

Jira:RHEL-56141

11.2. 安全性

IPsec ondemand 连接不再无法建立

在以前的版本中,当使用 TCP 协议配置了带有 ondemand 选项的 IPsec 连接时,连接无法建立。有了此更新,新的 Libreswan 软件包确保初始 IKE 协商通过 TCP 完成。因此,Libreswan 可以成功地建立连接,即使在 IKE 协商的 TCP 模式下。

Jira:RHEL-51880[1]

NSS 现在在 FIPS 模式下强制实施 EMS

网络安全服务(NSS)库现在包含 TLS-REQUIRE-EMS 关键字,来对所有 TLS 1.2 连接要求使用 Extended Master Secret(EMS)扩展(RFC 7627),如 FIPS 140-3 标准所强制的那样。当系统范围的加密策略被设置为 FIPS 时,NSS 使用新的关键字。

如果您的场景需要与不支持 EMS 或 TLS 1.3 的旧系统进行互操作,您可以应用 NO-ENFORCE-EMS 系统范围加密子策略。但是,这个更改违反了 FIPS-140-3 要求。

Jira:RHEL-36299

shlibsign 现在可以在 FIPS 模式下正常工作

在此更新之前,shlibsign 程序在 FIPS 模式下无法正常工作。因此,当您在 FIPS 模式下重新构建 NSS 库时,您必须离开 FIPS 模式才能对库进行签名。程序已被修复,您现在可以在 FIPS 模式下使用 shlibsign

Jira:RHEL-61291[1]

OpenSSL 密码套件不再启用带有禁用的哈希或 MAC 的密码套件

在以前的版本中,应用自定义加密策略可能会启用某些 TLS 1.3 密码套件,即使其哈希或 MAC 被禁用了,因为 OpenSSL TLS 1.3 特定的 Ciphersuites 选项值仅被加密策略的 ciphers 选项控制。有了此更新,在决定是否启用密码套件时,crypto-policies 会考虑更多的算法。因此,具有自定义加密策略的系统上的 OpenSSL 可能会拒绝与一些之前启用的 TLS 1.3 密码套件进行协商,以更好地符合系统配置。

Jira:RHEL-76526

update-ca-trust extract 不再无法提取具有长名称的证书

从信任存储中提取证书时,信任 工具内部从证书的对象标签生成文件名。对于足够长的标签,生成的路径可能之前已超过系统的最大文件名长度。因此,trust 工具无法创建具有超过系统的最大文件名长度的文件。有了此更新,派生的名称总是被截断为 255 个字符以内。因此,当证书的对象标签太长时,文件创建不会失败。

Jira:RHEL-64915[1]

放弃了对 libcap 的二进制测试

annocheck 工具在 libcap 库函数中发现了二进制软件包,该软件包是在没有 RHEL 10 架构所需标记的情况下构建的。我们检查了潜在问题的标志,但没有发现任何问题。仔细调查后,我们放弃了 libcap 的结果。因此,对 libcap 的所有测试都通过了。

Jira:RHEL-33498[1]

11.3. Shell 和命令行工具

ReaR 现在按预期解释 URL 中括起 IPv6 地址的方括号

在以前的版本中,OUTPUT_URLBACKUP_URL 中的方括号没有被正确解释。指定 IPv6 地址而不是主机名需要将地址放在方括号中,例如: [::1] 用于 localhost。由于不能正确解释括号,因此无法在 sshfs://nfs:// URL 中使用 IPv6 地址。

因此,如果用户在 BACKUP_URLOUTPUT_URL 中使用 sshfs://nfs:// 方案,且 IPv6 地址括在方括号中,则 ReaR 会提前中止,并显示一条错误,例如:

ERROR: Invalid scheme '' in BACKUP_URL

有了此更新,ReaR 现在已被修复,在解析 sshfs://nfs:// URL 时,不会将方括号解释为 shell 元字符。现在,您可以在使用 sshfs://nfs:// 方案的 BACKUP_URLOUTPUT_URL 中,使用括在括号中的 IPv6 地址 。例如:

OUTPUT_URL=nfs://[2001:db8:ca2:6::101]/root/REAR

在实现此修复前,可以使用引号和反斜杠字符来临时解决这个 bug ,例如:

OUTPUT_URL="nfs://\[2001:db8:ca2:6::101\]/root/REAR"

注意:如果您一直在使用临时解决方案,请在应用更新后删除反斜杠字符。

Jira:RHEL-46613[1]

11.4. 基础架构服务

cups-filters 项目现在被分成几个项目

cups-filters 项目被分成几个项目。下面提到了几个值得注意的软件包:

  • libcupsfilters :cups-filters-libs RPM 的替代品
  • 用于改进 PPD 支持的 libppd PPD 库作为一个新组件被添加。
  • cups-browsed :之前在 cups-filters 中提供的守护进程。
  • cups-filters :各种打印所需的过滤器。
  • cups-filters-driverless: 提供少驱动程序的工具,从 cups-filters 中分离出来,以防止客户有额外的依赖项,这些客户不想使用少驱动程序的工具。

已禁用了弱依赖项的客户将不会收到 cups-browsedcups-filters-driverless 软件包,因为它们在 RHEL 10 中是 CUPS 的弱依赖项。cups-browsed 软件包是 Server comps 数据的一部分,默认已在 Server 变体中安装。

Jira:RHELDOCS-17679[1]

11.5. 网络

NetworkManager 可以在 VPN 连接配置文件中缓解 CVE-2024-3661 (TunnelVision)的影响

VPN 连接依赖路由,来通过隧道重定向流量。但是,如果 DHCP 服务器使用无类别静态路由选项(121)将路由添加到客户端的路由表中,并且 DHCP 服务器传播的路由与 VPN 重叠,则可以通过物理接口而不是 VPN 传输流量。CVE-2024-3661 描述了此漏洞,它也被称为 TunnelVision。因此,攻击者可以访问用户期望受到 VPN 保护的流量。

在 RHEL 上,这个问题会影响 LibreSwan IPSec 和 WireGuard VPN 连接。只有带有 ipsec-interfacevt-interface 属性未在其中定义的配置文件的 LibreSwan IPSec 连接,或设置为 no 的连接不受影响。

CVE-2024-3661 文档描述了通过配置 VPN 连接配置文件将 VPN 路由放在具有高优先级的专用路由表中,来缓解 TunnelVision 影响的步骤。步骤可用于 LibreSwan IPSec 和 WireGuard 连接。

Jira:RHEL-64719[1]

RHEL 10 提供 libnftnl 版本 1.2.8

libnftnl 库版本 1.2.8 提供了几个 bug 修复。主要变更包括:

  • 修复了内核中 dynset Netlink 属性的不正确验证。
  • 打印规则时不再附加换行符。

Jira:RHEL-66276

11.6. 引导加载程序

GRUB2 net_del_dns 命令正确删除了 DNS 服务器

在以前的版本中,如果您尝试使用 net_del_dns 命令删除 DNS 服务器,它会因为不正确的实现而错误地将 DNS 服务器添加回来,并返回一个错误。有了此修复,add 命令在 net_del_dns 实现中被 remove 命令替代。因此,您可以使用 net_del_dns 命令删除 DNS 服务器。

Jira:RHEL-4378

11.7. 文件系统和存储

当使用带有 LUKS 的 LVM 分区时,Kickstart 文件现在可以正确地为安装设置所需的设备大小

在此次更新之前,当您在 Kickstart 文件中为新设备指定 the- size=1 --grow --encrypted 选项时,安装程序无法正确将加密设备正确扩展为有效大小。因此,自动安装停止,并显示一条错误消息,例如:

"Kickstart insufficient" "('device cannot be smaller than 16 MiB', 'luks5'

然后,您必须在不使用 Kickstart 文件的情况下进行手动安装。

有了此更新,安装可以使用 Kickstart 文件中通过 --size=1 --grow --encrypted 指定的设备成功启动。因此,安装继续进行,而没有错误。

Jira:RHEL-45180

multipathd 不再因为 ontap 优先级排序器遇到错误而崩溃

在此更新之前,当 multipathd 被配置为在不支持的路径上使用 ontap 优先级排序器时,multipathd 会崩溃,因为优先级排序器只适用于 NetApp 存储阵列。发生此故障是因为优先级排序器的错误日志码中的一个 bug,导致错误消息缓冲区溢出。有了此更新,错误日志码已被修复,multipathd 不再会因为 ontap 优先级排序器遇到错误而崩溃。

Jira:RHEL-49747[1]

enable_foreign 被设置为监控原生多路径 NVMe 设备时,原生 NVMe 多路径不再导致内存泄漏

在此更新之前,如果 enable_foreign 配置参数被设置为监控原生多路径 NVMe 设备,则启用原生 NVMe 多路径会导致内存泄漏。有了此更新,内存泄漏已在 multipathd 监控代码中修复了。因此,multipathd 现在可以监控原生多路径 NVMe 设备,而无需增加内存使用率。

Jira:RHEL-73410[1]

RHEL 安装程序现在在 aarch64中发现并使用 iSCSI 设备作为引导设备

在以前的版本中,在 aarch64 上运行的 RHEL 安装程序中没有 iscsi_ibft 内核模块无法自动发现固件中定义的 iSCSI 设备。因此,在手动添加 GUI 时,这些设备不会自动看到,也可以作为安装程序中的引导设备进行选择。

这个问题已通过在较新的 RHEL aarch64 构建中包含 iscsi_ibft 内核模块得到了解决。因此,iSCSI 设备现在被自动检测到,并在安装过程中作为引导选项提供。

Jira:RHEL-75491[1]

fstrim 默认在 Anaconda 完成的基于 ostree 的新安装中的 LUKS2 root 上启用

在以前的版本中,使用 ostreesetupostreecontainer Kickstart 命令,在启用了 LUKS2 加密的 / (root)挂载点上安装基于 ostree 的系统(如镜像模式)会导致系统未启用 fstrim 。这可能导致系统无响应或损坏的文件选择器对话框等问题。有了此修复,fstrim (discards)默认在新安装的系统上的 LUKS2 元数据中启用。

要在现有安装中修复这个问题,请运行以下命令:…cryptsetup --allow-discards --persistent refresh <luks device> ….<luks device> 是 root LUKS2 设备的路径。

Jira:RHEL-82884

11.8. 高可用性和集群

SBD 选项的 pcs 验证

在以前的版本中,当使用 pcs stonith sbd enable 命令启用 SBD ,并为 SBD 选项指定无效的值时,它导致 SBD 错误配置。pcs 命令行界面已更新,以验证 SBD 选项的值。当值无效时,pcs 报告错误,且不会创建或更新 SBD 配置。

Jira:RHEL-38484[1]

从 Booth 仲裁节点删除 Booth 配置的能力

在以前的版本中,运行 pcs booth destroy 命令从 Booth 仲裁节点删除 Booth 配置会产生一个错误。发生这种情况是是因为命令没有从不属于集群的节点删除 Booth 配置。现在,可以从 Booth 仲裁删除 Booth 配置。

Jira:RHEL-38486[1]

pcsd 进程现在始终正确且及时地停止

在以前的版本中,pcsd 进程的创建方法有时会在进程终止过程中导致死锁。然后,进程只在 systemd 超时后被终止。此修复更改了进程创建方法,在进程停止时不再有死锁。因此,pcsd 在短时间内始终正确停止。

Jira:RHEL-38478[1]

pcs 不再验证具有大于 9 的隔离级别的隔离拓扑

Pacemaker 集群资源管理器忽略大于 9 的隔离拓扑级别。配置大于 9 的级别可能会导致隔离失败。有了此更新,您可以在 pcs 命令行界面中使用值 1 到 9 配置隔离级别,隔离拓扑可以正常工作。

Jira:RHEL-38479[1]

指定 score 值的语法现在在所有 pcs constraint 命令中保持一致

在以前的版本中,一些创建约束的命令需要指定一个分数值作为 score=value,而其他命令预期的值只是没有 score=value 。有了此更新,所有约束命令都接受一个格式为 score=value 的分数值,但 pcs constraint location preferspcs constraint location 除外,它们期望 node=score,其中 score 是分数值。

Jira:RHEL-34792[1]

CIB 管理器不再根据来自异步客户端的每个请求无限增加大小

在以前的版本中,当 CIB 管理器收到来自异步客户端的请求时,它会泄漏少量内存。这导致 CIB 管理器进程的大小逐渐增长。有了此修复,为异步客户端释放了相关内存,CIB 管理器进程的大小不会无限增加。

Jira:RHEL-40117

具有过期规则的资源约束不再显示

在此更新之前,pcs constraint location config resources 命令在输出中显示具有过期规则的资源约束。有了此更新,如果没有指定 --all 选项,命令不再显示具有过期规则的约束。

Jira:RHEL-33386

灾难恢复站点的集群状态现在可以正确地显示

在此更新之前,当您配置一个灾难恢复站点,并运行 pcs dr status 命令来显示本地和远程集群站点的状态时,命令会显示一条错误,而不是集群状态。在这个版本中,在运行这个命令时,本地和远程站点的集群状态会正确显示。

Jira:RHEL-61747

只与一个实例一起运行的克隆资源的状态现在可以正确显示

在此更新之前,当您查询只与一个正在运行的实例克隆的集群资源的实例状态时,pcs status query 命令会显示一条错误消息。有了此更新,命令可以正确地报告资源状态。

Jira:RHEL-55723

11.9. 编译器和开发工具

如果没有安装 OpenSSL,Go 应用程序不再 panic

在以前的版本中,如果没有安装 OpenSSL 库,则使用 Go 创建的应用程序会 panic,即使联邦信息处理标准(FIPS)模式被禁用了。此更新解决了这个问题。因此,如果没有安装 OpenSSL,您现在可以运行使用 Go 创建的应用程序。

Jira:RHEL-52486[1]

Go 现在使用 ld.bfd 作为 64 位 ARM 平台上的默认链接器

在以前的 RHEL 版本中,Go 仅在 64 位 ARM 平台上使用 ld.gold 链接器,在其他平台上使用 ld.bfd 。由于 ld.goldbinutils 项目中已弃用,因此 Go 现在在 64 位 ARM 平台上也使用 ld.bfd

Jira:RHEL-49036

11.10. 身份管理

ipa idrange-add 命令现在警告目录服务器必须在所有 IdM 服务器上重启

在以前的版本中,ipa idrange-add 命令不会警告管理员,他们必须在创建新范围后在所有 IdM 服务器上重启目录服务器(DS)服务。因此,管理员有时使用属于新范围的 UID 或 GID 创建了一个新用户或组,无需重启 DS 服务。这个添加导致新用户或组没有被分配 SID。有了此更新,需要在所有 IdM 服务器上重启 DS 的警告被添加到命令输出中。

Jira:RHELDOCS-18201[1]

ipa-replica-manage 命令不再在强制复制过程中重置 nsslapd-ignore-time-skew 设置

在以前的版本中,ipa-replica-manage force-sync 命令将 nsslapd-ignore-time-skew 设置重置为 off,而不考虑配置的值。有了此更新,nsslapd-ignore-time-skew 设置在强制复制过程中不再被覆盖。

Jira:RHEL-4879

Certmonger 现在可以正确地更新隐藏的副本上的 KDC 证书

在以前的版本中,当证书即将过期时,certmonger 无法更新隐藏的副本上的 KDC 证书。这是因为续订过程仅将非隐藏的副本视为活动的 KDC 而导致的。有了此更新,隐藏的副本被视为活跃的 KDC,certmonger 可以在这些服务器上成功更新 KDC 证书。

Jira:RHEL-46607[1]

不再可以使用过期的令牌绕过双因素身份验证

在以前的版本中,可以通过创建一个具有特定有效期结束时间的 OTP 令牌来绕过双因素身份验证。

如果强制实施双因素身份验证,则没有 OTP 令牌的用户可以使用其密码登录 一次,并配置 OTP 令牌。因此,他们需要使用其密码和 OTP 令牌进行身份验证。但是,如果用户创建了一个具有过期的有效期结束日期的 OTP 令牌,则 IdM 会错误地回退到仅密码的身份验证,从而有效地绕过双因素身份验证。这是因为 IdM 没有区分不存在的和过期的 OTP 令牌。

有了此更新,IdM 可以正确地区分这些场景。因此,双因素身份验证现在可以被正确地强制实施,防止了此绕过。

Jira:RHEL-63325[1]

帐户策略插件现在在复制拓扑中使用适当的标记进行更新

在此更新之前,帐户策略插件没有对更新使用正确的标记。因此,在复制拓扑中,更新插件更新了登录历史记录,但此更新在消费者服务器上失败,并记录了以下错误消息:

{{ERR - acct_update_login_history - Modify error 10 on entry
}}

有了此更新,内部更新成功,且没有记录任何错误。

Jira:RHEL-74164

TLS 1.3 现在可以用来连接到运行在 FIPS 模式下的 LDAP 服务器

在此更新之前,当在 FIPS 模式下连接到 LDAP 服务器时,当您尝试明确设置 TLS 1.3 时,使用的 TLS 版本仍保持在 1.2 。因此,尝试使用 TLS 1.3 连接到 LDAP 服务器失败。有了此更新,FIPS 模式下 TLS 版本的上限改为 1.3,尝试使用 TLS 1.3 连接到 LDAP 服务器不再失败。

Jira:RHEL-79498[1]

具有分页结果搜索的竞争条件不再使用 T3 错误代码关闭连接

在此更新之前,在检查连接的时间事件的分页结果数据时,目录服务器没有使用合适的线程保护。因此,分页结果超时值意外更改了,并在新操作到来时触发了一个假超时。这导致一个超时错误,并使用以下 T3 错误代码关闭了连接:

服务器关闭了连接,因为已超过为分页结果搜索指定的时间限制。

有了此更新,会使用正确的线程保护,分页结果搜索不再使用 T3 错误代码关闭连接。

Jira:RHEL-76020[1]

ldapsearch 现在按预期遵重 NETWORK_TIMEOUT 设置

在此更新之前,ldapsearch 命令会在服务器无法访问时忽略超时时间,因此搜索会无限期挂起,而不是超时。有了此更新,通过调整连接重试和套接字选项,修复了 TLS 处理中的逻辑错误。

因此,ldapsearch 命令不再忽略 NETWORK_TIMEOUT 设置,并在达到超时时返回以下错误:

  `ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)`.

Jira:RHEL-68773

当尝试释放资源时,OpenLDAP 库不再失败

在此更新之前,当应用程序已经通过直接调用 OPENSSL_cleanup() 函数,或通过 atexit() 函数清理了这些资源时,OpenLDAP 库尝试在其析构函数中使用 SSL_CTX_free() 函数来释放内存。因此,当无效的 SSL_CTX_free() 调用尝试释放已经清理的 SSL 上下文资源时,用户遇到了失败或未定义的行为。

有了此更新,已添加了一个安全清理函数,来在 OpenLDAP 的析构函数中跳过 SSL 上下文清理。因此,如果未明确释放,SSL 上下文现在会泄漏,从而确保稳定的应用程序关闭。

Jira:RHEL-68424[1]

当条目 RDN 有与后缀 DN 相同的值时,重新索引不再失败

在此更新之前,如果条目的相对可分辨名称(RDN)有与目录中的后缀可分辨名称(DN)相同的值,则 entryrdn 索引会被破坏。因此,目录服务器可能执行较慢的搜索请求,获得无效的结果,并将警报消息写到错误日志中。

有了此更新,重新索引可以按预期工作。

Jira:RHEL-69819[1]

11.11. SSSD

sssd-polkit-rules 软件包内容已移到 sssd-common

在以前的版本中,如果您需要在没有以 root 用户身份运行系统安全服务守护进程(SSSD)时启用智能卡支持,则您必须安装 sssd-polkit-rules 软件包。软件包提供了 polkit 与 SSSD 的集成。要解决这个问题,sssd-common 软件包现在包含 sssd-polkit-rules 软件包的内容,不再需要安装单独的软件包。

Jira:RHEL-50243

11.12. Red Hat Enterprise Linux 系统角色

NetworkManager 服务和 NetworkManager 插件之间没有属性冲突

在此更新之前,当网络软件包有更新时,特别是由于无线接口更改了,network RHEL 系统角色不会请求用户同意重新启动 NetworkManager 服务。因此,这导致 NetworkManager 服务和 NetworkManager 插件之间潜在的冲突。或者,NetworkManager 插件无法正确运行。这个问题已通过让 network RHEL 系统角色要求用户同意重启 NetworkManager 服务而得到了解决。因此,在上述场景中,NetworkManager 服务和 NetworkManager 插件之间没有属性冲突。

Jira:RHEL-34887[1]

现在,实施多组节点属性的键值对与其他集群配置组件保持一致

ha_cluster RHEL 系统角色只支持每个配置项一组键值对。在以前的版本中,当配置多个节点属性集合时,集合被合并成一个集合。有了此更新,该角色只使用您定义的第一个集合,而忽略其他集合。现在,这个行为与角色为使用键值对结构的其他配置组件如何实现多组键值对保持一致。

Jira:RHEL-34886[1]

postgresql RHEL 系统角色不再无法设置 TLS 证书和私钥的路径

postgresql RHEL 系统角色的 postgresql_cert_name 变量在受管节点上定义没有后缀的 TLS 证书和私钥的基本路径。在此更新之前,角色没有为证书和私钥定义内部变量。因此,如果您设置了 postgresql_cert_name,Ansible 任务会失败,并显示以下错误消息:

The task includes an option with an undefined variable. The error was: '__pg_server_crt' is undefined. '__pg_server_crt' is undefined

有了此更新,角色可以正确地定义这些内部变量,任务会在 PostgreSQL 配置文件中设置证书和私钥的路径。

Jira:RHEL-67418[1]

如果需要,bootloader RHEL 系统角色会生成缺失的 /etc/default/grub 配置文件

在此更新之前,bootloader RHEL 系统角色预计 /etc/default/grub 配置文件存在。在某些情况下,例如在 OSTtree 系统上,可能会缺失 /etc/default/grub。因此,角色意外失败。有了此更新,如果需要,角色会使用默认参数生成缺失的文件。

Jira:RHEL-34881[1]

podman RHEL 系统角色可以再次设置主机目录的所有权

在此更新之前,在设置主机目录的所有权时,podman RHEL 系统角色将 become 关键字与用户一起使用。因此,角色无法正确设置所有权。有了此更新,podman RHEL 系统角色不会将 become 与普通用户一起使用。相反,它使用 root 用户。因此,podman 可以设置主机目录的所有权。

作为此修复的补充,在 podman RHEL 系统角色中添加了以下角色变量:

  • podman_subuid_info(字典):公开了 /etc/subuid 文件中的角色使用的信息。需要此信息来正确设置主机目录的所有者信息。
  • podman_subgid_info(字典):公开了 /etc/subgid 文件中的角色使用的信息。需要此信息来正确设置主机目录的组信息。

有关新添加的变量的详情,请查看 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。

Jira:RHEL-34888[1]

可以对正确的用户取消 linger 功能

当处理 kube 文件或 Quadlet 文件中的配置项的说明列表时,podman RHEL 系统角色错误地使用了与整个列表关联的用户 ID。它没有使用与列表项目关联的用户 ID ,来编译 linger 文件名。因此,没有创建 linger 文件,因此 podman RHEL 系统角色无法取消实际用户的 linger 功能(如果需要的话)。有了此更新,podman 使用正确的用户名来构造 linger 文件名。因此,可以对正确的用户取消 linger 功能。

Jira:RHEL-34889[1]

storage RHEL 系统角色再次是幂等的

在某些情况下,storage RHEL 系统角色会错误地计算现有设备的大小。因此,再次运行没有更改的同一 playbook 导致角色尝试调整已经有正确大小的设备的大小,而不是无错误地通过。有了此更新,大小计算已被修复。因此,角色现在可以正确地识别设备已有 playbook 指定的大小,且不会尝试调整它的大小。

Jira:RHEL-34895[1]

在具有预先存在的 Stratis 池的系统上运行 storage RHEL 系统角色可以正常工作

在此更新之前,storage RHEL 系统角色不会处理现有的设备和设备格式。当检查 Stratis 格式是否符合 playbook 指定的配置时,这导致角色在具有预先存在的 Stratis 池的系统上失败。因此,playbook 失败并显示一个错误,但 Stratis 池本身没有损坏或更改。此更新使 storage RHEL 系统角色可以与 Stratis 设备和其他格式正常工作,而无需标记支持。因此,在具有预先存在的 Stratis 池的系统上运行 playbook 不再失败。

Jira:RHEL-34907[1]

您不能为 imuxsock 输入类型设置 name 参数

在此更新之前,logging RHEL 系统角色错误地为 imuxsock 输入类型设置了 name 参数。因此,这个输入类型不支持 name 参数,受管节点上的 rsyslog 工具会打印此错误 …​parameter 'name' not known — typo in config file?…​。这个更新修复了 logging RHEL 系统角色,来确保 name 参数没有与 imuxsock 输入类型关联。

Jira:RHEL-38456

RHEL 10 和 RHEL 9 UEFI 受管节点上的 GRUB2 正确地提示输入密码

在此更新之前,bootloader RHEL 系统角色错误地将密码信息放在运行带有 UEFI 安全引导功能的 RHEL 10 和 RHEL 9 的受管节点上的 /boot/efi/EFI/redhat/user.cfg 文件中。正确的位置是 /boot/grub2/user.cfg 文件。因此,当重启受管节点来修改任何引导装载程序条目时,GRUB2 不提示您输入密码。此更新通过在源代码中将 user.cfg 的路径设置为 /boot/grub2/ 解决了这个问题。当您在 UEFI 安全引导受管节点上重新引导操作系统以修改任何引导装载程序条目时,GRUB2 会提示您输入您的密码。

Jira:RHEL-40759[1]

使用 podman 删除 Quadlet 定义网络可以正常工作,无论自定义 NetworkName 指令如何

删除网络时,podman RHEL 系统角色对网络名称使用 "systemd- + name of the Quadlet file" 语法。因此,如果 Quadlet 文件中存在不同的 NetworkName 指令,则删除将失败。有了此更新,podman 源代码已被更新,以使用 "Qadlet 文件名 +该文件中的 NetworkName 指令"作为要删除的网络的名称。因此,使用 podman RHEL 系统角色删除 Quadlet 文件定义的网络可以和没有 Quadlet 文件中的自定义 NetworkName 指令一起工作。

Jira:RHEL-40760

如果需要,podman RHEL 系统角色会创建新的 secret

如果您使用 podman_secrets 角色变量的 skip_existing: true 选项,则 podman RHEL 系统角色会错误地检查具有相同名称的 secret 是否已存在。因此,如果使用该选项,角色不会创建任何新 secret。此更新修复了 podman RHEL 系统角色,以在使用 skip_existing: true 时检查现有的 secret。因此,如果 secret 不存在,角色会正确地创建新的 secret。相反,如果您使用 skip_existing: true,则不会创建同名的 secret。

Jira:RHEL-40795[1]

Quadlet 单元文件中的网络单元现在可以被正确地清理

podman RHEL 系统角色不能正确管理 Quadlet 单元文件中 [Network] 部分下定义的网络单元。因此,网络单元不会被停止和禁用,后续运行因为这些单元没有被正确清理而失败。有了此更新,podman 管理 [Network] 单元,包括停止和删除。因此,Qadlet 单元文件中的 [Network] 单元被正确地清理。

Jira:RHEL-50104[1]

podman RHEL 系统角色现在可以正确地搜索 subgid

从属组 ID (subgid)是一个分配给非 root 用户的组 ID 值的范围。通过使用这些值,您可以在容器中使用与主机系统不同的组 ID 运行进程。在此次更新之前,podman RHEL 系统角色使用组名称而不是使用用户名在 subgid 值中错误地搜索。因此,用户名和组名称之间的区别使 podman 无法查找 subgid 值。此更新修复了 podman ,以便正确地搜索 subgid 值,在这种情况下问题不再发生。

Jira:RHEL-57100[1]

当签发的证书缺少私钥时,certificate RHEL 系统角色可以正确地报告错误

删除证书的私钥时,受管节点上的 certmonger 工具进入死循环。因此,当重新暂停已删除了私钥的证书时,控制节点上的 certificate RHEL 系统角色变得无响应。有了此更新,certificate RHEL 系统角色停止处理,并提供一条带有补救指令的错误消息。因此,在上述场景中,certificate 不再变得无响应。

Jira:RHEL-70536[1]

在有更改被应用时,firewall RHEL 系统角色报告 changed: True

在 playbook 处理过程中,当在受管节点上使用 playbook 中的 interface 变量和预先存在的网络接口时,firewall RHEL 系统角色中的 firewall_lib.py 模块会使用 False 替换 changed 消息。因此,即使已完成了更改,firewall 也会报告 changed: False 消息,并且 forward_port 变量中的内容没有被保存为永久。有了此更新,firewall RHEL 系统角色确保 changed 的值没有被重置为 False。因此,当有更改时,角色会报告 changed: Trueforward_port 内容会被保存为持久的。

Jira:RHEL-67412[1]

在使用 run_as_user 变量时,podman RHEL 系统角色不再无法处理 secret

在此更新之前,podman RHEL 系统角色因为缺少用户信息,无法处理使用 run_as_user 变量为特定用户指定的 secret。这导致在尝试处理设置了 run_as_user 的 secret 时出现错误。这个问题已被解决,podman RHEL 系统角色可以正确地处理使用 run_as_user 变量为特定用户指定的 secret。

Jira:RHEL-73443[1]

cockpit RHEL 系统角色安装所有与通配符模式匹配的与 cockpit 相关的软件包

在此更新之前,通过 cockpit RHEL 系统角色使用的 dnf 模块没有安装所有与 cockpit 相关的软件包。因此,一些请求的软件包没有被安装。有了此更新,cockpit RHEL 系统角色的源代码被修改为使用带有星号通配符的软件包名称和要排除的软件包的列表来直接使用 dnf 模块。因此,角色可以正确地安装与通配符模式匹配的所有请求的软件包。

Jira:RHEL-45944[1]

sshd RHEL 系统角色可以正确地配置第二个 sshd 服务

如果您没有指定 sshd_config_file 角色变量,则运行 sshd RHEL 系统角色来在受管节点上配置第二个 sshd 服务会导致一个错误。因此,您的 playbook 将失败,并且 sshd 服务无法被正确配置。要解决这个问题,主配置文件的派生已得到了改进。另外,以使 /usr/share/doc/rhel-system-roles/sshd/ 目录中的文档资源更加清晰,以避免此问题。因此,按上述场景中所述配置第二个 sshd 服务可以按预期工作。

Jira:RHEL-34879[1]

network RHEL 系统角色优先考虑永久 MAC 地址匹配

当以下所有条件都满足时:

  • 网络连接指定接口名称和介质访问控制(MAC)地址,来配置父和虚拟局域网(VLAN)连接。
  • 物理接口具有同样的永久和当前 MAC 地址。
  • 网络配置被多次应用。

network RHEL 系统角色将用户指定的 MAC 地址与永久 MAC 或 sysfs 虚拟文件系统中当前的 MAC 地址进行比较。然后,角色将与当前 MAC 匹配的地址视为有效,即使接口名称与用户指定的不同。因此,会出现 "no such interface exists" 错误。有了此更新,link_info_find() 方法会在其有效且可用时优先考虑按永久 MAC 地址匹配链接。如果永久 MAC 不可用(None 或 "00:00:00:00:00:00"),则方法会回退到匹配当前的 MAC 地址。因此,这个更改通过确保优先考虑永久地址,同时为没有永久地址的接口维护一个可靠的回退机制,改进了 MAC 地址匹配的稳健性。

Jira:RHEL-73442[1]

新的 sshd_allow_restart 变量使 sshd 服务在需要时重启

在此更新之前,sshd RHEL 系统角色在需要不能在受管节点上重启 sshd 服务。因此,一些与 '/etc/sysconfig/' 目录中的配置文件和环境文件相关的更改没有被应用。要解决这个问题,引入了 sshd_allow_restart(布尔值,默认为 true)变量,来在需要时在受管节点上重启 sshd 服务。因此,sshd RHEL 系统角色现在可以正确地应用所有更改,并确保 sshd 服务实际使用这些更改。

Jira:RHEL-73439[1]

ansible-doc 命令再次为 redhat.rhel_system_roles 集合提供了文档

在此更新之前,vpn RHEL 系统角色不包括内部 Ansible 过滤器 vpn_ipaddr 的文档。因此,使用 ansible-doc 命令列出 redhat.rhel_system_roles 集合的文档将触发一个错误。有了此更新,vpn RHEL 系统角色包括 vpn_ipaddr 过滤器的正确格式的正确文档。因此,ansible-doc 不会触发任何错误,并提供了正确的文档。

Jira:RHEL-67421[1]

storage RHEL 系统角色可以正确地重新调整逻辑卷大小

当使用 storage RHEL 系统角色中的 grow_to_fill 功能,在调整底层虚拟磁盘的大小后自动调整 LVM 物理卷大小时,物理卷不会被调整到其最大大小。因此,在调整现有逻辑卷大小或者创建新额外的逻辑卷时,并不是所有的存储可用空间都可用;storage RHEL 系统角色会失败。此更新修复了源代码中的问题,来确保角色始终可以使用 grow_to_fill 将物理卷调整到其最大大小。

Jira:RHEL-76504[1]

storage RHEL 系统角色现在在带有 VDO 的 RHEL 10 受管节点上按预期运行

在此次更新之前,blivet 模块需要使用 Virtual Data Optimizer (VDO)在 RHEL 10 受管节点上需要 kmod-kvdo 软件包。但是,kmod-kvdo 无法安装,因此甚至导致 storage RHEL 系统角色失败。对这个问题的修复确保 kmod-kvdo 不是 RHEL 10 受管节点所需的软件包。因此,当带有 RHEL 10 受管节点使用 VDO 时,storage 角色不再失败。

Jira:RHEL-81963[1]

11.13. 虚拟化

vGPU 实时迁移不再报告大量的脏页

在以前的版本中,当对附加了 NVIDIA vGPU 的虚拟机执行迁移时,在迁移过程中会错误地报告大量脏页。这个问题可能会在迁移过程中增加所需的虚拟机停机时间,迁移可能会失败。

有了此更新,底层问题已被修复,在迁移过程中会报告正确的脏页量,这在某些情况下可以减少 vGPU 实时迁移过程中所需的虚拟机停机时间。

Jira:RHEL-64308[1]

QEMU 不再阻止使用 SEV-SNP

在以前的版本中,当试图启动启用了 AMD SEV-SNP 的虚拟机(VM)时,QEMU 会检查 KVM 的不正确的功能,客户机无法启动。因此,RHEL10 无法运行配置了 AMD SEV-SNP 的虚拟机。这个问题已解决,现在可以按预期运行带有 SEV-SNP 的虚拟机。

Jira:RHEL-58928[1]

在没有 RNG 设备的情况下,虚拟机的网络引导现在可以正常工作

在以前的版本中,当虚拟机(VM)没有配置 RNG 设备,且其 CPU 型号不支持 RDRAND 功能时,无法从网络引导虚拟机。有了此更新,这个问题已解决,不支持 RDRAND 的虚拟机也可以从网络引导,即使没有配置 RNG 设备。

但请注意,对于使用不支持 RDRAND 的 CPU 模型的虚拟机,强烈建议添加 RNG 设备,以便在从网络引导时提高安全性。

Jira:RHEL-66234

RHEL 10 客户机在 GCP 和 Alibaba 中重启时不再崩溃

在 Google Cloud Platform 或 Alibaba Cloud 上使用 RHEL 10.0 实例时,如果 virtio-net 驱动程序在使用,之前重启实例在客户机操作系统中会导致内核 panic。这个问题已解决,RHEL 10 客户机在上述场景中不再崩溃。

Jira:RHEL-56981[1]

11.14. 云环境中的 RHEL

带有 Azure 加速网络的 mana 驱动程序向虚拟机分配一个正确的 IP 地址

在以前的版本中,当在 Azure 平台上启动启用了加速网络的 Red Hat Enterprise Linux 虚拟机时,NetworkManager-wait-online.service 服务可能无法在引导时启动。因此,当将 Azure 加速网络与 mana 驱动程序一起使用时,虚拟机可能无法从 DHCP 服务器获取 IP 地址。有了此修复,您需要安装最新版本的 WALinuxAgent-udev 软件包。因此,带有加速网络和 mana 驱动程序的 Azure 虚拟机将在引导时被分配一个正确的 IP 地址。

Jira:RHEL-68796[1]

11.15. 支持性

sos 现在会在几个地方模糊处理代理密码

在以前的版本中,sos 工具不会模糊处理来自代理链接的密码。例如,/etc/environment 文件中的 HTTP_PROXYHTTPS_PROXY。因此,sos 工具可以使用客户代理密码收集 sosreport,除非在提交前被清理了。这可能会引起安全问题。发现并修复了其中几个地方,以模糊处理密码。

红帽不断改进 sos 工具,来增强模糊处理功能,但无法保证完全删除敏感信息。在与红帽共享前,用户负责检查并手动清理任何机密数据。

Jira:RHEL-67712[1]

对现有存档的 sos clean 不再失败

在以前的版本中,由于 sos 代码中一个错误地检测 tar 包的根目录,且阻止其清理数据的回归,现有的存档无法通过运行 sos clean 来清理。因此,对现有 sosreport tar 包运行 sos clean 不会清理 tar 包中的任何内容。此更新添加了一个在重新排序的 tar 包内容中正确检测根目录的实现。因此,sos clean 可以对现有的 sosreport tar 包正确地执行敏感数据模糊处理。

Jira:RHEL-35945

sos 停止收集用户的 .ssh 配置

在以前的版本中,sos 工具默认收集用户的 .ssh 配置。因此,此操作导致用户使用 automount 工具挂载的系统损坏。有了此更新,sos 工具不再收集 .ssh 配置。

Jira:RHEL-22389

11.16. 容器

Netavark 不再无法解析 DNS TCP 查询

在以前的版本中,当您在 Podman 网络中运行容器时,一些域名无法解析,即使它们可以在主机系统上或没有使用 Podman 网络的容器中工作。有了此更新,Netavark 支持 TCP DNS 查询,问题解决了。

Jira:RHEL-52247

第 12 章 可用的 BPF 功能

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

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

Expand
表 12.1. 系统配置和其他选项
选项value

unprivileged_bpf_disabled

2 (bpf() 系统调用限制为特权用户,管理员可以改变。)

JIT enable

1(启用)

JIT harden

1(为非特权用户启用)

JIT kallsyms

1(为 root 用户启用)

Memory limit for JIT for unprivileged users

69267617742848

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

y

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

n

CONFIG_BPF_KPROBE_OVERRIDE

n

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

y

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

100

bpf() syscall

可用

Large insn size limit

可用

Bounded loop support

可用

ISA extension v2

可用

ISA extension v3

可用

Expand
表 12.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_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, 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_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_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_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

kprobe

bpf_map_lookup_elem, bpf_map_update_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_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_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, 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_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sched_cls

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_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_tunnel_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_tunnel_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_get_current_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_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, bpf_sk_storage_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_get_current_ancestor_cgroup_id, 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_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_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_skb_set_tstamp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_tcp_raw_gen_syncookie_ipv4, bpf_tcp_raw_gen_syncookie_ipv6, bpf_tcp_raw_check_syncookie_ipv4, bpf_tcp_raw_check_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sched_act

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_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_tunnel_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_tunnel_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_get_current_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_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, bpf_sk_storage_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_get_current_ancestor_cgroup_id, 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_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_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_skb_set_tstamp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_tcp_raw_gen_syncookie_ipv4, bpf_tcp_raw_gen_syncookie_ipv6, bpf_tcp_raw_check_syncookie_ipv4, bpf_tcp_raw_check_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

tracepoint

bpf_map_lookup_elem, bpf_map_update_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_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_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, 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_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

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_get_current_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_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, 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_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_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_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_xdp_get_buff_len, bpf_xdp_load_bytes, bpf_xdp_store_bytes, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_tcp_raw_gen_syncookie_ipv4, bpf_tcp_raw_gen_syncookie_ipv6, bpf_tcp_raw_check_syncookie_ipv4, bpf_tcp_raw_check_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

perf_event

bpf_map_lookup_elem, bpf_map_update_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_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_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, 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_pid_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_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_skb

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_skb_cgroup_id, bpf_get_current_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_strtol, bpf_strtoul, 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_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_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_sock

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_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_node_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_strtol, bpf_strtoul, 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_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_strncmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lwt_in

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_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_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, 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_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_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_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lwt_out

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_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_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, 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_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_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_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lwt_xmit

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_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_skb_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_skb_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_lwt_push_encap, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_criu64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_zFCP_output, bpf_xxxx_reserve, bpf_criu_submit, bpf_criu_submit, bpf_wagon_discard, bpf_ iwl_query, bpf_csum_level, bpf_categories_to_tcp6_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_ iwl_to_tcp_request_sock, bpf_categories_to_udp6_sock, bpf_PROFILE_to_tcp_sock, bpf_criu_to_tcp_sock, bpf_ iwl_to_tcp_sock bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_PROFILE_ns, bpf_for_each_map_elem, bpf_numpy, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs,, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_PROFILE_reserve_zFCP, bpf_PROFILE_submit_numpy, bpf_PROFILE_discard_numpy, bpf_criu_discard_numpy, bpf_wagon_read, bpf_ProductShortName_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sock_ops

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_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_sock_map_update, bpf_getsockopt, bpf_sock_ops_cb_flags_set, bpf_sock_hash_update, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_strtol, bpf_strtoul, 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_categories64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_wagon_output, bpf_categories_reserve, bpf_categories_submit, bpf_zFCP_discard, bpf_xxxx_query, bpf_ktime_to_tcp6_sock, bpf_PROFILE_to_tcp_sock, bpf_wagon_to_tcp_timewait_sock, bpf_PROFILE_to_tcp_request_sock, bpf_PROFILE_to_udp6_sock, bpf_load_hdr_opt, bpf_store_hdr_opt, bpf_reserve_hdr_opt, bpf_categories_hdr_opt, bpf_PROFILE_hdr_opt, bpf_reserve_hdr_opt, bpf_reserve_hdr_opt, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_PROFILE_ns, bpf_for_each_map_elem, bpf_numpy, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs,, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_PROFILE_reserve_zFCP, bpf_PROFILE_submit_numpy, bpf_PROFILE_discard_numpy, bpf_criu_discard_numpy, bpf_wagon_read, bpf_ProductShortName_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sk_skb

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_skb_store_bytes, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, 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_get_current_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_MAPPING_lookup_tcp, bpf_strtol, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_xxxx_output, bpf_probe_read_kernel_reserve, bpf_wagon_submit, bpf_ iwl_discard, bpf_ iwl_query, bpf_categories_to_tcp6_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_ iwl_to_tcp_request_sock, bpf_categories_to_udp6_sock, bpf_PROFILE_to_tcp_sock, bpf_criu_to_tcp_sock, bpf_ iwl_to_tcp_sock bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_PROFILE_ns, bpf_for_each_map_elem, bpf_numpy, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs,, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_PROFILE_reserve_zFCP, bpf_PROFILE_submit_numpy, bpf_PROFILE_discard_numpy, bpf_criu_discard_numpy, bpf_wagon_read, bpf_ProductShortName_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_device

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_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_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_csum64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_categories_output, bpf_categories_reserve, bpf_numpy_submit, bpf_PROFILE_discard, bpf_PROFILE_query, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_frequency, bpf_for_each_map_elem, bpf_for_each_map_elem, bpf_ bpf_PROFILE, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_loopmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_csum_from_mem, bpf_criu_reserve_PROFILE, bpf_unmarshal_submit_criu, bpf_numpy_discard_criu, bpf_categories_read, bpf_unmarshal_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_criu_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sk_msg

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_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_elem, bpf_msg_push_data, bpf_msg_pop_data, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_criu64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ktime_output, bpf_numpy_reserve, bpf_wagon_submit, bpf_ iwl_discard, bpf_ iwl_query, bpf_categories_to_tcp6_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_ iwl_to_tcp_request_sock, bpf_categories_to_udp6_sock, bpf_PROFILE_to_tcp_sock, bpf_criu_to_tcp_sock, bpf_ iwl_to_tcp_sock bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_PROFILE_ns, bpf_for_each_map_elem, bpf_numpy, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs,, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_PROFILE_reserve_zFCP, bpf_PROFILE_submit_numpy, bpf_PROFILE_discard_numpy, bpf_criu_discard_numpy, bpf_wagon_read, bpf_ProductShortName_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

raw_tracepoint

bpf_map_lookup_elem, bpf_map_update_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_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_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, 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_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_sock_addr

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_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_node_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_ CephFS_lookup_tcp, bpf_strtol, bpf_strtol, bpf_strtoul, 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_ PlacementRule64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_categories_output, bpf_categories_reserve, bpf_numpy_submit, bpf_PROFILE_discard, bpf_PROFILE_to_tcp6_sock, bpf_ iwl_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_sock, bpf_ iwl_to_tcp_sock, bpf_ , bpf_PROFILE_to_udp6_sock, bpf_PROFILE_setuptools, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_MAPPING_ns, bpf_for_each_map_elem, bpf_zFCP, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_loopmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_2023_to_mptcp_sock, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem bpf_wagon_from_mem, bpf_numpy_reserve_criu, bpf_setuptools_submit_criu, bpf_categories_discard_criu, bpf_PROFILE_read, bpf_criu_write, bpf_wagon_data, bpf_ktime_get_tai_ns, bpf_user_mvapich_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lwt_seg6local

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_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_perf_event_output, bpf_skb_load_bytes, bpf_skb_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_lwt_seg6_store_bytes, bpf_lwt_seg6_adjust_srh, bpf_lwt_seg6_action, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_MAPPING64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_PROFILE_output, bpf_numpy_reserve, bpf_PROFILE_submit, bpf_PROFILE_discard, bpf_ktime_discard, bpf_PROFILE_query, bpf_wagon_to_tcp6_sock, bpf_categories_to_tcp_sock, bpf_categories_to_tcp_timewait_sock, bpf_PROFILE_to_tcp_request_sock, bpf_PROFILE_to_udp6_sock, bpf_mvapich_mvapich, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_criu, bpf_ktime_get_setuptools_ns, bpf_for_each_map_elem, bpf_PROFILE, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_csum_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_criu_reserve_criu, bpf_categories_submit_ TOTP, bpf_PROFILE_discard_elem, bpf_categories_read, bpf_categories_read, bpf_unmarshal_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_categories_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lirc_mode2

不支持

sk_reuseport

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_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_skb_load_bytes_relative, bpf_get_current_cgroup_id, bpf_sk_select_reuseport, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_xxxx_output, bpf_probe_read_kernel_reserve, bpf_wagon_submit, bpf_ iwl_discard, bpf_ iwl_query, bpf_wagon_PROFILE, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_criu, bpf_ktime_get_categories_ns, bpf_for_each_map_elem, bpf_per_cpu_ptr, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_loopmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_from_mem, bpf_PROFILE_reserve_csum, bpf_2023_submit_numpy, bpf_map_submit_literal, bpf_wagon_discard_criu, bpf_ProductShortName_read, bpf_ iwl_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

flow_dissector

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_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_criu_output, bpf_categories_reserve, bpf_categories_submit, bpf_PROFILE_discard, bpf_PROFILE_query, bpf_PROFILE_to_tcp6_sock, bpf_criu_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_ iwl_to_tcp_request_sock, bpf_categories_to_udp6_sock, bpf_PROFILE_criu, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_categories_ns, bpf_for_each_map_elem, bpf_ProductShortName, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_ iwl_to_unix_sock, bpf_loop, bpf_framemp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_categories_to_mptcp_sock, bpf_PROFILE_from_mem, bpf_PROFILE_reserve_PROFILE, bpf_criu_submit_PROFILE, bpf_PROFILE_discard_criu, bpf_PROFILE_read, bpf_PROFILE_write, bpf_PROFILE_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_sysctl

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_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_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_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_MAPPING64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_PROFILE_output, bpf_numpy_reserve, bpf_PROFILE_submit, bpf_PROFILE_discard, bpf_ktime_discard, bpf_unmarshal_query, bpf_ iwl_numpy, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_categories_ns, bpf_for_each_map_elem, bpf_PROFILE, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_loopmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_wagon_from_mem, bpf_PROFILE_reserve_PROFILE, bpf_ 0.11.0-_submit_PROFILE, bpf_criu_discard_PROFILE, bpf_criu_read, bpf_unmarshal_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_categories_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

raw_tracepoint_writable

bpf_map_lookup_elem, bpf_map_update_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_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_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, 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_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_sockopt

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_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_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_strtol, bpf_strtoul, 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_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_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_strncmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

tracing

 

struct_ops

 

ext

 

lsm

 

sk_lookup

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_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, 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_get_current_ancestor_cgroup_id, bpf_sk_assign, 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_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

syscall

bpf_map_lookup_elem, bpf_map_update_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_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_get_socket_cookie, 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_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_sk_storage_delete, bpf_send_signal, bpf_skb_output, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_ netobserv64, bpf_get_ns_current_pid_tgid, bpf_xdp_output, bpf_xdp_output, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_unmarshal_output, bpf_PROFILE_reserve, bpf_PROFILE_discard, bpf_ netobserv_query, bpf_PROFILE_to_tcp6_sock, bpf_zFCP_to_tcp_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_PROFILE_to_tcp_request_sock, bpf_PROFILE_to_udp6_sock, bpf_get_task_stack, bpf_d_path, bpf_copy_from_user, bpf_PROFILE_numpy, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_criu, bpf_sock_from_file, bpf_for_each_map_elem, bpf_categories, bpf_sys_bpf, bpf_criu_find_by_name_kind, bpf_sys_close, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_categories_to_unix_sock, bpf_kallsyms_lookup_name, bpf_find_vma, bpf_loop, bpf_mvapichmp, bpf_xdp_get_buff_len, bpf_copy_from_user_task, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_PROFILE_from_mem, bpf_criu_reserve_categories, bpf_numpy_submit_criu, bpf_PROFILE_discard_PROFILE, bpf_zFCP_read, bpf_csum_write, bpf_criu_data, bpf_criu_submit_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

netfilter

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_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtoul, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_categories_output, bpf_PROFILE_submit, bpf_PROFILE_discard, bpf_ iwl_query, bpf_categories_query, bpf_per_cpu_ptr, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_criu, bpf_for_each_map_elem, bpf_unmarshal, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_loopmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_criu_from_mem, bpf_categories_reserve_PROFILE, bpf_PROFILE_submit_numpy_PROFILE, bpf_categories_read, bpf_criu_write, bpf_categories_data, bpf_ktime_get_tai_ns, bpf_ktime_get_tai_ns, bpf_user_criu_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

Expand
表 12.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

bloom_filter

user_ringbuf

cgrp_storage

arena_map

附录 A. 按组件划分的问题单列表

在本文档中列出了 Bugzilla 和 JIRA 问题单以供参考。这些链接会指向本文档中描述问题单的发行注记。

Expand
组件票证

389-ds-base

Jira:RHEL-67196, Jira:RHEL-67595, Jira:RHEL-1681, Jira:RHEL-42485, Jira:RHEL-76841, Jira:RHEL-74164, Jira:RHEL-79498, Jira:RHEL-76020, Jira:RHEL-69819, Jira:RHEL-59513, Jira:RHEL-30640, Jira:RHEL-25071

NetworkManager

Jira:RHEL-64719, Jira:RHEL-46211

NetworkManager-libreswan

Jira:RHEL-58812

Release Notes

Jira:RHELDOCS-18787, Jira:RHELDOCS-19988, Jira:RHELDOCS-19185, Jira:RHELDOCS-19191, Jira:RHELDOCS-19863, Jira:RHELDOCS-19162, Jira:RHELDOCS-19060, Jira:RHELDOCS-19579, Jira:RHELDOCS-19411, Jira:RHELDOCS-19059, Jira:RHELDOCS-20102, Jira:RHELDOCS-19550, Jira:RHELDOCS-19840, Jira:RHELDOCS-19842, Jira:RHELDOCS-19877, Jira:RHELDOCS-19661, Jira:RHELDOCS-20066, Jira:RHELDOCS-20166, Jira:RHELDOCS-20168, Jira:RHELDOCS-20169, Jira:RHELDOCS-20170, Jira:RHELDOCS-19072, Jira:RHELDOCS-19891, Jira:RHELDOCS-19968, Jira:RHELDOCS-20041, Jira:RHELDOCS-20042, Jira:RHELDOCS-20043, Jira:RHELDOCS-19635, Jira:RHELDOCS-19009, Jira:RHELDOCS-19010, Jira:RHELDOCS-19071, Jira:RHELDOCS-19357, Jira:RHELDOCS-19066, Jira:RHELDOCS-18389, Jira:RHELDOCS-18390, Jira:RHELDOCS-19148, Jira:RHELDOCS-19125, Jira:RHELDOCS-19132, Jira:RHELDOCS-19170, Jira:RHELDOCS-19146, Jira:RHELDOCS-19138, Jira:RHELDOCS-19134, Jira:RHELDOCS-19136, Jira:RHELDOCS-19153, Jira:RHELDOCS-19142, Jira:RHELDOCS-19152, Jira:RHELDOCS-19155, Jira:RHELDOCS-19150, Jira:RHELDOCS-17682, Jira:RHELDOCS-19221, Jira:RHELDOCS-19222, Jira:RHELDOCS-19023, Jira:RHELDOCS-19813, Jira:RHELDOCS-19024, Jira:RHELDOCS-19094, Jira:RHELDOCS-18839, Jira:RHELDOCS-18492, Jira:RHELDOCS-18485, Jira:RHELDOCS-18414, Jira:RHELDOCS-18159, Jira:RHELDOCS-19051, Jira:RHELDOCS-18989, Jira:RHELDOCS-19084, Jira:RHELDOCS-19083, Jira:RHELDOCS-19269, Jira:RHELDOCS-19140, Jira:RHELDOCS-19828, Jira:RHELDOCS-20167, Jira:RHELDOCS-18080, Jira:RHELDOCS-19607, Jira:RHELDOCS-18674, Jira:RHELDOCS-18672, Jira:RHELDOCS-18450, Jira:RHELDOCS-20147, Jira:RHELDOCS-16612, Jira:RHELDOCS-19015, Jira:RHELDOCS-19172, Jira:RHELDOCS-19603, Jira:RHELDOCS-19016, Jira:RHELDOCS-19770

WALinuxAgent

Jira:RHEL-68796

anaconda

Jira:RHEL-61434, Jira:RHEL-38407, Jira:RHEL-56141, Jira:RHEL-33892, Jira:RHEL-80672, Jira:RHEL-67865, Jira:RHEL-74504, Jira:RHEL-83577, Jira:RHEL-66155, Jira:RHEL-58827, Jira:RHEL-58829, Jira:RHEL-58828, Jira:RHEL-58834

annobin

Jira:RHEL-526

ansible-collection-microsoft-sql

Jira:RHEL-68468, Jira:RHEL-68490, Jira:RHEL-69315

ansible-core

Jira:RHEL-86829

ansible-freeipa

Jira:RHEL-67567

audit

Jira:RHEL-5199

bind-dyndb-ldap

Jira:RHEL-30556

binutils

Jira:RHEL-56896, Jira:RHEL-36305

bootc-image-builder-container

Jira:RHEL-34807

ca-certificates

Jira:RHEL-50293

certmonger

Jira:RHEL-40922

clevis

Jira:RHEL-60113

cloud-init

Jira:RHEL-29720, Jira:RHEL-65849, Jira:RHEL-82209, Jira:RHEL-82210

cmake

Jira:RHEL-65234

cockpit

Jira:RHEL-4032

cockpit-machines

Jira:RHEL-31993

container-tools

JIRA:RHEL-33571,JIRA:RHEL-33573,JIRA:RHEL-67260,JIRA:RHEL-66762,JIRA:RHEL-32724 , JIRA:RHEL-670 64,JIRA:RHEL-67063,JIRA:RHEL-67860

coreutils

Jira:RHEL-74146

crash

Jira:RHEL-52221

crypto-policies

JIRA:RHEL-50655,JIRA:RHEL-76526,JIRA:RHEL-58241,JIRA:RHEL-65652,JIRA:RHEL-50464,JIRA:RHEL-50106,JIRA:RHEL-64746

cryptsetup

Jira:RHEL-33395

cups

Jira:RHEL-68415

debugedit

Jira:RHEL-64137

device-mapper-multipath

Jira:RHEL-49747, Jira:RHEL-73410

dhcp

Jira:RHEL-14710

distribution

Jira:RHEL-30799, Jira:RHEL-18157, Jira:RHEL-59006, Jira:RHEL-73770

dnf

Jira:RHEL-12355, Jira:RHEL-38831, Jira:RHEL-76849, Jira:RHEL-40382

dnf-plugins-core

Jira:RHEL-56137, Jira:RHEL-23706

dnsconfd

Jira:RHEL-34791

dotNET

Jira:RHELDOCS-20066

dyninst

Jira:RHEL-49597

edk2

Jira:RHELPLAN-69533, Jira:RHEL-66234, Jira:RHEL-68418

elfutils

Jira:RHEL-29197, Jira:RHEL-64046

firewalld

Jira:RHEL-65865

gcc

JIRA:RHEL-45041, JIRA:RHEL-33254,JIRA:RHEL-24760,JIRA:RHEL-65765,JIRA:RHEL-24762,JIRA:RHEL-36791

gdb

Jira:RHEL-33256

glibc

Jira:RHEL-25045, Jira:RHEL-25850, Jira:RHEL-25530

gnome-online-accounts

Jira:RHEL-40831

gnome-shell-extensions

Jira:RHEL-4137

gnutls

Jira:RHEL-69524, Jira:RHEL-42514, Jira:RHEL-59212, Jira:RHEL-58640

golang

Jira:RHEL-34260, Jira:RHEL-52486, Jira:RHEL-49036

grafana

Jira:RHEL-35761

grafana-pcp

Jira:RHEL-67043, Jira:RHEL-45646

greenboot

Jira:RHEL-80003

grub2

Jira:RHEL-15032, Jira:RHEL-4378

gssproxy

Jira:RHEL-71651

ipa

JIRA:RHEL-56917, JIRA:RHEL-57674,JIRA:RHEL-4879,JIRA:RHEL-46607,JIRA:RHEL-63325,JIRA:RHELPLAN-121751,JIRA:RHEL-67912,JIRA:RHEL-33818,JIRA:RHEL-12154

iptables

Jira:RHEL-66725

ipxe

Jira:RHEL-37610

jose

Jira:RHEL-38084

kdump-utils

Jira:RHEL-63071, Jira:RHEL-50736, Jira:RHEL-29941

kea

Jira:RHEL-9306

kernel

JIRA:RHELPLAN-99859,JIRA:RHELPLAN-96004

kernel/ Debugging-Tracing / kexec - kdump

Jira:RHEL-29272

kernel/ Debugging-Tracing / rtla

Jira:RHEL-40744

kernel / File Systems / CIFS

Jira:RHEL-78152

kernel / File Systems / NFS

Jira:RHEL-74415

kernel / File Systems / XFS

Jira:RHEL-33653

kernel / Networking

Jira:RHEL-68401

kernel / Networking / NIC Drivers

Jira:RHEL-73034, Jira:RHEL-40070, Jira:RHEL-56981

kernel/ Networking / eBPF

Jira:RHEL-51429

kernel / Other

Jira:RHEL-65347

kernel / Platform Enablement / NVMe

Jira:RHEL-78133, Jira:RHEL-85845

kernel / Security

Jira:RHEL-26170

kernel / Security / Other

Jira:RHEL-40283

kernel / Storage / Block Layer

Jira:RHEL-60811

kernel / Storage / Persistent Memory (NVDIMM)

Jira:RHEL-68504

kernel / Storage / Storage Drivers

Jira:RHEL-75491

kernel / Virtualization / ESXi

Jira:RHEL-41133

kernel / Virtualization / Hyper-V

Jira:RHEL-29919

kernel / Virtualization / KVM

JIRA:RHEL-25204,JIRA:RHEL-58218,JIRA:RHEL-32892,JIRA:RHEL-45585,JIRA:RHEL-38957

kernel-rt / Core / Scheduler

Jira:RHEL-58211

keylime

Jira:RHEL-75794, Jira:RHEL-51279, Jira:RHEL-79831

keylime-agent-rust

Jira:RHEL-38409

krb5

Jira:RHEL-71881, Jira:RHEL-56070

ksh

Jira:RHEL-45981

libabigail

Jira:RHEL-64063

libcap

JIRA:RHEL-31988,JIRA:RHEL-33498

libkcapi

Jira:RHEL-50457

libnftnl

Jira:RHEL-66276

liboqs

Jira:RHEL-65426

librepo

Jira:RHEL-47106

libreswan

Jira:RHEL-52935, Jira:RHEL-74850, Jira:RHEL-51880, Jira:RHEL-81045

libslirp

Jira:RHEL-45147

libssh

Jira:RHEL-64319, Jira:RHEL-30437

llvm

Jira:RHEL-57456, Jira:RHEL-70325, Jira:RHEL-58900

lsscsi

Jira:RHEL-32144

mesa

Jira:RHEL-45898

Mutter

Jira:RHEL-69291

mysql

Jira:RHEL-36050

nbdkit

Jira:RHEL-32748

net-snmp

Jira:RHEL-44478

nettle

Jira:RHEL-79116

nftables

Jira:RHEL-65346

nginx

Jira:RHEL-33742

nodejs

Jira:RHEL-35992

nss

JIRA:RHEL-46839,JIRA:RHEL-39732,JIRA:RHEL-36299,JIRA:RHEL-61291,JIRA:RHEL-44995

opencryptoki

Jira:RHEL-58996

openldap

Jira:RHEL-71052, Jira:RHEL-68773, Jira:RHEL-68424

opensc

Jira:RHEL-71523, Jira:RHEL-73314

openscap

Jira:RHEL-88845

openssh

Jira:RHEL-60564, Jira:RHEL-37324, Jira:RHEL-62718, Jira:RHEL-45002

openssl

Jira:RHEL-54156,JIRA:RHEL-40408,JIRA:RHEL-36659,JIRA:RHEL-39962,JIRA:RHEL-45704

p11-kit

Jira:RHEL-46898, Jira:RHEL-64915

pacemaker

Jira:RHEL-39057,JIRA:RHEL-56675,JIRA:RHEL-7600,JIRA:RHEL-40117,Jira:RHEL-62722

pcs

Jira:RHEL-35670, Jira:RHEL-36612, Jira:RHEL-38491, Jira:RHEL-38489, Jira:RHEL-38487, Jira:RHEL-23048, Jira:RHEL-21047, Jira:RHEL-38483, Jira:RHEL-61889, Jira:RHEL-49527, Jira:RHEL-12709, Jira:RHEL-38493, Jira:RHEL-38484, Jira:RHEL-38486, Jira:RHEL-38478, Jira:RHEL-38479, Jira:RHEL-34792, Jira:RHEL-33386, Jira:RHEL-61747, Jira:RHEL-55723, Jira:RHEL-29739, Jira:RHEL-49521

pkcs11-provider

Jira:RHEL-29672, Jira:RHEL-40124, Jira:RHEL-68621

podman

Jira:RHEL-34604, Jira:RHEL-33566, Jira:RHEL-34611, Jira:RHEL-34613, Jira:RHEL-34606, Jira:RHEL-40639, Jira:RHEL-40643, Jira:RHEL-52238, Jira:RHEL-52240, Jira:RHEL-24623, Jira:RHEL-52247, Jira:RHEL-32266, Jira:RHEL-70218, Jira:RHEL-89373, Jira:RHEL-40641

policycoreutils

Jira:RHEL-69451

polkit

Jira:RHEL-55287

postgresql

Jira:RHEL-35993

postgresql16

Jira:RHEL-62694

pykickstart

Jira:RHEL-34829

python-blivet

Jira:RHEL-45175, Jira:RHEL-52200, Jira:RHEL-45180, Jira:RHEL-82884

python-pyasn1

Jira:RHEL-67667

qemu-kvm

Jira:RHEL-68444, Jira:RHEL-23771, Jira:RHELPLAN-81033, Jira:RHELPLAN-75969, Jira:RHEL-58928, Jira:RHEL-87642, Jira:RHEL-88435, Jira:RHEL-67699, Jira:RHEL-66229

qemu-kvm / Devices / CPU Models

Jira:RHEL-28971

qemu-kvm / Devices / Machine type

Jira:RHEL-57668

qemu-kvm/Live Migration

Jira:RHEL-64308

realtime-tests

Jira:RHEL-65488

rear

Jira:RHEL-72557, Jira:RHEL-46613

rhc

Jira:RHEL-65517

rhel-bootc-container

Jira:RHEL-34859

rhel-system-roles

Jira:RHEL-34893, Jira:RHEL-46219, Jira:RHEL-37551, Jira:RHEL-40798, Jira:RHEL-34884, Jira:RHEL-34890, Jira:RHEL-34891, Jira:RHEL-34892, Jira:RHEL-40181, Jira:RHEL-40797, Jira:RHEL-45718, Jira:RHEL-46855, Jira:RHEL-48230, Jira:RHEL-48609, Jira:RHEL-50288, Jira:RHEL-50289, Jira:RHEL-50291, Jira:RHEL-53901, Jira:RHEL-34828, Jira:RHEL-67419, Jira:RHEL-67420, Jira:RHEL-67411, Jira:RHEL-73441, Jira:RHEL-70554, Jira:RHEL-67417, Jira:RHEL-67416, Jira:RHEL-67415, Jira:RHEL-67413, Jira:RHEL-67286, Jira:RHEL-34887, Jira:RHEL-34886, Jira:RHEL-67418, Jira:RHEL-34881, Jira:RHEL-34888, Jira:RHEL-34889, Jira:RHEL-34895, Jira:RHEL-34907, Jira:RHEL-38456, Jira:RHEL-40759, Jira:RHEL-40760, Jira:RHEL-40795, Jira:RHEL-50104, Jira:RHEL-57100, Jira:RHEL-70536, Jira:RHEL-67412, Jira:RHEL-73443, Jira:RHEL-45944, Jira:RHEL-34879, Jira:RHEL-73442, Jira:RHEL-73439, Jira:RHEL-67421, Jira:RHEL-76504, Jira:RHEL-81963, Jira:RHEL-73440

rpm

Jira:RHEL-56363

rsyslog

Jira:RHEL-70110

rteval

Jira:RHEL-28059, Jira:RHEL-67424

rust

Jira:RHEL-59689

scap-security-guide

Jira:RHEL-74239

selinux-policy

JIRA:RHEL-36094,JIRA:RHEL-62355,JIRA:RHEL-33844,JIRA:RHEL-46893,JIRA:RHEL-73505,JIRA:RHEL-77808

setools

Jira:RHEL-29967

setroubleshoot

Jira:RHEL-68957

sg3_utils

Jira:RHEL-412

slapi-nis

Jira:RHEL-34186

scs

JIRA:RHEL-24523, JIRA:RHEL-30893,JIRA:RHEL-67712,JIRA:RHEL-35945,JIRA:RHEL-22389

sssd

JIRA:RHEL-50243,JIRA:RHEL-68319

stunnel

Jira:RHEL-33749

subscription-manager

Jira:RHEL-78003

systemtap

Jira:RHEL-29529, Jira:RHEL-64042

tbb

Jira:RHEL-33633

tmux

Jira:RHEL-62152

traceroute

Jira:RHEL-58449

trustee-guest-components

Jira:RHEL-73770

tuned

Jira:RHEL-79913

valgrind

Jira:RHEL-29535, Jira:RHEL-64056

virt-manager / Common

Jira:RHEL-62960

virt-v2v

Jira:RHEL-37687, Jira:RHEL-36712

virtio-win

Jira:RHEL-1300

virtio-win / virtio-win-prewhql

Jira:RHEL-53962, Jira:RHEL-12118, Jira:RHEL-935

virtiofsd

JIRA:RHEL-29027,JIRA:RHEL-87161

wpa_supplicant

Jira:RHEL-59010, Jira:RHEL-33750

xdp-tools

Jira:RHEL-45730

zlib

Jira:RHEL-24058

其他

JIRA:RHELDOCS-18402,JIRA:RHELDOCS-18869,JIRA:RHELDOCS-20020,JIRA:RHELDOCS-18761,JIRA:RHELDOCS-18997,JIRA:RHELDOCS-19415,JIRA:RHELDOCS-19417,JIRA:RHELDOCS-19988,JIRA:RHELDOCS-2010 0, JIRA:RHELDOCS-19 185, JIRA:RHELDOCS-19 191, JIRA:RHELDOCS-199 36, Jira:RHELDOCS-19 197, JIRA:RHELDOCS-192 63, JIRA:RHELDOCS-2001 4, JIRA:RHELDOCS -19863, JIRA:RHEL- 59102, JIRA:RHELDOCS -18585, JIRA:RHELDOCS- 18398, JIRA:RHELDOCS- 18522, Jira:RHELDOCS -18769, Jira:RHELDOCS- 19162, JIRA:RHELDOCS -19405, JIRA:RHELDOCS- 18532, JIRA:RHELD OCS-18880 , JIRA:RHELD OCS-18425 , JIRA:RHELDOCS -19579 , JIRA:RHELD OCS-18925 , JIRA:RHELD OCS-18776 , JIRA:RHELD OCS-16414 , JIRA:RHELDOCS -19411 , JIRA:RHELD OCS-16362, JIRA:RHELD OCS-18819 , JIRA:RHELD OCS-19059 , JIRA:RHEL DOCS-18472 , JIRA:RHELD OCS-19812 , JIRA:RHELD OCS-19842 , JIRA:RHELD OCS-19877 , JIRA:RHEL DOCS-19832 , JIRA:RHEL DOCS-20023 , JIRA:RHEL DOCS-20066 , JIRA: RHELDOCS-19210 , JIRA:RHEL DOCS-19664 , JIRA:RHEL DOCS-19516 , JIRA:RHEL DOCS-19583 , JIRA:RHEL DOCS-19825 , JIRA: RHELDOCS-19291 , JIRA:RHEL DOCS-20116 , JIRA:RHELDOCS-20166 , JIRA:RHELDOCS-20168 , JIRA:RHELDOCS-20169 , JIRA: RHELDOCS-20170 , JIRA:RHELDOCS-18902, Jira:RHELDOCS-19106, JIRA: RHELDOCS-18201 , JIRA: RHELDOCS-18770 , JIRA:RHELDOCS-17679 , JIRA:RHELDOCS-17679 , JIRA:RHELDOCS-19876 , JIRA:RHELDOCS-16800 , JIRA:RHELDOCS-17465 , JIRA:RHELDOCS-18408 , Jira:RHELDOCS-20058 , JIRA:RHELDOCS-19891 , JIRA:RHELDOCS-19968 , JIRA:RHELDOCS-20041 , JIRA:RHELDOCS-20042 , JIRA:RHELDOCS-20043 , JIRA:RHELDOCS-2008 0 , JIRA:RHEL-88550 , JIRA:RHELDOCS-19635 , JIRA:RHELDOCS-19009 , JIRA:RHELDOCS-19010 , JIRA:RHELDOCS-19071 , JIRA:RHELDOCS-19066, JIRA:RHELDOCS-18388, JIRA:RHELDOCS-18389 ,Jira:RHELDOCS-18390,Jira:RHELDOCS-17682 ,JIRA:RHELDOCS-19221,JIRA:RHELDOCS-19222,JIRA:RHELDOCS-19005,JIRA:RHELDOCS-190 94, JIRA:RHELDOCS-19267,JIRA:RHELDOCS-18965,JIRA:RHELDOCS-18839,JIRA:RHELDOCS-18818,JIRA:RHELDOCS-187 36, JIRA:RHELDOCS-18 492, JIRA:RHELDOCS-1 8485 , JIRA:RHELD OCS-18426, JIRA:RHELDOCS -18423, JIRA:RHELDOCS -18417, JIRA:RHELDOCS -18416, JIRA:RHELDOCS -18415 , JIRA:RHELDOCS-18 413, JIRA:RHELDOCS-184 12, JIRA:RHELDOCS -18411, JIRA:RHELD OCS-18410 , JIRA:RHELDOCS -18414, JIRA:RHELDOCS- 19811, JIRA:RHELDOCS -19051 , JIRA:RHELDOCS -18989, JIRA:RHELD OCS-19828 , JIRA:RHEL DOCS-19363, JIRA:RHELDOCS -20094 , JIRA:RHEL DOCS-20167 , JIRA:RHEL DOCS-18700 , JIRA:RHEL DOCS-18903 , JIRA:RHELD OCS-18904 , JIRA:RHELDOCS -18491 , JIRA:RHELD OCS-18672 , JIRA:RHELDOCS-18450 , JIRA:RHELPLAN-113995 , JIRA:RHEL DOCS-20147 , JIRA:RHEL DOCS-20283 , JIRA:RHELD OCS-16612 , JIRA:RHEL DOCS-19015 , JIRA: RHELDOCS-19172, JIRA:RHEL DOCS-19603 , JIRA:RHEL DOCS-18471 , JIRA:RHELD OCS-19770 , JIRA:RHEL DOCS-19539 , JIRA:RHEL DOCS-19734 , JIRA:RHEL DOCS-19948 , Jira:RHELDOCS-19496 , JIRA:RHELDOCS-19945

附录 B. 修订历史

0.1-5

2025 年 12 月 9 日星期二,Valentina Ashirova (vaashiro@redhat.com)

  • RHEL-18157 从技术预览移到完全支持的功能(容器)
0.1-4

2025 年 12 月 4 日星期四,Valentina Ashirova (vaashiro@redhat.com)

  • 更新了 Removed 功能 RHEL-22424 (Infrastructure 服务)
0.1-3

2025 年 11 月 18 日星期二,Valentina Ashirova (vaashiro@redhat.com)

0.1-2

2025 年 11 月 7 日星期五,Valentina Ashirova (vaashiro@redhat.com)

  • 更新了 RHEL-88550 (Shells 和命令行工具)
0.1-1

2025 年 10 月 29 日星期三,Marc Muehlfeld (mmuehlfeld@redhat.com)

0.1-0

2025 年 10 月 16 日星期四,Valentina Ashirova (vaashiro@redhat.com)

0.0-9

2025 年 9 月 23 日星期二,Gabriela Fialová(gfialova@redhat.com)

  • 添加了新支持的 RHEL-88550 (Shells 和命令行工具)
0.0-8

2025 年 9 月 23 日星期二,Gabriela Fialová(gfialova@redhat.com)

0.0-7

2025 年 9 月 11 日星期四,Gabriela Fialová(gfialova@redhat.com)

  • 添加了 Removed 功能 RHELDOCS-18904 (安装程序和镜像创建)
0.0-6

2025 年 9 月 2 日星期二,Gabriela Fialová(gfialova@redhat.com)

  • 添加了一个增强 RHEL-86165 (Storage)
  • 更新了 Architectures 部分
  • 更新了 Removed 功能 RHELDOCS-19071 (安全)
0.0-5

2025 年 8 月 25 日星期一,Marc Muehlfeld (mmuehlfeld@redhat.com)

0.0-4

Tue 12 Aug 2025, Gabriela Fialová(gfialova@redhat.com)

  • 添加了一个新的功能 RHELDOCS-20591 (编译器和开发工具)
0.0-3

Wed 30 Jul 2025, Gabriela Fialová(gfialova@redhat.com)

0.0-2

Tue 15 Jul 2025, Gabriela Fialová(gfialova@redhat.com)

  • 添加了一个新的功能 RHEL-101075 (编译器和开发工具)
  • 添加了已弃用的功能 RHELDOCS-20610 (Core 服务)
0.0-1

Tue 01 Jul 2025, Marc Muehlfeld (mmuehlfeld@redhat.com)

0.0-0

2025 年 5 月 20 日星期二,Gabriela Fialová(gfialova@redhat.com)

  • Red Hat Enterprise Linux 10.0 发行注记发布。

法律通告

Copyright © 2025 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.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部