10.1 发行注记
Release Notes for Red Hat Enterprise Linux 10.1
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 单击顶部导航栏中的 Create。
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 概述 复制链接链接已复制到粘贴板!
1.1. RHEL 10.1 中的主要变化 复制链接链接已复制到粘贴板!
安装程序和镜像创建
RHEL 安装程序的主要亮点:
- 新创建的用户默认将具有管理特权权限,除非您取消了选项。
- 现在,您可以使用新选项而不是时区图来设置所需的时区。
- 用于图形远程访问的远程桌面协议(RDP)取代了 VNC。
RHEL 镜像构建器的主要亮点:
- RHEL 镜像构建器具有一个新的 CLI 体验,作为技术预览提供
-
RHEL 镜像构建器
cockpit-composer软件包已被删除,并替换为新的cockpit-image-builder插件。 -
使用 RHEL 镜像构建器(如 AWS 或 KVM 格式)创建的系统镜像没有单独的
/boot分区。 - RHEL 镜像构建器现在支持 WSL2 镜像。
如需更多信息,请参阅 新功能和增强 - 安装程序和镜像创建。
安全性
系统范围的加密策略在所有策略中默认启用 post-quantum 加密(PQC)算法。
OpenSSL 3.5 引入了对 ML-KEM、ML-DSA 和 SLH-DSA post-quantum 算法的支持,并将混合 ML-KEM 算法添加到默认的 TLS 组列表中。
RHEL 10.1 引入了对 RPMv6 签名的支持。这个新格式在 RPM 软件包中启用多个签名。您可以使用 Sequoia PGP 工具使用 PQC 算法签署 RPM 软件包,并创建或验证 OpenPGPv6 签名。
如需更多信息,请参阅 新功能 - 安全性。
内核
查看 Red Hat Enterprise Linux 10.1 中内核的最显著更改。查看这些详情以确定变化如何与您的操作要求保持一致。
- 扩展以内核为导向的观察和能源跟踪。
-
将
perf和 BPF 功能与上游一致,以在支持的硬件上提供一致的可观察性。 -
扩展
可用的非和核心性能计数器。核心 - 添加了对 Intel RAPL 能源事件的支持。
- 添加了 Intel Trace Hub (NPK)设备 ID。
- 启用 AMD 每个内核能源跟踪。
-
使用
python-drgn和更新的崩溃工具现代化内核调试。 -
通过
rng-tools改进了熵生成,以在当前硬件生成之间提供更一致的性能分析。
动态编程语言、网页和数据库服务器
以下应用程序流的后续版本现在可用:
- Node.js 24
以下 Web 服务器的后续版本现在可用:
- Apache HTTP Server 2.4.63
如需更多信息,请参阅 新功能 - 动态编程语言、Web 和数据库服务器。
编译器和开发工具
系统工具链
以下系统工具链组件包括在 RHEL 10.1 中:
- GCC 14.3
- glibc 2.39
- annobin 12.99
- binutils 2.41
性能工具和调试器
RHEL 10.1 提供了以下性能工具和调试器:
- GDB 16.3
- Valgrind 3.25.1
- SystemTap 5.3
- Dyninst 13.0.0
- elfutils 0.193
- libabigail 2.8
性能监控工具
RHEL 10.1 中提供了以下性能监控工具:
- PCP 6.3.7
- Grafana 10.2.6
.NET 10.0 现在包括在 RHEL 中
Red Hat Enterprise Linux (RHEL)支持 .NET,它是一个通用的开发平台,具有自动内存管理和现代编程语言,可让您有效地构建高质量的应用程序。在这个版本中,增加了对最新版本 .NET 10.0 (Long-Term Support)的支持,扩展 RHEL 中提供的版本。其他支持的版本包括 .NET 9.0 (Standard-Term Support)和之前的长期支持版本 .NET 8.0。
如需更多信息,请参阅 .NET 10.0 RPM 软件包和 .NET 10.0 容器的发行注记
编译器工具集
RHEL 10.1 提供了以下编译器工具集:
GCC Toolset 15
- GCC 15.1
binutils 2.44
请注意,从版本 15 开始,GCC Toolset 中不提供
Annobin和dwz。
- LLVM Toolset 20.1.8
- Rust Toolset 1.88.0
- Go Toolset 1.24
有关详细的更改,请参阅 新功能 - 编译器和开发工具。
Web 控制台
cockpit 软件包已升级至版本 344,它提供了很多改进,最重要的是对 Patternfly 6 系统设计的 升级。
如需更多信息,请参阅 新功能 - Web 控制台。
1.2. 原位升级 复制链接链接已复制到粘贴板!
从 RHEL 9 原位升级到 RHEL 10
目前支持的原位升级路径包括:
在以下构架中,从 RHEL 9.6 到 RHEL 10.0 和 RHEL 9.7 到 RHEL 10.1:
- AMD 和 Intel 64 位构架(x86-64-v3)
64 位 ARM 架构(ARMv8.0-A)
重要对于 64 位 ARM 架构,只有运行
4k页大小内核的系统上才支持原位升级。如果系统使用64k页大小内核引导,Leapp 不支持原位升级。- IBM Power Systems, Little Endian(POWER9)
- 64 位 IBM Z (IBM z15 或 IBM LinuxONE III 或更高版本)
如需更多信息,请参阅支持的 Red Hat Enterprise Linux 原位升级路径。
有关执行原位升级的步骤,请参阅 从 RHEL 9 原位升级到 RHEL 10。
主要改进和程序错误修复包括:
-
修复了在使用
fapolicyd软件框架的系统上进行原位升级的问题。 -
在执行升级时禁用
localpkg_gpgcheckDNF 选项,允许安装捆绑的leapp-deps-el10和leapp-repository-deps-el10metapackages。 - 作为技术预览介绍 LiveMode 功能。LiveMode 允许您使用标准引导过程进行升级。您还可以使用 LiveMode 进行故障排除和测试。如需更多信息,请参阅使用 LiveMode 配置升级。
-
在使用已弃用的
network-legacydracut 模块的系统上禁止升级以防止内核 panic。 - 在原位升级过程中迁移 SSSD 配置。
- 在 Amazon Web Services (AWS)、Azure 和 Google Cloud 上使用 Red Hat Upgrade Infrastructure (RHUI)的 PAYG RHEL 系统上启用升级。
从 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 中的应用程序可帮助您提高性能、快速解决问题、发现安全问题以及快速部署和配置复杂应用程序。一些最常用的应用程序有:
- Registration Assistant
- Kickstart Generator
- Red Hat Product Certificates
- Red Hat CVE Checker
- Kernel Oops Analyzer
- Red Hat Satellite Upgrade Helper
- Load Balancer Configuration Tool
- Ceph Placement Groups (PGs) per Pool Calculator
- Red Hat Out of Memory Analyzer
- Postfix Configuration Helper
- Red Hat IdM Upgrade Helper
- NetworkManager 命令生成器
1.4. 其他资源 复制链接链接已复制到粘贴板!
Red Hat Insights 现在 是红帽 Lightspeed。这是仅在名称里更改,您依赖 Red Hat Insights 名称下的所有相同产品功能、功能和功能都会保留在 Red Hat Lightspeed 名称下。红帽 Lightspeed 包括在所有 RHEL 订阅中,您可以主动识别、检查和解决已知的技术问题。有关如何安装客户端并将您的系统注册到该服务的说明,请参阅 Red Hat Lightspeed 文档页面。
公共发行注记包括访问原始跟踪票据的链接,但私有发行注记无法查看,因此不包括链接。[1]
第 2 章 构架 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux 10.1 与内核版本 6.12.0-124.8.1 一起分发,它支持最低版本所需的架构(在括号中声明):
- AMD 和 Intel 64 位构架(x86-64-v3)
- 64 位 ARM 架构(ARMv8.0-A)
- IBM Power Systems, Little Endian (POWER10 及更高版本)
- 64 位 IBM Z (IBM z15 或 IBM LinuxONE III)
请确定为每个构架购买正确的订阅。
第 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 硬盘驱动器创建可引导安装介质。您还可以使用 Image Builder 工具创建自定义的 RHEL 镜像。有关镜像构建器的更多信息,请参阅编写自定义的 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.1 一起分发的内核有显著变化的总结。这些更改包括添加或更新的 proc 条目、、和 sysctlsysfs 默认值、引导参数、内核配置选项或任何可见的行为更改。
新内核参数
indirect_target_selection=
[X86, Intel] 对 Intel CPU 上的 Indirect Target Selection (ITS)问题控制。IBPB 修复需要更新的 microcode。
值:
on(默认)- 启用缓解。
off- 禁用缓解方案。
force- 强制 ITS 错误状态并部署默认的缓解措施。
vmexit- 仅为客户机/主机隔离部署缓解。
stuff- 部署 retpoline 时,请使用 RSB-fill;否则使用默认的缓解方案。
请参阅: Documentation/admin-guide/hw-vuln/indirect-target-selection.rst。
sdw_mclk_divider=
[SDW, Intel] 当 BIOS 没有正确提供时钟率时,为 Intel SoundWire 总线指定 MCLK 划分器。
thp_shmem=
[KNL, MM] 控制内部 shmem 挂载的每个大小的默认巨页策略。
格式:
& lt;size>[KMG] & lt;size>[KMG]:<policy>; & >
lt;size>[KMG]-<size>[KMG]:<policy
策略: 始终将、继承、永不、in_size、建议.
您可以多次指定此项来为多个 THP 大小设置策略。请参阅: Documentation/admin-guide/mm/transhuge.rst。
transparent_hugepage_shmem=
[KNL, MM] 控制内部 shmem 挂载的巨页分配策略。
值: 始终是,within_size,advise,never,deny,force.请参阅: Documentation/admin-guide/mm/transhuge.rst。
tsa=
[X86, AMD] 控制缓解 AMD CPU 中的 Transient Scheduler Attacks。
值:
off- 禁用缓解。
on(默认)- 启用缓解措施。
user- 仅缓解用户/内核转换。
vm- 仅缓解客户机/主机转换。
有关指南,请参阅厂商文档以了解临时调度程序攻击。
更新的内核参数
init=
[KNL] Format: <full_path > 将指定的二进制文件而不是 /sbin/init 作为系统 init 进程运行。
intremap=
[X86-64, Intel-IOMMU, EARLY]
值:
on- 启用中断重新映射(默认)。
off- 禁用中断重新映射。
kvm-arm.mode=
[KVM, ARM, EARLY] 选择 Arm KVM 虚拟化模式。
值:
nvhe- 基于 nVHE 的标准模式,无需受保护的客户机.
受保护-
根据硬件支持,支持主机中带有私有状态的客户机,使用 VHE 或 nVHE。在主机上禁用 kexec 和休眠。要在 VHE 硬件上强制 nVHE,将
arm64_sw.hvhe=0 id_aa64mmfr1.vh=0添加到命令行。 嵌套- 基于 VHE 的模式和嵌套虚拟化。需要 Armv8.4 硬件(FEAT_NV2)。试验性;非常谨慎使用。默认为基于硬件支持的 VHE 或 nVHE。
kvm-arm.vgic_v3_group0_trap=
[KVM, ARM, EARLY] Trap 客户机访问 GICv3 group-0 注册到主机,以便更严格的隔离和调试。
libata.force=
[SATA/ATA] Per-port 选项:
- New:
external -
将端口标记为外部(支持热插拔)。其他选项仍可用(例如
max_sec_lba48,[no]lpm,[no]setxfer)。
nohz
[KNL] 在单个任务运行时禁用 tick,并卸载其他内核工作,如 RCU 回调。等同于 nohz_full。一个 reidual 1 Hz tick 被卸载到 workqueues;通过全局工作队列 CPU 掩码将把它们限定给内务 CPU。另请参阅 rcu_nocbs= 和 isolcpus=。
pci=
[PCI] ACS 配置示例包括设备选择器: pci=config_acs=10x@pci:0:0:: Configure supported devices to enable P2P Request Redirect, disable Translation Blocking, and leave Source Validation unchanged as the specified device path。
pcie=
[PCIE] New wide flag: notph:: Disable PCIe TLP Processing Hints 在启用了 CONFIG_PCIE_TPH 时支持。
pcie_aspm=
[PCIE] Forcibly 启用或禁用 PCIe Active State Power Management。行为保持不变;根据需要与 pcie= 标志一起使用。
preempt=
[KNL, Scheduler] 抢占控制模式。新特性: lazy:: Scheduler 控制模式,类似于 full。该任务在调度程序强制抢占之前获得一个 HZ 勾号。当任务返回到用户空间时,会计算抢占。
print-fatal-signals=
[KNL] 为致命信号启用调试输出。
skew_tick=
[KNL, EARLY] Offset 每个 CPU 的定期计时器空循环,以减少大型系统和 CONFIG_MAXSMP 中的竞争。
slub_debug=
[MM] SLUB 分配器调试; slub_nomerge 保留一个传统的别名。请参阅 Documentation/mm/slub.rst。
spectre_v2=
[X86] 选择特定的缓解方案不会强制启用用户空间缓解方案。选择 on 启用内核保护并缓解用户对用户的任务攻击。选择 off 会同时禁用。
tsc=
[X86] 禁用 TSC 的时钟源稳定性检查。
值:
可靠- 将 TSC 时钟源标记为可靠。
noirqtime- 不要将 TSC 用于 IRQ 核算。
不稳定- 将 TSC 时钟源标记为不稳定。
nowatchdog- 禁用 clocksource watchdog。
recalibrate- 如果 TSC 频率来自 MSR 或 CPUID (0x15),则 Recalibrate 针对 HPET 或 PM 计时器;如果差异超过 500 ppm,则警告。
watchdog- 在 TSC 值得信任的系统中,使用 TSC 作为 watchdog 时钟源。
注意:以前的 tsc=nowatchdog 会阻止 watchdog。稍后的 tsc=nowatchdog 覆盖它;内核会记录任何阻止或覆盖。
transparent_hugepage_shmem=
[KNL, MM] 值: always,within_size,advise,never,deny,force.控制内部 shmem 挂载策略。请参阅 Documentation/admin-guide/mm/transhuge.rst。
mitigations=
[multi-arch] 选择 off 会禁用一组内核和用户空间缓解方案。equivalence 列表现在在 X86 上包括 indirect_target_selection=off,除了现有条目,如 Arm64, gather_data_sampling=off,kvm.nx_huge_pages=off,l1tf=off,mds=off, 和相关的 X86 标志。
更新了 sysctl 参数
timer_migration
当设置为非零值时,内核会尝试将计时器从空闲 CPU 中移出,以帮助这些 CPU 处于低功耗状态更长。
默认: 1 (启用)。
第 5 章 设备驱动程序 复制链接链接已复制到粘贴板!
5.1. 新驱动程序 复制链接链接已复制到粘贴板!
| 描述 | Name | 仅限于构架 |
|---|---|---|
| Intel NPU (Neural Processing Unit)的驱动程序 - 1.0.0 | intel_vpu | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| MediaTek 设备的蓝牙支持ver 0.1 | btmtk | AMD 和 Intel 64 位构架, 64 位 ARM 架构 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| SNP SVSM vTPM (虚拟受信任的平台模块)驱动程序 | tpm_svsm | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| AMD AE4DMA 驱动程序 | ae4dma | AMD 和 Intel 64 位构架 |
| AMD PassThru DMA 驱动程序 | ptdma | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| 固件控制访问框架 | fwctl | AMD 和 Intel 64 位构架, 64 位 ARM 架构 |
| mlx5 ConnectX 固件控制驱动程序 | mlx5_fwctl | AMD 和 Intel 64 位构架, 64 位 ARM 架构 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| Chrontel ch7006 TV encoder 驱动程序 | ch7006 | AMD 和 Intel 64 位构架 |
| QEMU 模拟设备的 Cirrus 驱动程序 | cirrus-qemu | AMD 和 Intel 64 位构架 |
| DRM GPUSVM | drm_gpusvm | AMD 和 Intel 64 位构架, 64 位 ARM 架构 |
| 用于面板后端的 quirks 覆盖 | drm_panel_backlight_quirks | AMD 和 Intel 64 位构架 |
| Silicon Image sil164 TMDS 传输器驱动程序 | sil164 | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| Corsair Void headsets 的 HID 驱动程序 | hid-corsair-void | AMD 和 Intel 64 位构架 |
| Intel Touch Host Controller 驱动程序 | intel-thc | AMD 和 Intel 64 位构架 |
| Intel QuickI2C 驱动程序 | intel-quicki2c | AMD 和 Intel 64 位构架 |
| Intel QuickSPI 驱动程序 | intel-quickspi | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| Conexant cx231xx USB 视频设备驱动程序 - 0.0.3 | cx231xx | AMD 和 Intel 64 位构架 |
| Conexant CX25840 音频/视频解码器驱动程序 | cx25840 | AMD 和 Intel 64 位构架 |
| cx23415/6/8 驱动程序 | cx2341x | AMD 和 Intel 64 位构架 |
| 各种 TV 和 TV+FM 无线调器的驱动程序 | Tuner | AMD 和 Intel 64 位构架 |
| Videobuf2 DMA scatter/gather 内存处理 | videobuf2-dma-sg | AMD 和 Intel 64 位构架 |
| I2C Hauppauge EEPROM 解码器驱动程序 | tveeprom | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| Aeonsemi AS21xxx PHY 驱动程序 | as21xxx | AMD 和 Intel 64 位构架 |
| Linux 的 Intel MLD 无线驱动程序 | iwlmld | AMD 和 Intel 64 位构架, 64 位 ARM 架构 |
| MaxlinearxdgL86110 PHY 驱动程序 | mxl-86110 | AMD 和 Intel 64 位构架 |
| Microchip PHY RDS PTP 驱动程序 | microchip_rds_ptp | AMD 和 Intel 64 位构架 |
| Realtek PHY 驱动程序 | realtek | AMD 和 Intel 64 位构架 |
| 用于 Geschwister Schneider 和 candleLight USB CAN 接口的套接字 CAN 驱动程序 | gs_usb | AMD 和 Intel 64 位架构、IBM Power 系统(ppc64le) |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| AMD 3D V-Cache Performance Optimizer 驱动程序 | amd_3d_vcache | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| Thunderbolt 3 USB Type-C Alternate Mode | typec_thunderbolt | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| 用户空间中的 VDPA 设备 | vduse | AMD 和 Intel 64 位构架, 64 位 ARM 架构 |
5.2. 更新的驱动程序 复制链接链接已复制到粘贴板!
| 描述 | Name | 当前版本 | 仅限于构架 |
|---|---|---|---|
| Broadcom MegaRAID SAS 驱动程序 | megaraid_sas | 07.734.00.00-rc1 | AMD 和 Intel 64 位架构, 64 位 ARM 架构, IBM Power Systems (ppc64le) |
| Cisco FCoE HBA 驱动程序 | fnic | 1.8.0.2 | AMD 和 Intel 64 位构架 |
| Microchip Smart 系列控制器的驱动程序 | smartpqi | 2.1.34-035 | AMD 和 Intel 64 位架构, 64 位 ARM 架构, IBM Power Systems (ppc64le) |
| Emulex LightPulse Fibre Channel SCSI 驱动程序 | lpfc | 0:14.4.0.9 | AMD 和 Intel 64 位架构, 64 位 ARM 架构, IBM Power Systems (ppc64le) |
| LSI MPT Fusion SAS 3.0 设备驱动程序 | mpt3sas | 52.100.00.00 | AMD 和 Intel 64 位架构, 64 位 ARM 架构, IBM Power Systems (ppc64le) |
| MPI3 Storage Controller 设备驱动程序 | mpi3mr | 8.15.0.5.50 | AMD 和 Intel 64 位构架 |
第 6 章 新功能及功能增强 复制链接链接已复制到粘贴板!
此版本添加了以下主要新功能和改进。
6.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
fips=1 的新引导菜单条目添加到 ISO 安装中
在这个版本中,DVD 和 Boot ISO 镜像安装提供了一个新的引导菜单条目来设置 fips=1 内核引导选项。这简化了这个过程,如在 RHEL 安装过程中启用 FIPS 模式,可确保系统使用 FIPS 批准的算法生成所有密钥,并持续监控测试。通过使用这个引导选项,您可以使用 fips=1 内核参数开始安装,并可以联邦信息处理标准(FIPS) 140 要求为目标。
现在,RHEL 中提供了软重启
systemd 现在提供软重启,这是 重启 用户空间的功能,而无需系统完全停机。主要改进包括:
- 减少停机时间:执行软重启以在无需完全重启的情况下更新系统状态,从而有助于计划进行维护和故障排除。
-
灵活的补丁:应用某些用户空间更新,如
openssl、glibc和dbus-broker,而无需完全重启系统。 - 镜像模式集成:在镜像模式中,软重启任何更新时重启用户空间,或者无缝切换到暂存更新(如果存在),不包括内核更改。
- 改进了不可变体验:软重启通过减少频繁完全重启的需求,简化了在不可变系统上使用新镜像版本。
已知限制:
- 内核模块:对内核模块的更改可能会导致软重启后与运行的内核不匹配。
- 内核和固件更新 :Soft 重启不会应用内核、kpatch 或固件初始化更改。
Jira:RHELDOCS-20453[1]
rpm 命令在安装环境中现在可用
在以前的版本中,rpm 命令没有包括在安装环境中。在这个版本中,rpm 命令被包括。用户在安装 RHEL 时可以使用这个命令,例如在 %post Kickstart 脚本中。
Jira:RHEL-101695[1]
蓝图文件自定义现在支持从外部源引用文件的 URI 字段
在这个版本中,为蓝图文件自定义结构添加了 URI 字段支持。因此,您可以从外部位置引用和源文件,而不只是直接包含在蓝图中的源文件,从而为构建系统提供更灵活的自定义,以及更适应的构建体验。
Jira:RHELDOCS-21016[1]
RHEL 镜像构建器支持一个新的镜像类型 vagrant-libvirt for vagrant
在这个版本中,RHEL 镜像构建器支持 libvirt hypervisor,您可以使用 Vagrant 轻松运行 RHEL 虚拟机。此功能增强提供预配置的镜像,以确保一致且简化的设置。它还为 Vagrant 框中的 vagrant 用户授予 sudo 特权,从而更轻松地管理和运行管理任务。在 Vagrant 环境中使用 RHEL 虚拟机时,这些增强功能提供了更加高效且无缝的体验。
Jira:RHELDOCS-21025[1]
RHEL Image Builder 现在支持 WSL2 镜像
现在,您可以使用 RHEL 镜像构建器为 Linux (WSL2)创建 Windows 子系统。镜像类型以 wsl 格式提供,并使用镜像,通过双击生成的文件来部署镜像。
Jira:RHELDOCS-20633[1]
RHEL Image Builder GUI 支持模块化内容发现
从 RHEL 9.7 开始,RHEL Image Builder 图形用户界面(GUI)支持模块化的内容发现。这个功能引进了以下改进:
- 在创建 RHEL 操作系统镜像时,您可以使用 RHEL Image Builder GUI 发现并包含来自各种存储库的模块化内容,包括 RHEL AppStream 和第三方存储库,如 Extra Packages for Enterprise Linux (EPEL)。
-
增强的 RHEL 中的模块化支持。Application Streams 使用 DNF 模块和
modulemd元数据来提供灵活的软件包管理。您可以在支持默认流和配置集的模块中指定版本流和用例配置集。 -
DNF 模块化实施更新。指定 RPM 组的
@字符语法可启用和安装模块流,从而为 Kickstart 文件提供兼容性。
Jira:RHELDOCS-21026[1]
image-installer 为 fips=1提供一个新的引导菜单条目
在这个版本中,image-installer ISO 镜像类型提供一个新的引导菜单条目,用于在安装过程中设置 fips=1 内核引导选项。这简化了这个过程,如 RHEL 10 中,您无法将安装的系统切换到 FIPS 模式,且您必须在开始安装时将 fips=1 添加到内核命令行。通过为安装设置 fips=1,您可以针对系统符合联邦信息处理标准(FIPS) 140 要求。
/etc/fstab 中的逻辑卷设备现在在 fs_spec 字段中使用 UUID
安装后,系统使用 fs_spec 字段中的 UUID 在 /etc/fstab 中写入逻辑卷(LV)设备。这个更改有以下优点:
-
确保
/etc/fstab中所有设备条目的一致性。 -
支持 LV 或卷组(VG)重命名而不更改
/etc/fstab。 -
使用 LUKS 重新加密设备后,保持
/etc/fstab有效。 - 保留 root (/)的正确映射,并在重新置备过程中保留其他挂载,即使设备映射器路径发生了变化。
- 提供可预测和可移植的配置,因为 UUID 是存储在文件系统超级块中的全局唯一标识符。
Jira:RHEL-87651[1]
6.2. 安全性 复制链接链接已复制到粘贴板!
RHEL 10.1 crypto-policies 默认启用 PQC 算法
RHEL 10.1 中的系统范围的加密策略扩展对 post-quantum 加密(PQC)的支持,并在所有预定义的策略中默认启用 PQC 算法。与 RHEL 10.0 中的版本相比,最显著改进和修复包括:
- 混合模块型密钥封装机制(ML-KEM)和纯模块型数字签名标准(ML-DSA)在 LEGACY、DEFAULT 和 FUTURE 加密策略中启用,具有最高优先级。
- 新的 NO-PQ 子策略简化了关闭 PQC 算法。
- TEST-PQ 子策略不再启用 PQC 算法作为技术预览,但您可以在 OpenSSL 中启用纯 ML-KEM。
- FIPS 加密策略启用混合 ML-KEM 和 pure ML-DSA post-quantum 加密算法。
- 新的 OpenSSL 组选择语法将 post-quantum 组优先于类组。早期版本的行为只能通过禁用所有 PQ 组来实现。
- PQC 算法为所有策略中的 Sequoia PGP 工具启用。
-
默认情况下,为 GnuTLS TLS 连接启用 ML-DSA 算法,您可以通过
MLDSA44、MLDSA65和MLDSA87值来控制它们。 - ML-DSA-44、ML-DSA-65 和 ML-DSA-87 PQC 算法为所有加密策略中的 NSS TLS 连接启用。
-
为 NSS TLS 协商启用了
mlkem768x25519、secp256r1mlkem768和secp384r1mlkem1024混合 ML-KEM 组。
JIRA:RHEL-113008,JIRA:RHEL-97763,JIRA:RHEL-103962,JIRA:RHEL-86059,JIRA:RHEL-101123,Jira:RHEL-85078,JIRA:RHEL-98732,JIRA:RHEL-106868,JIRA:RHEL-92148
ad-SUPPORT-LEGACY 子策略重新添加到 crypto-policies
AD-SUPPORT-LEGACY 加密子策略(用于支持传统的 RC4 加密)与过时的 Active Directory 实现互操作性,被重新添加到 RHEL。
Jira:RHEL-93323[1]
openssl rebase 到 3.5
OpenSSL 被 rebase 到上游版本 3.5。此版本提供重要的修复和增强,最重要的是:
- 添加了对 ML-KEM、ML-DSA 和 SLH-DSA 后量算法的支持。
- 将混合 ML-KEM 算法添加到默认的 TLS 组列表中。
- 增强的 TLS 配置选项。
- 根据 IETF RFC 9000 草案添加了对 QUIC 传输协议的支持。
- 添加了对 EVP_SKEY 数据结构形式不透明对称密钥对象的支持。
- 禁用 SHA-224 摘要。
-
SHAKE-128 和 SHAKE-256 实现不再具有默认的摘要长度。因此,这些算法不能与
EVP_DigestFinal/_ex ()函数一起使用,除非设置了xoflen参数。 - 添加了客户端在 TLS 1.3 连接中发送多个密钥共享的功能。
NSS rebase 到 3.112
NSS 加密工具包软件包已更新到上游版本 3.112,它提供很多改进和修复。最值得注意的是,以下内容:
- 添加了对基于 Module-Lattice 的数字签名算法(ML-DSA)的支持,它是一个 post-quantum 加密(PQC)标准。
- 添加了对 MLKEM1024 键封装机制的 SSL 的混合支持。
以下已知问题发生在此版本中:更新 NSS 数据库密码会破坏 ML-DSA seed。此已知问题已在公告中解决。如需更多信息,请参阅 NSS 数据库密码更新不再破坏 ML-DSA seeds。
libreswan rebase 到 5.3
libreswan 软件包被 rebase 到 5.3 上游版本。
Jira:RHEL-102733[1]
gnutls rebase 到 3.8.10
gnutls 软件包被 rebase 到 3.8.10 上游版本,其中包括以下改进:
-
您可以使用
gnutls优先级文件中的cert-compression-alg配置选项设置 TLS 证书压缩方法。 -
您可以使用
draft-ietf-lamps-dilithium-certificates-12文档中定义的 ML-DSA 私钥格式的所有变体。 - 您可以在 TLS 中使用 ML-DSA-44、ML-DSA-65 和 ML-DSA-87 签名算法。
-
您可以使用 PKCSxdg 模块来覆盖默认的加密后端作为技术预览。您可以通过在系统范围的配置中指定
[provider]部分来设置路径并固定到模块来测试此功能。
Jira:RHEL-102557[1]
Sequoia PGP 已更新,以支持 OpenPGP v6
在这个版本中,sequoia-sq 和 sequoia-sqv 可以处理 post-quantum 加密(PQC)密钥。rpm-sequoia 软件包现在支持 OpenPGP v6 签名的验证。因此,您可以使用符合 Commercial National Security Algorithm Suite (CNSA) 2.0 标准的量子数字签名。
Jira:RHEL-101952, Jira:RHEL-101906, Jira:RHEL-101905, Jira:RHEL-92148
selinux-policy rebase 到 42.1
selinux-policy 软件包被 rebase 到上游版本 42.1。此版本包含许多修复和增强,包括软件包改进。值得注意的是,与 systemd 生成器相关的 SELinux 类型已添加到 SELinux 策略中。
openssl 支持 sslkeylogfile
OpenSSL 支持 TLS 的 sslkeylogfile 格式。因此,您可以通过设置 SSLKEYLOGFILE 环境变量来记录 SSL 连接生成的所有 secret。
启用 SSLKEYLOGFILE 变量会带来明确的安全风险。在 SSL 会话中记录交换密钥可让任何人对文件具有读取访问权限,以解密通过该会话发送的应用程序流量。仅在测试和调试环境中使用此功能。
NSS 支持 ML-DSA 密钥
在这个版本中,网络安全服务(NSS)数据库支持使用基于 Module-Lattice 的数字签名算法(ML-DSA)密钥。ML-DSA 是美国国家标准与技术研究院(NIST)批准的新签名算法,以免于来自加密机机机(CRQC)的攻击。
混合 ML-KEM 加密在 FIPS 模式下工作
在这个版本中,在 RHEL 的 FIPS 模式中支持混合模块的基于密钥封装机制(ML-KEM) post-quantum 加密算法。当系统以 FIPS 模式运行时,OpenSSL 可以从 FIPS 供应商获取新混合 post-quantum 组一部分的 Elliptic Curve Diffie-Hellman (ECDH)部分。因此,OpenSSL 库对混合子密钥交换的 ECDH 部分使用 FIPS 兼容加密。
OpenSSL 3.5 为 ML-KEM 和 ML-DSA 使用标准格式
在 RHEL 10.0 中,oqsprovider 库对基于 Module-Lattice 的 Key-Encapsulation Mechanism (ML-KEM)和基于 Module-Lattice Signature Algorithm (ML-DSA)私钥使用预标准格式。当 rebase 到 OpenSSL 3.5 时,您必须使用以下命令将 ML-KEM 和 ML-DSA 密钥转换为标准格式:
# openssl pkcs8 -in <old_private_key> -nocrypt -topk8 -out <standard_private_key>
将 <old_private_key > 替换为非标准私钥的路径,将 & lt;standard_private_key > 替换为保存标准密钥的路径。
SCAP 安全指南 rebase 到 0.1.78
如需更多信息,请参阅 SCAP 安全指南发行注记。
与 EPEL 软件包相关的 SELinux 策略模块在 CRB 存储库中移到 -extra 子软件包
在 RHEL 10.0 中,与 Extra Packages for Enterprise Linux (EPEL)存储库中包含的软件包相关的 SELinux 策略模块,而不是任何 RHEL 软件包都从 selinux-policy 软件包移到 selinux-policy-epel 软件包中。这减少了 selinux-policy 的大小,使系统能够更快地执行操作,如重建和加载 SELinux 策略。
在 RHEL 10.1 中,selinux-policy-epel 的模块被移到 RHEL CodeReady Linux Builder (CRB)存储库中的以下 -extra 子软件包中:
-
selinux-policy-targeted-extra -
selinux-policy-mls-extra
当用户启用 EPEL 存储库时,这个更改启用了 -extra SELinux 策略模块的自动安装。
setroubleshoot-server 不再需要 initscripts
在此次更新之前,setroubleshoot-server SELinux 诊断工具的 %post 和 %postun scriptlets 称为 /sbin/service。有了这个更新,scriptlets 现在直接调用 auditctl 来重新加载 auditd 服务,并绕过 /sbin/service 的使用。此功能增强简化了依赖项结构,并简化了 scriptlet 的执行。
OpenSSH 忽略 known_hosts中的无效的 RSA hostkeys
在此次更新之前,如果 known_hosts 只包含错误的 hostkey,则 SSH 连接会失败并显示错误的 hostkey:在 OpenSSH 收到服务器 hostkey 时无效密钥长度 消息,即使服务器有有效的 hostkeys 可用。在这个版本中,OpenSSH 会忽略因为 known_hosts 文件中太短的 RSA hostkeys 无效。因此,OpenSSH 接收新密钥并可以建立连接,而不是失败的 SSH 连接。
Jira:RHEL-83644[1]
三个 RHEL 服务从 SELinux permissive 模式中删除
RHEL 服务的以下 SELinux 域已从 SELinux permissive 模式中删除:
-
gnome_remote_desktop_t -
pcmsensor_t -
samba_bgqd_t
在以前的版本中,最近添加到 RHEL 10 的软件包中的这些服务被临时设置为 SELinux permissive 模式,允许在系统的其余部分处于 SELinux enforcing 模式时收集有关附加拒绝的信息。现在,这个临时设置已被删除,因此这些服务现在在 SELinux enforcing 模式下运行。
Jira:RHEL-82672[1]
gnutls 在 TLS 连接中支持 ML-DSA 密钥。
在这个版本中,GnuTLS 库支持在 TLS 1.3 连接中使用带有 Module-Lattice-Based digital Signature Algorithm (ML-DSA)密钥的 X.509 证书。为了防止量子计算机攻击,证书链和 TLS 握手必须使用 post-quantum 算法进行身份验证,如 ML-DSA。
OpenSSH 服务器支持 Kerberos 身份验证指标
在 Match 配置中,OpenSSH 服务器支持来自 Kerberos 票据的身份验证指标。如果在 sshd 配置中定义 GSSAPIIndicators 选项,则带有指示器但与策略不匹配的 Kerberos 票据将被拒绝。如果至少配置一个指示符,无论是访问还是拒绝,在没有验证指示器的情况下,在没有验证指标的情况下的票据都会被明确拒绝。如需更多信息,请参阅您系统上的 sshd_config (5) 手册页。
RHEL 10.1 中通常提供 TLS 的 DNS
加密 DNS (eDNS)通常可使用 DNS-over-TLS (DoT)协议来保护所有 DNS 通信。您可以使用 eDNS 在引导时保护新的 RHEL 安装,这样可保证不会发送纯文本 DNS 流量。您还可以将现有 RHEL 系统转换为使用 eDNS。
要执行带有 eDNS 的新安装,请使用内核命令行指定启用了 DoT 的 DNS 服务器。如果您需要一个自定义 CA 证书捆绑包,则您只能通过在 Kickstart 文件中使用 %certificate 部分来安装它。目前,自定义 CA 捆绑包只能通过 Kickstart 安装来安装。
在现有系统上,将 NetworkManager 配置为使用新的 DNS 插件 dnsconfd,后者为 eDNS 管理本地 DNS 解析器(unbound)。添加内核参数来为早期引导过程配置 eDNS,并选择性地安装自定义 CA 捆绑包。
因此,您可以使用 DoT 协议来加密所有 RHEL DNS 流量端到端,并配置策略以防止任何回退到不安全的协议。如需了解更多详细信息,请参阅 使用加密 DNS 保护系统 DNS 流量。
Jira:RHELDOCS-21104[1]
新软件包: fips-provider-next
fips-provider-next 软件包提供下一版本 FIPS 提供程序,该提供程序提交至国家标准与技术研究院(NIST)进行验证。默认情况下不安装软件包,因为 openssl-fips-provider 软件包是经过验证的 OpenSSL FIPS 供应商。从 openssl-fips-provider 切换到 fips-provider-next :
# dnf swap openssl-fips-provider fips-provider-next
Jira:RHEL-105014[1]
rsyslog imuxsock 提供了新的 ratelimit.discarded 计数器
在这个版本中,imuxsock Rsyslog 模块包括一个新的计数器 ratelimit.discarded,它跟踪因为 UNIX 套接字速率限制而丢弃的消息数量。此增强为管理员提供对消息丢失的可见性,因为速率限制,使它们能够微调速率限制设置,并防止关键日志被丢弃。
Jira:RHEL-96589[1]
SELinux 策略为 qgs 守护进程添加规则和类型
qgs 守护进程添加到带有 linux-sgx 软件包的 RHEL 中,它支持 TDX 机密虚拟化。当客户机操作系统在测试虚拟机(VM)时,qgs 守护进程通过 UNIX 域套接字与 QEMU 通信。为了实现此目的,SELinux 策略会添加新的 qgs_t 类型、访问规则和权限。
audit.cron 有助于设置基于时间的 auditd 日志轮转
在这个版本中,auditd.cron 文件已添加到 审计软件包中。此增强提供了使用现有工具配置基于时间的 auditd 日志轮转的明确记录示例。因此,管理员有一个简单的官方指南,根据时间设置 auditd 日志轮转。
Jira:RHEL-77141[1]
SELinux 策略中限制的其他服务
此更新将额外的规则添加到限制以下 systemd 服务的 SELinux 策略中:
-
switcheroo-control -
tuned-ppd
因此,这些服务不再使用 unconfined_service_t SELinux 标签运行,这违反了 CIS 服务器级别 2 基准 "Ensure No Daemons are Unconfined by SELinux" 规则,并在 SELinux enforcing 模式下成功运行。
Jira:RHEL-69450, Jira:RHEL-83267
rsyslog imfile 提供新的 deleteStateOnFileMove 选项
在这个版本中,新的 deleteStateOnFileMove 参数已被添加到 imfile 模块中,作为模块级别和 per-action 选项提供。当监控日志文件被轮转或移动时,这个增强解决了在 spool/ 目录中累积的孤立状态文件的问题。通过启用此参数,您可以在移动日志文件时自动清理这些过时的文件,防止磁盘空间被浪费并简化管理。
Jira:RHEL-92757[1]
6.3. 软件管理 复制链接链接已复制到粘贴板!
RPM 支持 spec-local 文件属性和依赖项生成器
文件属性及其依赖项生成器通常在构建使用这些属性的软件包之前必须安装的独立软件包中提供。但是,您可能需要 file 属性在构建附带此属性的软件包期间生效。您可能还需要只用于构建软件包的 file 属性,而无需提供属性。
在这个版本中,您可以通过执行以下操作注册 spec-local 文件属性和生成器:
-
定义
%_local_file_attrs宏。%_local_file_attrs接受以冒号分隔的新属性名称列表,以直接在spec文件中注册。 -
为每个属性定义一个或多个依赖项生成器宏,如
%__NAME_provides或%__NAME_path,其中NAME是本地文件属性的名称。
RPM 随后在构建 spec 文件时将文件属性用于依赖项生成。因此,您可以创建不一定要安装的构建时文件属性。
例如,以下 spec 文件片段使用与您的软件包源捆绑的 foobar.sh 脚本为每个打包文件生成提供:
Source1: foobar.sh
[...]
%define _local_file_attrs foobar
%define __foobar_provides %{SOURCE1}
%define __foobar_path .*
RPM 在安装过程中记录原始软件包的校验和
在这个版本中,RPM 会在安装过程中记录整个 .rpm 软件包的 SHA256 和 SHA512 摘要。然后,您可以从 RPM 数据库检索这些摘要,以验证安装的软件包是否与特定的 .rpm 文件对应。因此,您可以通过重新验证安装的软件包集是否与位位(位位,一组已知 .rpm 软件包的集合)来改进 RHEL 系统的完整性,如 DNF 存储库中可用的软件包。
要输出安装的软件包摘要,请使用以下命令:
$ rpm -q --qf "[%{packagedigestalgos:hashalgo} %{packagedigests}\n]" <package_name>
您还可以通过配置新的 %_pkgverify_digests 宏来自定义数据库中记录哪些摘要类型,例如:
%_pkgverify_digests 8:10
在 dnf 事务过程中报告系统时钟偏移
在系统和授权服务器之间显著时钟偏移会使内容存储库不可用,即使在正确注册的系统上也是如此。很难进行故障排除,特别是当负偏移在以后启动权利时。
在这个版本中,当 subscription-manager 检测到时钟偏移大于 2 秒时,在 dnf 事务过程中将以下信息输出到 stdout:
The system clock is skewed. There is a time difference of X.Y seconds with the entitlement server. Please check your clock settings to ensure access to all entitled content.
当 skew 超过 2 秒时,额外的 DEBUG 日志记录被写入 /var/log/rhsm/rhsm.log 文件,如果超过 15 分钟,则改为 WARNING。
有关如何使 RHEL 10 系统时钟与 NTP 服务器同步的说明,请参阅 配置时间同步。
Jira:RHEL-13374[1]
6.4. Shell 和命令行工具 复制链接链接已复制到粘贴板!
添加了对 tog-pegasus中 post-quantum 加密的支持
在以前的版本中,没有同时支持经典证书链和 ML-DSA 证书的机制。
在这个版本中,为 tog-pegasus 服务器提供了两个新文件 /etc/pki/Pegasus/server-fallback.pem 和 /etc/pki/Pegasus/file-fallback.pem。当需要同时使用 ML-DSA 证书和经典证书链时,这些文件用于启用典型的证书和密钥的加载。如需更多信息,请参阅 /usr/share/doc/tog-pegasus/README.RedHat.SSL。
Jira:RHEL-93093[1]
在 sblim-sfcb中为 post-quantum 加密添加的支持
在以前的版本中,如果 peer 支持,则软件包默认使用 post-quantum 密钥交换。此外,没有同时支持经典证书链和 ML-DSA 证书的机制。
在这个版本中,在 sblim-sfcb 服务器配置文件中引入了两个新的配置选项 sslKeyFallbackFilePath 和 sslCertificateFallbackFilePath。这些选项默认为禁用,但可以在同时使用 ML-DSA 证书和经典证书链时,可用于启用典型的证书和密钥的加载。
在 sblim-sfcb 服务器中禁用了默认阻止 post-quantum 密钥交换的 ECDH 临时密钥生成。
Jira:RHEL-93092[1]
添加了对 openwsman中 post-quantum 加密的支持
在以前的版本中,如果 peer 支持,则软件包默认使用 post-quantum 密钥交换。此外,没有同时支持经典证书链和 ML-DSA 证书的机制。
有了这个更新,在 openwsman 服务器配置文件中引入了两个新的配置选项 ssl_cert_fallback_file 和 ssl_key_fallback_file。这些选项默认为禁用,但可以在同时使用 ML-DSA 证书和经典证书链时,可用于启用典型的证书和密钥的加载。
默认阻止 post-quantum 密钥交换的过期 SSL 初始化已从 openwsman 服务器中删除。
Jira:RHEL-93091[1]
3.25.0 提供的 openCryptoki
openCryptoki 软件包在 3.25.0 版本中提供。添加了对以下情况的支持:
在 EP11 中:
- PKCSGRESS v3.0 SHA3 和 SHA3-HMAC 机制
- PKCSGRESS v3.0 SHA3 机制和 RSA-OAEP 的 MGFs
- RSA-PKCS 和 ECDSA 机制的 PKCSGRESS v3.0 SHA3 变体
- 通过 C_CreateObject 不透明安全密钥 blob 导入
在 ICA/Soft 中:
- PKCSGRESS v3.0 SHAKE 密钥生成
- CKM_AES_KEY_WRAP[rhacm] 机制
- CKM_ECDH_AES_KEY_WRAP 机制
- 使用 AES-GCM 的密钥嵌套
在 CCA 中:
- CCA AES CIPHER 安全密钥类型
- CKM_ECDH1_DERIVE 机制
- 在 s390x 和 non-s390x 平台上的较新的 CCA 版本
- CKM_AES_GCM 仅用于单部分操作
- CCA/Soft/ICA:CKM_RSA_AES_KEY_WRAP 机制.
- P11KMIP :添加一个用于导入和导出 PKCSxdg 密钥到 KMIP 服务器的工具。
- ICA:根据 libica 是否处于 FIPS 模式报告机制。
Jira:RHEL-73343[1]
6.5. 基础架构服务 复制链接链接已复制到粘贴板!
RHEL 现在装有 dyninst 版本 13.0.0
dyninst 框架被 rebase 到上游版本 13.0.0 此版本提供以下改进列表:
- 改进了对 AMD GPU 二进制文件的支持。
- 改进了 x86 指令和 C++ DWARF 构造的解析。
如需更多信息,请参阅上游文档。
RHEL 现在装有 SystemTap 版本 5.3
SystemTap 被 rebase 到版本 5.3,其多线程解析功能现在通过缩短几秒的初始化时间来提高启动性能。
elfutils 现在被 rebase 到版本 0.193
elfutils 0.193 现在包括在 RHEL 10.1 中。这个版本中的显著变化包括:
-
debuginfod现在支持 web API 中的 CORS (Web 应用程序访问),并提供 a-cors选项。new-listen-address选项启用将 HTTP 侦听套接字绑定到特定的 IPv4 或 IPv6 地址。debuginfod客户端现在缓存x-debuginfod netobservHTTP 标头以及下载的文件。 -
libdw库添加dwarf_language和dwarf_language_lower_bound函数,改进了对 DWARF6 语言元数据的支持和 Nim、Dylan、A Algol68、V 和 Mojo 的新语言常量。dwarf_srclang函数与 DWARF6 语言常量兼容。 -
libdwfl_stacktrace实验性接口可以取消回卷堆栈样本来调用链,并为多个进程缓存 ELF 数据。这个接口最初支持perf_events堆栈示例数据,并作为技术预览提供。 -
libelf库为具有超过 64K 部分的 ELF 文件具有更强大的elf_scnshndx实施。 -
readelf工具改进了对 ELF 数据的处理。the--section-headers选项的输出现在包含一个用于解释部分标记的键。
Valgrind 已升级至上游版本 3.25.1
从版本 3.24.0 (RHEL 10.0)升级到上游版本 3.25.1 (RHEL 10.1)提供以下显著改进:
- 添加了对 zstd-compressed debug 部分的支持。
- 扩展至 Linux syscalls: landlock*, io_pgetevents, open_tree, move_mount, fsopen, fsconfig, fsmount, fspick, userfaultfd.
-
增强的 file-descriptor tracking
:--track-应用相同的行为,将文件描述符继承到标准输入、标准输出和标准错误。fds=yesand--track-fds=all -
新的 option
--modify-fds=high(使用 with-track-fds=yes)首先分配高数字描述符,以帮助检测描述符重复使用问题。 -
Helgrind 配置:
pthread_cond_signal和pthread_cond_broadcast带有解锁的 mutex 警告现在由--check-cond-signal-mutex=yes|no (default: no)控制。
特定于架构的增强:
-
新的 IBM Z (
s390x) NNPA 硬件支持。
Valgrind 软件包被分成子软件包以灵活安装
在此次更新之前,swigvalgrind 软件包包括了所有核心功能、后处理脚本、GDB 集成和文档,您所需的单个软件包中也需要安装所有组件,即使您只需要特定的功能。
在这个版本中,swigvalgrind 软件包已被分成多个子软件包。您只能安装您需要的组件,如核心valgrind 功能、后处理脚本、GDB 集成或文档。
Jira:RHEL-75470[1]
jemalloc 5.3.0 在 Varnish 中集成
在此次更新之前,一些用户在升级到较新版本的 Red Hat Enterprise Linux 后在 Varnish 中报告过量内存用量。尽管设置明确的内存限值(例如 malloc,1G),但内存消耗会随着时间而持续增长。
在这个版本中,jemalloc 内存分配器库(版本 5.3.0)集成在 Varnish 软件包中,替换默认的 glibc malloc。对于 Varnish 部署,jemalloc 5.3.0 的集成会导致内存消耗、更好的性能和更高的内存稳定性,特别是在高负载或长时间运行的环境中。
Jira:RHEL-45756[1]
BrowseOptionsUpdate 指令现在包括在 RHEL 中
BrowseOptionsUpdate 指令决定了默认打印选项的源和更新频率。它指定系统是否从本地系统或远程打印服务器检索选项,如果它在服务启动时、以特定间隔更新它们。
现在,您可以将 BrowseOptionsInterval 指令及其值添加到 /etc/cups/cups-browsed.conf 文件中,以实现所需的行为。指令提供这些值:
-
none(默认):从之前会话创建的本地文件,加载默认选项。 -
静态:cups-browsed服务在启动时从远程服务器检索默认选项。 -
动态:系统根据BrowseInterval值更新默认选项,它也在/etc/cups/cups-browsed.conf文件中定义。
注: 在更改 BrowseOptionsInterval 指令值后,您需要重启该服务。
Jira:RHEL-87180[1]
6.6. 网络 复制链接链接已复制到粘贴板!
NetworkManager 和 Nmstate 支持为每个接口配置 IPv4 转发
在这个版本中,NetworkManager 可以为每个网络接口启用和禁用 IPv4 转发。这可直接在 NetworkManager 连接配置集中启用精细的控制,不再需要更新 sysctl 内核设置。如果您在配置集中启用 ipv4.forwarding 参数,则对应的接口充当路由器并转发 IPv4 数据包。使用默认值 auto,NetworkManager 会在任何共享连接处于活跃状态时启用 IPv4 转发,在其他情况下,它使用内核默认值。
此功能也可以在 Nmstate 中提供。
KTLS 现在支持为 TLS 1.3 重新密钥
内核传输层安全(KTLS)是 RHEL 中不支持的技术预览,现在支持 TLS 1.3 的内核重新密钥。在以前的版本中,无法进行带有大型数据传输的长期会话,因为初始密钥只能发送有限数量的字节数。在这个版本中,更新会在活跃会话中无缝进行,支持传输大量数据,而无需重启连接。请注意,要使用这个功能,用户空间库(如 OpenSSL 和 GnuTLS)还必须支持 KTLS 重新密钥功能。
此功能增强支持只对 TLS 1.3 进行重新密钥,且不会在 TLS 1.2 中重新协商。
Jira:RHEL-86020[1]
nmstate 现在支持 mtu 和 quickack 路由选项
在这个版本中,您可以使用 Nmstate 设置 mtu 和 quickack 路由选项。如果最大传输单元与默认值和调整 TCP 确认行为不同,这些设置对于优化网络性能非常重要。现在,您可以更加精确地控制网络流量行为。
nmstate 现在支持为网络接口配置 FEC 设置
在这个版本中,您可以使用 Nmstate 应用 Forward Error Correction (FEC)模式,如 RS-FEC、Base-R 和 Disabled 到接口。这些设置对于在不重新传输的情况下检测和更正错误来提高数据传输可靠性至关重要。现在,您可以使用 Nmstate 应用 FEC 设置,而不是手动配置它们或使用特定于平台的工具。
NBFT 解析器添加到 nm-initrd-generator
NVMe Boot Firmware Table (NBFT)是使用 ACPI 表将网络引导和存储配置到操作系统的标准方法。nm-initrd-generator 程序现在使用这个解析器来自动检测并应用此配置,并在没有手动设置的情况下创建必要的连接。这个实现替换了 dracut 中的 95nvmf 模块,它依赖于 systemd 自动化来实现更精简且可靠的引导序列。
NetworkManager 现在在使用 IPv6 前缀长度时支持下游接口的固定子网 ID
在这个版本中,在使用 IPv6 前缀长度时,您可以在 NetworkManager 中为下游接口指定固定子网 ID。在以前的版本中,当重启系统时,这些接口的子网 ID 可能会改变。使用固定子网 ID 时,在重启 RHEL 主机时,分配给下游网络中设备的 IPv6 地址不会改变。
nmstate 现在支持使用 MAC 地址而不是接口名称配置路由
使用 Nmstate 时,您可以通过为其分配接口的 MAC 地址来创建网络连接。在这个版本中,您可以在路由配置中的 next-hop-interface 参数中使用配置集名称而不是接口名称。使用此功能,您可以在不了解接口名称的情况下创建静态路由。
Jira:RHEL-80547[1]
nmstate 可以根据 PCI 地址为网络接口分配设置
在这个版本中,您可以使用 Nmstate 根据其 PCI 地址而不是设备名称设置网络接口。使用此功能来确保集群中跨节点的一致性配置。详情请查看 使用带有设备路径的 nmstatectl 配置带有动态 IP 地址 的以太网连接,以及使用设备路径的 nmstatectl 配置以太网连接。
nmstate 现在支持 VLAN 接口的出口和入口优先级映射
NetworkManager 已经支持为 VLAN 接口配置流量优先级映射。在这个版本中,Nmstate 库也可以处理出口和入口优先级服务质量(QoS)映射规则。因此,您可以使用 Nmstate 创建 VLAN 并定义双向优先级映射,以帮助更精确地管理流量。
Jira:RHEL-78334[1]
nmtui 现在支持配置 loopback 接口
NetworkManager 已支持使用 nmcli 工具配置 loopback 接口。此功能增强为 nmtui 应用程序添加了相同的功能。因此,您可以在回环接口上配置 IP 地址和路由。
NetworkManager-libreswan 插件支持使用 Libreswan 默认值
在这个版本中,您可以将 Libreswan VPN 连接配置集中的 no-nm-default 属性设置为 true 来使用 Libreswan 而不是 NetworkManager 的默认值。这样可确保与为原生 Libreswan 定义的配置兼容。现在,您可以配置 subnet-to-subnet 隧道。
Nmstate 中的绑定配置支持优化设置
在这个版本中,Nmstate API 支持以下绑定选项:
-
lacp_active:定义 Linux 内核是否定期发送链路聚合控制协议数据单元(LACPDU)帧。您只能在 802.3ad 绑定模式中使用此设置。 -
ns_ip6_target:当您将arp_interval参数设置为大于 0 的值时,会列出用作 IPv6 监控对等点的 IPv6 地址。
因此,管理员可以使用这些设置来优化网络绑定,以确保稳定的连接、高效带宽和 IPv6 兼容性。
iproute rebase 到版本 6.14.0
iproute 软件包已更新至版本 6.14.0。
主要改进:
-
ip命令支持 16 位下一跃点权重。nexthop -
ip link rmnet命令支持标志处理。 -
ip lwtunnel命令支持设置并获取 'tunsrc' 属性。 -
ip monitor命令添加了对监控多播地址的支持(ip monitor maddress)。 -
ip rule命令支持 'dscp' 选择器。 -
ip rule命令支持流标签。 -
ip route命令支持 IPv6 流标签。 -
ip address和ip link show命令支持 'down' 过滤器。 -
tc flower过滤器支持隧道元数据上的匹配。 -
tc fq排队规则支持TCA_FQ_OFFLOAD_HORIZON属性。 -
tc工具支持 Time-Sensitive Networking (TSN)中的Hold/Release机制,如 IEEE 802.1Q-2018 标准中指定的。 -
rdma monitor命令添加了对监控远程直接内存访问(RDMA)事件的支持。 -
vdpa工具支持设置 MAC 地址。 - 改进了几个 man page。
重要的程序错误修复:
- 修复了一些内存泄漏。
-
修复了
ip netconf命令的检查错误,以防止不必要的严格错误。 -
/etc/iproute2/目录中的自定义iproute2设置可以正常工作。
新的网络数据包丢弃原因和 MIB 计数器
现在,内核的网络堆栈在丢弃网络数据包时提供了更详细的原因。此功能增强还添加了两个新的管理信息基础(MIB)计数器: LINUX_MIB_PAWS_TW_REJECTED 和 LINUX_MIB_PAWS_OLD_ACK。因此,调试和诊断网络问题现在更为容易。
Jira:RHEL-88891[1]
nft monitor trace 命令现在显示连接跟踪信息
现在,您可以使用 nft monitor trace 命令显示连接跟踪的详情。此功能简化了调试连接,有助于更好地了解连接状态。
Jira:RHEL-87758[1]
fwctl 子系统已添加到内核中
如果启用了内核锁定功能,则内核不允许访问 /sys/ 目录和 PCI 配置空间中的 resource0 文件。fwctl 内核子系统管理与软件定义设备中固件的通信,如 mlx5 网络接口控制器。这个子系统建立了一个标准化且安全的远程过程调用(RPC)接口,它允许用户空间应用程序与设备固件交互以进行诊断、配置和更新。除了新的子系统外,mstflint 工具现在也使用 fwctl 子系统,在这些安全环境中完全使用实用程序功能。
Jira:RHEL-86015[1]
ice 驱动程序现在支持减少 PF 的 MSI-X 向量使用情况,以释放相关 VF 的向量
有了这个增强,您可以减少分配给物理功能(PF)的 Message Signaled Interrupts eXtended (MSI-X)向量,以确保有足够数量的向量可用于关联的虚拟功能(VF)。详情请查看 物理功能 的 MSI-X 向量使用情况来释放相关虚拟功能的向量。
Jira:RHEL-80554[1]
named 和 dnssec 工具现在支持硬件令牌的 OpenSSL 供应商
在此次更新之前,在删除 OpenSSL ENGINE 后,无法使用硬件安全令牌为 DNSSEC 区域签名存储私钥。直接使用具有 named 服务的硬件令牌和 ipa-server-dns 软件包中的 DNSSEC 功能时,需要此功能。
在这个版本中,named 和 dnssec 命令行工具已更新,以支持 OpenSSL 提供程序。
因此,您可以使用 OpenSSL 供应商访问硬件和软件令牌来存储私钥。这会恢复在 named 服务中使用硬件令牌的功能,并在 ipa-server-dns 软件包中启用 DNSSEC 区域签名功能。
NetworkManager 和 Nmstate 支持为每个接口配置 IPv4 转发
在这个版本中,NetworkManager 可以为每个网络接口启用和禁用 IPv4 转发。这可直接在 NetworkManager 连接配置集中启用精细的控制,不再需要更新 sysctl 内核设置。如果您在配置集中启用 ipv4.forwarding 参数,则对应的接口充当路由器并转发 IPv4 数据包。使用默认值 auto,NetworkManager 会在任何共享连接处于活跃状态时启用 IPv4 转发,在其他情况下,它使用内核默认值。
此功能也可以在 Nmstate 中提供。
6.7. 内核 复制链接链接已复制到粘贴板!
RHEL 10.1 中的内核版本
Red Hat Enterprise Linux 10.1 与内核版本 6.12.0-124.8.1 一起分发。
Intel Panther Lake CPU 支持的 perf core 计数器
在以前的版本中,用户无法在 Intel Panther Lake CPU 上使用 perf core 计数器来监控硬件事件。在 perf 软件包中添加了 Panther Lake 支持后,用户可以访问此微架构上的硬件事件监控。
Jira:RHEL-47451[1]
rteval 的默认测量模块现在是 rtla timerlat,用于更好地追踪问题延迟
有了这个增强,您应能够轻松识别问题延迟的来源。可以使用 rteval.config 文件选择所需的 cyclictest measurement 模块。
Jira:RHEL-97541[1]
kpatch-dnf 插件通过改进的内核管理来更新
在此次更新之前,kpatch-dnf 插件无法与 kpatch 支持使内核升级保持一致。因此,管理员可能会安装或升级到 kpatch 不支持的内核,从而增加运行不支持的内核的风险,并降低系统稳定性。
在这个版本中,kpatch-dnf 插件使管理员能够将内核更新集中到 kpatch 支持的更新上。因此,系统升级更为可靠,整体稳定性有所改进。
Jira:RHEL-85686[1]
perf 工具 rebase 到上游 v6.14
perf 工具及其内核后端被 rebase 以与上游版本 v6.14 保持一致。这个版本引进了几个改进和程序错误修复。最值得注意的是,以下内容:
- 修复了 RAPL 代码中的内存泄漏问题。
- 添加了对 AMD 的每内核能源跟踪支持。
-
解决了
perf trace中的内存泄漏问题。 -
添加了
perf工具中的 Processor Trace Trigger Tracing (PTTT)支持。 - 以明文模式支持 RDPMC 指标。
-
在
perf工具中为 ARL-U 平台添加了 RAPL 能源事件支持。
这些更改改进了性能分析,并解决 perf 工具中的已知问题。
Jira:RHEL-77936[1]
添加了对 virtio 设备的支持
在此次更新之前,KVM 客户端中的 virtio 设备都列为 generic-ccw。有了这个增强,您可以使用 lszdev 命令轻松地识别在哪个设备号连接了哪些设备类型:
# lszdev
TYPE ID ON PERS NAMES
virtio-balloon 0.0.0007 yes no
virtio-blk 0.0.0000 yes no vda
virtio-console 0.0.0004 yes no
virtio-gpu 0.0.0002 yes no
virtio-input 0.0.0005 yes no
virtio-input 0.0.0006 yes no
virtio-net 0.0.0001 yes no enc1
virtio-scsi 0.0.0003 yes no
virtio-vsock 0.0.0008 yes no
此增强还为 Red Hat Enterprise Linux 10.0.z 增加了额外的 chpstat 修复,改进了报告中的 DPU 使用率扩展(s390utils 和 s390-tools)。
Jira:RHEL-73341[1]
内核中Intel Arrow Lake U RAPL 能源事件支持
内核软件包 现在支持 Intel Arrow Lake U microarchitecture 的 RAPL (Running Average Power Limit)能源性能计数器。在这个版本中,perf 工具为 Arrow Lake U 平台标识节能事件,以监控 CPU 内核、GPU、软件包和系统域的能源使用情况。
Jira:RHEL-53584[1]
自适应 PEBS 支持在 Intel Panther Lake 上的 perf 中启用计数器快照支持
在此次更新之前,Linux 内核的 perf 工具依赖于基于软件的示例读取来收集性能事件数据。这种方法引入了小时间差距,以及事件溢出后读取计数器时的额外开销。在这个版本中,adaptive PEBS 计数器快照在 Intel Panther Lake CPU 上提供。使用此功能,内核使用 PEBS 格式版本 6 直接在 PEBS 记录中捕获可编程计数器、固定功能计数器和性能指标。
因此,计数器快照为软件样本读取提供了更准确且更低的替代方案,从而提高了性能监控和分析功能。
Jira:RHEL-47443[1]
Intel Trace Hub 支持 Intel Panther Lake
在此次更新之前,内核软件包 不支持 Intel Panther Lake (P、H、U 变体)。在这个版本中,Panther Lake 平台的设备 ID 添加到内核软件包中的 Intel Trace Hub 中。
因此,基于 Panther Lake 的系统可以使用 Intel Trace Hub 功能来增强调试和追踪功能。
Jira:RHEL-47423[1]
对 Intel Clearwater Forest 的 perf uncore 事件支持
perf 软件包在 Clearwater Forest 微架构上添加非核心事件监控。在这个版本中,perf 软件包支持 Clearwater Forest 系统上的非内核事件监控。因此,用户可以在支持的硬件上执行高级性能分析和调试。
Jira:RHEL-45094[1]
对 Intel Clearwater Forest 的 perf core 事件支持
perf 软件包在 Clearwater Forest 微架构上添加核心事件监控。因此,用户可以使用 perf 监控和分析 Intel Clearwater 上核心级别的性能事件。
Jira:RHEL-45092[1]
AMD Milan CPU 支持使用 RAPL perf 事件进行每个内核能源跟踪
在此次更新之前,AMD 系统上的能源监控仅限于软件包级别的测量。在这个版本中,内核软件包通过 AMD Milan CPU 上的运行平均电源限制(RAPL)性能事件支持每个内核能源跟踪。因此,您可以测量和分析单个内核级别的能源消耗,以便更精细的性能和电源管理。
Jira:RHEL-24184[1]
Intel Arrow Lake H microarchitecture 支持添加到 intel_th
在此次更新之前,Intel Trace Hub 无法识别 Arrow Lake H NPK 设备 ID,这会对使用这个硬件的系统进行追踪和调试功能。在这个版本中,Intel Arrow Lake H microarchitecture 支持 Intel Arrow Lake H microarchitecture。通过新的支持,用户在 Arrow Lake H 平台上增强了追踪和调试功能。
Jira:RHEL-20109[1]
在内核中为 Intel Arrow Lake H 启用 perfmon 支持
在这个版本中,内核软件包 在 Intel Arrow Lake H microarchitecture 上为 Core、Uncore、Cstate 和 MSR 功能提供 PerfMon 支持。因此,您可以使用 perf 工具监控和分析特定于 Arrow Lake H 系统的性能指标。
Jira:RHEL-20093[1]
KVM 模块集成到 realtime 内核软件包中
在这个版本中,删除了 RHEL 中 realtime 内核的 KVM 模块软件包的生成,与决定使 realtime 内核成为基础 RHEL 的部署选项保持一致。这个更改简化了部署过程,将 KVM 模块直接集成到 realtime 内核软件包中,并消除了单独的 kernel-rt-kvm 软件包。因此,用户在 RHEL 上部署 realtime 内核时,用户将遇到更加无缝、高效的设置,从而提高了整体用户体验。
Jira:RHEL-62687[1]
在 perf 工具中添加了 Processor Trace Trigger Tracing (PTTT)支持
在这个版本中,性能分析通过引入 Processor Trace (PT) Trigger tracing 提升。这可让软件选择特定的事件作为暂停和恢复追踪活动的触发器点,从而提高性能监控的效率和准确性。这导致了更高效和有针对性的追踪,最终为应用程序的性能提供更清晰的理解。
Jira:RHEL-45090[1]
python-drgn rebase 到版本 0.0.31
python-drgn 已 rebase 到版本 0.0.31。这个版本引进了几个改进和新功能:
-
添加了对
debuginfod的支持,它允许从 debuginfod 服务器自动检索调试信息。 - 新的模块 API,其提供改进的可扩展性和集成功能。
- 没有调试符号的内核堆栈取消卷,允许生成堆栈 trace,即使调试符号不可用。
有关更改的完整列表,请参阅上游更改日志:
eBPF 子系统 rebase 到版本 6.14。
eBPF 子系统 rebase 到 Linux 内核上游版本 v6.14。此版本包括以下变化和增强:
-
支持
uprobe会话探测。 -
支持
bpf_fastcall,这是 eBPF 帮助程序和内核功能的特殊注解(kfuncs),它允许优化此类帮助程序和功能的执行。 -
新的
kmem_cacheeBPF 迭代/proc/slabinfo或 /sys/kernel/slab 中的条目。 - 支持有资格的 eBPF 程序中的私有堆栈,这允许防止嵌套 eBPF 程序中的内核堆栈溢出。
- eBPF verifier 改进,允许程序避免对静态已知的映射查找键进行 NULL 检查。
-
使用
bpf_probe_write_警告信息。user时删除"helper,可能会损坏用户内存!" -
在使用尾部调用和
freplace的组合时防止无限循环。 - 避免在将 eBPF 程序附加到使用 NULL 参数的原始追踪点时造成潜在的内核崩溃。
-
bpf_timer销毁程序用来导致问题,但已由 rebase 修复。 -
中的
bpf_local_storage可防止kmalloc,从而导致在实时内核中使用 eBPF 时调用的 "sleeping 功能被无效上下文"问题。
Jira:RHEL-78201[1]
perf 工具 rebase 到上游 v6.15
perf 工具及其内核后端被 rebase 以与上游版本 v6.15 保持一致。这个版本引进了几个改进和程序错误修复。最值得注意的是,以下内容:
-
将
--code-with-type选项添加到perf annotate,允许从指针解码数据结构。 -
重构 s390
cpum_sf和cpum_cf组件。 -
解决了
perf trace中的内存泄漏问题。 - 引入了对 RISCV CPU 的硬件事件支持。
-
python-perf模块的扩展功能。 -
增强的
perf report,以显示每个父进程和子进程的工作负载。 - 更新了各种 Intel CPU 的 PMU 事件和指标。
- Intel 平台上启用的 Processor Trace (PT) Trigger tracing。
这些更改提高了性能分析,扩展硬件支持,并解决 perf 工具中的已知问题。
Jira:RHEL-78197[1]
crash rebase 到 9.0.0
crash 软件包(为实时系统和各种转储文件提供内核分析工具)已 rebase 到上游版本 9.0.0。此版本提供几个修复和增强,最重要的是:
-
内部
gdb数据库已更新至版本 16.2。 -
crash工具现在支持跨编译。
默认配置现在在 rng-tools中禁用 jitter 熵源
现在,在 rng-tools 中默认禁用 jitter 熵源。现代 CPU 提供硬件熵源,大多数虚拟机都将 /dev/hwrng 设备作为虚拟主机中的熵源提供。在这些环境中,jitter 熵源会消耗不必要的 CPU 周期。对于没有硬件熵源的旧硬件,您可以在 /etc/sysconfig/rngd 中明确启用 jitter 熵源。
因此,rngd 守护进程不再在具有硬件熵源的系统上不必要的消耗 CPU 周期。
stalld 不再与 dl-server 一起工作冲突
在这个版本中,stalld 功能会检测主机内核中的 dl-server,并只增强 dl-server 无法运行的任务。目前,dl-server 不会增强 FIFO 任务。您可能希望在系统升级过程中继续使用 stalld,并禁用 dl-server。dl-server 是负责运行 starving 任务的唯一实体。
6.8. 引导加载程序 复制链接链接已复制到粘贴板!
x86_64 和 aarch64上的 RHEL 10 安全引导 shim 签名
RHEL 10 需要经过签名的 shim 二进制文件,才能在 AMD 和 Intel 64 位构架和 64 位 ARM 架构中启用安全引导。如果没有经过签名且可信的 shim,带有强制安全引导的系统没有引导,这会影响企业和云部署。
在这个版本中,shim 软件包已为 x86_64 和 aarch64 签名并更新。在 x86_64 上,shim 由 Microsoft Windows UEFI Driver publisher 签名,并在供应商数据库中包括 Red Hat Secure Boot CA 5 和 CA 8。在 aarch64 上,shim 由 Microsoft UEFI CA 2023 签名,包括 Red Hat Secure Boot CA 8。SBAT 条目已更新至最新的级别。
因此,RHEL 在启用了安全引导功能的情况下引导。另外,回退可以正常工作,所有其他引导装载程序组件都已正确签名。
6.9. 文件系统和存储 复制链接链接已复制到粘贴板!
multipathd 支持基于文件的套接字
在这个版本中,multipathd 守护进程除 abstract 命名空间套接字外,还会侦听基于文件的套接字 /run/multipathd.socket 上的命令。您可以使用新套接字文件的绑定挂载,从容器中与主机的 multipathd 守护进程通信。
Jira:RHEL-82180[1]
LVM RAID 在多个同时设备失败后修复卷
有了这个增强,您可以使用 lvconvert --repair /dev/VG-name/LV-name 命令重新集成缺少的 RAID 设备回条带 RAID (raid4、raid5 和 raid6)。即使临时缺少的设备数量超过 RAID 级别的容错性,在设备重新应用后,这个修复过程也可以正常工作。请注意,在修复卷之前,您必须卸载并停用卷以及顶部的文件系统。
6.10. 高可用性和集群 复制链接链接已复制到粘贴板!
IPaddr2 资源代理现在检测到网络链接失败
在此次更新之前,IPaddr2 资源代理不会监控网络接口的链接状态。因此,IPaddr2 资源继续报告节点上的成功,即使底层接口处于 DOWN 或 LOWERLAYERDOWN 状态,从而导致集群在另一个节点上恢复资源。
在这个版本中,IPaddr2 代理已被改进,以检查接口的链接状态。
因此,如果其网络接口停机,IPaddr2 资源无法正确失败,从而可以正确故障转移。您可以通过在资源配置中设置 check_link_status=false 参数来禁用这个新的默认行为。
Jira:RHEL-85014[1]
AWS 资源代理重复使用 IMDS 令牌来提高可靠性
在此次更新之前,AWS 资源代理为每个操作请求一个新的实例元数据服务(IMDS)令牌。这可能会导致单个节点上的大量 API 调用,这会增加资源故障的风险,特别是在具有多个 AWS 资源的环境中。
在这个版本中,AWS 资源代理缓存并重复使用 IMDS 令牌,直到它们过期为止。
因此,对 AWS 元数据服务的 API 调用卷会显著降低。这提高了高可用性集群中 AWS 资源的性能和可靠性。
Jira:RHEL-81237[1]
awsvip 资源代理允许指定网络接口
在此次更新之前,awsvip 资源代理总是将虚拟 IP 地址分配给 EC2 实例的主网络接口。无法将二级网络接口用于该资源。
在这个版本中,在 awsvip 代理中添加了一个 interface 参数。
通过使用此参数,您可以指定代理应该分配虚拟 IP 的网络接口,这样可在 AWS 中启用更灵活的网络配置。
Jira:RHEL-81236[1]
fence_sbd 代理可以自动检测 SBD 设备
在此次更新之前,在配置 fence_sbd 资源时,您需要使用 devices 参数明确指定 SBD 设备路径。
在这个版本中,fence_sbd 代理现在可以从系统检索设备配置。
因此,如果您在创建 fence_sbd 资源时没有设置 devices 参数,代理会自动使用 /etc/sysconfig/sbd 文件中的 SBD_DEVICE 变量中指定的设备。
Jira:RHEL-79799[1]
watchdog 设备列表提供更详细的信息
在此次更新之前,当列出可用的 watchdog 设备时,输出仅显示设备路径,如 /dev/watchdog0。这使得管理员难以区分同一系统上的多个设备。
在这个版本中,输出包括每个 watchdog 的设备路径、身份和驱动程序。这允许轻松识别并选择正确的设备。
Nutanix AHV 虚拟化的新隔离代理现在可用
在以前的版本中,红帽高可用性附加组件没有为 Nutanix Acropolis Hypervisor (AHV)环境提供专用的隔离代理。
在这个版本中,添加了 fence_nutanix 代理。
现在,您可以为在 Nutanix AHV 平台中运行的集群节点配置 STONITH,启用完全支持的高可用性部署。
Jira:RHEL-68322[1]
pcs 在删除最后一个隔离设备前警告用户
在此次更新之前,pcs allowed users to disable or remove the last fence device from a cluster, without a warning.这可能会意外地使集群处于不受支持的状态,而无需配置任何 STONITH 或 SBD 隔离。
有了这个增强,pcs 现在包含一个安全检查,以防止意外删除所有隔离机制。
因此,如果您试图使集群没有隔离,pcs 会显示一个错误并默认阻止更改。例如,当您尝试在禁用 SBD 时删除最后一个 STONITH 资源时会出现这种情况。如果需要,您可以覆盖此安全检查来强制更改。
pcs 为失败的 CIB 更新提供更详细的错误消息
在以前的版本中,当使用 pcs cluster edit 或 pcs cluster cib-push 命令时 CIB 更新失败时,Pacemaker 提供的错误消息是通用的。它没有解释故障的具体原因,这会导致对无效配置进行故障排除。
在这个版本中,pcs 已被更新,以便在 CIB push 失败时从 Pacemaker 请求详细的验证检查。
因此,当 CIB 更新被拒绝时,pcs 现在会显示一个特定的错误消息,解释配置出错的内容。
pcs alert config 命令现在支持多种输出格式
在以前的版本中,pcs alert config 命令只以人类可读的纯文本格式显示其输出。这个格式不适用于机器解析或轻松复制配置。
在这个版本中,在 pcs alert config 命令中添加了一个 new -output-format 选项。
现在,您可以使用三种格式之一显示配置的警报:
-
文本:以纯文本形式显示输出。这是默认格式。 -
JSON:以机器可读的 JSON 格式显示输出,这对于脚本处理和自动化很有用。 -
cmd:显示输出作为一系列pcs命令,您可以使用它们在不同系统上重新创建相同的警报配置。
改进了 pcs resource meta 命令,以支持捆绑包,并防止客户机节点错误配置
在以前的版本中,pcs resource meta 命令不支持管理捆绑包资源的 meta 属性。另外,命令不会阻止用户错误地修改客户机节点的连接参数,这可能会导致错误的资源。
有了这个增强,pcs resource meta 命令已被重写。
现在,您可以使用 pcs resource meta 更新捆绑包资源的 meta 属性。此外,在客户机节点上使用 命令时,现在它可以防止意外更改连接参数,从而避免潜在的错误配置。
新的 pcs 命令可用于重命名集群
在以前的版本中,无法使用 pcs 命令更改现有集群的名称。管理员必须执行一系列手动步骤,这些步骤比较复杂,并可能导致错误。
有了这个增强,引进了 pcs cluster rename 命令。
现在,您可以轻松地更改现有集群的名称。要重命名集群,请运行以下命令:
pcs cluster rename <new-name>
pcs node 属性和 pcs node utilization 命令现在支持多种输出格式
在以前的版本中,pcs node 属性和 pcs node utilization 命令仅以人类可读的纯文本格式显示其输出。这个格式不适用于机器解析或轻松复制配置。
有了这个增强,在 pcs node 属性和 命令中添加了一个 new pcs node utilization-output-format 选项。
现在,您可以以三种格式之一显示配置的节点属性和利用率:
-
文本:以纯文本形式显示输出。这是默认格式。 -
JSON:以机器可读的 JSON 格式显示输出,这对于脚本处理和自动化很有用。 -
cmd:显示输出作为一系列pcs命令,您可以使用它们在不同系统上重新创建相同的配置。
pcs 会自动验证 CIB 以了解潜在的问题
在以前的版本中,pcs 工具不会自动在 Cluster Information Base (CIB)上运行高级验证检查。因此,某些集群错误配置可能会在常规操作过程中保持不变。
有了这个增强,pcs 已被更新,将 Pacemaker 的 CIB 验证工具集成到其工作流中。
因此,pcs 现在会自动执行验证检查,并在运行 pcs status,pcs cluster edit, 或 pcs cluster cib-push 命令时显示结果。
用于管理加密卷的新 crypt 资源代理
在以前的版本中,红帽高可用性附加组件不提供用于管理加密设备的资源代理。这使得难以将 cryptsetup 加密的卷配置为 Pacemaker 集群中高度可用的资源。
在这个版本中,引进了新的 crypt 资源代理。
因此,您可以将加密的本地或网络卷配置为集群资源。crypt 代理使用 cryptsetup 管理这些设备。它支持使用标准 key_file 解锁卷,并支持使用 tang/clevis 进行网络绑定解锁。
Jira:RHEL-13089[1]
6.11. 动态编程语言、网页和数据库服务器 复制链接链接已复制到粘贴板!
PostGIS 扩展可用于 PostgreSQL
此功能增强为 PostgreSQL 添加了 PostGIS 扩展。借助此扩展,PostgreSQL 支持地理对象,启用对 Geographic Information System (GIS)应用程序的 patial 查询和分析,如关系数据库中的映射、地理位置和距离计算。
Jira:RHEL-81633[1]
6.12. 编译器和开发工具 复制链接链接已复制到粘贴板!
glibc 现在支持 sched_setattr 和 sched_getattr 用于高级调度程序选项
在以前的版本中,glibc 通过 < sched.h> 中定义的功能只能访问一组有限的 Linux 调度程序选项。这限制了使用直接系统调用或 Linux 内核标头访问高级调度功能所需的应用程序。
在这个版本中,sched_setattr 和 sched_getattr 中的可扩展调度程序配置机制现在可以通过 glibc < sched.h> 头文件获得。此更改包括对其他调度策略的支持,如 SCHED_DEADLINE。
因此,应用程序可以在不依赖于直接系统调用或特定于内核的标头的情况下从更广泛的调度选项中选择,从而提高了开发人员的可移植性和灵活性。
Geomap 支持为 grafana-pcp中的 PCP Valkey 数据源添加
在以前的版本中,用户无法在 Grafana 中的映射上视觉化 PCP 指标,因为 PCP Valkey 数据源不提供 geomap 面板所需的 longitude 和 latitude 标签。这种限制使得在不同位置上监控系统的性能比较困难。
为 Grafana 中的 PCP 指标创建 geomap 视觉化:
- 创建新面板。
- 选择 geomap 面板类型。
- 在查询窗口中输入您要视觉化的指标,因为您要进行其他 PCP 视觉化。
- 在查询窗口下的 Format 下拉菜单中,选择 Geomap。
- Grafana 将自动检测长期和模板标签,并将数据放在映射中。
- 有关其他选项和自定义的信息,请参阅 Grafana 文档。
在这个版本中,grafana-pcp 中的 PCP Valkey 数据源包括 PCP 指标中的 longitude 和 latitude 标签,允许实例在 geomap 上准确放置。用户可以在 Grafana 中创建 geomap visualizations,以比较地理上的系统性能。
Jira:RHEL-77946[1]
llvm-toolset rebase 到 LLVM 20
llvm-toolset 更新至 LLVM 20,在 C、C++ 和 Rust 工作流之间提供改进的代码生成、性能优化以及扩展语言前端和库支持。此 rebase 协调 RHEL 中的依赖组件,包括为 Rust、annobin、bcc、bpftrace、qt5-qttools 和 mesa 重建。通过 llvm-20.1.8-1.el10 验证构建。
主要变化有:
-
后端改进,包括
ppc64le的修复 - Clang 和 LLVM 通过优化和诊断增强,以获得常规性能和可靠性
- 工具链生态系统通过协调的软件包重建刷新,以便与 LLVM 20 的兼容性
- 继续弃用旧的目标,并与这个流中的 ARM 和 MIPS 的上游方向一致
GDB 现在支持 IBM 的 z17 CPU 架构
gdb 软件包已被改进,以支持使用 IBM 的 z17 CPU 架构引入的新硬件指令的二进制文件。在这个版本中,开发人员和系统管理员能够调试在 RHEL 10.1 上为最新的 IBM Z 硬件编译的应用程序。
Jira:RHEL-56897[1]
GCC Toolset 15 现已正式发布
在这个版本中,在 RHEL 10.1 中提供了 gcc-toolset-15。工具集包括 GCC 和相关实用程序的最新支持版本,使开发人员能够利用最新的编译器技术构建、测试和部署应用程序。
Jira:RHEL-81745[1]
glibc 在 x86_64 上提供 GLIBC_ABI_GNU2_TLS 符号
glibc 在 x86_64 系统上包括 GLIBC_ABI_GNU2_TLS 符号。使用 gnu2 线程本地存储访问惯例的程序可能需要此符号才能启动。在此次更新之前,如果 glibc 没有提供这个符号,受影响的程序将无法启动。在这个版本中,依赖于 GLIBC_ABI_GNU2_TLS 的程序按预期启动和运行。
glibc 为 x86_64 添加了 GLIBC_ABI_DT_X86_64_PLT 符号支持
在此次更新之前,需要 GLIBC_ABI_DT_X86_64_PLT 符号的程序在 glibc 中没有时无法启动。有了这个增强,glibc 包含 x86_64 系统的 GLIBC_ABI_DT_X86_64_PLT 符号。有了这个增强,需要此符号的程序现在可以按预期运行。
更新的 glibc 头文件与 Linux 6.12 UAPI 保持一致
Red Hat Enterprise Linux 10 中的 glibc 头文件被更新为包含来自 Linux 内核版本 6.12 的最新的 Linux 用户空间 API (UAPI)合并。 因此,开发人员可以在构建应用程序时访问新的和修订的 UAPI 常量,确保与最新内核功能保持一致和兼容性。
GDB 被 rebase 到版本 16.3
这个 gdb 更新至 RHEL 10.1 中的版本 16.3 提供了以下显著改进:
- 删除了对 Intel MPX 的支持。
- 添加了对标记的数据指针的支持,包括 Intel 的 Linear Address Masking (LAM)和 aarch64 的 Memory Tagging Extension (MTE)。
- 启用后台 DWARF 读取以提高性能。
增强的 Intel Process Trace (
记录 btrace):-
通过设置
记录 btrace pt event-tracing启用异步事件打印。 -
Ptwrite 有效负载现在可以在 Python 中作为
RecordAux 辅助对象访问。
-
通过设置
改进了 Python 集成:
-
停止事件现在包含一个
details属性,mirror MI "*stopped" 事件。 -
gdb.Progspace ()不再直接创建对象;对象必须使用其他 API 获取。 -
用户定义的属性可以添加到
gdb.Inferior和gdb.InferiorThread对象中。 -
引入了新的事件源:
gdb.tui_enabled。 -
添加了
gdb.record.clear,它会清除当前记录的 trace 数据。 - 添加了用于处理缺失的 objfiles 和调试信息的模块。
-
新的类
gdb.missing_debug.MissingDebugInfo可以子类来处理缺少的调试信息。 -
新属性
gdb.Symbol.is_artificial。 - 用于跨多个域的符号查找的新常数。
-
新的功能
gdb.notify_mi (NAME, DATA)会发出自定义 async 通知。 -
用于读取和写入值内容的新属性
gdb.Value.bytes。 -
添加了
gdb.interrupt以模拟 CTRL-C 中断。 -
新的属性
gdb.InferiorThread.ptid_string提供目标 ID。
-
停止事件现在包含一个
调试适配器协议(DAP)更改:
- 更新了"scopes"请求,以包含全局变量和最后一个返回值。
- "launch"和"attach"请求可以随时使用,在"configurationDone"后有效。
- "Variable"请求不再返回人工符号。
- 添加了对 "cancel" 请求的"process"事件和支持。
- "attach"请求现在支持指定程序。
- 引入了用于样式、语言帧不匹配警告、缺少 objfile 处理程序和函数调用超时的新命令。
-
增强并重命名了几个命令,包括用于免除和重命名
set unwindonsignal设置的改进错误处理,从而设置 unwind-on-signal。 -
扩展的远程数据包支持,包括用于文件状态和内存获取的新数据包,以及
克隆等新的停止原因。 - 引入了每个线程 事件报告选项和地址标记检查。
IBM z16 的 GCC 调整默认为 s390x
在 RHEL 10.1 中的 s390x 架构上由 gcc 编译器生成的代码的默认调整现在与 IBM z16 一致。
在此次更新之前,在 gcc 中为旧的 IBM 架构设置了 s390x 代码生成的默认调整。
在这个版本中,在 RHEL 10.1 中使用 gcc on s390x 编译的代码默认为 IBM z16 调整。如果您需要针对不同的架构进行优化,可以通过在 gcc 调用过程中使用 -mtune 标志指定所需的架构来覆盖此设置。
Jira:RHEL-86679[1]
对 IBM Z z17 的初始支持添加到 glibc
glibc 中的动态加载程序已被改进,以支持检测 IBM z17 CPU 或它们的特定功能。因此,在 /usr/lib64/glibc-hwcap/z17/ 目录中安装的任何 IBM z17 优化库都会在 z17 系统上自动加载。这个版本提高了 IBM Z z17 平台的硬件兼容性和性能。
Jira:RHEL-72564[1]
Rust Toolset rebase 到版本 1.88.0
RHEL 10.1 提供了 1.88.0 中的 Rust Toolset。这个版本包括以下显著的改进:
- Rust 2024 Edition 现在稳定。这是一个主要的选择版本,可进行大量语言更改,是最新发布的最大版本。
-
使用带有允许链的 2024 版,允许 fluent
&&-chaining 在if和while条件内允许语句减少嵌套并改进可读性。 -
对于高性能计算,当启用目标功能时,您可以在安全 Rust 中直接调用多个
std::archintrinsics,这可让您直接访问特定的 CPU 功能。 -
现在,支持
asyncclosures,为异步编程提供了第一类解决方案。这些冲突允许捕获并正确表达使用 AsyncFn traits 的高法函数签名。 -
遍历广播允许协调对特征对象的引用,以引用其超级条目,简化常见模式,特别是使用任何特征。
- 现在,cargo 会自动清理其缓存,删除在 1-3 个月内无法访问的旧文件,这有助于管理磁盘空间。
Rust Toolset 是一个滚动应用程序流,红帽只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。
tzdata 包括 NEWS 文件
在这个版本中,tzdata 软件包包括其 NEWS 文件,每个发行版本都提供了时区数据更改的精确描述。因此,您可以详细介绍什么变化。用户可以检查附带的 NEWS 文件,以了解更新中更改的内容。
Jira:RHEL-105042[1]
Red Hat build of OpenJDK 25 可用
红帽推出红帽构建的 OpenJDK (Open Java Development Kit) 25 的最新长期支持(LTS)版本,这是 Java 平台标准版(Java SE)的免费开源实施。从 RHEL 10.1 开始,红帽构建的 OpenJDK 25 可用。有关 OpenJDK 生命周期、支持政策和所有支持的配置的更多信息,请参阅 OpenJDK 生命周期和支持政策。
OpenJDK 25 包括多个改进以及 Java 规格、多个程序错误和稳定修复以及常规性能改进和新功能,比如以下改进:
- Java Flight Recorder 增强(合作抽样、方法计和追踪)
- Generational Shenandoah 垃圾收集器
- G1 垃圾收集器的后线扩展和区域固定
- Pre-Of-Time 类加载和链接
- 紧凑对象标头
- 在不固定的情况下同步虚拟线程
- 紧凑源文件和实例主方法
- 未命名的变量和模式
- 有作用域值
- 流 Gatherers
- 启动多文件源程序
有关从最后一个 LTS 版本开始的新功能的完整列表,请参阅 JDK 25 中的 JEPs,自 JDK 21 起集成。
Jira:RHEL-100678[1]
6.13. 身份管理 复制链接链接已复制到粘贴板!
ipa-healthcheck 现在会发出与过期证书相关的警告
在这个版本中,ipa-healthcheck 工具评估用户提供的 HTTP、DS 和 PKINIT 证书以进行过期,并在其过期日期前提供 28 天警告。这是为了防止证书过期,这可能会导致停机。
Jira:RHELDOCS-20303[1]
ansible-freeipa rebase 到 1.15.1
ansible-freeipa 软件包(提供管理 Red Hat Identity Management (IdM)环境的模块和角色)已从 1.13.2 升级到 1.15.1。更新包括以下功能增强:
-
ansible-freeipaRPM 软件包提供的freeipa.ansible_freeipa集合现在与 Red Hat Ansible Automation Hub (RH AAH)提供的redhat.rhel_idm集合的命名空间和名称兼容。如果您已安装了 RPM 软件包,您现在可以运行引用 AAH 角色和模块的 playbook。请注意,内部使用 RPM 软件包中的命名空间和名称。
Jira:RHELDOCS-20257[1]
如果启用了 krbLastSuccessfulAuth,则 Healthcheck 会警告
如果同时验证大量用户,在 ipaConfigString 属性中启用 krbLastSuccessfulAuth 设置可能会导致性能问题。因此,它会被默认禁用。在这个版本中,如果启用了 krbLastSuccessfulAuth,Healthcheck 会显示一条消息,警告可能的性能问题。
Jira:RHEL-84771[1]
IdM 现在支持最多 Linux 最大 UID 限制的 UID 用于旧的系统兼容性
在这个版本中,您可以使用用户和组 ID 最多 4294、967、293 或 2^32-1。这会使 IdM 的最大值与 Linux UID 限制一致,在标准 IdM 范围最多为 2,147,483,647 的个别情况下非常有用。具体来说,它启用了 IdM 部署以及需要完整 32 位 POSIX ID 空间的传统系统。
在标准部署中,IdM 为 subIDS 保留 2,147,483,648 - 4,294,836,223 范围。使用 2^31 到 2^32-1 UID 范围需要禁用 subID 功能,因此与现代 Linux 功能冲突。
启用 UID 最多 2^32-1:
禁用从属 ID 功能:
$ ipa config-mod --addattr ipaconfigstring=SubID:Disable删除任何现有从属 ID 范围:
$ ipa idrange-del <id_range>在 IdM 服务器上,确保正确删除内部 DNA 插件配置:
# ipa-server-upgrade- 添加一个覆盖 2^31 的新本地 ID 范围,到 2^32-1 空间。确保为此新范围定义了 RID 基础,以便 IdM 可以为用户和组正确生成 SID。
只有尚未分配子 ID 时,才能禁用从属 ID 功能。
Jira:RHEL-67686[1]
samba rebase 到版本 4.22.4
samba 软件包已更新至版本 4.22.4。此版本提供了 bug 修复和增强,最重要的是:
- Samba 支持服务器消息块版本 3 (SMB3)目录租期。在这个版本中,客户端可以缓存目录列表,这可减少网络流量并提高性能。
-
Samba 支持使用基于 TCP 的 LDAP 或 LDAPS 查询域控制器(DC)信息,作为端口 389 上的传统 UDP 方法的替代选择。此功能增强提高了与防火墙限制的环境的兼容性。您可以使用
客户端 netlogon ping protocol参数(默认值:CLADP)配置协议。 以下配置参数已被删除:
-
nmbd_proxy_logon: 此设置用于将 NetLogon 身份验证请求转发到 Windows NT4 主域控制器(PDC),然后 Samba 通过 TCP/IP (NBT)服务器引入了自己的 NetBIOS。 -
CLDAP
端口:无轻量级目录访问协议(CLDAP)始终使用 UDP 端口 389。另外,Samba 代码没有一致地使用这个参数,因此行为不一致。 -
fruit:posix_rename: 这个选项的vfs_fruit模块已被删除,因为它可能会导致 Windows 客户端出现问题。为了防止在网络挂载上创建.DS_Store文件,请在 MacOS 上使用默认值 write com.apple.desktopservices DSDontWriteNetworkStores true命令。
-
请注意,从 Samba 4.11 开始,服务器消息块块版本 1 (SMB1)协议已被弃用,并将在以后的发行版本中删除。
在启动 Samba 前,备份数据库文件。当 smbd、nmbd 或 winbind 服务启动时,Samba 会自动更新其 tdb 数据库文件。红帽不支持降级 tdb 数据库文件。
更新 Samba 后,使用 testparm 工具来验证 /etc/samba/smb.conf 文件。
Identity Management Upgrade Helper
Identity Management Upgrade Helper 是一个新应用程序,简化了将 IdM 环境升级到较新的 RHEL 版本。它提供了一个升级计划,其中包含特定于您的升级路径的逐步说明。因此,您可以使用应用程序准备部署,设置新副本,并使用明确的说明弃用旧服务器。
要使用此应用程序,请参阅红帽客户门户网站上的 Identity Management Upgrade Helper。
Jira:RHELDOCS-21103[1]
现在,您可以使用 dsconf 或 Web 控制台从属性唯一验证中排除子树
在这个版本中,您可以直接通过 dsconf 实用程序和 web 控制台为 Attribute Uniqueness 插件配置 uniqueness-exclude-subtrees 参数。在此次更新之前,只有使用 ldapmodify 程序设置 uniqueness-exclude-subtrees。
对 dsconf plugin attr 选项设置可分辨名称(DN),该插件会跳过属性值的唯一验证。或者,进入 web 控制台中的 Plugins 菜单,添加或编辑 Attribute Uniqueness 插件配置并设置 Excluded Subtrees 字段。
-uniq set 命令使用--exclude-subtree
389-ds-base rebase 到版本 3.1.3
389-ds-base 软件包已更新至版本 3.1.3。此版本提供各种程序错误修复和增强,最重要的是:
- 支持会话跟踪控制互联网草案
-
PBKDF2Producer 插件的
nsslapd-pwdPBKDF2NumIterations配置属性 - 错误日志的日志缓冲
-
支持
CRYPT-YESCRYPT作为密码存储方案 - 访问和错误日志的 JSON 格式
各种
dsidm程序错误修复:-
dsidm不再失败并显示参数必须是字符串或数字错误。 -
dsidm get_dn不再为机构单元、服务和 POSIX 组失败。 -
dsidm uniquegroup 成员可以正确地显示唯一的组成员。 -
dsidm 角色 rename-by-dn可以正确地重命名角色。 -
dsidm -j account get-by-dn和dsidm -j role get-by-dn以 JSON 格式返回输出。 -
dsidm 角色 subtree-status可以正确地显示子树状态。 -
dsidm role create-nested和dsidm role create-filteredcreate nested and filtered 角色。 -
dsidm role delete正确删除角色。 -
dsidm 用户重命名了用户。 -
dsidm account unlock重新启用正确达到不活跃限制的用户帐户。
-
属性唯一插件中的自定义匹配规则用于搜索唯一属性
在这个版本中,在属性唯一插件配置中,您可以为您要强制唯一性的属性指定匹配的规则。例如,当您想从 大小写准确 或问题单中覆盖属性的语法时,会忽略。
在插件配置中指定属性及其匹配规则,如下所示:
uniqueness-attribute-name: <attribute>:<Matching rule OID>:
在此次更新之前,如果您使用带有 大小写准确 语法的属性 cn,如果与两个值进行比较,则 Attribute Uniqueness 插件无法找到匹配的值。现在,您可以设置匹配的规则,并使其成为 case ignore,插件会看到值匹配:
uniqueness-attribute-name: cn:caseIgnoreMatch:
Jira:RHEL-109018[1]
JSON 格式可用于 389-ds-base中的访问和错误日志
在这个版本中,您可以使用以下命令为访问和错误日志文件配置 JSON 格式:
# dsconf <instance_name> logging access set log-format json
# dsconf <instance_name> logging error set log-format json
这些命令将 nsslapd-accesslog-log-format 或 nsslapd-errorlog-json-format 配置属性设置为 json。因此,标准解析工具可使用访问和错误日志记录。
请注意,当您更改 format 设置时,Directory 服务器会轮转当前的日志文件。
新的 list --full-dn 选项可用于 dsidm 工具
在这个版本中,您可以使用 list --full-dn 选项来获取同一类型条目的完整可分辨名称(DN)列表。例如,要查看角色 DN,请使用以下命令:
# dsidm <instance_name> -b dc=example,dc=com role list --full-dn
在此次更新之前,您无法使用 dsidm 工具决定这些条目的 DN,因为现有 list 选项只显示相对可分辨名称(RDN)值。
389-ds-base 日志文件现在包含用于绑定或修改操作的会话标识符
有了这个增强,复制插件可用于会话跟踪功能,在 389-ds-base 中更正与消费者操作的复制协议活动。
在供应商端,当启用复制调试级别时,供应商错误日志包含如下信息:
[time_stamp] - DEBUG - NSMMReplicationPlugin - repl5_inc_run - "EWBpte8J8Wx 2" - agmt="cn=004" (localhost:39004): State: wait_for_changes -> ready_to_acquire_replica
在消费者端,如果没有 debug 日志级别,访问日志会包含如下信息:
[time_stamp] conn=2 op=7 SRCH base="dc=example,dc=com" scope=2 filter="(objectClass=\*)" attrs="distinguishedName"
[time_stamp]] conn=2 op=7 RESULT err=0 tag=101 nentries=1 wtime=0.000189515 optime=0.000171470 etime=0.000358345 notes=U,P details="Partially Unindexed Filter,Paged Search" pr_idx=0 pr_cookie=-1 sid="EWBpte8J8Wx 2"
因此,您可以更有效地跟踪连接或操作的来源。这提高了连接或操作部署中的整体效率和故障排除功能。
Jira:RHEL-31959[1]
ACME 服务器添加了对 ES256 签名算法的支持
在以前的版本中,自动证书管理环境(ACME)服务器不支持 JSON Web 密钥(JWK)验证的 ES256 签名算法。缺少支持会阻止某些客户端(如 Caddy web 服务器)成功获取证书。
在这个版本中,ACAC 服务器已被改进,以支持 JWK 验证的 ES256 签名算法。
因此,服务器可以与使用 ES256 的客户端(如 Caddy Web 服务器)交互,使它们能够成功获取证书并建立安全 HTTPS 通信。
Jira:RHEL-98721[1]
IdM-to-IdM 迁移现在可用
IdM-to-IdM 迁移以前作为技术预览提供,现在完全支持。您可以使用 ipa-migrate 命令将所有特定于 IdM 的数据(如 SUDO 规则、HBAC、DNA 范围、主机、服务等)迁移到另一个 IdM 服务器。例如,当将 IdM 从开发或暂存环境移到生产环境中时,这很有用。
Jira:RHELDOCS-19500[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.14. SSSD 复制链接链接已复制到粘贴板!
改进了具有多个 PKCSxdg 令牌的环境的智能卡验证
SSSD 智能卡验证已被改进,以便在同时插入多个 PKCSredfish 令牌的环境中处理身份验证。这提高了身份验证,特别是在需要多个用户帐户的 STIG 兼容环境中,每个用户帐户都有不同的特权,通常绑定到单独的 PKI 令牌。
在以前的版本中,如果第一个检查的令牌不包含匹配的证书,SSSD 可能无法进行身份验证,因为 SSSD 不会在其他可用令牌上继续搜索适当的证书。在这个版本中,SSSD 会扫描所有插入的 PKCS rep tokens for a matching authentication certificate,以便用户可以成功进行身份验证。
新的 SSSD 选项 ldap_read_rootdse 来控制 RootDSE 读取
有了这个更新,SSSD 提供了一个新的选项 ldap_read_rootdse,用于控制 SSSD 如何从 LDAP 服务器读取 Root Directory Service Entry (RootDSE)。默认情况下,SSSD 在用户进行身份验证前,匿名读取 RootDSE。但是,这个默认行为可能与严格的安全策略冲突,这些策略通常会将所有匿名绑定限制到 LDAP 服务器。
要管理此行为,您可以将 ldap_read_rootdse 选项配置为 经过身份验证的用户身份验证后,指示 SSSD 仅读取 RootDSE,或者将其设置为 永远不会 完全阻止 SSSD 尝试读取。
Jira:RHEL-13086[1]
6.15. 桌面 复制链接链接已复制到粘贴板!
在基于 UBI 的 Toolbx 容器中默认支持 OpenGL 和 Vulkan
在此次更新之前,您必须手动安装与 Mesa 相关的软件包,才能启用 OpenGL 和 Vulkan 支持,这没有直观或记录。
在这个版本中,OpenGL 和 Vulkan 默认在从基于 UBI 的更新的 toolbox 镜像创建的 Toolbx 容器中工作,并与 Red Hat Enterprise Linux Workstation 主机上的行为匹配。这包括 Mesa 提供的免费软件驱动程序,而不包括 NVIDIA 等专有软件驱动程序。
因此,OpenGL 和 Vulkan 应用程序可以在 Toolbx 容器中运行,而无需额外的配置,从而提高了主机系统的可用性和一致性。
6.16. Web 控制台 复制链接链接已复制到粘贴板!
cockpit rebase 到版本 344
cockpit 软件包已更新至版本 344,与 RHEL 10.0 中的 334 版本相比提供了很多改进和修复,最重要的是:
- 根据 PatternFly 6 设计系统改进了 UI 到新风格。
- 添加了对存储组件中 SMART (Self-Monitoring、分析和报告技术)标准和 Stratis 3.8+ 池格式的支持。
- 改进了虚拟机组件中的图形 VNC、控制 VNC 和串行控制台。
- 添加了对网络组件中 WireGuard VPN 的 IPv6 地址的支持。
-
所有 Web 控制台页面均可通过
branding.css风格表文件进行品牌。
新子软件包: cockpit-ws-selinux
cockpit_ws 进程的 SELinux 策略在单独的子软件包 cockpit-ws-selinux 中提供。这可防止 RHEL web 控制台在没有安装 SELinux 的系统中运行时失败,因为软件包管理器会将 selinux_policy 软件包作为依赖项安装。如需更多信息,请参阅系统中的 cockpit_ws_selinux (8) 手册页。
6.17. Red Hat Enterprise Linux 系统角色 复制链接链接已复制到粘贴板!
引入了一个变量 MaxRetention 来配置最大保留参数
在这个版本中,用户可以为 journald 配置最大保留参数,从而启用基于时间的日志文件删除。此功能增强提供了根据特定数据保留策略管理日志数据的灵活性,允许同时删除基于时间的日志和基于大小的删除。它有助于遵守数据保留要求,并通过防止过量日志存储来提高整体系统性能。
metrics 角色支持启用额外的 PCP PMDA
在这个版本中,rhel-system-roles 软件包会将 metrics_optional_domains 变量添加到 metrics 系统角色中。域是一组由性能指标域代理(PMDA)管理的指标,如数据库、专用硬件或应用。使用此变量启用其他 PMDA。该角色将这些 PMDA 添加到默认设置(例如,内核)和角色的 PMDA (如 SQL Server 数据库)。因此,用户可以启用他们针对特定用例所需的域,从而提高了数据收集和监控的灵活性。
在 rhel-system-roles中配置默认内核的功能
在以前的版本中,用户无法指定在系统引导过程中应将哪个内核设置为默认值。这个限制会阻止管理员通过自动化管理默认内核选择。
有了这个更新,rhel-system-roles 软件包引入了使用新的 默认选项 配置默认引导装载程序内核的功能。现在,用户可以通过在内核设置中设置默认布尔值参数将单个内核指定为 默认值。系统会验证只有一个内核可以被标记为默认内核,并根据需要使用 grubby --set-default 来应用选择。
此功能增强提高了在 RHEL 中管理内核版本时的灵活性,并简化了自动化的过程。
Jira:RHEL-101671[1]
ad_integration RHEL 系统角色可以控制 SSSD 域部分命名并整合重复
在这个版本中,用户可以控制 SSSD 配置文件用于域或域特定设置中使用的部分名称,如 ad_dyndns_update 和 ad_integration_sssd_custom_settings 参数管理。默认情况下,ad_integration 角色使用 ad_integration_realm 变量的小写。但是,如果用户想要使用 ad_integration_realm 的实际情况,用户可以使用一个新的选项 ad_integration_sssd_realm_preserve_case = true 来保留域的情况。这可能会使 SSSD 配置文件保留为 realm 的多个部分。使用新的 ad_integration_sssd_remove_duplicate_sections 设置,将来自多个部分的所有设置整合到所选部分中。因此,ad_integration 系统角色可以正确地管理 SSSD 配置文件中的 domain 和 realm 部分。
journald RHEL 系统角色可以监控磁盘空间
在这个版本中,您可以配置 journald.conf 日志服务中的 SystemKeepFree 选项,来为系统日志设置最大大小。这提高了整体系统稳定性和性能。因此,您可以使用 journald_system_keep_free 变量来配置大小限制。该值以 MB 为单位指定。没有默认值 - 默认情况下,它将使用 journald 默认值。
在 ad_integration 角色中引入了软件包安装的灵活性
在以前的版本中,ad_integration 角色总是会尝试安装所需的软件包,如 realmd、sssd-ad、adcli 以及 __ad_integration_packages 中列出的更多内容。在外部系统处理软件包管理的环境中,例如,通过此角色之外的配置管理、预先获取的镜像或不可变系统,这一步是冗余且不可取的。
在这个版本中,用户可以通过其他方法管理软件包安装,并且只希望此角色加入域,从而提供灵活性。主要改进包括:
-
新变量:引入新的布尔值变量
ad_integration_manage_packages,以控制角色是否安装软件包。 -
Default Value: 默认值在
defaults/main.yml中被设置为true,以确保向后兼容。使用此角色的现有 playbook 将像不修改之前一样继续工作。 -
条件任务:添加
when: ad_integration_manage_packages | bool条件到tasks/main.yml中的 "Ensure required packages are installed" 任务。该任务现在仅在标志为true(默认)时运行。 -
文档: Updated
README.md以包含新的ad_integration_manage_packages变量,解释其目的和默认值。
firewall RHEL 系统角色现在支持包括其他服务
在这个版本中,在使用 firewall RHEL 系统角色创建 firewalld 服务定义时,您可以包括其他服务。例如,您可以创建一个包含 http 和 https 服务的服务 webserver。如果您启用 webserver 服务,firewalld 会打开 http 和 https 服务中定义的端口。详情请参阅 使用 firewall RHEL 系统角色创建自定义 firewalld 服务。
Jira:RHEL-84953[1]
podman 角色生成所有 TOML 兼容配置文件
在此次更新之前,当前的基于 Jinja 的格式器不支持许多 TOML 功能,包括表和内联表,这是配置 podman 的所有方面所必需的。在这个版本中,使用 true TOML 格式而不是简单的 Jinja 模板支持 TOML 的所有功能。因此,podman 角色可以生成任何 podman 可以使用的 TOML 兼容配置文件。
podman 角色需要保留旧格式器的某些功能。因此,默认禁用 TOML 格式ter。有关您需要使用旧格式器的特定用例,以及如何转换清单数据以使用新的改进的格式器的信息,请参阅 README 文件。
要在所有情况下使用新的 TOML 格式器,请将 podman_use_new_toml_formatter 设置为 true :
podman_use_new_toml_formatter: true
Jira:RHEL-84932[1]
metrics 角色现在支持 Apache Spark 指标集合和导出
在以前的版本中,用户无法使用 metrics 角色直接收集或导出 Apache Spark 指标。有了这个更新,rhel-system-roles 软件包增加了对从 Apache Spark 收集和更新指标的支持。引入了两个新布尔值参数:
-
metrics_into_spark: false 启用将指标值导出到 Spark。 -
metrics_from_spark: false 启用从 Spark 收集指标。
现在,您可以从 Spark 检索指标,并将指标信息发送到 Spark,改进了 Spark 工作负载的集成和监控功能。
Jira:RHEL-78262[1]
在使用 rhel-system-roles.timesync 角色时,为 chronyd 服务启用 IPv4 操作
在这个版本中,当节点上禁用 IPv6 时,用户可以自定义 RHEL 10.1 上的 chronyd 配置。增强提供了两个选项:为 timesync 角色添加一个设置来禁用 IPv6,或者传递参数来为 chronyd 设置 OPTIONS 值。这些选项在使用 rhel-system-roles.timesync 角色时,为 chronyd 服务启用 IPv4 操作。这提高了禁用 IPv6 的环境的时间同步准确性和稳定性。
Jira:RHEL-85689[1]
ha_cluster RHEL 系统角色现在可以导出资源定义
在以前的版本中,ha_cluster RHEL 系统角色的导出功能不包括与集群资源相关的变量,如原语、组和克隆。这使得使用角色获取现有集群配置的完整可重复使用的定义变得困难。
在这个版本中,ha_cluster RHEL 系统角色的导出功能已更新,以收集和导出集群资源定义。
现在,您可以使用 ha_cluster RHEL 系统角色导出与角色的输入格式兼容的完整集群配置。导出的数据现在包括以下变量:
-
ha_cluster_resource_primitives -
ha_cluster_resource_groups -
ha_cluster_resource_clones -
ha_cluster_resource_bundles
ha_cluster RHEL 系统角色现在可以导出操作系统和 pcsd 配置
在以前的版本中,当使用 ha_cluster RHEL 系统角色导出现有集群的配置时,导出不包括重要的操作系统级别设置,如存储库、防火墙或 SELinux 配置。这会导致定义不完整,因此很难从导出的数据完全重新创建集群。
在这个版本中,ha_cluster 角色的导出功能从集群节点收集并导出操作系统级别和 pcsd 守护进程配置。
因此,您可以从现有部署生成更完整的集群定义。这可用于重新创建集群或让没有在其管理下使用 ha_cluster 角色创建的集群。导出的数据现在包括以下变量:
-
ha_cluster_enable_repos -
ha_cluster_enable_repos_resilient_storage -
ha_cluster_manage_firewall -
ha_cluster_manage_selinux -
ha_cluster_install_cloud_agents -
ha_cluster_pcs_permission_list
6.18. 虚拟化 复制链接链接已复制到粘贴板!
virtio-mem 在 IBM Z 上提供
有了这个更新,virtio-mem 是半虚拟化内存设备,可用于 IBM Z 硬件。通过使用 virtio-mem,您可以在虚拟机中动态添加或删除主机内存。
Jira:RHEL-72994[1]
用于 IBM Z 主机的新命令: virsh hypervisor-cpu-models
这个版本引进了 virsh hypervisor-cpu-models 命令。您可以在 IBM Z 构架中使用这个命令来显示您的 hypervisor 识别的 CPU 型号。
Jira:RHEL-58151[1]
virt-v2v 现在可以转换使用 NVMe 磁盘的 VMware 虚拟机
在这个版本中,在分析 VMware hypervisor 上创建的虚拟机(VM)配置时,libvirt 工具集可以正确地检测到非易失性内存表达(NVMe)磁盘。现在,可以使用 virt-v2v 工具为 KVM hypervisor 转换此类虚拟机。
快速初始化 NetKVM 参数
在这个版本中,为 NetKVM 驱动程序添加了一个 Fast Initialization (FastInit)参数。启用此参数可确保驱动程序仅将所需内存块的一部分分配给虚拟队列,然后表示内核的就绪状态。然后在后台初始化剩余的内存块。
这使得在 Windows 虚拟机中启动或重新启动网络的速度显著提高,特别是当网络后端使用大量虚拟队列时。但是,它可能会在后台内存分配完成前对性能造成负面影响。
默认情况下启用 FastInit,但您可以使用 Windows 客户机操作系统中的设备管理器应用程序来禁用它。
virtio-mem 可用于 Windows 虚拟机
有了这个更新,您可以使用 virtio-mem、半虚拟化内存设备,以及运行在 RHEL 10 主机上的 Windows 虚拟机(VM)。使用 virtio-mem 设备,您可以为虚拟机动态添加或删除主机内存。
有关支持的 Windows 版本列表,请参阅: 认证的客户机操作系统。
Jira:RHELDOCS-18640[1]
IBM Z 客户机的性能增强 PCI 转换
在这个版本中,IBM Z 主机上的虚拟机可以使用身份映射直接内存访问(DMA)进行 PCI 设备。这个功能显著提高 PCI 设备透传的性能。请注意,要使用这个功能,您的系统必须配置如下:
-
iommu.passthrough=1参数必须在虚拟机的内核命令行上设置。 - 虚拟机必须具有完全 NUMA 固定的内存。
- RHEL 主机系统不能使用逻辑分区(LPAR)。
Jira:RHEL-52964[1]
基于 virtio 的键盘驱动程序改进
在这个版本中,新的基于 virtio 的键盘驱动程序可在虚拟机中捕获早期键盘输入,特别是在固件设置屏幕中和 GRUB 引导装载程序中。
Jira:RHEL-50[1]
VM 实时迁移的新选项 :--available-switchover-bandwidth
当使用 virsh migrate --live 命令实时迁移虚拟机(VM)时,您现在可以添加 --available-available-switchover-bandwidth 选项来指定迁移切换到预复制过程中目标主机的带宽。默认情况下,虚拟机监控程序会自动测量可用的带宽,但当这可能无法可靠地确保实时迁移成功完成时,使用 -available-switchover-bandwidth 可以解决这个问题。
虚拟机现在可以使用 MSDM ACPI 表
在某些 Windows 客户机操作系统上,许可证激活需要使用 Microsoft Data Management (MSDM)高级配置和电源接口(ACPI)表来配置客户机。现在,您可以在 RHEL 上托管的虚拟机(VM)上设置 MSDM ACPI 表。要做到这一点,在虚拟机的 XML 配置中使用以下行:
<acpi>
<table type="msdm">/path/to/table</table>
</acpi>
支持禁用 UEFI 虚拟机的固件配置屏幕
在这个版本中,在 QEMU 中添加了新的阻止 UEFI 虚拟机的固件配置屏幕的功能。阻塞固件配置屏幕可以防止对固件配置应用程序的未授权访问,并确保虚拟机仅从授权设备引导。
您可以通过在 QEMU 命令行上添加以下行来阻止固件配置屏幕。
-fw_cfg name=opt/<hostname>/FirmwareSetupSupport,string=no
将 & lt;hostname& gt; 替换为您的主机 ID。
Jira:RHEL-63645[1]
主机关闭时虚拟机操作的精细配置
在这个版本中,可以对主机关闭时如何处理虚拟机(VM)配置 libvirt 驱动程序。例如,您可以将虚拟机内存配置为在主机关闭时保存,并使虚拟机在主机启动时从保存的内存自动启动。有关特定配置选项,请查看 /etc/libvirt/virtqemud.conf 文件中的 auto_shutdown 参数。
请注意,这个功能实现了 libvirt-guests 服务提供的相同功能,如 /etc/sysconfig/libvirt-guests 文件中配置。因此,您无法与 libvirt-guests.service 的同时,在 virtqemud.conf 中使用 auto_shutdown 配置。
对于新部署,建议在 virtqemud.conf 中使用 auto_shutdown 而不是 libvirt-guests.service,它将在以后的 RHEL 主发行版本中完全替换 libvirt-guests.service。
新的 QEMU 配置参数: migrate_tls_priority
在这个版本中,您可以在 /etc/libvirt/qemu.conf 文件中配置 migrate_tls_priority 参数。您可以使用此参数在实时迁移虚拟机时解决 TLS 的 QEMU 问题。要获得推荐的值,如果默认值不适用于您的部署,请联系红帽客户支持。
64 位 ARM 主机上虚拟机的新功能
现在,在使用 64 位 ARM 架构(aarch64)的 RHEL 主机上支持以下功能:
- 实时快照
使用以下选项预复制迁移:
- TLS 加密和 XBZRLE 压缩
- 脏率监控
- auto-converge
使用以下选项进行多 FD 迁移:
- TLS 加密和 XBZRLE 压缩
- auto-converge
- 零复制
使用以下选项进行复制后迁移:
- TLS 加密和 XBZRLE 压缩
- 恢复
- 抢占
-
使用
virtiofs进行实时迁移
Jira:RHELDOCS-20674[1]
现在,使用 post-copy 虚拟机迁移可以进行 multifd pre-copy
在这个版本中,您可以将 multifd pre-copy migration 与 post-copy 迁移合并。因此,您可以使用预复制阶段启动迁移来实时迁移内存密集型虚拟机(VM),它使用多个文件描述符(multifd)来快速迁移大多数内存页面,然后切换到复制后迁移。与标准实时迁移相比,这个组合提供了更好的迁移性能和灵活性。具体步骤请参阅 使用命令行迁移虚拟机。
SecureBoot 虚拟机支持的直接内核引导
在这个版本中,您可以在使用 SecureBoot 功能配置的虚拟机(VM)中设置直接内核引导。要做到这一点,在虚拟机的 XML 配置中使用 <shim > 参数,例如:
<os firmware="efi">
...
<shim>/var/lib/libvirt/images/BOOTX64.EFI</shim>
</os>
支持 virtio-scsi 设备中的多个 I/O 线程
有了这个更新,您可以为单个 virtio-scsi 设备配置多个 I/O 线程。要做到这一点,请在附加设备的虚拟机的 XML 配置中使用 < iothreads > 参数。这提供了额外的选项来微调虚拟 SCSI 设备的性能和可扩展性。
虚拟机的 SCSI 透传支持
在这个版本中,RHEL 支持虚拟机的 SCSI 透传。使用此功能,虚拟机可以直接访问主机 SCSI 设备,如磁带驱动器和存储区域网络(SAN)逻辑单元号(LUN)。
因此,您可以将虚拟机配置为使用需要直接 SCSI 访问的专用存储设备,包括支持单路径和多路径 vDisks。
请注意,对于 SCSI 透传正常工作,主机必须使用受支持的 RHEL 和内核版本。详情请查看 虚拟机中的支持 SGIO 所需的 RHEL 版本。
Jira:RHELDOCS-21410[1]
对虚拟机的 SCSI3 持久保留支持
在这个版本中,RHEL 支持虚拟机(VM)的 SCSI3 Persistent Reservation (S3-PR)。此功能使多个虚拟机能够协调对共享存储设备的访问,这对 Linux 集群解决方案(如 Pacemaker 和 Windows Server Failover 集群)至关重要。
因此,虚拟机可以在存储设备上注册和管理持久性保留,这可以防止多个虚拟机访问同一存储时发生冲突。S3-PR 支持可用于单路径和多路径 vDisks。
请注意,为了使 S3-PR 正常工作,主机必须使用受支持的 RHEL 和内核版本。详情请查看 虚拟机中的支持 SGIO 所需的 RHEL 版本。
Jira:RHELDOCS-21467[1]
6.19. 云环境中的 RHEL 复制链接链接已复制到粘贴板!
增强了对有资格的 RHEL 镜像的自动注册
在这个版本中,基于符合条件的市场镜像的 RHEL 实例会自动接收来自红帽内容交付网络(CDN)的内容和更新,而不是 Red Hat Update Infrastructure (RHUI)。RHUI 软件仓库默认关闭。
这样可确保自动访问订阅的 RHEL 实例用户的最新更新。
如需了解更多详细信息,请参阅了解自动注册。
Jira:RHELDOCS-21241[1]
RHEL 在 Azure 机密虚拟机上提供
您可以使用 RHEL CVM 镜像在 Microsoft Azure 上创建并运行 RHEL 机密虚拟机(CVM)。镜像通过 Azure 中的机密操作系统磁盘加密功能支持完全磁盘加密。
Jira:RHELDOCS-21373[1]
新软件包: azure-vm-utils
这个更新添加了 azure-vm-utils 软件包,它提供了一个实用程序和 udev 规则集合,以优化在 Microsoft Azure 上使用 RHEL 10 作为客户机操作系统的体验。
Jira:RHEL-73904[1]
6.20. 支持性 复制链接链接已复制到粘贴板!
sos 现在收集 Satellite 指标文件以改进支持诊断
sos 的 foreman-installer 插件现在收集位于 /var/lib/foreman-maintain/ 目录中的 satellite_metrics.yml 文件。它可让您了解 Satellite 正在使用哪些功能以及大规模。
6.21. 容器 复制链接链接已复制到粘贴板!
RHEL 中正式发布新的 rhel10/valkey-8 容器镜像
新可用的 rhel10/valkey-8 容器镜像允许原子操作,并支持各种数据类型,如字符串、散列、列表、集合和排序的集合。镜像提供高性能,因为它的内存中数据集,可以通过将命令附加到磁盘或附加命令到日志中。
Jira:RHELDOCS-20640[1]
改进了对可重复生成的容器构建的支持
可重复生成的构建可确保给定输入集合一致生成相同的输出。此功能增强解决了之前在容器镜像构建中复杂可重复生成的几个因素。虽然 use -source-date-epoch and -rewrite-timestamp 提高了构建的可重复性,并与设置和查找 $SOURCE_DATE_EPOCH 等常见实践保持一致,但它不能保证完全的可重复性。
Podman RESTFUL API 的新工件端点
Podman RESTFUL API 现在包括新的工件端点,实现 OCI 工件程序管理。此功能增强简化了将 OCI 工件操作整合到现有系统和脚本中。
Container Tools 软件包已更新
提供了更新的 Container Tools RPM meta-package,其中包括 Podman、Buildah、Skopeo、crun 和 runc 工具。Buildah 软件包已更新至版本 v1.41.0,Skopeo 已更新至版本 1.20.0。
Podman 版本 v5.6 包含以下显著的程序错误修复和增强:
-
用于管理 Quadlets 的新命令已添加为
podman quadlet 安装(为当前用户安装新的 Quadletletletlet)、podman quadlet 列表(listinstalled Quadlets)、podman quadlet print(打印 Quadlet 文件的内容)和podman quadlet rm(删除一个 Quadletlet)。 -
podman kube play命令可以使用io.podman.annotations.cpuset/$ctrname和io.podman.annotations.memory-nodes/$ctrname注解将容器执行限制到特定的 CPU 内核和特定内存节点。 -
podman kube play命令支持 Pod YAML 中的lifecycle.stopSignal字段,允许使用用于停止指定容器的信号。 -
远程 Podman 客户端中提供了
podman volume import和podman volume export命令。 -
podman volume create命令接受两个新选项,即---uid和-gid来设置将创建卷的 UID 和 GID。 -
podman secret create命令有一个新选项,--ignore导致命令成功,即使具有指定名称的 secret 已存在。 -
podman pull命令具有一个新的选项,即,用于配置拉取策略。 -
podman update命令有一个新的选项,用于更新最新的容器,而不是指定特定容器。 -
添加了用于与工件交互的完整 API 端点,包括检查工件(
GET /libpod/artifacts/{name}/json)、列出所有工件(GET /libpod/artifacts/json), 在请求正文中拉取工件(POST /libpod/artifacts/pull), 删除工件(DELETE /libpod/artifacts/{name})、添加工件(或附加到请求正文中的 tar 文件))将工件推送到 registry (/libpod/artifacts/{name}/push),并检索工件的内容(GET /libpod/artifacts/{name}/extract)。 -
添加了一个新命令,
podman artifact提取,将部分或所有 OCI 工件的内容复制到磁盘上的一个位置。 -
podman create、podman run和podman pod create的--mount选项支持一个新的挂载类型,--mount type=artifact以将 OCI 工件挂载到容器中。 -
podman artifact add命令具有两个新选项,即将新文件添加到现有工件中,并使用--file-type指定添加到工件中的文件的 MIME 类型。 -
podman artifact rm命令具有一个新的选项,用于删除本地存储中的所有工件。 -
podman kube generate和podman kube play命令支持一个新的注解io.podman.annotation.pids-limit/$containername,保留kube generate和kube play中容器的 PID 限制。 -
Quadlet
.container单元支持三个新键,Memory=(为创建的容器设置最大内存)、ReloadCmd(通过 systemdExecReload执行命令)和ReloadSignal(通过 systemdExecReload停止给定信号的容器)。 -
Quadlet
.container、.image和.build单元支持两个新密钥:Retry(失败时重试拉取镜像的次数)和RetryDelay(重试尝试之间的延迟)。 -
Quadlet
.pod单元支持一个新的键HostName=来设置 pod 的主机名。 -
Quadlet 文件支持
安装部分中的新选项UpheldBy,对应于 systemdUpholds选项。 -
指定为 systemd 依赖项的 Quadlet 单元的名称会自动转换,如
Wants=my.container是有效的。
有关值得注意的变化的更多信息,请参阅 上游发行注记。
ADD 和 COPY 指令现在支持- -link 选项
Buildah 和 Podman 现在支持 Containerfiles 中的 ADD 和 COPY 指令的-- link 标志,这会导致在构建镜像中添加新内容作为自己的层。
firewalld中现在提供了 StrictForwardPorts
当 /etc/firewalld/firewalld.conf 配置文件中的 StrictForwardPorts 选项被设置为 yes 时,不再可能从 Podman 进行端口转发,并尝试使用 -p 或 -P 选项启动容器或 pod 会返回错误。所有端口都必须使用 firewalld 进行转发。这样可确保容器不允许流量通过防火墙,而无需管理员干预。详情请查看 netavark-firewalld 手册页。
新的 rhel10/nodejs-24 和 rhel10/nodejs-24-minimal 容器镜像
Red Hat Container Registry 中现在提供了实时 registry.redhat.io/rhel10/nodejs-24 和 registry.redhat.io/rhel10/nodejs-24-minimal 容器镜像。
Node.js 是一个在 Chrome 的 JavaScript 运行时构建的平台,用于轻松构建快速、可扩展的网络应用程序。Node.js 使用事件驱动的、非阻塞 I/O 模型,使其轻便且高效,非常适合在分布式系统上运行的数据密集型实时应用程序。
Jira:RHELDOCS-20749[1]
RHEL 镜像模式支持在运行时创建根目录和符号链接
在这个版本中,您可以使用 RHEL 镜像模式在系统部署后创建根目录和符号链接,然后将文件系统返回到只读模式。因此,您可以在具有不同文件系统要求的多个部署环境中使用单个基础镜像。
Jira:RHELDOCS-21230[1]
bootc-image-builder 默认使用本地容器存储
在这个版本中,bootc-image-builder 工具默认在本地模式下运行,这意味着它不再从远程 registry 中拉取容器镜像。要构建磁盘镜像,您必须在构建磁盘镜像前预加载系统本地容器 registry 中的基本引导容器镜像。如果您有依赖于自动镜像拉取(pull)的现有工作流,您必须更新它们。此更改通过在构建过程中减少外部网络依赖项来提高安全性。
Jira:RHELDOCS-21218[1]
6.22. RHEL Lightspeed 复制链接链接已复制到粘贴板!
命令行助手支持 RHEL 的镜像模式
有了这个增强,您可以自定义 Containerfile 使其包含 命令行助手 软件包,从容器镜像创建磁盘镜像,并使用该镜像引导系统。因此,系统镜像预安装了命令行助手,您可以在使用 subscription-manager 注册系统后使用它。
Jira:RHELDOCS-20546[1]
命令行助手上下文限制增加到 32KB 的输入
在此次更新之前,命令行助手具有 2KB 的输入上下文限制,从而导致输入超过这个限制时失败。因此,用户体验有限,防止因为 2KB 输入上下文限制而进行彻底的日志分析。在这个版本中,命令行助手输入上下文限制已从 2KB 增加到 32KB。因此,命令行助手现在支持更大的输入上下文,从而提供更好的日志分析和潜在的问题检测。
Jira:RHELDOCS-20421[1]
RHEL Lightspeed 的命令行助手可以更好地处理错误处理和退出代码
有了这个增强,命令行助手可以提供更好的错误处理和退出代码,例如:
- 根据 CLA 运行时中可能出现的不同类型的错误,输出不同的错误消息。
- 尝试输出与错误实际原因对应的错误消息,并记录它。
- 根据不同类型的问题实施不同的退出代码。
Jira:RHELDOCS-21313[1]
命令行 assistant -w 选项显示当前的输出
在此次更新之前,当您试图在没有当前启用捕获模式的情况下使用 -w 选项时,命令行助手会错误地显示之前会话的输出。在这个版本中,终端捕获日志文件会在从 -w 选项输出前主动验证。因此,上面提到的问题已被修复,显示的输出是准确的。
Jira:RHELDOCS-21315[1]
6.23. AI 加速器驱动程序可用性 复制链接链接已复制到粘贴板!
通过红帽提供的加速器驱动程序
在 RHEL 10.1 中,第三方加速器驱动程序和计算堆栈(例如来自 AMD NVIDIA 和 ROCm 的 CUDA)可直接从红帽安装。内核驱动程序在红帽基础架构中构建并签名,并使用安全引导。另外,一个新的 AppStream 组件 rhel-drivers 可简化这些第三方驱动程序的安装和常规更新通过现有的 dnf 更新过程。
有关在 RHEL 上安装 AI 加速器驱动程序的说明,请参阅以下红帽博客文章: Red Hat Enterprise Linux 上的新和简化的 AI 加速器驱动程序体验。
Jira:RHELDOCS-21377[1]
使用 rhel-drivers简化了第三方驱动程序安装
RHEL 10.1 引入了 rhel-drivers 安装程序,它包括在 AppStream 存储库中。使用这个工具,您可以使用单一、统一的命令行界面为 GPU 和 AI Accelerators 更轻松地安装第三方硬件驱动程序。rhel-drivers 工具通过直接从 RHEL 扩展和补充频道拉取软件包来管理复杂驱动程序堆栈的安装,如 NVIDIA 内核模块和 CUDA 库。
在此发行版本中,在 RHEL 上安装特殊硬件驱动程序是一个手动和不一致的过程。您必须从各种供应商网站查找、下载和管理驱动程序安装。当为高性能计算或 AI 和机器学习工作负载设置系统时,这种方法带来了显著的欺诈。借助 rhel-drivers,您可以更轻松地、一致、可靠地安装和管理 RHEL 分布式合作伙伴驱动程序。这简化了系统调配,确保您直接从红帽存储库接收最新支持的驱动程序版本,并消除了手动下载的需求。
例如,您只能使用两个命令安装所有必要的驱动程序:
# dnf install rhel-drivers
# rhel-drivers install --auto-detect
Jira:RHEL-113198[1]
第 7 章 技术预览功能 复制链接链接已复制到粘贴板!
这部分提供了 Red Hat Enterprise Linux 10 中可用的所有技术预览功能的列表。
如需有关红帽对技术预览功能支持范围的信息,请参阅 技术预览功能支持范围。
7.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
image-builder-cli 替换 osbuild-composer 和 composer-cli (技术预览)
在这个版本中,您可以安装和使用新的 image-builder-cli 软件包,以使用一个命令构建镜像。新工具支持容器并增强了您的用户体验,以创建可用于构建其他镜像的容器镜像。这个功能是一个技术预览功能。如需了解更多详细信息,请参阅安装 RHEL 镜像构建器。
Jira:RHELDOCS-20354[1]
7.2. 软件管理 复制链接链接已复制到粘贴板!
支持使用 Sequoia PGP 签名软件包作为技术预览提供
将 RPM 配置为使用 Sequoia PGP 而不是签名软件包的 GnuPG 的 macros.rpmsign-sequoia 宏文件现在作为技术预览提供。要启用其用法,请执行以下步骤:
安装以下软件包:
# dnf install rpm-sign sequoia-sq将
macros.rpmsign-sequoia文件复制到/etc/rpm/目录中:$ cp /usr/share/doc/rpm/macros.rpmsign-sequoia /etc/rpm/
Jira:RHEL-56363[1]
7.3. Shell 和命令行工具 复制链接链接已复制到粘贴板!
RHEL 10.1 在 aarch64 上作为技术预览提供
RHEL 10.1 为 64 位 ARM 架构(aarch64)引入了 Relax 和 Recover (ReaR)软件包作为技术预览。ReaR 是一个灾难恢复工具,它会生成一个可引导镜像,可用于从备份中恢复系统。目前,您可以在 aarch64 上使用带有 ReaR 的以下输出方法:ISO、USB 和 PXE。
有关 ReaR 的详情,请查看 Relax 和 Recover (ReaR)是什么以及如何将其用于灾难恢复?
Jira:RHEL-84286[1]
7.4. 内核 复制链接链接已复制到粘贴板!
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.5. 文件系统和存储 复制链接链接已复制到粘贴板!
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
带有 NBFT 的 NVMe/TCP 引导作为技术预览提供
使用 NVM Express 引导规格(NBFT)的 NVMe/TCP 引导在选择服务器平台中作为技术预览提供。有关平台特定详情和兼容性信息,请参阅您的服务器制造商。
Jira:RHELDOCS-21587[1]
7.6. 动态编程语言、网页和数据库服务器 复制链接链接已复制到粘贴板!
Node.js 24 作为技术预览提供
在 Red Hat Enterprise Linux 10.1 中,一个新的 nodejs24 组件作为技术预览提供。与 RHEL 10.0 中的 Node.js 22 相比,这个更新引入了 Node.js 24,其中包括新功能、错误修复、安全更新和性能改进。
目前,nodejs24 软件包提供了版本化的二进制文件(/usr/bin/node-24、/usr/bin/npm-24、/usr/bin/npx-24)。要使用这些二进制文件,请更新脚本中的 shebang 行来引用特定于版本的路径。以后可能会包含 nodejs24 以提供基本二进制文件(/usr/bin/node 和相关文件)的功能。
要安装 nodejs24 软件包,请输入:
# dnf install nodejs24
有关 nodejs 应用程序流支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期。
7.7. 编译器和开发工具 复制链接链接已复制到粘贴板!
eu-stacktrace 作为技术预览提供
自 0.192 版本以来一直通过 elfutils 软件包分发的 eu-stacktrace 工具作为技术预览功能提供。eu-stacktrace 是一个原型工具,它使用 elfutils 工具包的展开库来支持采样分析器,以展开无帧指针堆栈样本数据。
Jira:RHELDOCS-19072[1]
7.8. 身份管理 复制链接链接已复制到粘贴板!
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。
DNSSEC 在 IdM 中作为技术预览提供
带有集成 DNS 的身份管理(IdM)服务器现在实现了 DNS 安全扩展(DNSSEC),这是一组增强 DNS 协议安全的 DNS 扩展。托管在 IdM 服务器上的 DNS 区可以使用 DNSSEC 自动签名。加密密钥是自动生成和轮转的。
建议那些决定使用 DNSSEC 保护 DNS 区的用户读取并遵循这些文档:
请注意,集成了 DNSSEC 的 IdM 服务器验证从其他 DNS 服务器获取的 DNS 答案。这可能会影响未按照推荐的命名方法配置的 DNS 区域可用性。
Jira:RHELDOCS-20690[1]
现在,IdM 的 ansible-freeipa 安装中提供了带有 DoT 的加密的 DNS 作为技术预览
现在,您可以使用 Ansible 来确保 DNS 客户端和身份管理(IdM) DNS 服务器之间的所有 DNS 查询和响应都已加密。从 RHEL 10 开始,使用 DNS 的加密 DNS (DoT)在 IdM 部署中作为技术预览提供。在 RHEL 10.1 中,功能在 freeipa.ansible_freeipa 集合中作为技术预览提供。
要使用 ansible-freeipa 在 IdM 部署过程中启用 DoT,请使用以下选项:
-
ipaserver_dns_over_tls,带有新服务器的freeipa.ansible_freeipa.ipaserver角色。 -
带有
freeipa.ansible_freeipa.ipareplica角色的ipareplica_dns_over_tls。 -
dot_forwarder指定启用了上游的 DoT 的 DNS 服务器。 -
dns_over_tls_key和dns_over_tls_cert来配置 DoT 证书。
另外,您可以将 dns_policy 变量设置为强制 DoT-only 通信,覆盖允许回退到未加密的 DNS 的默认行为。
Jira:RHELDOCS-20258[1]
7.9. 虚拟化 复制链接链接已复制到粘贴板!
TDX 作为技术预览在 RHEL 主机上提供
作为技术预览,您可以在 RHEL 主机上启用信任域扩展(TDX)。TDX 是基于硬件的安全功能,可为虚拟机提供强大的内存加密和完整性保护,将其与虚拟机监控程序和其他系统软件隔离开来。
TDX 仅适用于 Intel CPU。
Jira:RHEL-111863[1]
RHEL 网络的 VDUSE 作为技术预览提供
现在,用户空间(VDUSE)功能中的 virtio 数据路径加速(vDPA)设备现在作为 RHEL 网络的一个技术预览提供。VDUSE 是 Linux 内核机制,特别是为 vDPA 设备分配用户空间。这个机制可让用户空间进程以受控的方式注册 virtio-class 设备,如 NIC 或块设备。因此,您可以通过标准 vDPA 或 virtio 接口将其用于虚拟机或主机。
Jira:RHEL-76477[1]
用于 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 仅适用于第二代 AMD EPYC CPU (代号 Rome)或更新版本。
- SEV-SNP 仅适用于第三代 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]
到 TCP 网桥的虚拟套接字作为技术预览提供
作为技术预览,您可以使用虚拟套接字(vsock)到 TCP 网桥。通过使用此网桥,您可以在不配置任何 IP 网络的情况下,安全地将虚拟机(VM)服务(如 SSH)公开给主机。
要通过 hypervisor 的专用 vsock 通道将主机直接连接桥接到虚拟机内部的 SSH 服务,您可以使用 socat 等中继工具。
SEV-SNP 在 RHEL 主机上作为技术预览提供
作为技术预览,您可以在 RHEL 主机上启用安全加密虚拟化-Secure Nested Paging (SEV-SNP)。SEV-SNP 是基于硬件的安全功能,可为虚拟机提供强大的内存加密和完整性保护,将其与虚拟机监控程序和其他系统软件隔离开来。
SEV-SNP 仅适用于 AMD CPU,您必须使用 snphost 软件包在主机上配置该功能。
Jira:RHELDOCS-19757[1]
ARM 虚拟机中的 CCA 作为技术预览提供
作为技术预览,您可以在 RHEL 10.1 虚拟机(VM)中启用机密计算架构(CCA)。CCA 基于 Realm Management Extension (RME)构建,有助于在虚拟机内使用时保持数据隐私。
目前,CCA 只能作为技术预览在 ARM 虚拟机中启用,而不能在 RHEL 主机中启用。
7.10. 容器 复制链接链接已复制到粘贴板!
部分拉取 zstd:chunked 作为技术预览提供
您只能拉取使用 zstd:chunked 格式压缩的容器镜像的更改部分,从而减少了网络流量和必要的存储。您可以通过在 /etc/containers/storage.conf 文件中添加 enable_partial_images = "true" 设置来启用部分拉取。此功能作为技术预览提供。
podman artifact 命令作为技术预览提供
podman artifact 命令(可用来在命令行上与 OCI 工件一起工作)作为技术预览提供。如需进一步通知,请参阅 man page。
podman network create 的 vrf 选项作为技术预览提供
podman network create 命令现在为 --opt 选项提供 vrf 值,作为技术预览。vrf 值分配一个虚拟路由,并将实例(VRF)转发到网桥接口。它接受 VRF 的名称,默认为 none。
这个选项只能与 Netavark 网络后端一起使用。
Podman 与 Docker API 兼容性作为技术预览提供
Podman 支持以下 Docker API 版本作为技术预览:
- Docker API 1.41
- Docker API 1.43
7.11. 之前版本中标识的技术预览功能 复制链接链接已复制到粘贴板!
这部分提供了 Red Hat Enterprise Linux 10 中所有技术预览的列表。
如需有关红帽对技术预览功能支持范围的信息,请参阅 技术预览功能支持范围。
7.11.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]
PRP 和 HSR 协议现在作为技术预览提供
这个更新添加了提供以下协议的 hsr 内核模块:
- Parallel Redundancy Protocol (PRP)
- 高可用性无缝冗余(HSR)
IEC 62439-3 标准定义了这些协议,您可以使用这个功能在以太网网络中配置具有零时间恢复的冗余。
Jira:RHELDOCS-20472[1]
NetworkManager 启用配置 HSR 和 PRP 接口
High-availability Seamless Redundancy(HSR)和 Parallel Redundancy Protocol(PRP)是网络协议,它们针对任何单个网络组件故障提供无缝故障转移。这两个协议对应用程序层都是透明的,这意味着用户在通信过程中不会遇到任何中断或任何数据丢失,因为主路径和冗余路径之间的切换发生的很快,且用户不知道。现在,可以通过 nmcli 工具和 DBus 消息系统,使用 NetworkManager 服务启用和配置 HSR 和 PRP 接口。
第 8 章 开发人员预览功能 复制链接链接已复制到粘贴板!
这部分列出了 Red Hat Enterprise Linux 10.1 中的所有开发人员预览功能。
有关红帽对开发人员技术预览功能支持范围的信息,请参阅 开发人员预览 - 支持范围。
8.1. RHEL Lightspeed 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux 的 MCP 服务器作为开发者预览提供
此开发者预览引入了 RHEL 的新模型上下文协议(MCP)服务器,它旨在缩小 RHEL 系统和大型语言模型(LLM)之间的差距。通过使用 RHEL 的 MCP 服务器,您可以启用 AI 应用程序在 RHEL 系统上执行上下文感知故障排除,包括日志和性能分析。
Jira:RHELDOCS-21153[1]
第 9 章 删除的功能 复制链接链接已复制到粘贴板!
所有删除的功能在早期版本中已弃用,不再被支持。有关 RHEL 9 中存在,但已在 RHEL 10 中 删除的 功能的信息,请参考 采用 RHEL 10 时的注意事项。
9.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
cockpit-composer 软件包已被删除
cockpit-composer 软件包已被删除,不再被支持。从现在开始,请使用 cockpit-image-builder。
Jira:RHELDOCS-20167[1]
gdisk 从 RHEL 10 中的 boot.iso 中删除
gdisk partitioning 工具从 RHEL 10 中的 boot.iso 镜像类型中删除。您仍可在 Kickstart 中使用 gdisk。对于 boot.iso 镜像类型,其他工具可用来处理 GPT 磁盘,例如 parted 工具。
Jira:RHELDOCS-18904[1]
9.2. 网络 复制链接链接已复制到粘贴板!
网络团队驱动程序已被删除
teamd 服务和 libteam 库在 Red Hat Enterprise Linux 10 中删除。作为替换,配置绑定而不是网络组。
红帽注重于基于内核的绑定操作,以避免维护具有类似功能的两个功能:绑定和团队(team)。绑定代码具有较高的客户采用率,非常可靠,具有活跃的社区开发。因此,绑定代码会收到功能增强和更新。
如果您将 RHEL 9 与网络团队搭配使用,并计划升级到 RHEL 10,请在升级前将网络团队配置迁移到网络绑定。
Jira:RHELDOCS-20862[1]
9.3. 编译器和开发工具 复制链接链接已复制到粘贴板!
32 位 ARM 和 MIPS 后端已从 wagon swig 中删除
RHEL 10.1 中的 swigllvm 软件包删除了 32 位 ARM 和 MIPS 后端。这个变化减少了工具链的构建时间和维护工作。如果您需要这些后端,您应该使用替代的构建目标或更早的软件包版本。
9.4. 身份管理 复制链接链接已复制到粘贴板!
引用模式已从 389-ds-base中删除
在此次更新之前,目录服务器支持在引用模式下启动服务器。但是,由于稳定性问题,此功能不再被支持并被删除。
请注意,您可以继续使用 nsslapd-referralmode 和 nsslapd-referral 属性。当请求的可分辨名称(DN)不在服务器维护的任何后缀中时,目录服务器仍然可以返回引用。
nsslapd-subtree-rename-switch 从 389-ds-base中删除
在此次更新之前,您可以配置目录服务器以防止在数据库中的子树之间移动条目。由于稳定性问题,此功能会被删除。因此,nsslapd-subtree-rename-switch 参数不再存在。
因此,您无法在子树之间移动条目。另外,您可以通过创建访问控制指令(ACI)来停用移动条目。
Jira:RHEL-77490[1]
9.5. 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。但是,弃用的变量将继续工作。
9.6. 虚拟化 复制链接链接已复制到粘贴板!
不再支持实时虚拟机转储
在这个版本中,virsh dump 命令的-- live 选项不被支持。如果您试图使用带有- live 选项的 virsh dump 来创建虚拟机转储,命令将失败。
Jira:RHELDOCS-21349[1]
第 10 章 弃用的功能 复制链接链接已复制到粘贴板!
弃用的功能被完全支持,这意味着它们会被测试和维护,且其支持状态在 Red Hat Enterprise Linux 10 中保持不变。但是,它们可能在以后的主发行版本中不被支持,不建议在当前或将来的 Red Hat Enterprise Linux 主发行版本上进行新部署。
在主版本的发行周期内可以弃用的功能。
弃用的功能列在所有未来的发行注记中,直到被删除为止。有关已弃用的功能的完整列表,请参阅最新次版本的发行注记。有关支持长度的详情,请查看 Red Hat Enterprise Linux 生命周期 和 Red Hat Enterprise Linux 应用程序流生命周期。
10.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
squashfs 软件包已弃用
squashfs 软件包已弃用,并将在以后的主 RHEL 发行版本中删除。作为替代方案,dracut 支持挂载 erofs。
Jira:RHELDOCS-18903[1]
module Kickstart 命令已弃用
Anaconda 弃用了对 DNF 模块的支持,因此 module Kickstart 命令已被弃用。如果您在 Kickstart 文件的 %packages 部分或 module Kickstart 命令中使用 模块,这可能会影响您。这个变化是为了简化安装过程,并确保以后更一致的体验。
inst.gpt 引导选项现已弃用
inst.gpt 引导选项现已弃用,并将在以后的发行版本中删除。要指定首选的磁盘标签类型,请使用 inst.disklabel 引导选项。指定 gpt 或 mbr 来创建 GPT 或 MBR 磁盘标签。
Jira:RHELDOCS-18491[1]
10.2. 安全性 复制链接链接已复制到粘贴板!
oqsprovider 和 liboqs 已被弃用
为 OpenSSL 3.0 提供 post-quantum 加密(PQC)的 oqsprovider 和 liboqs 软件包已被弃用,并可能在以后的主发行版本中删除。反之,使用 OpenSSL 3.5 提供的 PQC 功能。
Jira:RHEL-97489[1]
X25519-MLKEM768 在 crypto-policies中弃用并别名为 MLKEM768-X25519
系统范围的加密策略中的 X25519-MLKEM768 值已弃用,并别名到 MLKEM768-X25519 值。这会统一串联顺序,允许两个变体正常工作。
OpenSSL 中的 ENGINE API 已弃用
在 RHEL 10 中,ENGINE API 已弃用,并计划在以后的主发行版本中删除。没有新的应使用 ENGINE API 构建的应用程序。为了保持应用程序二进制接口(ABI)和现有应用程序正常工作,OpenSSL 仍然导出 ENGINE 符号。要防止新应用程序使用 ENGINE API,OpenSSL 会设置系统范围的 OPENSSL_NO_ENGINE 标志,且公开 ENGINE API 的头文件 engine.h 已被删除。
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)中指定。
FIPS 模式中的 HMAC-SHA-1 已弃用
HMAC-SHA-1 加密算法在 FIPS 模式中已弃用,它可能会在以后的版本中删除。在 FIPS 模式之外,保留了对 HMAC-SHA-1 的支持。
10.3. 软件管理 复制链接链接已复制到粘贴板!
模块性已弃用
在 RHEL 10 中,模块化功能已被弃用,并将在以后的主发行版本中删除。因此,DNF module 命令显示弃用警告。
在以前的 RHEL 主版本中,一些应用程序流作为 RPM 格式的扩展,以模块形式提供。在 RHEL 10 中,红帽不会提供任何使用模块化作为打包技术的应用程序流。因此,RHEL 10 不会发布任何模块化内容。
Jira:RHELDOCS-20138[1]
10.4. 基础架构服务 复制链接链接已复制到粘贴板!
FTP 客户端和服务器软件现已弃用
以下 FTP 客户端和服务器软件已弃用,并将在以后的 RHEL 主版本中删除:
-
ftp -
lftp -
vsftpd
这些 FTP 协议实现不再处于活跃的开发阶段。我们建议客户计划基于 FTP 将工作流迁移到其中之一:
-
OpenSSH 和
sftp命令,它为通过 SSH 协议进行安全文件传输提供了交互式界面。 - 基于 Apache httpd 的 WebDAV - 提供了各种客户端实施。
Jira:RHELDOCS-20610[1]
10.5. 网络 复制链接链接已复制到粘贴板!
ipset 已不再维护
在 RHEL 10 中,ipset 工具未被维护,并计划在以后的主发行版本中删除。红帽仅在当前发行生命周期中提供关键 bug 修复。作为 ipset 的替代选择,您可以使用 nftables 设置功能。
Jira:RHELDOCS-20147[1]
BIND auto-dnssec 参数已弃用
从 RHEL 9.7 开始,BIND auto-dnssec 参数已弃用,并将在以后的发行版本中删除。作为替换,使用 dnssec-policy 参数指定一个完整的密钥和签名策略(KASP),它将所有相关配置分组到一个直观的块中。
有关迁移到 dnssec-policy 的详情,请参考 BIND 9 上游文档中的 DNSSEC 密钥和签名策略。
Jira:RHELDOCS-21532[1]
10.6. 文件系统和存储 复制链接链接已复制到粘贴板!
squashfs 软件包已弃用
squashfs 已弃用,并将在下一个主发行版本中删除。它将不再获得增强功能,并且在 RHEL 10 中用于红帽内部的特定用例。考虑使用 EROFS 作为替代解决方案。
Jira:RHELDOCS-18450[1]
10.7. 高可用性和集群 复制链接链接已复制到粘贴板!
弃用的 High Availability Add-On 功能
以下功能已在 Red Hat Enterprise Linux 10 中弃用,并将在下一个主发行版本中删除:
- 将规则指定为多个参数。改为使用单个字符串参数。
-
在
pcs constraint location add和pcs 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 destroy、pcs quorum unblock、pcs stonith confirm、pcs stonith sbd device setup和pcs stonith sbd watchdog test命令。现在,您应该使用--yes标志来确认潜在的破坏性操作,并保留使用--force标志来覆盖验证错误。 -
使用
--force标志来在pcs cluster report中确认覆盖文件。改为使用-overwrite标志。 -
分配和不分配 ACL 角色,而不指定
user或group关键字。 -
在顺序约束中配置 score 参数。现在,当用户尝试在顺序约束中配置 score 参数时,
pcs命令行界面会产生一条警告。
Jira:RHELDOCS-19607[1]
10.8. 编译器和开发工具 复制链接链接已复制到粘贴板!
GCC Toolset 15 环境脚本替换了 Software Collections (scl-enable)
在以前的版本中,attributeenable gcc-toolset-15 <command > 命令用于管理 Red Hat Enterprise Linux 上 GCC Toolset 15 的开发环境。在 RHEL 10 中,软件集合不再用于此目的。因此,swigscl enable 选项不适用于 swiggcc-toolset-15。
使用新的 swiggcc-toolset-15-env 脚本,该脚本使用 GCC 工具集环境运行指定的命令:
gcc-toolset-15-env <command>
如果没有指定命令,该脚本会在 GCC 工具集环境中打开一个默认 shell (wagonsh)。
因此,用户必须使用 swiggcc-toolset-15-env 而不是 rhacmscl enable 以访问 RHEL 10 中的 GCC Toolset 15。
Jira:RHEL-88743[1]
glibc 中的 utmp 和 utmpx 接口已弃用
glibc 库提供的 utmp 和 utmpx 接口包含一个计数器,从 UNIX epoch 开始计算时间。此计数器将在 2106 年 2 月 07 日时溢出。因此,utmp 和 utmpx 在 RHEL 10 中已弃用,并将在 RHEL 11 中删除。
Jira:RHELDOCS-18080[1]
10.9. Web 控制台 复制链接链接已复制到粘贴板!
RHEL web 控制台中的主机切换器已弃用
通过从单个 RHEL web 控制台会话 SSH 来提供连接到多个机器的主机切换器已弃用,并默认禁用。由于 web 技术限制,此功能并不安全。
在短期内,您可以使用 cockpit.conf 文件中的 AllowMultiHost 选项评估您场景中的风险后启用主机切换器:
[WebService]
AllowMultiHost=yes
作为更安全的替代方案,您可以使用:
- Web 控制台登录页面(在 Web 浏览器会话中具有一个主机的安全限制)
- Cockpit Client flatpak
Jira:RHEL-4032[1]
10.10. Red Hat Enterprise Linux 系统角色 复制链接链接已复制到粘贴板!
sshd 变量已弃用,并被 sshd_config 替换
要在 RHEL 系统角色中统一编码标准,sshd 变量已被 sshd_config 变量替代。sshd 变量现已弃用,可能在以后的 RHEL 主发行版本中的 sshd Ansible 角色中删除。
Jira:RHEL-73440[1]
10.11. 虚拟化 复制链接链接已复制到粘贴板!
特定的 IBM z16 CPU 功能已弃用。
在这个版本中,IBM z16 KVM 虚拟机弃用了 te 和 cte CPU 功能。但请注意,将带有 CPU 模型 host-model 的虚拟机从 IBM z16 主机迁移到 IBM z17 主机不需要对 CPU 功能设置进行任何调整。
Jira:RHEL-89426[1]
rtl8139 NIC 已为虚拟机已弃用
在这个版本中,rtl8139 网络接口控制器类型已弃用,并将在以后的 RHEL 主发行版本中的虚拟机中使用。如果您需要在主机上使用非 virtio NIC 类型,请使用 e1000 或 e1000e NIC。
libslirp 已弃用
在 RHEL 10 中,libslirp 网络后端已弃用,并将在以后的主发行版本中删除。
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:RHELDOCS-20688[1]
libvirtd 已被弃用
单体 libvirt 守护进程 libvirtd 已在 RHEL 9 中弃用,并将在以后的 RHEL 主发行版本中删除。请注意,您仍然可以使用 libvirtd 在虚拟机监控程序上管理虚拟化,但红帽建议您切换到新引入的模块化 libvirt 守护进程。具体说明和详情,请参阅 RHEL 9 配置和管理虚拟化 文档。
Jira:RHELDOCS-20689[1]
使用基于 SHA1 的签名进行 SecureBoot 镜像验证已弃用
在 UEFI (PE/COFF)可执行文件中使用基于 SHA1 的签名执行 SecureBoot 镜像验证已被弃用。红帽建议改为使用基于 SHA-2 算法或更新算法的签名。
Jira:RHELDOCS-20691[1]
虚拟软盘驱动程序已弃用
用于控制虚拟软盘设备的 isa-fdc 驱动程序现已弃用,并将在以后的 RHEL 发行版本中不被支持。因此,为了确保与迁移的虚拟机(VM)兼容,红帽不建议在 RHEL 10.1 上托管的虚拟机中使用软盘磁盘设备。
Jira:RHELDOCS-20692[1]
qcow2-v2 镜像格式已弃用
在 RHEL 10.1 中,虚拟磁盘镜像的 qcow2-v2 格式已弃用,并将在以后的 RHEL 主发行版本中不被支持。另外,RHEL 10.1 Image Builder 无法以 qcow2-v2 格式创建磁盘镜像。
红帽强烈建议您使用 qcow2-v3,而不是 qcow2-v2。要将 qcow2-v2 镜像转换为更新的格式版本,请使用 qemu-img amend 命令。
Jira:RHELDOCS-20693[1]
10.12. 容器 复制链接链接已复制到粘贴板!
在最小容器镜像中,默认不再安装 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或可以取消设置。
-
如果您从以前的 RHEL 版本升级到 RHEL 10.0,或者全新安装了 RHEL 10.0 ,则 CNI 不再可用。因此,您必须运行
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。
nodejs-18 和 nodejs-18-minimal 已弃用
nodejs-18 和 nodejs-18-minimal 容器镜像现已弃用,将不再接收功能更新。改为使用 nodejs-22 和 nodejs-22-minimal。
Jira:RHELDOCS-20283[1]
gcc-toolset-13-toolchain 镜像已弃用
带有构建 C 和 C++ 应用程序的基本库和工具的 gcc-toolset-13-toolchain 基础镜像已弃用,并可能会从将来的 RHEL 版本中删除。
Jira:RHELDOCS-21741[1]
10.13. 在之前版本中识别的弃用功能 复制链接链接已复制到粘贴板!
这部分提供了在 Red Hat Enterprise Linux 10 中 已弃用的 功能的概述。
10.13.1. SSSD 复制链接链接已复制到粘贴板!
SMB1 协议在 Samba 中已弃用
从 Samba 4.11 开始,不安全的服务器消息块版本 1 (SMB1)协议已弃用,并将在以后的发行版本中删除。
为提高安全性,SMB1 默认在 Samba 服务器和客户端工具中被禁用。
Jira:RHELDOCS-16612[1]
10.14. 已弃用的软件包 复制链接链接已复制到粘贴板!
本节列出了已弃用的软件包,可能不会包括在 Red Hat Enterprise Linux 未来的主发行版本中。
在 RHEL 10 中,已弃用的软件包的支持状态保持不变。
以下软件包已在 RHEL 10 中弃用:
- daxio
- ftp
- gvisor-tap-vsock-gvforwarder
- lftp
- libpmem
- libpmem2
- libpmemblk
- libpmemlog
- libpmemobj
- libpmemobj-cpp
- libpmempool
- libslirp
- nvml
- pmempool
- pmreorder
- sdl2-compat
- vsftpd
- wget
第 11 章 已知问题 复制链接链接已复制到粘贴板!
此版本的 Red Hat Enterprise Linux 10.1 会受到以下新识别和之前已知问题的影响。已知问题列在以后的发行注记中,直到解决为止,届时它将作为已修复问题发布。如果您遇到本节中没有列出的问题,请使用此页面右上角的按钮进行报告。
11.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
默认不执行崩溃转储
默认情况下,使用 RHEL 镜像模式的默认安装方法不会发生崩溃转储,因为 crashkernel= 内核参数没有被设置。要临时解决这个问题,请在构建或安装过程中设置 crashkernel= 内核参数。
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,以便能够在容器中写一个分区配置。
无法从签名的容器构建 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 签名,请参阅 签名容器镜像 产品文档。
主机名解析由于引导选项中加密的 DNS 和自定义 CA 而失败
当在内核命令行中使用 inst.repo= 或 inst.stage2= 引导选项以及远程安装 URL、加密的 DNS 和 Kickstart 文件中的自定义 CA 证书时,安装程序会在处理 Kickstart 文件前尝试下载 install.img stage2 镜像。因此,主机名解析失败,从而导致在成功获取 stage2 镜像前显示一些错误。临时解决方案:在 Kickstart 文件中定义安装源,而不是内核命令行。
安装程序在最终 RPM 安装过程中变得无响应
在 RPM 安装过程中,安装程序可能会变得无响应。在问题发生前,您可能会看到重复的 配置 rootfiles.noarch 消息。临时解决方案:重启安装进程。
Jira:RHEL-67865[1]
在安装过程中使用快捷方式禁用键盘布局切换
要防止因更改键盘布局的键盘快捷键损坏而导致的混乱,此功能已在 Anaconda 中禁用。您不能在安装过程中使用快捷方式更改键盘布局。临时解决方案 :使用顶栏中的键盘布局图标切换布局。
将设备与 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 服务被正确禁用。
如果在使用 ostreecontainer 时没有创建 /boot 分区,则安装程序会失败
当使用 ostreecontainer Kickstart 命令安装可引导容器时,如果没有创建 /boot 分区,安装会失败。出现这个问题的原因是,安装程序需要一个专用的 /boot 分区来继续容器部署。
临时解决方案:确保在 Kickstart 文件中定义了一个 /boot 分区或者在安装过程中手动创建。
当 ignoredisk 命令在 iscsi 命令时,Kickstart 安装会失败并显示未知磁盘错误
如果 ignoredisk 命令被放在 iscsi 命令之前,则使用 Kickstart 方法安装 RHEL 会失败。出现这个问题的原因是 iscsi 命令在命令解析过程中附加了指定的 iSCSI 设备,而 ignoredisk 命令同时解析设备规范。如果 ignoredisk 命令在 iscsi 命令附加之前引用了一个 iSCSI 设备名称,则安装会失败,并显示"unknown disk"错误。
临时解决方案:确保 iscsi 命令在 Kickstart 文件中被放置在 ignoredisk 命令之前,以引用 iSCSI 磁盘,并确保安装成功。
USB CD-ROM 驱动器作为 Anaconda 中的安装源不可用
当源为 USB CD-ROM 驱动器,并且指定了 Kickstart ignoredisk --only-use= 命令时,安装会失败。在这种情况下,Anaconda 无法找到并使用这个源磁盘。
临时解决方案:使用 harddrive --partition=sdX --dir=/ 命令从 USB CD-ROM 驱动器安装。因此,安装不会失败。
驱动程序磁盘菜单无法在控制台上显示用户输入
当您在带有驱动程序磁盘的内核命令行中使用 inst.dd 选项启动 RHEL 安装时,控制台无法显示用户输入。因此,似乎应用程序没有响应用户输入并停止响应,但会显示给用户造成混淆的输出。但是,此行为不会影响功能,用户输入会在按 Enter 后被注册。
临时解决方案:要看到预期的结果,请忽略控制台中没有用户输入,并在完成添加输入后按 Enter 键。
磁盘空间不足可能导致部署失败
在没有足够可用磁盘空间的软件包模式系统上部署 bootc 容器镜像可能会导致安装错误,并阻止系统引导。确保有足够的磁盘空间供镜像安装,并在部署前调整配置的逻辑卷。
Jira:RHELDOCS-19948[1]
Anaconda 可能无法在 s390x 和 ppc64le 构架中正常工作
除了已经支持的 x86_64 和 ARM 架构外,RHEL 的镜像模式支持 pp64le 和 s390x 架构。但是,Anaconda 可能无法在 s390x 和 ppc64le 构架中正常工作。
Jira:RHELDOCS-19496[1]
Azure 上标记为 LVM 的 RHEL 镜像需要调整默认布局
当在 Azure 上使用 system-reinstall-bootc 或 bootc install 时,标记为 LVM 的 RHEL 镜像需要调整默认布局。
临时解决方案:使用标记为 RAW 的 RHEL 镜像。这不需要调整默认布局。
Jira:RHELDOCS-19945[1]
由于分区忙碌,安装会失败
storage 子系统中的竞争条件会导致在将分区表写入磁盘时安装失败。系统显示以下出错信息:
Partition(s) have been written, but we have been unable to inform the kernel of the change.
发生此错误的原因是分区报告为忙碌,且无法同步更改。要临时解决这个问题,请重启系统。
11.2. 安全性 复制链接链接已复制到粘贴板!
sq 无法在 FIPS 模式中生成密钥
Sequoia PGP toolset 中的 sq 实用程序使用已弃用的 OpenSSL API 进行密钥生成。因此,您不能在以 FIPS 模式运行的系统上的 sq 生成密钥。
gnutls 无法将 ML-DSA 私钥转换为公钥
gnutls 缺少一种算法,用于将扩展形式中的私有 ML-DSA 密钥转换为公共 ML-DSA 密钥。因此,当只提供扩展私钥时,需要这两个密钥的操作会失败。
临时解决方案:使用 openssl 命令将此类私钥转换为公钥: openssl dsa -in < private_key> -pubout -out < public_key >。因此,公钥可用于其他操作。
rpm-sequoia 的 PQC 始终在 crypto-policies中启用
在 RHEL 10.1 中,如果系统范围的加密策略中禁用了用于签名的算法之一,rpm-sequoia 无法验证双签名的 RPM 软件包。这个问题在禁用 post-quantum (PQ)算法的系统中很常见,且无法安装使用经典和 PQ 加密签名的软件包。
为了防止破坏系统,rpm-sequoia 的 PQ 算法在 crypto-policies 级别上被硬编码。因此,无论 crypto-policies 中的任何设置是什么,rpm-sequoia 的 PQ 算法都会被启用。
四个 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 模式下正常工作。
11.3. Shell 和命令行工具 复制链接链接已复制到粘贴板!
uname 命令生成未知输出
uname 命令显示带有 flags --hardware-platform 和- processor 的未知输出。在以前的 RHEL 版本中,uname -i 和 uname -p 是 uname -m 的别名,即使 GNU 或 Linux 发行版也不可移植。
作为临时解决方案,您可以使用 the -m 标志而不是 -i and -p 标志。
11.4. 基础架构服务 复制链接链接已复制到粘贴板!
默认情况下,在 IBM Z 上运行的虚拟机无法使用热插内存
RHEL 提供了默认的 udev 规则,当您使用 virtio-mem 的虚拟机(VM)热插内存时,会自动在线设置内存。但是,当前的 udev 规则不包括在 IBM Z 上运行的虚拟机。因此,在热插内存到使用 virtio-mem 的 IBM Z 上运行的虚拟机后,虚拟机中不会立即提供内存。
要临时解决这个问题,请在虚拟机中设置 memhp_default_state=online 内核参数并重启它。例如:
# grubby --update-kernel=ALL --args=memhp_default_state=online
因此,虚拟机中提供了热插内存。
Nginx 不支持 PKCS #11 和 TPM
OpenSSL 引擎 API 在 RHEL 9 中已弃用,并在 RHEL 10 中从 Nginx 中删除。使用当前 OpenSSL 提供者 API 的相应功能还不可用。因此,Nginx HTTP 服务器无法通过 PKCS #11 和受信任的平台模块(TPM)设备与硬件安全模块(HSM)一起工作。
为 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]
11.5. 文件系统和存储 复制链接链接已复制到粘贴板!
重启后不一致的 NVMe 设备名称
在 RHEL 10 中引入了一个启用异步 NVMe 命名空间扫描的新内核功能,来加快 NVMe 磁盘检测。由于异步扫描,/dev/nvmeXnY 设备文件在每次重启后可能会指向不同的命名空间。这可能导致不一致的设备名称。目前,对这个问题还没有已知的临时解决方案。
Jira:RHEL-85845[1]
重启后,支持 iSCSI 的逻辑卷无法激活
在安装过程中,跨越本地磁盘和 iSCSI 设备的逻辑卷可能无法在安装的系统中激活 iSCSI 设备。当非 root 文件系统 LVM 逻辑卷位于本地磁盘和 iSCSI 设备上时,这会导致安装程序无法使用 node.startup=onboot 配置 iSCSI 设备。因此,系统重启后无法访问卷,因为它不会在引导时自动激活。
临时解决方案:在 /var/lib/iscsi/nodes/ 目录中的相关文件中设置 node.startup=automatic,来在安装后手动创建逻辑卷。
11.6. 高可用性和集群 复制链接链接已复制到粘贴板!
ACL 角色不应引用具有两个规则的位置约束
在 Red Hat Enterprise Linux 10 中,不支持位置约束中有多个顶级规则。当从 RHEL 9 升级到 RHEL 10 时,请验证您配置的任何 ACL 角色没有引用具有两个规则的位置约束,并且仍然有效。
11.7. 编译器和开发工具 复制链接链接已复制到粘贴板!
TBB 的新版本不兼容
RHEL 10 包括线程构建块(TBB)库版本 2021.11.0,它与之前分发的 RHEL 版本不兼容。您必须重建使用 TBB 的应用程序,以使它们在 RHEL 10 上运行。
11.8. 身份管理 复制链接链接已复制到粘贴板!
从 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]
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]
通过 SSSD 运行的 adcli 自动续订主机 keytab 失败
在直接 SSSD-AD 集成中,SSSD 每天检查机器帐户密码是否超过配置的天数,如果需要,尝试更新它。配置的期限由 ad_maximum_machine_account_password_age 值设置,默认为 30 天。0 值禁用续订尝试。
但是,目前存在问题,机器帐户密码的自动续订失败。如果密码过期,这可能会导致主机丢失对 AD 域的访问。
临时解决方案:手动或者通过其他方法更新密码。不要依赖 SSSD 自动续订。
Jira:RHELDOCS-19172[1]
ldapmodify 不会从 cn=config 中的任何属性中删除单个特定值
目前,当您尝试从 cn=config 中的任何属性中删除值时,该值将保留在属性中,服务器可能需要重启来完全删除它。
临时解决方案:通过执行一个不指定任何值的修改操作来删除整个属性,包括其所有值。然后重新添加您需要的值。另外,使用以下 dsconf 命令删除特定的值,而无需服务器重启:
# dsconf <instance_name> config delete <attribute_name>=<undesired_value>
11.9. SSSD 复制链接链接已复制到粘贴板!
如果组大小超过 1500 个成员,则 SSSD 会检索不完整的成员列表
在 SSSD 与活动目录集成的过程中,当组大小超过 1500 个成员时,SSSD 会检索不完整的组成员列表。出现这个问题是因为活动目录的 MaxValRange 策略(其限制单个查询中可检索的成员的数量)默认被设置为 1500。
临时解决方案:更改活动目录中的 MaxValRange 设置,以容纳更大的组大小。
Jira:RHELDOCS-19603[1]
11.10. 桌面 复制链接链接已复制到粘贴板!
plymouth 重复内核日志环缓冲的日志条目
plymouth 是为 Red Hat Enterprise Linux 提供图形引导体验的应用程序,具有"控制台整合"功能,可在引导过程中将日志消息输出到所有配置的控制台。内核只能向最后一个配置的控制台原生输出日志消息。在默认配置中,内核是静默的,但从内核命令行中删除 quiet 参数会取消内核,并导致 Plymouth 和内核将引导日志消息发送到最后一个配置的控制台。因此,日志消息可能会在预先配置的控制台(如 ttyS0)上重复。plymouth 通过在引导和关闭过程中重播内核日志环缓冲的整个内容来进一步复制这些日志条目。要临时解决这个问题,请禁用 Plymouth。
Jira:RHEL-60198[1]
在使用 Mutter 时,标准鼠标光标是虚拟机中的偏移量
当您在 Mutter 合成窗口管理器中的虚拟机(VM)配置中使用标准鼠标时,您可能会注意到物理鼠标光标和虚拟环境中实际指针之间的偏移。实际的指针甚至可能在虚拟环境中不可见。
临时解决方案:如果您的场景需要精确输入,请在虚拟机配置中使用平板电脑作为输入设备。
11.11. 图形基础结构 复制链接链接已复制到粘贴板!
在使用 Mutter 时,标准鼠标光标是虚拟机中的偏移量
当您在 Mutter 合成窗口管理器中的虚拟机(VM)配置中使用标准鼠标时,您可能会注意到物理鼠标光标和虚拟环境中实际指针之间的偏移。实际的指针甚至可能在虚拟环境中不可见。
临时解决方案:如果您的场景需要精确输入,请在虚拟机配置中使用平板电脑作为输入设备。
11.12. Web 控制台 复制链接链接已复制到粘贴板!
RHEL web 控制台中的 VNC 控制台无法在 ARM64 上正常工作
目前,当您在 ARM64 架构上的 RHEL web 控制台中导入虚拟机(VM),然后您尝试在 VNC 控制台中与其进行交互时,控制台不会对您的输入做出反应。
另外,当您在 ARM64 架构上的 web 控制台中创建虚拟机时,VNC 控制台不会显示您输入的最后几行。
Jira:RHEL-31993[1]
11.13. Red Hat Enterprise Linux 系统角色 复制链接链接已复制到粘贴板!
Ansible rpm_key 模块无法使用 OpenPGP v6 RPM-GPG-KEY-redhat-release 键
RHEL 10.1 使用带有 post-quantum 公钥的 Red Hat RPM 签名密钥,并存储在 OpenPGP v6 格式的 /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 文件中。由于 Ansible rpm_key 模块使用 GnuPG 工具,该工具无法处理 post-quantum 密钥和 OpenPGP v6,因此模块无法使用这个密钥。
PostgreSQL、MariaDB 和 MySQL 在镜像模式中无法使用 RHEL
PostgreSQL、MariaDB 和 MySQL 数据库管理系统不使用 sysusers.d 目录来填充用户和工作目录。MariaDB 和 MySQL 也不使用 mtc .d 目录。因此,数据库用户可能会缺失,并且数据库系统无法初始化,因为缺少其工作目录。当前没有解决此问题的方法。
Jira:RHELDOCS-21374[1]
ansible-core 不会将 sshpass 作为依赖项安装
ansible-core 软件包不会将 sshpass 软件包作为依赖项安装。因此,您无法使用 Ansible 通过 SSH 密码管理系统。
临时解决方案:再控制节点上,在安装 ansible-core 后手动安装 sshpass。因此,您可以在上述场景中使用 Ansible。
Jira:RHEL-86829[1]
11.14. 虚拟化 复制链接链接已复制到粘贴板!
Windows 虚拟机可能会因为存储错误而变得无响应
在使用 Windows 客户机操作系统的虚拟机上,在高 I/O 负载下,系统在某些情况下会变得无响应。当发生这种情况时,系统会记录一个 viostor Reset to device, \Device\RaidPort3, was issued 错误。当前没有解决此问题的方法。
Jira:RHEL-1609[1]
在引导时,带有某些 PCI 设备的 Windows 10 虚拟机可能会变得无响应
目前,如果将具有本地磁盘后端的 virtio-win-scsi PCI 设备被附加到虚拟机,则使用 Windows 10 客户机操作系统的虚拟机(VM)会在启动过程中变得无响应。
临时解决方案:在启用了 multi_queue 选项的情况下引导虚拟机。
Jira:RHEL-1084[1]
将 virtiofs 与 rsync 和 du 命令一起使用可能会导致 太多打开的文件 错误
virtiofsd 守护进程将文件描述符保持打开,直到客户机使其缓存无效。当跟踪大量文件时,这可能会导致主机上的 virtiofsd 超过最大打开的文件限制。
因此,当使用 virtiofs 与 guest 共享大量文件时,在共享目录中使用 rsync 和 du 命令可能会导致 太多打开的文件 错误。
要临时解决这个问题,请在客户机的 XML 配置中增加 virtiofsd 最大打开文件限制。例如:
<filesystem type='mount' accessmode='passthrough'>
...
<binary path='/usr/libexec/virtiofsd' xattr='on'>
<openfiles max='2000000'/>
</binary>
...
</filesystem>
在本例中,< ;openfiles max > 属性设置为 200万文件。
如需更多信息,请参阅 rsync 和 du 命令中的 Virtiofs 'too many open files' 错误 KCS 解决方案。
Jira:RHEL-99895[1]
启用 SEV-SNP 的虚拟机无法使用 arch-capabilities=on引导
在使用 arch-capabilities=on CPU 标志时,启用了 SEV-SNP 的虚拟机(VM)无法引导。
要临时解决这个问题,在虚拟机配置的 CPU 部分禁用 arch-capabilities 功能:
<cpu mode='host-passthrough' check='none'>
<feature name='arch-capabilities' policy='disable'/>
</cpu>
Jira:RHEL-100313[1]
安装 VirtIO-Win 捆绑包不能被取消
目前,如果您在 Windows 客户机操作系统中从 VirtIO-Win 安装程序捆绑包开始安装 virtio-win 驱动程序,点安装过程中的 Cancel 按钮无法正确停止它。安装向导界面显示一个 "Setup Failed" 屏幕,但安装了驱动程序,并重置了客户机的 IP 地址。
Jira:RHEL-53962,JIRA:RHEL-53965
具有大量可引导数据磁盘的虚拟机可能无法启动
如果您试图启动具有大量可引导数据磁盘的虚拟机(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>
仅为系统磁盘设置引导顺序。
具有大内存的虚拟机无法在具有 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)上无法正常工作。因此,此类虚拟机可能无法有效地使用其分配的内存。
具有内存气球设备集的 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[1]
对具有 VBS 的 Windows 客户机热插拔 vCPU 和内存无法正常工作
目前,Windows Virtualization-based Security(VBS)与热插 CPU 和内存资源不兼容。因此,尝试将内存或 vCPU 附加到启用了 VBS 的运行的 Windows 虚拟机(VM)中,仅在客户机系统重启后将资源添加到虚拟机。
Jira:RHEL-66229, Jira:RHELDOCS-19066
具有 5 级页面合并和大量内存的虚拟机有时无法启动
如果将 host-phys-bits-limit 参数设置为 49 或更多,则具有以下配置的虚拟机无法引导:
- 虚拟机分配超过 1TB 内存
- 虚拟机使用 5 级页面合并功能
- 主机在其固件中使用系统管理模式(SMM)
相反,尝试引导虚拟机会失败并显示 ERROR: Out of aligned pages。
临时解决方案:将 host-phys-bits-limit 参数设置为 48 或更少。
在 Nutanix AHV 中使用 LVM 克隆或恢复 RHEL 9 虚拟机会导致非 root 分区消失
当在 Nutanix AHV 虚拟机监控程序上托管的虚拟机中运行 RHEL 9 客户机操作系统时,从快照中恢复虚拟机或克隆虚拟机目前会导致虚拟机中的非 root 分区在虚拟机中使用逻辑卷管理(LVM)时消失。因此,会出现以下问题:
- 从快照恢复虚拟机后,虚拟机无法引导,而是进入紧急模式。
- 通过克隆创建的虚拟机无法引导,而是进入紧急模式。
要临时解决这个问题,在虚拟机的紧急模式下执行以下操作:
删除 LVM 系统设备文件:
# rm /etc/lvm/devices/system.devices重新创建 LVM 设备设置:
# vgimportdevices -a- 重启虚拟机
这样,克隆或恢复的虚拟机可以正确引导。
另外,为了避免这个问题发生,请在克隆虚拟机或创建虚拟机快照前进行以下操作:
-
取消
/etc/lvm/lvm.conf文件中use_devicesfile = 0行的注释。 重新生成 initramfs。要做到这一点,使用虚拟机中的以下步骤,并将 <
;kernelVersion> 替换为您要重建的内核的完整版本。备份当前的
initramfs配置:# cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bak构建
initramfs:# dracut -f /boot/initramfs-<kernelVersion>.img <kernelVersion>
- 重启虚拟机以验证引导是否成功。
Jira:RHELPLAN-114103[1]
实时虚拟机内存转储和虚拟机快照可能无法在 IBM Z 上正常工作
目前,在 IBM Z 主机上使用 virsh dump --live' 命令为正在运行的虚拟机创建内存转储可能会导致虚拟机变得无响应。在个别情况下,为正在运行的虚拟机创建快照还会导致虚拟机在 IBM Z 上变得无响应。
Jira:RHELDOCS-21707[1]
RDMA 设备目前无法在 vSphere 上工作
在 VMware vSphere 平台上使用 RHEL 10 实例时,vmw_pvrdma 模块目前无法正确安装。因此,VMware 半虚拟远程直接访问(PVRDMA)设备无法在受影响的实例上工作。
Jira:RHEL-41133[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]
如果主机使用 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]
11.15. 云环境中的 RHEL 复制链接链接已复制到粘贴板!
当从 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 格式:
修改连接:
# nmcli connection modify "System <enp1s0>" connection.id "cloud-init <enp1s0>"迁移连接:
# nmcli connection migrate /etc/sysconfig/network-scripts/ifcfg-<enp1s0>移动连接配置文件:
# sudo mv /etc/NetworkManager/system-connections/"cloud-init <enp1s0>.nmconnection" /etc/NetworkManager/system-connections/cloud-init-<enp1s0>.nmconnection重新加载网络连接设置:
# nmcli conn reload
因此,从 RHEL 9.6 leapp 升级到 RHEL 10.0 现在可以与更新的配置一起工作。
Jira:RHEL-82209[1]
在 Azure 机密虚拟机上 kdump 无法完成
当您在 Azure 机密虚拟机实例上的 Red Hat Enterprise Linux 虚拟机上出现内核崩溃时,在本例中为 DCv5 和 ECv5 系列,kdump 进程可能无法完成,虚拟机变得无响应。因此,在强制重启后,有一个 vmcore-incomplete 文件。
Jira:RHEL-75576[1]
11.16. 容器 复制链接链接已复制到粘贴板!
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 镜像。
11.17. RHEL Lightspeed 复制链接链接已复制到粘贴板!
命令行助手无法验证 Satellite 服务器证书
命令行助手不会识别 Red Hat Satellite Server 的 Satellite 证书颁发机构(CA)证书。Satellite CA 证书用于为使用和注册的主机发布和签署证书,由 Satellite 管理。因此,命令行助手无法建立与 Satellite 服务器的安全连接,这会阻止它正常工作。
临时解决方案:将 Satellite CA 证书复制到系统信任存储中,并更新 CA 信任数据库:
$ sudo cp /etc/rhsm/ca/katello /etc/pki/ca-trust/source/anchors/*
$ sudo update-ca-trust
Jira:RHELDOCS-21325[1]
命令行助手配置文件的更改不会立即应用
在 etc/xdg/command-line-assistant/config.toml 配置文件中进行更改时,命令行助手守护进程大约需要 30 秒时间来识别更改,而不是立即应用更改。命令行助手也缺少 重新加载 功能。
临时解决方案:按照以下步骤操作:
-
进行需要对
config.toml配置文件的更改。 - 运行以下命令:
# systemctl restart clad
Jira:RHELDOCS-19734[1]
使用不支持的 AI 模型时的安全风险
不要使用不受支持的模型。将 RHEL 离线容器模型改为不支持的模型可能会允许执行任意代码或破坏 Red Hat Enterprise Linux (RHEL)的完整性。
当前还没有已知的临时解决方案。
Jira:RHELDOCS-21726[1]
11.18. 之前的版本中识别的已知问题 复制链接链接已复制到粘贴板!
这部分论述了 Red Hat Enterprise Linux 10.1 中已知的问题。
11.18.1. 网络 复制链接链接已复制到粘贴板!
更新会话密钥失败会导致连接中断
内核传输层安全(kTLS)协议不支持更新会话密钥,这些密钥由对称密码使用。因此,用户无法更新密钥,从而导致连接中断。
临时解决方案:禁用 kTLS。因此,解决这一问题,可以成功更新会话密钥。
Jira:RHELDOCS-20686[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:RHELDOCS-20687[1]
11.18.2. 虚拟化 复制链接链接已复制到粘贴板!
现在,在启用了 FIPS 的系统上强制 Extended Master Secret TLS 扩展
随着 RHSA-2023:3722 公告的发布,在启用了 FIPS 的 RHEL 9 系统上,对 TLS 1.2 连接强制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[1]
第 12 章 修复的问题 复制链接链接已复制到粘贴板!
此版本提供以下修复的问题,以及有严重影响的其他问题。
12.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
如果存在 VDO 逻辑卷,安装不再会失败
在此次更新之前,当用户在没有 dm_vdo 内核模块的系统上尝试删除预先存在的逻辑卷管理器 Virtual Data Optimizer (LVM VDO)卷时,安装 RHEL 会失败。在这个版本中,当在没有 VDO 支持的系统中删除 LVM VDO 卷时,安装会成功。
Jira:RHEL-84685[1]
增强的安装程序以在 s390x中启用基于容器的部署
RHEL 安装程序现在支持使用 ostreecontainer Kickstart 命令在 s390x 架构上的 Image Mode 中部署可引导容器。此功能增强删除了以前的限制,并确保在支持的构架中保持一致的部署选项。用户现在可以使用基于容器的工作流在 s390x 系统上自动安装。
安装程序现在遵循 BOOTIF 引导参数
在以前的版本中,RHEL 安装程序忽略 BOOTIF=<MAC& gt; 引导参数,并激活所有可用的网络接口。在这个版本中,安装程序会正确处理 BOOTIF 参数,并确保在安装过程中只激活指定的网络设备。
Jira:RHEL-69400[1]
12.2. 安全性 复制链接链接已复制到粘贴板!
fapolicyd 不再会导致 RPM 数据库因为重复更新而崩溃
在此次更新之前,当 fapolicyd 处于 enforcing 模式时,重复更新 RPM 数据库会导致总线错误(SIGBUS),这会导致 RPM 数据库意外终止。在这个版本中,RPM 数据库更新的 fapolicyd SIGBUS保护已被改进。因此,当重复更新启用了 fapolicyd 时,RPM 数据库不再崩溃。
Jira:RHEL-94540[1]
SSH 连接失败不再显示详细帮助信息
在此次更新之前,当 SSH 连接失败时,会显示一条有常见 SSH 错误的消息和红帽帮助的链接。因此,错误输出中的帮助信息会破坏用户脚本和自动化。在这个版本中,只有在使用日志级别 debug1 或更高版本运行 SSH 时,帮助信息才会显示。因此,错误输出默认不包含任何意外信息。
在处理非常规文件时,fapolicyd-cli --file add 不再失败
在此次更新之前,fapolicyd-cli --file add 命令无法将包含非常规文件的目录(如套接字)添加到信任数据库中。在这个版本中,这个问题已被解决,fapolicyd-cli --file add 在上述场景中不再失败。
gnutls 支持标准 ML-DSA 格式
在 RHEL 10.0 中,GnuTLS 工具对 ML-DSA 私钥使用非标准序列化格式。因此,cert tool -p 命令会导出与 IETF 兼容的实现不兼容的 ML-DSA 私钥。同样,其他软件导出的密钥也不能使用 GnuTLS。在这个版本中,GnuTLS 支持标准 ML-DSA 格式,并生成可互操作性的私钥。
OpenSSL 以标准格式存储 ML-KEM 和 ML-DSA 私钥
在 RHEL 10.0 中,OpenSSL 的 open quantum-safe 提供者(oqsprovider)生成私钥,其格式不符合 IETF LAMPS 工作组所提议的任何文件格式。因此,密钥文件对于遵循 IETF 标准的其他应用程序不可读取,且不能由需要为导入的 seed 格式提供密钥的应用程序处理。在这个版本中,OpenSSL 不再使用 oqsprovider,其 post-quantum 加密(PQC)实现以标准格式生成密钥。因此,您可以使用 OpenSSL ML-KEM 和 ML-DSA 密钥来存储长期 secret。
NSS 数据库密码更新不再破坏 ML-DSA seeds
在此次更新之前,当更改数据库密码时,NSS 处理数据库重新加密中的错误阻止 ML-DSA seed 属性更新。因此,seed 值会被永久丢失,即使您知道之前的密码。随着 RHBA-2026:3809 公告的发布,密码会正确更新 ML-DSA seed 属性,不再导致 seed 值的永久丢失。请注意,在更新前,您仍无法恢复 seeds 丢失。
Jira:RHEL-127674[1]
12.3. 软件管理 复制链接链接已复制到粘贴板!
当启用 EPEL 存储库时,DNF Automatic 使用正确的 RHEL 次版本
在此次更新之前,当您使用启用了 Extra Packages for Enterprise Linux (EPEL)存储库的 DNF Automatic 工具时,工具会将 EPEL metalink URL 扩展为错误的地址。这会导致工具下载仍在开发中的 RHEL 10 次要版本的软件包,而不是最后一个发布的次版本。在这个版本中,在 dnf.cli.cli.Cli._read_conf_file () 方法中修复了 releasever_major 和 releasever_minor 变量的更新。因此,DNF Automatic 可以正确地检测到次版本号,并下载与 RHEL 主和次版本匹配的 EPEL 存储库。
12.4. Shell 和命令行工具 复制链接链接已复制到粘贴板!
默认情况下,/var/lib/tftpboot 目录在 Image Mode 部署中创建
在以前的版本中,在 Image Mode 部署中,安装 tftp-server 软件包不会创建 /var/lib/tftpboot 目录。这是因为当将附加软件包添加到现有镜像模式部署时,不会应用 /var 目录的更改。
在这个版本中,/var/lib/tftpboot 目录会在所有镜像模式部署中自动创建。
Jira:RHEL-79983[1]
IBM Z 上的 ReaR 的 IPL 输出方法遵循 RHEL 9 文件命名约定
在此次更新之前,当在 IBM Z 上使用已弃用的 IPL 输出方法 Relax-and-Recover (ReaR)时,生成的恢复内核名为 kernel-$RAMDISK_SUFFIX,RAM 磁盘镜像被命名为 initramfs-$RAMDISK_SUFFIX.img。这个命名规则与 RHEL 9 不同,它使用 vmlinuz-$kernel_version 用于 kernel 和 initrd.cgz 作为 RAM 磁盘镜像。因此,由于文件名的变化,在从 RHEL 9 升级到 RHEL 10 后,用来处理这些恢复镜像的自定义脚本需要手动调整。
在这个版本中,为 IBM Z 上的已弃用的 IPL 输出方法恢复 RHEL 9 文件命名行为,保持与之前的 RHEL 主版本的向后兼容性。内核镜像现在命名为 vmlinuz-$kernel_version,RAM 磁盘镜像名为 initrd.cgz。
因此,kernel 和 initramfs 镜像与 RHEL 9 一致命名,在从 RHEL 9 升级到 RHEL 10.1 时无需调整脚本。这代表了 RHEL 10.0 中行为的变化。应使用 RAMDISK 输出方法而不是已弃用的 IPL 方法,因为 RAMDISK 使用命名约定 kernel-$RAMDISK_SUFFIX 和 initramfs-$RAMDISK_SUFFIX.img,并在所有支持的构架中统一。
Jira:RHEL-102563[1]
12.5. 基础架构服务 复制链接链接已复制到粘贴板!
chronyc reload sources 命令现在可以正确地处理主机名指定的源
在以前的版本中,chronyd 中的 chronyc reload sources 命令会错误地从 chrony.conf 文件中指定的 sourcedir 目录中重新载入源。当主机名解析为多个 IP 地址时,会导致 chronyd 重复源,从而导致源数量意外增加。
在这个版本中,chronyc reload sources 命令可以正确地处理通过主机名指定的源。因此,重新载入源不会更改使用的源数量。
12.6. 网络 复制链接链接已复制到粘贴板!
/etc/iproute2/ 中的自定义 iproute2 设置可以正常工作
在以前的版本中,如果您已更新至 RHEL 10.0,iproute2 软件包会将默认配置存储在 /usr/share/iproute2/ 目录中。另外,如果您在 /etc/iproute2/ 中有自定义配置,则更新会重命名这些文件并附加 .rpmsave 后缀。因此,自定义设置不再会被应用。如果您更新到 iproute2 软件包的 RHEL 10.1 版本,则软件包中的安装脚本将不再重命名自定义配置文件,如果它在 /etc/iproute2/ 中找到带有 .rpmsave 后缀的文件,则脚本会删除此后缀。因此,自定义设置可以按预期工作。
请注意,iproute2 默认设置保留在 /usr/share/iproute2/ 中。
Jira:RHEL-99163[1]
如果您在运行时减少 SR-IOV VF 的数量,内核不再 panic
在以前的版本中,如果应用了以下所有条件,Linux 内核可能会 panic:
- 主机启用了输入输出内存管理单元(IOMMU)。
- 网络驱动程序使用页池。
- 您减少了使用此驱动程序的网络接口的单根 I/O 虚拟化(SR-IOV)虚拟功能(VF)的数量。
在这个版本中,内核跟踪哪些 DMA 映射内存页面属于页面池。当页面池被销毁(例如,通过删除 VF)时,内存页面为 DMA-unmapped。这可防止在 VF 被删除后尝试取消映射内存页面。因此,如果您在运行时减少 SR-IOV VF 的数量,内核不再 panic。
Jira:RHEL-68401[1]
NAT 引擎现在在回复方向中检查地址冲突
在此次更新之前,网络地址转换(NAT)引擎不会检查回复方向中的地址冲突。当新传入的连接使用与现有连接相同的源地址和源端口时,这会导致连接失败。在这个版本中,NAT 引擎会检查回复方向,并检测到冲突,新连接的源端口会在内部重新映射到新的可用端口号。因此,连接会如预期进行。
Jira:RHEL-99656[1]
nft_fib 表达式现在为 VRF 域中的 IPv4 和 IPv6 返回一致的结果
在此次更新之前,如果设备是虚拟路由和转发(VRF)域的一部分,Netfilter "nft_fib" 表达式会返回 单播,而不是 local。另外,fib daddr . iif 表达式的行为与支持 VRF 接口的 IPv4 和 IPv6 数据包不同。对于传入的 IPv6 数据包,它错误地返回底层物理接口的名称,而对于 IPv4 数据包,它可以正确地返回 VRF 设备本身的名称。在这个版本中,当设备是 VRF 域的一部分时,nft_fib 表达式现在为 IPv4 和 IPv6 提供一致的结果。
Jira:RHEL-88574[1]
修复了使用带有 wpa_supplicant 的 PKCS installation 的网络验证方法
在 RHEL 10 中,与联邦信息处理标准(FIPS)不兼容的引擎已被删除。因此,依赖 wpa_supplicant 服务无法加载存储在 PKCS modprobe URI 格式的 X.509 证书和密钥。这导致任何使用 PKCS1.10.1 的 EAP-TLS 验证方法和变体没有连接到相关网络。要解决这个问题,wpa_supplicant 现在依赖于 pkcs11-provider 软件包,并使用同名的库从 PKCS modprobe 存储加载 X.509 证书和密钥。因此,使用 PKCSjee 的网络验证方法可以正常工作。
VMware vCenter 现在可以正确地从正在运行的 RHEL 虚拟机中删除 SATA 磁盘
当使用 VMware vCenter 接口从 VMware ESXi hypervisor 上运行的 RHEL 10 客户机中删除 SATA 磁盘时,之前的磁盘不会被完全删除。它停止工作并从 vCenter 界面中的客户机中消失,但 SCSI 接口仍然检测到客户端中附加的磁盘。 在这个版本中解决了这个问题,SATA 磁盘在上述场景中完全删除。
Jira:RHEL-79913[1]
12.7. 内核 复制链接链接已复制到粘贴板!
更新了 stalld 调度策略回归以防止性能下降
在此次更新之前,Node Tuning Operator CI 可能会因为停止的调度策略而出现问题。这个更改会导致服务在启动后恢复到 SCHED_OTHER 而不是 SCHED_FIFO。因此,实时工作负载可能会遇到性能下降,您无法合并 PR。在这个版本中,systemd 单元文件将 stalld 优先级设置为 10,确保 stalld 使用 SCHED_FIFO 运行。这会恢复预期的行为,并提高了实时工作负载的性能。
osnoise/cpus 允许设置较长的 CPU 列表
在此次更新之前,因为无效的参数错误,您无法在 osnoise/cpus 中设置较长的 CPU 列表。这限制了受影响的延迟调试和故障排除。在这个版本中,您可以在 osnoise/cpus 中输入较长的 CPU 列表,以增强 RTLA 延迟调试和故障排除。
Jira:RHEL-86520[1]
rtla timerlat 现在在有 100 个 CPU 的系统上处理高频率抽样
在此次更新之前,rtl a timerlat 无法处理带有 100 个句点的计时器样本,或在超过 100 个 CPU 的系统上处理计时器样本,因为 tracefs 缓冲区处理不足。因此,样本被丢弃,timerlat 测量会变得不准确,影响实时性能分析。在这个版本中,timerlat 样本直接在测量 CPU 上收集,从而消除了缓冲区溢出问题。因此,rtla timerlat 在高核计数系统上提供准确的测量,从而启用可靠的实时性能分析。
Jira:RHEL-77357[1]
rtla timerlat 在启动时不会重置 osnoise 停止追踪阈值
在此次更新之前,在不清除 stop_tracing 标志的情况下多次使用 rtla timerlat 会使 RTLA 处于不一致的状态。因此,当无法通过 ,-T, 或 选项请求停止追踪时,追踪无法正确停止。这会导致报告不准确的数据,因为当 - iRTLA 不应有时退出。在这个版本中,rtla -timerlat 会重置跟踪变量,防止早期退出,从而改进了程序稳定性。
Jira:RHEL-73865[1]
12.8. 引导加载程序 复制链接链接已复制到粘贴板!
GRUB2 net_del_dns 命令正确删除了 DNS 服务器
在此次更新之前,如果您尝试使用 net_del_dns 命令删除 DNS 服务器,它会错误地添加了 DNS 服务器因为实施不正确,并返回错误。有了此修复,add 命令在 net_del_dns 实现中被 remove 命令替代。因此,您可以使用 net_del_dns 命令删除 DNS 服务器。
12.9. 文件系统和存储 复制链接链接已复制到粘贴板!
multipathd 可以使用离线路径监控设备
在此次更新之前,当用户在设备的某些路径处于离线状态时创建多路径设备时,multipathd 守护进程不会监控设备或其路径。因此,如果路径失败,它们永远不会恢复,即使它们再次可用。在这个版本中,multipathd 守护进程会监控多路径设备及其离线路径。multipathd 还会在多路径设备中添加路径(如果它们在线)。
Jira:RHEL-82535[1]
RHEL 安装程序删除损坏的 LVM 精简卷
在以前的版本中,存在损坏的 LVM 精简卷会导致存储配置错误,阻断安装过程。在这个版本中,RHEL 安装程序会检测到并删除有问题的精简卷。因此,用户不必手动进行安装过程。
12.10. 高可用性和集群 复制链接链接已复制到粘贴板!
pcs 命令不再因为不正确的大写的 target-role 值而失败
在此次更新之前,如果资源的 target-role meta-attribute 设置为一个没有大写的值,如 stopped,而不是 Stopped,pcs 无法解析集群状态。此解析错误导致 pcs status query resource 命令和删除资源的命令(包括 pcs resource delete )失败。
有了这个更新,pcs 中的集群状态解析逻辑已变得更加灵活。
因此,即使资源具有不正确的大写值,pcs 命令也可以正常工作。
fence_ibm_powervs 支持纯文本令牌文件
在此次更新之前,fence_ibm_powervs 代理只能从格式为 JSON 的文件读取身份验证令牌。无法从纯文本文件读取令牌。
在这个版本中,修正了代理中的文件读取逻辑。
因此,fence_ibm_powervs 代理可以使用 JSON 或纯文本格式的令牌文件。
Jira:RHEL-88569[1]
当 quorum 丢失时,Pacemaker 远程节点不再不必要的隔离
在此次更新之前,在某些集群配置中,当其分区丢失仲裁时,Pacemaker 远程节点可以被隔离,即使管理该节点的资源可以在不同的 quorate 节点上安全重启。这个行为会导致 Pacemaker 远程节点上运行的服务不必要的停机时间。
在这个版本中,引入了一个新的集群属性 fence-remote-without-quorum 来控制此行为。
因此,使用默认 fence-remote-without-quorum=false 设置,如果其管理资源可以在 quorate 节点上恢复,Pacemaker 不再隔离远程节点,从而提高了服务的可用性。
Jira:RHEL-86146[1]
pacemaker 不再需要为大型集群手动 IPC 缓冲调整
在此次更新之前,在有大量节点或资源的集群中,Pacemaker 的内部通信可能会超过默认缓冲区大小。这会导致记录错误,并可能导致命令行工具缓慢或无响应。用户有时必须手动增加 PCMK_ipc_buffer 设置来解决这个问题。
在这个版本中,Pacemaker 的进程间通信(IPC)代码已被改进,以处理大型信息,而无需固定缓冲区限制。
因此,不再需要 PCMK_ipc_buffer 设置,并已被弃用。命令行工具对复杂集群做出反应,缓冲区大小错误不再被记录。
Jira:RHEL-86144[1]
带有长启动或停止时间的 systemd 资源会被正确处理
在此次更新之前,Pacemaker 轮询用于带有固定超时的 systemd 资源启动和停止操作的结果。如果资源启动或停止的时间超过这个超时时间,Pacemaker 会错误地将资源标记为失败。
在这个版本中,Pacemaker 侦听来自 systemd 的 DBus 信息,以便在启动或停止操作完成后获得通知。
因此,Pacemaker 可以正确地检测到长时间运行的 systemd 服务的状态,因为超时资源不再被标记为失败。
Jira:RHEL-71181[1]
12.11. 编译器和开发工具 复制链接链接已复制到粘贴板!
对 glibc 软件包进行了更新,使其包含来自上游 2.39 版本的程序错误修正和增强
上游开发为 glibc 2.39 提供了多个程序错误修复和增强。因此,RHEL 10 glibc 比上游版本已过时,从而导致功能和未解决的错误。要解决这个问题,glibc 2.39 上游发行版本分支中的修复和增强被向后移植到 RHEL 10。因此,RHEL 10 glibc 现在在 2025 年 8 月 20 日起提供与上游 glibc 2.39 发行分支的功能和错误奇偶校验。
当在审计模式下运行 glibc 动态链接程序时,某些程序不再崩溃
在以前的版本中,LD_AUDIT 模式中的 glibc 动态链接器可以使用主 calloc 功能来分配内部数据结构,然后再初始化主 malloc 子系统。因此,某些程序在启动过程中在 calloc 功能中意外终止。在这个版本中,进程启动序列已被重新安排,因此在切换到主 malloc 功能前 调用oc 内存分配功能会在启动时使用内部 malloc 实现。因此,当动态链接器处于审计模式时,程序不会在 calloc 函数中启动期间崩溃。
Jira:RHEL-109703[1]
改进了对 glibc中审计模块中的递归 dlopen 调用的支持
在以前的版本中,来自审核员的递归 dlopen 调用可以在 glibc 的 dl-open.c 中触发 r_state == RT_CONSISTENT 断言失败。因此,当审核员处于活跃状态时,应用程序会意外退出。在这个版本中,动态链路器会在进行 in-progress dlopen 调用过程中报告其内部数据结构的一致性。因此,在更多情况下,支持审核员的递归 dlopen 操作。
glibc: ctype.h 宏会在带有多个 libc.so的多线程程序中导致分段错误
在以前的版本中,由审计创建的二级 C 库 副本中的 <ctype.h > ; 的内部状态无法初始化使用 pthread_create 创建的线程。因此,在二级线程和命名空间中使用 & lt;ctype.h > 功能直接或间接会导致程序崩溃。
在这个版本中,< ctype.h> 的内部状态被初始化,以引用二级线程和命名空间的 C 区域。因此,在这些情况下,使用 & lt;ctype.h > 中的功能不再会导致崩溃。
当 NSS 合并在 glibc 中遇到 ERANGE 时,getent group 现在会返回完整的成员列表
在此次更新之前,两个组条目之间的合并可能会失败,因为名称服务交换机(NSS)从两个源中合并的组的系统上存在太小的内部缓冲区。在这种情况下,glibc 会错误地跳过合并,而不是使用更大的缓冲区重试。因此,在某些情况下,查询组成员资格会生成不完整或为空的结果,会导致具有多个组数据库的环境。
在这个版本中,glibc 可以正确地处理合并失败,并使用正确大小的缓冲重试,而不是跳过结果。因此,当组从多个服务合并时,组成员资格查询会可靠地返回完整的成员集合。
Jira:RHEL-114264[1]
glibc 审计日志记录提供完整的对象生命周期跟踪
在此次更新之前,名为 la_objclose 的 glibc 动态链接器为代理 ld.so 链接映射在一个二级命名空间中,没有 la_objopen。这会导致对象生命周期报告依赖 la_objopen 跟踪共享对象的工具不完整。
因此,依赖 la_objopen 的审计工具建立跟踪失败,无法可靠地监控代理链接映射,从而导致可见性和可能的错误解释。
在这个版本中,glibc 动态链接器为所有适用的链接映射生成 la_objopen 事件,包括在二级命名空间中,确保审核接口具有一致的序列。
因此,审计工具可在其整个生命周期中跟踪代理链接映射,其一致的 la_objopen 和 la_objclose 事件对,提高了审计工具和诊断的可靠性。
12.12. 身份管理 复制链接链接已复制到粘贴板!
ipa-cacert-manage install 现在允许重复的 CA 主题
在以前的版本中,尝试使用 ipa-cacert-manage 安装 添加具有相同主题的 CA 证书,但使用不同的私钥会失败,并显示消息 主题公钥信息不匹配,因为 IdM 禁止重复主题。
这个版本会调整这个限制,允许 ipa-cacert-manage install 接受重复的 CA 主题。但是,以下限制仍存在:
- 无法使用不同的信任标记添加证书。
- CA 必须共享相同的 nickname。
- 所有 CA 都强制使用授权密钥标识符(AKI)扩展。它没有会导致信任行为的意外链。
Jira:RHEL-84648[1]
dsconf replication get-ruv 不再返回错误
在此次更新之前,其中一个复制功能没有调用所需的功能。因此,当您运行 dsconf <instance_name> replication get-ruv --suffix dc=example,dc=com 时会显示错误。在这个版本中,命令会如预期返回 Replica Update Vector (RUV)值。
新创建的用户密码策略会被正确显示
在此次更新之前,Service (CoS)模板中的 cosAttribute 属性具有操作修饰符,而不是 。因此,当子树和用户密码策略都存在时,operational -defaultpwdpolicysubentry 属性指向子树密码策略,而不是用户密码策略。在这个版本中,CoS 模板使用 operational-default 修饰符。因此,用户策略会被正确显示。
此问题只影响了策略,而不是实际密码策略逻辑。
ipa-healthcheck 现在忽略 副本忙 的情况
在此次更新之前,在带有两个供应商的拓扑中,ipa-healthcheck 工具会在供应商从另一个节点接收更新时报告复制协议状态的错误。这是一个标准复制情况,在这个版本中,ipa-healthcheck 在副本忙碌时不再报告错误。
Jira:RHEL-89774[1]
在使用 LMDB 的实例关闭时,目录服务器在清理过程中不再失败
在此次更新之前,在带有 Lightning Memory-Mapped Database Manager (LMDB)的实例上在清理过程中发生竞争条件。在这个版本中,Directory 服务器不会在数据库环境关闭时调用 lmdb。
现在,LMDB 监控统计信息会被正确显示
在此次更新之前,当您尝试使用 Lightning Memory-Mapped Database Manager (LMDB)数据库类型检索实例上监控统计信息时,会出现一个密钥错误。在这个版本中,Directory 服务器确保 backend 和 monitor 密钥与配置的数据库实现匹配。因此,全局监控统计会被正确显示。
389-ds-base 在 LMDB 离线导入过程中不再失败
在此次更新之前,当 worker 线程在另一个进程完成写入条目前读取条目时,会出现竞争条件。因此,在带有 Lightning Memory-Mapped Database Manager (LMDB)后端的实例上离线导入会导致分段错误。
在这个版本中,Directory 服务器通过在写入条目前锁定 worker 队列来确保线程安全访问,服务器在 LMDB 离线导入过程中不再失败。
目录服务器 Web 控制台现在显示服务器版本
在此次更新之前,Web 控制台没有在 Server Settings>General Settings 中显示服务器版本。在这个版本中,服务器版本会被正确显示。
Jira:RHEL-101783[1]
目录服务器可以正确地显示特定节点下的子条目数
在此次更新之前,在导入过程中错误地计算 numSubordinates 和 numTombstoneSubordinates 属性。因此,当您比较特定节点下的子条目数量时,会显示错误的值。
在这个版本中,Directory 服务器会正确计算 numSubordinates 和 numTombstoneSubordinates。
目录服务器在 NDN 缓存操作过程中不再失败
在此次更新之前,arc-swap 库(在 389-ds-base 的 Rust 依赖项中使用的 arc-swap 库)可能会导致在 NDN 缓存操作过程中在 Directory Server 中失败。在这个版本中,Directory 服务器使用 Rust 依赖项(concread) 0.5.7 的更新版本,它不包含 arc-swap 库。因此,Directory 服务器不再会失败。
目录服务器在嵌套组中正确显示成员资格
在此次更新之前,Directory 服务器在以下情况下在该条目中显示 memberOf 属性的值不正确:
- 条目是具有多个嵌套级别的组的成员
- 组是其他在成员资格关系中具有多个路径的不同组的一部分。
在这个版本中,memberOf 可分辨名称(DN)值会被系统添加,组中的条目成员资格会被正确显示。
添加 nsslapd-referral时目录服务器不再失败
在此次更新之前,当您试图将目录服务器配置为使用引用时,服务器会失败,因为处理页搜索结果不正确。
在这个版本中,如果搜索结果代码是 LDAP_REFERRAL,则页面搜索结果返回正确的值,服务器不再会失败。
带有 IP 地址通配符的 RootDN Access Control 插件不再失败
在此次更新之前,如果您尝试为 RootDN Access Control 插件配置设置了通配符的 IP 地址,则尝试会失败并显示 Invalid IP 地址 错误。在这个版本中,验证功能已被更新。因此,尝试设置带有通配符的值不再会失败。
当禁用 NDN 缓存时,目录服务器监控信息会如预期提供
在此次更新之前,当禁用规范化 DN (NDN)缓存时,dsconf & lt;instance_name > 监控 dbmon 命令会失败,因为处理后端 get-tree 命令失败。此发行版本添加了一个回滚功能,以防止在后端创建过程中创建树时阻止孤立后端。因此,目录服务器监控信息会如预期返回。
Databases 菜单在 Directory Server Web 控制台中按预期打开
在此次更新之前,如果您创建的数据库名称有不正确的后缀语法,则无法在 Directory Server Web 控制台中打开 Databases 菜单,例如,包含 dc= 的名称。在这个版本中,Directory 服务器在后端创建过程中映射树创建失败时使用回滚功能,以防止孤立的后端。因此,Databases 菜单会如预期打开。
Jira:RHEL-76832[1]
NDN 缓存不再导致目录服务器中的内存消耗增加
在此次更新之前,389-ds-base 的 concread Rust 依赖项允许规范化 DN (NDN)缓存保存被驱除条目的内存。因此,NDN 缓存可能会增加内存消耗。
在这个版本中,Directory 服务器使用 concread Rust 依赖项的更新版本,NDN 缓存可以正常工作,且不会影响服务器的性能。
密码修改扩展操作会正确检查根 DN 和密码管理员的密码策略检查
在此次更新之前,当根 DN 或密码管理员使用密码修改扩展操作来更改密码时,它们无法绕过目录服务器的密码策略限制。因此,它们无法更新不符合密码策略要求的密码。
在这个版本中,当绑定 DN 是根 DN 或密码管理员时,会正确检查密码策略。因此,根 DN 和密码管理员可以在策略限制的情况下成功更新密码。
dsconf 可以正确地返回复制监控信息
在此次更新之前,如果供应商配置了以 0 开始的副本,如 010 或 命令无法检索延迟或复制状态的信息。
020,则 dsconf <instance_name> 复制 monitor
在这个版本中,在处理副本更新向量(RUV)时,副本 ID 开始时的非注册零(0)会被忽略。因此,dsconf <instance_name> 复制监控器 提供预期的信息。
389-ds-base 中的错误日志现在包含有关复制的完整消息
在此次更新之前,当您配置复制时,错误日志文件包含与复制相关的不完整消息。在这个版本中,错误日志包含带有实际值的完整信息。
dsctl healthcheck 不再报告带有 LMDB 的实例上不正确的数据库类型
在这个版本中,会检查正确的配置参数,dsctl healthcheck 不再报告错误的数据库类型。
Jira:RHELDOCS-19014[1]
12.13. SSSD 复制链接链接已复制到粘贴板!
非特权进程现在可以更新主机 keytab
在此次更新之前,非特权进程缺少续订主机 keytab 的功能,因为 keytab 文件只能被 root 用户访问。此问题会阻止非特权进程更新其主机 keytab。随着 RHBA-2025:21019 公告的发布,realmd 支持为非特权进程使用适当的 policy-kit 设置续订主机 keytab。因此,没有特权的进程和用户现在可以轻松地续订主机 keytab。
12.14. Red Hat Enterprise Linux 系统角色 复制链接链接已复制到粘贴板!
指定多个用户不再会导致资源与错误的用户关联
在以前的版本中,当为两个不同的用户管理资源时,var 和 set_fact 都用来设置 __podman_user 和 __podman_user_home_dir 变量。这会导致无法预计和未定义的行为,因为系统使用第二个用户的旧值,从而导致第二个用户的配置错误地引用第一个用户数据。
在这个版本中,该角色只使用 set_fact 设置 podman_user 变量,而 __podman_user_home_dir 变量只使用 vars 设置。另外,已重构了相应的代码,以使用 __podman_handle_user 而不是 __podman_user,其中角色可以使用 vars。因此,您将保留多个用户的数据并确保一致的配置。
如果禁用了 IPv6 接口,postfix RHEL 系统角色会自动探测
默认 postfix 配置使用 inet_interfaces = localhost 设置,它会告知 postfix 侦听解析到 localhost 的所有接口,包括 IPv4 和 IPv6 接口。在此次更新之前,如果主机上禁用了 IPv6,则会出现问题。在这种情况下,postfix 角色及其命令行工具(如reply )会返回错误。整个角色都失败。在这个版本中,该角色确定是否禁用了 IPv6。如果是这样,它会设置 inet_protocols = ipv4,以便 postfix 仅使用 IPv4 接口。因此,postfix 角色也可以工作,即使禁用 IPv6。
SELinux 角色不再因为 Ansible 检查模式下未定义的 tempdir 路径而生成错误
在此次更新之前,在 Ansible 检查模式中没有定义 tempdir 路径,__selinux_item.path 可以是 undefined。因此,当以检查模式运行时,selinux RHEL 系统角色会生成各种变量未定义的错误。在这个版本中,角色会跳过需要定义 tempdir.path 的任务,并可以处理变量未定义的情况。因此,该角色可在检查模式中正常工作。
改进了使用 swigrhel-system-roles中的值删除内核选项
在以前的版本中,当用户只提供密钥时,无法删除指定为 key=value 的内核引导选项,从而导致持久不需要的引导参数,按名称管理内核选项。在这个版本中,在 swigmod_boot_args 函数中的正则表达式已被更新,以正确匹配并删除内核选项,并添加了自动测试以验证正确的行为。
因此,现在可以按名称可靠地删除内核选项,即使将 key=value 设置为 key=value,确保准确的配置和改进的系统管理。
确保 ha_cluster RHEL 系统角色需要 /var/lib/pcsd 目录
在此次更新之前,/var/lib/pcsd 目录是在安装过程中创建的,但更新的版本依赖 systemd 服务在 pcsd 服务启动时创建这个目录。因此,当角色尝试访问它时,该目录可能不存在,从而导致执行错误或失败。
在这个版本中,该角色明确确保 /var/lib/pcsd 目录在使用前存在。因此,它可防止因为缺少目录而导致运行时问题,并改进角色执行可靠性。
Jira:RHEL-100819[1]
LVM RAID 现在支持加密和分区的设备
在此次更新之前,LVM RAID 代码假设 raid_disks 中指定的磁盘是所有 LVM RAID 设置的 PV 的父设备。这不适用于加密或分区的设备。因此,当加密 LUKS 层添加了一个额外的存储层时,或者在没有父设备的情况下使用直接分区时出现错误。在这个版本中,LVM RAID 中的 PV 解析被改进来支持加密和分区的设备。现在,您可以指定 PV 分区而不是底层磁盘。
在这个版本中,为缺失或无效的 RAID 磁盘条目添加了错误处理,并引进了相应的测试以确保稳定性。
RAID 现在报告无效或不支持的配置的明确错误
在此次更新之前,可以指定无效的 RAID 级别或磁盘不足,而不会造成明显错误。这会导致阵列创建失败或不一致。因此,错误消息不明确,RAID 设置不太可靠。在这个版本中,RAID 参数会在阵列创建前验证,并强制使用最小磁盘计数。因此,会引发清晰的错误,并尝试创建带有没有磁盘不足的 RAID 被阻止。
在这个版本中,删除了已弃用的 process_device_numbers 帮助程序,并使用 unified_raid_level。另外,还添加了无效 RAID 级别和磁盘场景的失败测试。
encryption_key 不再被屏蔽
在此次更新之前,encryption_key 参数被错误地标记为 no_log。这会导致密钥文件路径被占位符字符串替代,从而导致磁盘加密正常工作。在这个版本中,encryption_key 参数不再标记为 no_log 标志,您现在可以成功使用密钥文件执行磁盘加密。
SELinux 角色永久设置内核 SELinux 参数
在此次更新之前,selinux RHEL 系统角色不会在更改 SELinux 状态和禁用时设置 kernel SELinux 参数。因此,SELinux 状态更改在重启后不会被保留。在这个版本中,确保在角色将 SELinux 状态更改为 disabled 时正确设置了 kernel SELinux 参数。因此,SELinux 状态会更改为,重启后从 disabled 会被保留。
systemd 角色使用文件 basename 构造到目的地的路径
在此次更新之前,如果用户在嵌套目录中指定了文件或模板源,systemd RHEL 系统角色将使用整个路径而不是目标文件的 basename。因此,文件和模板放置在目的地的同一目录结构中,systemd 不支持它。在这个版本中,该角色将 basenames 用于嵌套目录中的目标文件。因此,用户可以使用带有角色的嵌套目录。
Jira:RHEL-88774[1]
timesync RHEL 系统角色不再从 /etc/sysconfig/chronyd中删除 OPTIONS="-F 2" 默认设置
在此次更新之前,timesync 系统角色使用 "" 替换 chronyd 服务的默认 OPTIONS= 设置。因此,这删除了默认的 OPTIONS="-F 2" 设置,这弱了 chronyd 的安全性。在这个版本中,-F 2 被添加为 OPTIONS 的默认设置,用户可以覆盖或扩展此设置。因此,timesync 角色现在应用正确的安全设置,同时仍然允许用户自定义。
网络 RHEL 系统角色不再显示错误,因为路由规则验证不正确
在此次更新之前,network RHEL 系统角色中的验证部分会错误地检查顶层 NM 模块中的路由规则属性,而不是 NM.IPRoutingRule 类。这会导致验证失败,角色显示错误。在这个版本中,该角色正确使用 API,不再显示不正确的验证错误。
Jira:RHEL-88286[1]
network RHEL 系统角色现在使用更强大的接口识别方法
在此次更新之前,当为网络接口提供了接口名称和 MAC 地址时,验证过程会执行两个独立的查找:一个用于使用接口名称,另一个使用 MAC 地址。这可能会导致验证失败,因为 MAC 地址的查找可能与接口的当前 MAC 地址而不是其永久硬件 MAC 地址匹配。
在这个版本中,验证逻辑有所改进。network 角色现在使用接口名称作为唯一标识符来查找网络设备。然后,它会检索与该接口关联的 MAC 地址,并将其与用户提供的 MAC 地址进行比较以进行验证。这个方法更为可靠,因为接口名称是唯一的内核标识符,防止临时 MAC 地址更改导致的不匹配。
Jira:RHEL-88263[1]
qdevice 守护进程现在在证书更改后自动重启
在以前的版本中,在更新用于仲裁设备守护进程(qnetd)和集群节点(qdevice)之间的通信后,qdevice 守护进程不会自动重启。守护进程将继续使用旧证书,从而导致与仲裁设备的通信失败。
在这个版本中,集群节点中的 qdevice 守护进程会在证书更改后自动重启。这样可确保立即载入新证书,并与仲裁设备通信被维护。
布尔值在 TOML 文件中正确呈现
在此次更新之前,TOML 文件中的布尔值被错误地格式化,从而导致处理布尔值选项不正确。因此,用户会出现配置问题。在这个版本中,TOML 文件中的布尔值选项格式已被修正。现在,最终用户可以在其 TOML 文件中正确配置布尔值选项。
Jira:RHEL-85704[1]
布尔值在 TOML 文件中正确呈现
在此次更新之前,在 Jinja2 模板中不正确的布尔值转换会导致 True 被写为 "True "。因此,用户因为格式不正确的配置文件收到错误,从而导致容器服务失败。在这个版本中,Jinja2 模板中的不正确的布尔值转换已被修复。现在,Podman 配置可以正确地转换 Jinja2 模板中的布尔值。
Jira:RHEL-84942[1]
在删除资源时,Podman RHEL 系统角色不再会失败,并显示 UNREACHABLE 错误
在此次更新之前,当为非 root 用户禁用 linger 时,系统不会等待很长时间以便用户状态变为 关闭。因此,systemd-logind 服务会预先重启,以强制取消闲置状态。在某些系统上,这会触发终止 root 会话的计时器,包括活跃的 sshd 连接。这会导致 Ansible Playbook 失败并显示 UNREACHABLE 错误。在这个版本中,系统会等待大量时间才能正确取消闲置程序,只有在绝对需要时才重启 systemd-logind。因此,在删除资源时角色不再会失败,并显示 UNREACHABLE 错误
Jira:RHEL-84912[1]
ha_cluster RHEL 系统角色现在可以与配置了系统范围的 HTTP 代理一起工作
在以前的版本中,当配置了系统范围的 HTTP 代理时,ha_cluster RHEL 系统角色会错误地尝试通过 UNIX 套接字与 pcsd 守护进程进行本地通信。这会导致角色失败。
在这个版本中,这个角色已被修改,以明确禁用本地 pcsd 通讯的代理使用。
因此,ha_cluster RHEL 系统角色在定义了系统范围的 HTTP 代理的系统中可以正常工作。
GSSAPIIndicators 添加到 sshd 角色
新的配置选项 GSSAPIIndicators 被添加到 RHEL 10 中,用于设置通用安全服务应用程序编程接口(GSS-API)。在这个版本中,在 sshd RHEL 系统角色中添加了 GSSAPIIndicators 配置选项。因此,您可以使用 RHEL 系统角色在 RHEL 10 系统上配置 GSSAPIIndicators。
bootloader 角色拒绝布尔值或 null 类型值
在此次更新之前,用户可以指定值(如 value: on 或 value: yes )的值,它们会被转换为字符串 "on" 或 "yes "。但是,YAML 将它们视为 YAML bool 类型,并将其写为字符串 "True "。因此,不知道 YAML 布尔值处理的用户无法设置值,如 "on" 或 "off "。在这个版本中,引导装载程序 RHEL 系统角色会拒绝布尔值或 null 类型的值。因此,用户必须输入这样的 YAML 布尔值类型值,如带引号的字符串来将其写入引导装载程序配置。readme 文件会使用此信息更新。
当解析 Alias 值时,sudo 角色不再挂起
在此次更新之前,sudo RHEL 系统角色中的正则表达式不会考虑该 Alias 值,如 Cmnd_Alias,不必在等号 = 一侧有空格。因此,正则表达式永远不会终止,角色似乎挂起。有了这个更新,该角色可确保正则表达式符合 sudoers 文件规格中字段的 eBNF 定义。因此,Alias 值会被正确解析,并且没有空格 =。
Jira:RHEL-106261[1]
在管理身份验证和配置文件时,podman RHEL 系统角色不会报告 changed: true
在此次更新之前,如果在管理身份验证和配置文件时,podman RHEL 系统角色都会更改父路径模式,因为它为各种配置和身份验证文件的通用父路径使用两种不同的模式。
在这个版本中,该角色不会报告 changed: true,因为它对父路径使用一致的模式。
Jira:RHEL-84922[1]
systemd 角色取消掩码,并在一次运行时启动单元
在此次更新之前,systemd RHEL 系统角色无法在单元被屏蔽时启用并启动服务,因为角色无法首先取消屏蔽单元。因此,用户必须运行角色两次。在这个版本中,systemd 角色可以正确地取消掩码并启动服务,从而消除了重复运行的需求。
Jira:RHEL-88760[1]
较小的卷大小不匹配不再导致角色报告不正确
在此次更新之前,当创建或重新定义卷的大小时,系统最多允许达到请求大小和实际大小之间的 2% 的不同。这种调整使卷适合可用的池可用空间。因此,当角色再次运行时大小不匹配,从而导致角色错误地假设内容已更改。在这个版本中,小大小差异不再导致角色错误解析更改。现在,该角色会报告正确的状态。
Jira:RHEL-90216[1]
12.15. 虚拟化 复制链接链接已复制到粘贴板!
在使用 AMD SEV-SNP 的虚拟机中本地 kdump 不再失败
在此次更新之前,使用具有安全嵌套的 Paging (SNP)功能的 AMD Secure Encrypted Virtualization (SEV)功能的 RHEL 10 虚拟机(VM)上本地 kdump 会失败。因此,您无法在启用了 AMD SEV-SNP 的虚拟机上捕获内核崩溃转储。
在这个版本中,底层代码已被修复。因此,本地 kdump 在带有 AMD SEV-SNP 的虚拟机上不再失败。
Jira:RHEL-67539[1]
对于 虚拟机迁移,--migrate-disks-detect-zeroes 选项不再失败
在此次更新之前,在 RHEL 10 上迁移虚拟机(VM)时,--migrate-disks-detect-zeroes 选项可能无法正常工作,且迁移可能已在指定磁盘上没有零块检测。这个问题是由 QEMU 中存在一个错误造成的,其中镜像作业依赖于 punching 漏洞,从而导致稀疏目标文件。
在这个版本中,如果目标系统报告读取所有零,且没有额外的工作来进一步完成镜像,QEMU 已被修复,它会保留稀疏性。因此,对于虚拟机迁移,--migrate-disks-detect-zeroes 选项可以正常工作。
没有配置 discard_granularity 时,发送错误校准的丢弃 I/O 请求不再暂停
在此次更新之前,主机内核失败丢弃 I/O 请求,QEMU 使用 werror= policy 参数响应这样的故障。当 werror 设置为 stop:werror=stop 时,失败的丢弃请求会导致虚拟机(VM)暂停。因此,无法更正这种情况,然后再次恢复虚拟机。
在这个版本中,QEMU 已更新为静默忽略不正确的 I/O 请求,因此没有正确的 discard_granularity 值的客户机不会暂停。因此,当没有配置 discard_granularity 时,虚拟机发送丢弃 I/O 请求不再暂停。但是,最好配置 discard_granularity 值,因此丢弃请求具有其预期效果,而不是在对齐时忽略。
Jira:RHEL-87642[1]
当访问使用多个打开文件的共享目录时,virtiofsd 不再崩溃
在此次更新之前,当从虚拟机(VM)访问大量打开文件的 virtiofs 共享目录时,操作可能会失败,并显示以下错误: Too many open files, 和 virtiofsd 进程崩溃。
在这个版本中,底层代码已被修复。因此,从虚拟机访问带有大量打开文件的 virtiofs 共享目录可能会导致虚拟机出现错误,但 virtiofsd 进程不再崩溃,保持 virtiofs 共享目录可在虚拟机中访问。
Jira:RHEL-87161[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 设备。
但请注意,对于使用的 CPU 型号不支持 RDRAND 的虚拟机,强烈建议添加 RNG 设备,以便在从网络引导时提高安全性。
RHEL 10 客户机在 Google Cloud 和 Alibaba 重启时不再崩溃
在 Google Cloud 或 Alibaba Cloud 上使用 RHEL 10.0 实例时,如果 virtio-net 驱动程序在使用 virtio-net 驱动程序,重启实例之前会在客户端操作系统中造成内核 panic。这个问题已解决,RHEL 10 客户机在上述场景中不再崩溃。
Jira:RHEL-56981[1]
安全执行虚拟机现在可以使用文件支持引导
在以前的版本中,如果您将启用了安全执行的虚拟机(VM)配置为使用文件支持的内存支持,则虚拟机无法引导,而是显示 Protected 引导失败。现在,虚拟机会如预期引导。
启用 3D 支持不再阻止在 ESXi 上安装 RHEL 10 客户机
在此次更新之前,如果您选择了 VMware ESXI 中的 Enable 3D support 选项来安装 RHEL 10 客户机操作系统,则安装没有正确启动,而是显示空白屏幕。这个问题已被解决,现在您可以在上述场景中安装 RHEL 10 客户机。
Jira:RHEL-88668[1]
12.16. 云环境中的 RHEL 复制链接链接已复制到粘贴板!
使用 KVM 虚拟化的嵌套虚拟机和 OVMF 现在在使用 AMD EPYC 处理器时在 Azure 或 Hyper-V 上成功引导
在以前的版本中,当在使用 AMD EPYC 处理器的 Microsoft Azure 或 Hyper-V 的 RHEL 虚拟机上运行时,使用 Open Virtual Machine Firmware (OVMF)的嵌套虚拟机(VM)无法引导。VM 使用以下日志消息引导失败:
Code=qemu-kvm: ../hw/core/cpu-sysemu.c:76 Aborted (core dumped) .
在这个版本中,这个问题已被解决,嵌套虚拟机在上述情况下会如预期引导。
Jira:RHEL-29919[1]
12.17. 支持性 复制链接链接已复制到粘贴板!
coredump 插件现在可以正确地限制收集的 coredump 文件数量
在以前的版本中,coredump 插件收集 coredumpctl 转储 输出,这可能会导致不必要的大型归档。在这个版本中,插件默认为收集三个最新的 coredump 文件。另外,插件将继续提供来自 coredumpctl info 的摘要信息,并包含帮助将收集的转储映射到其元数据条目的符号链接。
用户可以使用 executable 选项进一步过滤收集的转储,该选项可以接受应用于 coredumpctl list 的 EXE 字段的区分大小写的 Python 正则表达式。您可以进一步使用 dump 选项来限制最后一个 coredump 的数量。
Jira:RHEL-62972[1]
sos report 中的插件选项覆盖不再禁用 /etc/sos/sos.conf 或 preset 中配置的不相关的选项
在以前的版本中,当使用指定特定插件设置的 a -k 选项执行 sos report 命令时,sos 工具会错误地忽略 /etc/sos/sos.conf 或 preset 中定义的其他有效插件选项。这导致场景,尽管在配置文件 [plugin_options] 部分或预先设置的 [plugin_options] 部分中正确配置了全局设置或用户定义的预设置。
此行为会影响试图收集完整系统活动报告器(SAR)数据的客户,如 红帽知识库解决方案 1418303 中所述。在运行时使用 any -k 选项时,sar.all_sar 设置将恢复为 off,从而导致数据收集不完整。
在这个版本中,sos 工具可以正确地将通过 -k 标志提供的选项与配置文件中定义的选项进行合并,确保保留并应用不相关的插件选项。在这个版本中,恢复一致性,并确保配置时全面的 SAR 数据收集。
Jira:RHEL-67097[1]
sos-audit 软件包现在包含所需的 GPLv2 LICENSE 文件
在以前的版本中,虽然 sos-audit 软件包始终是 sos 项目的一部分,而从包含许可证的同一 SRPM 构建时,生成的 sos-audit RPM 软件包可以与主 sos RPM 分开安装。这意味着,只有 sos-audit 子软件包的用户无法找到许可证可用。这会破坏到 RHEL 8 和 RHEL 9 中的当前版本的 sos-audit 版本。
在这个版本中,sos-audit 软件包可以正确地包括 GPLv2 LICENSE 文件。
iSCSI 插件不再收集 sosreport 中的纯文本 CHAP 凭证
在以前的版本中,在生成导致安全风险的报告时,sos 中的 插件以明文形式收集敏感 CHAP 身份验证凭据。在这个版本中,iscsi iscsi 插件已被修改为模糊敏感字段,确保 CHAP 用户名和密码在收集的输出中被重新设计或排除。
Jira:RHEL-81187[1]
THP 插件现在可以收集完整的配置来准确反映 Transparent Huge Pages 状态
在以前的版本中,sos 的内存插件只收集 /sys/kernel/mm/transparent_hugepage/ 的 启用 的文件,以确定 Transparent Huge Pages (THP)的状态。但是,最近的内核行为更改使这种方法不足。例如,当 shmem_ 设为 enabled [always] 时,可以把 enabled 设置为 [never],从而导致 THP 在禁用时为共享内存片段处于活跃状态。
在这个版本中,THP 插件会收集 /sys/kernel/mm/transparent_hugepage/ 下的所有相关文件,提供如何启用 THP 的完整、准确的视图。
Jira:RHEL-81634[1]
现在默认禁用每个用户 SSH 配置
在以前的版本中,sos 中的 ssh 插件默认从所有本地用户 .ssh 目录中收集详细信息。这会导致执行时间较长,特别是在有大量本地用户的环境中。在这个版本中,ssh 插件不再默认收集每个用户 .ssh 配置数据。要捕获用户配置,请通过设置 ssh.userconfs=on 来显式启用它。
sos 4.10 版本中的 sos collect 命令不再生成 xz/bz2 tar 归档
在此次更新之前,sos collect 命令返回一个压缩的 tar 存档,如 tar.xz 或 tar.bz2。在这个版本中,sos collect 会生成解压缩的 tar 归档而不是压缩 tar 归档,从而节省时间和资源。
Jira:RHELDOCS-21013[1]
12.18. 容器 复制链接链接已复制到粘贴板!
podman events 命令的事件日志现在可用
在以前的版本中,journald 驱动程序中的错误阻止网络事件属性保留,因此这些事件不会包含在日志中。在这个版本中,podman 事件 会显示 network create 和 network rm 事件。
现在,您可以在容器中设置 /sys/fs/cgroup/io.max
在此次更新之前,当使用 runc 作为容器运行时时,您无法在容器中设置 /sys/fs/cgroup/io.max。在这个版本中,这个问题已被解决,/sys/fs/cgroup/io.max 的值现在与 podman update 命令中匹配。
Jira:RHEL-81042[1]
现在可以为使用模式为 0755 的挂载目标创建父目录
在这个版本中,由于在 quay.io/buildah/stable:v1 v1.41.3 中处理-- mount 参数权限的修改而发生构建失败。在以前的版本中,将 UID 指定为参数会导致 secret 的权限不正确。因此,因为 buildah 更新后的权限不正确,用户无法访问构建 secret。
在这个版本中,Buildah 更新了 Buildah v1.41.3 的 secret 权限,使用 secret-permissions 而不是 挂载。现在,在使用- mount 参数中的 UID 参数时,Buildah 可以正确地为 secret 设置预期的权限,从而解决挂载失败。
12.19. RHEL Lightspeed 复制链接链接已复制到粘贴板!
当您尝试删除不存在的 chat 历史记录时,命令行助手会显示有意义的错误消息
在此次更新之前,用户可以在不收到错误消息的情况下删除不存在的 chat 历史记录。此功能增强针对这种情况实现错误消息。
Jira:RHELDOCS-21314[1]
在未命名的 chat 中添加描述会触发警告
在此次更新之前,如果您在 chat 中添加了一个描述,但没有为 chat 指定名称,则不会显示错误消息,也不会显示带有自定义描述的聊天。在这个版本中,命令行助手在这样的情形中会显示警告。
Jira:RHELDOCS-21316[1]
c 历史记录 默认显示完成历史记录
在此次更新之前,在没有返回任何选项的情况下运行 c history 命令不会返回历史记录,从而导致用户造成混淆。在这个版本中,添加了 for- all 的默认选项。因此,您可以使用单个命令轻松查看所有历史记录: c history。
Jira:RHELDOCS-21317[1]
命令行助手不再显示无效查询的错误
在此次更新之前,响应中终端输出的不正确数据结构会导致用户查询无法处理错误消息。在这个版本中,chat 接口的终端输出结构已被主动解决,防止命令行助手来显示无效的查询请求的错误,从而提高您的用户体验。
Jira:RHELDOCS-21318[1]
在终端重启后,交互式 shell 可以正确启动
在此次更新之前,用户的 .bashrc 文件不包含对 .bashrc.d 目录的引用,阻止 source 命令查找 CLA 集成脚本。因此,用户无法访问交互式 shell。在这个版本中,添加了一个检查以确保载入 shell 集成所需的文件。因此,交互式 shell 会在终端重启时启动。
Jira:RHELDOCS-21319[1]
后端超时在 query.py中可以正常工作
在此次更新之前,在 query.py 脚本中扩展后端超时无法正常工作。脚本会继续每 30 秒生成超时消息,因为内部超时默认保留在 30 秒。在这个版本中,您可以通过在 /etc/xdg/command-line-assistant/config.toml 文件中配置它,将后端超时扩展到适合任何值,从而改进响应时间。
Jira:RHELDOCS-21320[1]
cla chat 在没有参数运行时会显示帮助
在此次更新之前,在不提供额外的输入的情况下使用 cla chat 会导致用户混淆,因为它们预期的交互式 AI 帮助,但没有收到响应。在这个版本中,当您使用 cla chat 不带参数时,命令行助手将提供帮助并指示其他输入,从而提高您在 CLA 的交互模式的用户体验。
Jira:RHELDOCS-21322[1]
第 13 章 可用的 BPF 功能 复制链接链接已复制到粘贴板!
本章提供了这个 Red Hat Enterprise Linux 10 次版本的 kernel 中 Berkeley Packet Filter (BPF)功能的完整列表,该表包括:
本章包含 bpftool feature 命令自动生成的输出。
| 选项 | 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 | 可用 |
| 程序类型 | 可用的帮助程序 |
|---|---|
| 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 |
| 映射类型 | 可用 |
|---|---|
| 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 问题单以供参考。这些链接会指向本文档中描述问题单的发行注记。
附录 B. 修订历史 复制链接链接已复制到粘贴板!
0.1-1Fri 10 Apr 2026, Valentina Ashirova (vaashiro@redhat.com)
- 添加了一个已知问题 JIRA:RHEL-158237 (安装程序和镜像创建)
0.1-0Fri 27 Mar 2026, Valentina Ashirova (vaashiro@redhat.com)
- 更新了 红帽客户门户网站 Labs 部分
0.0-9Wed 18 Mar 2026, Valentina Ashirova (vaashiro@redhat.com)
- 用修复问题 RHEL-127674 (安全)替代了已知问题 RHEL-114443
- 更新了 Rebase RHEL-103352 (Security)
0.0-8Tue 17 Mar 2026, Valentina Ashirova (vaashiro@redhat.com)
- 更新了 红帽客户门户网站 Labs 部分
0.0-7Fri 13 Mar 2026, Marie Hornickova (mdolezel@redhat.com)
- 更新了 Overview 部分
0.0-62 月 2026 日星期五,Valentina Ashirova (vaashiro@redhat.com)
- 添加了已弃用的功能 RHELDOCS-21741 (容器)
0.0-52026 年 1 月 22 日星期四,Valentina Ashirova (vaashiro@redhat.com)
- 添加了一个已知问题 RHELDOCS-21726 (RHEL Lightspeed)
0.0-4Tue 20 Jan 2026, Valentina Ashirova (vaashiro@redhat.com)
- 更新了 原位升级 部分
- 更新了 Architectures 部分
0.0-3我们于 2026 年 1 月 14 日星期三,Valentina Ashirova (vaashiro@redhat.com)
- 添加了一个技术预览 RHELDOCS-21587 (文件系统和存储)
0.0-22026 年 1 月 9 日星期五,Valentina Ashirova (vaashiro@redhat.com)
- 添加了开发人员预览 RHELDOCS-21153 (RHEL Lightspeed)
0.0-12025 年 12 月 17 日星期三,Valentina Ashirova (vaashiro@redhat.com)
- 添加了增强 RHELDOCS-21410 和 RHELDOCS-21467 (虚拟化)
0.0-02021 年 11 月 12 日星期三,Valentina Ashirova (vaashiro@redhat.com)
- 发布 Red Hat Enterprise Linux 10.1 发行注记。