8.4 发行注记
Red Hat Enterprise Linux 8.4 发行注记
摘要
对红帽文档提供反馈
我们感谢您对我们的文档提供的信息。请让我们了解如何改进文档。要做到这一点:
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 单击顶部导航栏中的 Create。
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括到文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 概述
1.1. RHEL 8.4 的主要变化
安全性
Libreswan 提供的 IPsec VPN 现在支持 IKEv2 的 TCP 封装和安全标签。
scap-security-guide
软件包已被 rebase 到版本 0.1.54,OpenSCAP 被 rebase 到版本 1.3.4。这些更新提供了显著改进,包括:
- 改进的内存管理
- 添加了 RHEL8 ANSSI-BP-028 Minimal、Intermediary 和 Enhanced 配置集
- 将 RHEL8 STIG 配置集更新为 DISA STIG v1r1
fapolicyd
框架现在提供了完整性检查,RPM 插件现在注册任何由 YUM 软件包管理器或 RPM Package Manager 处理的系统更新。
rhel8-tang
容器镜像为在 OpenShift Container Platform (OCP) 集群或单独的虚拟机中运行的 Clevis 客户端提供 Tang-server 解密功能。
如需更多信息,请参阅 第 4.6 节 “安全性”。
网络
nmstate 是主机的网络 API,在 RHEL 8.4 中被完全支持。nmstate
软件包提供了一个库和 nmstatectl
命令行实用程序,以声明性方式管理主机网络设置。
Multi-protocol Label Switching(MPLS)是一个内核内数据转发机制,用于跨企业网络路由流量。例如,您可以添加 tc 过滤器
,以一致的方式管理从特定端口接收的数据包或执行特定类型的流量。在这个版本中,对 MPLS 的支持仅作为技术预览提供。
iproute2
实用程序引入了三个新的流量控制 (tc
) 操作: mac_push
、push_eth
和 pop_eth
以添加 MPLS 标签,在数据包开头构建以太网标头,然后分别丢弃外部以太网标头。
现在,ip link
命令支持 bareudp
设备作为一个技术预览。
有关这个版本中引入的功能以及现有功能更改的更多信息,请参阅 第 4.7 节 “网络”。
内核
kpatch-dnf
软件包提供了一个 DNF 插件,用于订阅 RHEL 系统进行内核实时补丁更新。该插件为系统当前使用的任何内核启用自动订阅,并在以后安装内核。
在发出分配请求前,主动压缩通常会启动内存压缩工作。因此,特定内存分配请求的延迟会较低。
RHEL 8 现在提供了控制组群技术的 slab 内存控制器的新实现。slab 内存控制器提高了 slab 使用率,并允许将内存核算从页面级别移到对象级别。因此,您可以观察到内核内存内存占用总量显著降低并对内存碎片产生主动影响。
在 RHEL 8.4 中提供了时间命名空间功能。这个功能适用于更改 Linux 容器中的日期和时间。现在,在从检查点中恢复后对容器时钟进行调整也可以进行。
RHEL 8 支持在 Intel Core Processors 第 8 和 9 代中设置的错误检测和检测(EDAC)内核模块。
有关这个版本中引入的功能以及现有功能更改的更多信息,请参阅 第 4.8 节 “内核”。
高可用性和集群
维护状态数据的持久性 Pacemaker 资源代理可能会异步检测到失败,并在不等待下一个监控间隔的情况下立即将故障注入 Pacemaker。持久性资源代理也可以为具有大量状态系统开销的服务加快集群的响应时间。通过维护状态数据,在进行集群操作时(如启动、停止和监控)不需要在进行每个操作时都要独立调用状态,从而减少了状态系统开销。
有关创建持久 Pacemaker 资源代理的详情,请参阅Creating a Persistent (Daemonized) Pacemaker Resource Agent。
动态编程语言、网页和数据库服务器
以下组件的更新版本现在作为新的模块流提供:
- Python 3.9
- SWIG 4.0
- Subversion 1.14
- Redis 6
- PostgreSQL 13
- MariaDB 10.5
如需更多信息,请参阅 第 4.11 节 “动态编程语言、网页和数据库服务器”。
编译器和开发工具
以下编译器工具集已更新:
- GCC Toolset 10
- LLVM Toolset 11.0.0
- Rust Toolset 1.49.0
- Go Toolset 1.15.7
如需更多信息,请参阅 第 4.12 节 “编译器和开发工具”。
OpenJDK 11 现已正式发布
Open Java Development Kit (OpenJDK) 的新版本现已发布。有关本发行版本中引入的功能以及现有功能更改的更多信息,请参阅 OpenJDK 文档。
Identity Management
RHEL 8.4 提供 Ansible 模块,用于自动管理 Identity Management(IdM)中的基于角色的访问控制(RBAC)、备份和恢复 IdM 服务器的 Ansible 角色,以及用于位置管理的一个 Ansible 模块。
如需更多信息,请参阅 第 4.13 节 “Identity Management”。
1.2. 原位升级和操作系统转换
RHEL 7 原位升级到 RHEL 8
目前支持的原位升级路径包括:
- 64 位 Intel、IBM POWER 8(little endian)和 IBM Z 架构上,从 RHEL 7.9 升级到 RHEL 8.4
- 在需要内核版本 4.14 的架构中,从 RHEL 7.6 升级到 RHEL 8.4:IBM POWER 9(little endian)和 IBM Z(Structure A)
- 在使用 SAP HANA 的系统上,从 RHEL 7.7 升级到 RHEL 8.2。升级到 RHEL 8.2 后,确保您的带有 SAP HANA 的系统仍然被支持,启用 RHEL 8.2 Update Services for SAP Solutions(E4S)软件仓库。
如需更多信息,请参阅支持的 Red Hat Enterprise Linux 原位升级路径。有关执行原位升级的步骤,请参阅 从 RHEL 7 升级到 RHEL 8。
RHEL 8.4 发行版本中,如果您使用 Red Hat Subscription Manager(RHSM),且之前没有下载旧的必需的数据文件,则会自动从 cloud.redhat.com 下载其他所需的数据文件。
从 RHEL 6 原位升级到 RHEL 8
要从 RHEL 6.10 升级到 RHEL 8.4,请参阅从 RHEL 6 升级到 RHEL 8 部分。
从不同的 Linux 发行版转换到 RHEL
如果您使用 CentOS Linux 8 或 Oracle Linux 8,您可以使用红帽支持的 Convert2RHEL
程序将操作系统转换为 RHEL 8。如需更多信息,请参阅从基于 RPM 的 Linux 发行版转换到 RHEL。
如果您使用早期版本的 CentOS Linux 或 Oracle Linux(称为版本 6 或 7),可以将操作系统转换为 RHEL,然后执行 RHEL 8 的原位升级。请注意,CentOS Linux 6 和 Oracle Linux 6 的转换使用不被支持的 Convert2RHEL
实用程序。如需有关不支持转换的更多信息,请参阅如何从 CentOS Linux 6 或 Oracle Linux 6 转换到 RHEL 6。
有关红帽如何支持从其他 Linux 发行本转换到 RHEL 的详情,请参考 Convert2RHEL 支持政策文档。
1.3. 红帽客户门户网站 Labs
红帽客户门户网站 Labs 是客户门户网站的一个部分中的一组工具,地址为 https://access.redhat.com/labs/。红帽客户门户网站 Labs 中的应用程序可帮助您提高性能、快速解决问题、发现安全问题以及快速部署和配置复杂应用程序。一些最常用的应用程序有:
- Registration Assistant
- Product Life Cycle Checker
- Kickstart Generator
- Kickstart Converter
- Red Hat Enterprise Linux Upgrade Helper
- Red Hat Satellite Upgrade Helper
- Red Hat Code Browser
- JVM Options Configuration Tool
- Red Hat CVE Checker
- Red Hat Product Certificates
- Load Balancer Configuration Tool
- Yum Repository Configuration Helper
- Red Hat Memory Analyzer
- Kernel Oops Analyzer
- Red Hat Product Errata Advisory Checker
1.4. 其它资源
- Red Hat Enterprise Linux technology capabilities and limits 包括了与其他版本系统相比的 Red Hat Enterprise Linux 8 的能力和限制。
- 有关 Red Hat Enterprise Linux 生命周期 的详情请查看 Red Hat Enterprise Linux 生命周期文档。
- 软件包清单文档 为 RHEL 8 提供软件包列表。
- RHEL 7 和 RHEL 8 的主要区别 包括在使用 RHEL 8 时的注意事项。
- 有关如何执行 从 RHEL 7 到 RHEL 8 的原位升级 的步骤,请参考 从 RHEL 7 升级到 RHEL 8 文档。
- Red Hat Insights 服务可让您主动发现、检查并解决已知的技术问题,所有 RHEL 订阅都可以使用它。有关如何安装 Red Hat Insights 客户端并将您的系统注册到该服务的说明,请查看 Red Hat Insights 入门页面。
第 2 章 构架
Red Hat Enterprise Linux 8.4 与内核版本 4.18.0-30.5 一同发布,它支持以下构架:
- AMD 和 Intel 64 位构架
- 64 位 ARM 架构
- IBM Power Systems, Little Endian
- 64-bit IBM Z
请确定为每个构架购买正确的订阅。如需更多信息,请参阅 Red Hat Enterprise Linux 入门 - 附加构架。有关可用订阅列表,请查看客户门户网站中的 订阅使用。
第 3 章 RHEL 8 中的内容发布
3.1. 安装
Red Hat Enterprise Linux 8 使用 ISO 镜像安装。AMD64、Intel 64 位、64 位 ARM、IBM Power Systems 和 IBM Z 架构有两种类型的 ISO 镜像:
二进制 DVD ISO:包含 BaseOS 和 AppStream 软件仓库的完整安装镜像,并允许您在没有附加软件仓库的情况下完成安装。
注意二进制 DVD ISO 镜像大于 4.7 GB,因此它可能不适用于单层 DVD。当使用二进制 DVD ISO 镜像创建可引导安装介质时,建议使用双层 DVD 或者 USB 设备。您还可以使用 Image Builder 工具创建自定义的 RHEL 镜像。有关镜像构建器的更多信息,请参阅 编写自定义的 RHEL 系统镜像文档。
- 引导 ISO:用来引导到安装程序的最小引导 ISO 镜像。这个选项需要访问 BaseOS 和 AppStream 软件仓库来安装软件包。软件仓库是二进制 DVD ISO 镜像的一部分。
有关下载 ISO 镜像、创建安装介质和完成 RHEL 安装的步骤,请参阅 执行标准 RHEL 8 安装文档。有关自动 Kickstart 安装和其他高级主题,请参阅 执行高级 RHEL 8 安装文档。
3.2. 软件仓库
Red Hat Enterprise Linux 8 由两个主要软件仓库发布:
- BaseOS
- AppStream
两个软件仓库都需要一个基本的 RHEL 安装,所有 RHEL 订阅都包括它们。
BaseOS 仓库的内容旨在提供底层操作系统功能的核心组件,为所有安装提供基础操作系统的基础。这部分内容采用 RPM 格式,它的支持条款与之前的 RHEL 版本相似。有关通过 BaseOS 发布的软件包列表,请查看 软件包清单。
Application Stream 仓库的内容包括额外的用户空间应用程序、运行时语言和数据库来支持各种工作负载和使用案例。Application Streams(应用程序流)以熟悉的 RPM 格式,作为RPM 格式的扩展,名为 模块(modules),或作为 Software Collections(软件集合)。有关 AppStream 中可用软件包列表,请查看 软件包清单。
另外,所有 RHEL 订阅都可以使用 CodeReady Linux Builder 软件仓库。它为开发人员提供了额外的软件包。不支持包括在 CodeReady Linux Builder 存储库中的软件包。
有关 RHEL 8 软件仓库的详情,请查看 软件包清单。
3.3. 应用程序流
Red Hat Enterprise Linux 8 引进了应用程序流(Application Streams)的概念。和操作系统软件包相比,现在为用户空间组件提供了多个版本且会更频繁地进行更新。这为自定义 Red Hat Enterprise Linux 提供了更大的灵活性,不会影响平台或特定部署的基本稳定性。
作为 Application Streams 提供的组件可打包为模块(module)或 RPM 软件包,并通过 RHEL 8 中的 AppStream 软件仓库提供。每个 Application Stream 组件都有其特定的生命周期,可能和 RHEL 8 的生命周期相同或更短。详情请查看 Red Hat Enterprise Linux 生命周期。
模块是代表逻辑单元的软件包集合: 应用程序、语言堆栈、数据库或一组工具。这些软件包被一同构建、测试并发布。
模块流代表 Application Stream 组件的版本。例如,PostgreSQL 数据库服务器的几个流(版本)位于带有默认的 postgresql:
10 流的 postgresql
模块中。在系统中只能安装 一 个模块流。不同的容器可以使用不同的版本。
详细的模块命令,请参考 安装、管理和删除用户空间组件文档。有关 AppStream 中可用模块列表,请查看 软件包清单。
3.4. 使用 YUM/DNF 管理软件包
在 Red Hat Enterprise Linux 8 中,YUM 工具确保安装软件,该工具 基于 DNF 技术。我们有意坚持使用 yum
术语,以便与以前的 RHEL 主要版本保持一致。但是,如果您键入 dnf
而不是 yum
,则 命令可以正常工作,因为 yum
是 dnf
的别名以实现兼容性。
如需了解更多详细信息,请参阅以下文档:
第 4 章 新特性
这部分论述了 Red Hat Enterprise Linux 8.4 中的新特性和主要改进。
4.1. 安装程序和镜像创建
Anaconda 用新值替换原始引导设备 NVRAM 变量列表
在以前的版本中,从 NVRAM 引导可能会导致引导系统失败,因为引导设备列表中带有不正确的值。
在这个版本中,这个问题已被解决,但在更新引导设备 NVRAM 变量时会清除之前的设备列表。
(BZ#1854307)
IBM Z 上的 KVM 虚拟机的图形安装现在可用
当在 IBM Z 硬件中使用 KVM 虚拟机监控程序时,您现在可以在创建虚拟机(VM)时使用图形安装。
现在,当用户在 KVM 中执行安装并且 QEMU 提供 virtio-gpu
驱动程序时,安装程序会自动启动图形控制台。通过在虚拟机内核命令行中附加 inst.text
或 inst.vnc
引导参数,用户可以切换到文本或 VNC 模式。
(BZ#1609325)
已弃用内核引导参数的警告
在没有 inst.
前缀(如 ks
、stage2
、repo
等)的情况下,Anaconda 启动参数已弃用,启动 RHEL7。这些参数将在下一个主 RHEL 发行版本中删除。
在这个版本中,当在没有 inst
前缀的情况下使用引导参数时,会显示适当的警告信息。引导安装时,以及安装程序在终端启动时,dracut
会显示警告信息。
以下是在终端中显示的示例警告信息:
弃用的引导参数 %s
必须与 inst.
前缀一起使用。请改为使用 inst.%s
。没有 inst.
前缀的 Anaconda 启动参数已弃用,并将在以后的主发行版本中删除。
以下是显示在 dracut
中的警告信息示例:
$1
已被弃用。所有没有 inst.
前缀的 Anaconda 引导参数都已弃用,并将在以后的主发行版本中删除。请改为使用 $2
。
4.2. RHEL for Edge
支持将内核名称指定为 RHEL for Edge 镜像类型的自定义
为 RHEL for Edge
镜像创建 OSTree 提交时,一次只能安装一个内核软件包,否则在 rpm-ostree
中提交会失败。这可防止 RHEL for Edge 添加替代内核,特别是实时内核 (kernel-rt
)。在这个版本中,当使用 CLI 为 RHEL for Edge 镜像创建蓝图时,您可以通过设置 customs.kernel.name
键来定义镜像中使用的内核名称。如果您没有指定任何内核名称,则镜像包含默认内核软件包。
4.3. 软件管理
DNF API 现在支持新的 fill_sack_from_repos_in_cache
功能
在这个版本中,引进了新的 DNF API fill_sack_from_repos_in_cache
功能,它只允许从缓存的 solv
、solvx
文件和 repomd.xml
文件加载存储库。因此,如果用户管理 dnf
缓存,可以在没有重复信息(xml
和 solv
)的情况下保存资源,无需将 xml
处理到 solv
中。
createrepo_c
现在会在仓库中自动添加模块元数据
在以前的版本中,在 RHEL8 软件包上运行 createrepo_c
命令以创建新存储库,不会在此仓库中包含模块 repodata。因此,它会在存储库中造成各种问题。在这个版本中,createrepo_c
:
- 扫描模块元数据
-
将找到的模块 YAML 文件合并到一个模块文档
modules.yaml
- 自动将此文档添加到存储库。
因此,在存储库中添加模块元数据现在是自动的,不再需要使用 modifyrepo_c
命令作为单独的步骤执行。
现在支持在 DNF 中镜像系统间的事务的功能
在此次更新中,用户可以在 DNF 中存储和重新显示事务。
-
要将 DNF 历史记录中的事务存储存储到 JSON 文件中,请运行
dnf history store
命令。 -
若要稍后在同一机器或另一台机器上重播事务,请运行
dnf history replay
命令。
支持对组操作进行存储和重新执行。模块操作还不被支持,因此不会被存储或重新执行。
createrepo_c
rebase 到版本 0.16.2
createrepo_c
软件包被更新到版本 0.16.2,它与之前的版本相比提供了以下显著变化:
-
添加了对
createrepo_c
的模块元数据支持。 - 修复了各种内存泄漏
(BZ#1894361)
protect_running_kernel
配置选项现在可用。
在这个版本中,对 dnf
和 microdnf
命令增加了 protect_running_kernel
配置选项。这个选项控制了与内核运行版本对应的软件包是否带有防止删除保护。现在,用户可以禁用对运行的内核的保护。
4.4. Shell 和命令行工具
Openipmi
rebase 到版本 2.0.29
OpenIPMI
软件包已升级到 2.0.29 版本。与以前版本相比的显著变化包括:
- 修复了内存泄漏、变量绑定和缺失的错误消息。
-
添加了对
IPMB
的支持。 -
添加了对在
lanserv
中注册单个组扩展的支持。
(BZ#1796588)
freeipmi
rebase 到版本 1.6.6
freeipmi
软件包已升级到 1.6.6 版本。与以前版本相比的显著变化包括:
- 修复了源代码中的内存泄漏和拼写问题。
对以下已知问题实施临时解决方案:
- 意外的完成代码。
- Dell Poweredge FC830。
-
lan/rmcpplus ipmb
的无顺序的数据包。
- 添加了对新 Dell、Intel 和 Gigabyte 设备的支持。
- 添加了对系统信息和事件解释的支持。
(BZ#1861627)
Opal-prd
rebase 到版本 6.6.3
opal-prd
软件包已 rebase 到版本 6.6.3。主要变更包括:
-
添加了
opal-prd
守护进程的离线 worker 进程处理页面。 -
修复了
POWER9P
中opal-gard
的一个程序漏洞,以便系统可以识别gard
记录的芯片目标。 -
修复了
occ
命令的wait_for_all_occ_init()
的错误的负值。 -
修复了
hw/phys-map
中的OCAPI_MEM BAR
值。 -
修复了对
hdata/memory.c
中的Inconsistent MSAREA
的警告问题。 对于 occ 中的传感器:
- 修复了传感器值为零的程序漏洞。
- 修复了 GPU 检测代码。
-
跳过了
MPIPL
引导中的sysdump
检索. -
修复了
Mihawk
平台中的IPMI
double-free。 -
更新了
fsp/dump
中的非 MP IPL 场景
。 对于 hw/phb4:
- 在初始提供 AER 注册前验证的 AER 支持。
- 已启用错误报告。
-
在
hdata
中添加了新的smp-cable-connector
VPD 关键字。
(BZ#1844427)
openCryptoki
rebase 到版本 3.15.1
opencryptoki
软件包已 rebase 到版本 3.15.1。主要变更包括:
-
修复了
C_SetPin
中的 segfault。 -
修复了
EVP_CipherUpdate
和EVP_CipherFinal
的使用。 -
添加了将令牌存储库迁移到兼容
FIPS
的加密的工具。 对于
pkcstok_migrate
工具:-
修复了 Little Endian 平台上的
NVTOK.DAT
转换问题。 - 修复了 Little Endian 平台上的私有和公共令牌对象转换问题。
-
修复了 Little Endian 平台上的
- 修复了以新数据格式存储公共令牌对象的问题。
-
修复了
dh_pkcs_derive
的参数检查机制。 - 更正了软令牌模型名称。
-
在
mech_ec.c
文件中,以及ICA
、TPM
和 Soft 令牌中弃用了已过时的 OpenSSL 接口。 -
在
sw_crypt.c
文件中弃用了 OpenSSL AES/3DES 接口。 - 添加了对 Soft 令牌中 ECC 机制的支持。
- 在 Soft 令牌中添加特定于 IBM 的 SHA3 HMAC 和 SHA512/224/256 HMAC 机制。
-
添加了对使用 CCA 中的
CKM_RSA_PKCS
进行密钥换行的支持。 对于 EP11 加密堆栈:
-
修复了
ep11_get_keytype
以识别CKM_DES2_KEY_GEN
. -
修复了
token_specific_rng
中的错误追踪。 - 在 HSM 模拟中启用了特定的 FW 版本和 API。
-
修复了
-
修复了
X9.63 KDF
中的 Endian 错误。 -
添加了用于处理
p11sak remove-key 命令
的错误消息。 - 修复了使用 C++ 编译问题。
-
修复了
C_Get/SetOperationState
和摘要上下文的问题。 -
修复了
pkcscca
迁移失败并显示usr/sb2
的问题。
(BZ#1847433)
PowerPC-utils
被 rebase 到版本 1.3.8
powerpc-utils
软件包已更新到版本 1.3.8。主要变更包括:
-
不依赖于
Perl
的命令现在移到 core 子软件包中。 - 添加了对 Linux Hybrid Network Virtualization 的支持。
- 更新了安全引导列表。
-
添加了
vcpustat
实用程序。 -
添加了对
lparstat
命令中的cpu-hotplug
的支持。 -
添加了在
lparstat
命令中打印 Scaled 指标的开关。 -
添加了
helper
函数,以计算 delta、scaled timebase,并派生PURR/SPURR
值。 对于
ofpathname
工具程序:-
改进了
l2of_scsi()
的速度。 -
修复了
udevadm
位置。 -
添加了分区以支持
l2od_ide()
和l2of_scsi()
. -
添加了对
SCSI/SATA
主机的插件 ID 的支持。
-
改进了
-
修复了在不支持的连接器类型中的
segfault
条件。 -
添加了支持将
SR_IOV 迁移到
混合虚拟网络的工具。 -
修复了
format-overflow
警告。 -
修复了使用
lsdevinfo
实用程序的 bash 命令替换警告。 - 修复了引导绑定接口清理。
(BZ#1853297)
新的内核 cmdline 选项现在生成网络设备名称
systemd-udevd
服务内置的 net_id
获取一个新的内核命令行选项 net.naming-scheme=SCHEME_VERSION
。根据 SCHEME_VERSION
的值,用户可以选择将生成网络设备名称的算法版本。
例如,要使用 RHEL 8.4 中 net_id
内置的功能,请将 SCHEME_VERSION
的值设置为 rhel-8.4
。
同样,您可以将 SCHEME_VERSION
的值设置为包含所需更改或修复的任何其他次要版本。
(BZ#1827462)
4.5. 基础架构服务
默认 postfix-3.5.8
行为的区别
为了更好地向后兼容 RHEL-8,postfix-3.5.8
更新的行为与默认的上游 postfix-3.5.8
行为有所不同。对于默认的上游 postfix-3.5.8
行为,请运行以下命令:
# postconf info_log_address_format=external
# postconf smtpd_discard_ehlo_keywords=
# postconf rhel_ipv6_normalize=yes
详情请查看 /usr/share/doc/postfix/README-RedHat.txt
文件。如果没有使用不兼容的功能,或 RHEL-8 向后兼容性更重要,则不需要执行任何操作。
BIND rebase 到版本 9.11.26
bind
软件包已更新至版本 9.11.26。主要变更包括:
- 将默认的 EDNS 缓冲大小从 4096 改为 1232 字节。这个变化可防止在某些网络中丢失碎片数据包。
- 将 max-recursion-queries 的默认值从 75 增加到 100。与 CVE-2020-8616 相关的信息。
-
修复了
named
中lib/dns/rbtdb.c
文件中重复使用的死节点的问题。 -
修复了在清理
lib/dns/rbtdb.c
文件中重用的死锁节点时,named
服务的崩溃问题。 -
修复了在
named
服务中有时配置多个转发器的问题。 -
修复了
named
服务分配错误签名区域的问题,其父域没有 DS 记录作为虚假。 -
修复了在使用
UDP
时缺少DNS cookie response
的问题。
unbound
配置现在提供增强的日志输出
在这个版本中,在 unbound
配置中添加了以下三个选项:
-
log-servfail
启用日志行来解释客户端SERVFAIL
错误代码的原因。 -
log-local-actions
可记录所有本地区域操作。 -
log-tag-queryreply
在日志文件中启用日志查询和日志回复的标记。
通过 ghostscript-9.27
修复多个漏洞
ghostscript-9.27
发行版本包含以下漏洞的安全修复:- CVE-2020-14373
- CVE-2020-16287
- CVE-2020-16288
- CVE-2020-16289
- CVE-2020-16290
- CVE-2020-16291
- CVE-2020-16292
- CVE-2020-16293
- CVE-2020-16294
- CVE-2020-16295
- CVE-2020-16296
- CVE-2020-16297
- CVE-2020-16298
- CVE-2020-16299
- CVE-2020-16300
- CVE-2020-16301
- CVE-2020-16302
- CVE-2020-16303
- CVE-2020-16304
- CVE-2020-16305
- CVE-2020-16306
- CVE-2020-16307
- CVE-2020-16308
- CVE-2020-16309
- CVE-2020-16310
- CVE-2020-17538
tuned
rebase 到版本 2.15-1.
主要变更包括:
-
添加了用于 Linux 服务控制的
service
插件。 -
改进了
scheduler
插件。
DNSTAP
现在记录传入的详细查询。
DNSTAP
提供了监控和记录传入名称查询详细信息的高级方法。它还记录了从 named
服务发送的答案。named 服务的典型查询日志记录对 named
服务的性能有负面影响。
因此,DNSTAP 提供了一种方式,可以在不会影响性能损失的情况下持续记录传入的查询。新的 dnstap-read
实用程序允许您分析不同系统上运行的查询。
SpamAssassin
rebase 到版本 3.4.4
SpamAssassin
软件包已升级到 3.4.4 版本。主要变更包括:
-
添加了
OLEVBMacro
插件。 -
添加了新功能
check_rbl_ns
、check_rbl_rcvd
、check_hashbl_bodyre
和check_hashbl_uris
。
可使用 OMAPI shell 更改密钥算法
在这个版本中,用户可以更改密钥算法。硬编码为 HMAC-MD5
的关键算法不再被视为安全。因此,用户可以使用 omshell
命令来更改密钥算法。
Sendmail 现在支持 TLSFallbacktoClear
配置
在这个版本中,如果传出的 TLS 连接失败,发送电子邮件客户端将会回退到明文。这解决了与其他方的 TLS 兼容性问题。默认情况下,红帽提供 sendmail,它禁用了 TLSFallbacktoClear
选项。
tcpdump 现在允许查看 RDMA 功能的设备
这个增强支持通过 tcpdump
捕获 RDMA 流量。它允许用户使用 tcpdump
工具捕获和分析卸载的 RDMA 流量。因此,用户可以使用 tcpdump
查看 RDMA 功能设备、捕获 RoCE 和 VMA 流量并分析其内容。
(BZ#1743650)
4.6. 安全性
libreswan
rebase 到 4.3
libreswan
软件包已升级到版本 4.3。与以前版本相比的显著变化包括:
- IKE 和 ESP over TCP 支持(RFC 8229)
- IKEv2 标签 IPsec 支持
- IKEv2 leftikeport/rightikeport 支持
- 对 Intermediate Exchange 的实验性支持
- 对负载均衡的延长 Redirect 支持
- 默认 IKE 生命周期从 1 h 改为 8 h,以提高互操作性
-
ipsec.secrets
文件中的:RSA
部分不再需要 - 修复了 Windows 10 rekeying 的问题
- 修复了为 ECDSA 验证发送证书的问题
- MOBIKE 和 NAT-T 修复
IPsec VPN 现在支持 TCP 传输
这个 libreswan
软件包更新添加了对基于 IPsec 的 VPN 的支持,如 RFC 8229 所述。该添加有助于在防止使用封装安全 Payload(ESP)和 UDP 流量的网络中建立 IPsec VPN。因此,管理员可将 VPN 服务器和客户端配置为使用 TCP 作为回退(fallback)或主 VPN 传输协议。
(BZ#1372050)
libreswan 现在支持 Labeled IPsec 的 IKEv2
Libreswan Internet Key Community(IKE)实现了现在包含对 IPsec 安全标签(IKEv2)的互联网密钥交换版本 2(IKEv2)的支持。在这个版本中,在 IKEv1 中使用安全标签的系统可以升级到 IKEv2。
(BZ#1025061)
libpwquality
rebase 到 1.4.4
libpwquality
软件包更新到 1.4.4 版本。此发行版本包括多个程序错误修正和翻译更新。最值得注意的是,以下设置选项已添加到 pwquality.conf
文件中:
-
retry
-
enforce_for_root
-
local_users_only
p11-kit
rebase 到 0.23.19
p11-kit
软件包已从 0.23.14 升级到 0.23.19 版本。新版本修复了几个程序错误,并提供了各种改进,特别是:
- 修复了 CVE-2020-29361、CVE-2020-29362、CVE-2020-29363 安全问题。
-
p11-kit
现在支持通过 meson 构建系统进行构建。
(BZ#1887853)
pyOpenSSL
rebase 到 190.0
pyOpenSSL
软件包已更新到上游版本190.0。此版本提供程序错误修正和增强,最重要的是:
-
改进了 TLS 1.3 支持并带有
openssl
版本 1.1.1。 -
当尝试使用
X509Store.add_cert
添加重复证书时,不再抛出错误 - 改进了对组件中包含 NUL 字节的 X509 证书的处理
(BZ#1629914)
SCAP 安全指南 rebase 到 0.1.54
scap-security-guide
软件包已更新到上游版本 0.1.54,它提供了几个程序错误修复和改进。最值得注意的是:
- 已根据 Red Hat Enterprise Linux 8.4 的一般目的操作系统保护系统的保护配置 集(OSPP)进行更新。
- 引进了基于来自 French National Security Agency(ANSSI)的 ANSSI BP-028 recommendations 的 ANSSI 系列的配置集。内容包含最小、中等和增强强化级别的配置集实施规则。
- Security Technical Implementation Guide(STIG)安全配置集已被更新,它实现了来自当前发布的 V1R1 版本的规则。
openscap rebase 到 1.3.4
OpenSCAP 软件包已更新到上游版本 1.3.4。重要的修复和增强包括:
- 修复了导致有大量文件的系统造成内存不足的某些内存问题。
- OpenSCAP 现在将 GPFS 视为远程文件系统。
- 正确处理在定义间带有依赖项的 OVAL。
-
改进了
yamlfilecontent
:更新了yaml-filter
,扩展 schema 和 probe 以便在映射中使用一组值。 - 修复了大量警告(GCC 和 Clang)。
- 修复了多个内存管理。
- 修复了多个内存泄漏。
- XCCDF 文件中的平台元素现已根据 XCCDF 规格正确解决。
- 改进了与 uClibc 的兼容性。
- 改进了本地和远程文件系统检测方法。
-
修复了
dpkginfo
探测以使用pkgCacheFile
,而不是手动打开缓存。 - OpenSCAP 扫描报告现在是一个有效的 HTML5 文档。
- 修复了在文件探测中不需要的递归的问题。
RHEL 8 STIG 安全配置集更新至版本 V1R1
随着 RHBA-2021:1886 公告提供,SCAP 安全指南中的 Red Hat Enterprise Linux 8 配置集的 DISA STIG
已更新,与最新版本的 V1R1
保持一致。现在,这个配置集也更加稳定,并与 Defense 信息系统(DISA)提供的 RHEL 8 STIG(安全技术实施指南)手动基准兼容。第一次迭代会对 STIG 大约提供了 60% 的覆盖范围。
因为配置集已不再有效,您应该只使用此配置集的当前版本。
自动补救可能会导致系统无法正常工作。先在测试环境中运行补救。
新的 DISA STIG 配置集与 Server with GUI 安装兼容
一个新配置文件 DISA STIG with GUI
已添加到带有 RHBA-2021:4098 公告的 SCAP 安全指南 中。这个配置集源自 DISA STIG
配置集,并与选择 Server with GUI
软件包组的 RHEL 安装兼容。以前存在的 stig
配置集与 Server with GUI
不兼容,因为 DISA STIG 需要卸载任何图形用户界面。但是,如果在评估期间由安全官正确记录,则可能会覆盖此错误。因此,新配置集有助于将 RHEL 系统安装为与 DISA STIG 配置集一致的 GUI 服务器
。
SCAP 安全指南中提供了 ANSSI-BP-028 Minimal、Intermediary 和 Enhanced 等级的配置集
使用新的配置集,您可以把系统强化到来自 French National Security Agency (ANSSI) for GNU/Linux Systems 的最小、中等和增强强化级别。因此,您可以使用 ANSSI Ansible Playbook 和 ANSSI SCAP 配置集,根据所需的 ANSSI 强化级别配置和自动化 RHEL 8 系统合规性。
scap-workbench
现在可以使用 sudo
权限扫描远程系统
scap-workbench
GUI 工具现在支持使用免密码 sudo
访问扫描远程系统。此功能降低了需要提供 root 凭证而带来的安全风险。
在使用免密码 sudo
以及 remediate
选项的 scap-workbench
时需要非常小心。红帽建议仅为 OpenSCAP 扫描程序指定一个安全的用户帐户。
rhel8-tang
容器镜像现已正式发布
在这个版本中,rhel8/rhel8-tang
容器镜像位于 registry.redhat.io
目录中。容器镜像为在 OpenShift Container Platform(OCP)集群中或独立虚拟机运行的 Clevis 客户端提供 Tang-server 解密功能。
(BZ#1913310)
clevis rebase 到版本 15
clevis
软件包已更新至上游版本 15。与之前的版本相比,这个版本提供很多程序错误修复和增强,其中较最重要的是:
-
Clevis 现在生成通用 initramfs,且不再自动将
rd.neednet=1
参数添加到内核命令行中。 -
Clevis 现在可以正确地处理使用
sss pin
的错误配置,clevis encrypt sss
子命令会返回输出来指示错误原因。
Clevis 不再自动添加 rd.neednet=1
Clevis 现在可以正确地生成通用 initrd
(初始 ramdisk),默认没有特定于主机的配置选项。因此,Clevis 不再会在内核命令行中自动添加 rd.neednet=1
参数。
如果您的配置使用之前的功能,您可以使用带有 --hostonly-cmdline
参数的 dracut
命令,或者在 /etc/dracut.conf.d
中创建 clevis.conf
文件,并将 hostonly_cmdline=yes
选项添加到该文件中。initrd
构建过程中必须存在 Tang 绑定。
新软件包: rsyslog-udpspoof
rsyslog-udpspoof
子软件包已添加回 RHEL 8。此模块与常规 UDP 转发器类似,但允许在不同网络段之间转发 syslog
,同时在 syslog
数据包中维护源 IP。
fapolicyd
rebase 到 1.0.2
fapolicyd
软件包已更新到上游版本 1.0.2。与之前的版本相比,这个版本提供很多程序错误修复和增强,其中较最重要的是:
添加了
integrity
配置选项,用于启用完整性检查:- 比较文件大小
- SHA-256 哈希的比较
- 完整性映射架构(IMA)子系统
-
fapolicyd
RPM 插件现在注册由 YUM 软件包管理器或 RPM 软件包管理器处理的任何系统更新。 - 规则现在可以在主体中包含 GID。
-
现在,您可以在 debug 和
syslog
信息中包含规则号。
新的RPM插件会通知fapolicyd
关于 RPM事务过程中的更改
这个 rpm
软件包更新引进了新的 RPM 插件,该插件将 fapolicyd
框架与 RPM 数据库集成。插件通知了 RPM 事务期间已安装和更改的文件的 fapolicyd
。因此,fapolicyd
现在支持完整性检查。
请注意,RPM 插件替换 YUM 插件,因为它的功能不仅限于 YUM 事务,也涵盖了 RPM 的更改。
4.7. 网络
ethtool
工具的 PTP 功能输出格式已更改
从 RHEL 8.4 开始,ethtool
工具使用 netlink
接口而不是 ioctl ()
系统调用与内核通信。因此,当使用 ethtool -T < network_controller>
; 命令时,Precision Time Protocol (PTP)值的格式会改变。
在以前的版本中,使用 ioctl ()
接口,
使用 ethtool -internal 字符串表转换功能位名称,并会显示 ethtool
ethtool -T < network_controller&
gt; 命令,例如:
Time stamping parameters for <network_controller>:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
...
使用 netlink
接口时,ethtool
会从内核接收字符串。这些字符串不包括内部 SOF_TIMESTAMPING visualizer
名称。因此,ethtool -T & lt;network_controller&
gt; 现在会显示,例如:
Time stamping parameters for <network_controller>:
Capabilities:
hardware-transmit
software-transmit
...
如果您在脚本或应用程序中使用 ethtool
的 PTP 能力输出,请相应地更新它们。
(JIRA:RHELDOCS-18188)
XDP 被有条件地支持
只有满足以下条件时,红帽才支持 eXpress Data Path(XDP)功能:
- 您在 AMD 或者 Intel 64 位构架中载入 XDP 程序
-
您可以使用
libxdp
库将程序加载到内核中 - XDP 程序不使用 XDP 硬件卸载
在 RHEL 8.4 中,XDP_TX
和 XDP_REDIRECT
返回代码现在在 XDP 程序中被支持。
有关不支持的 XDP 功能的详情,请查看 作为技术预览的 XDP 功能
NetworkManager rebase 到版本 1.30.0
NetworkManager
软件包已升级到上游版本 1.30.0,它提供了很多改进和程序错误修复:
-
已添加
ipv4.dhcp-reject-servers
连接属性,以定义从哪个 DHCP 服务器 ID NetworkManager 应拒绝租期提供。 -
添加了
ipv4.dhcp-vendor-class-identifier
连接属性,以发送自定义供应商类标识符 DHCP 选项值。 -
active_slave
bond 选项已弃用。相反,请在控制器连接中设置primary
选项。 -
nm-initrd-generator
程序现在支持 MAC 地址来指示接口。 -
nm-initrd-generator
工具生成器现在支持创建 InfiniBand 连接。 -
NetworkManager-wait-online
服务的超时时间增加到 60 秒。 -
ipv4.dhcp-client-id=ipv6-duid
连接属性已添加至 RFC4361 兼容。 -
添加了其他
ethtool
offload 功能。 - 添加了对 WPA3 Enterprise Suite-B 192 位模式的支持。
-
添加了对虚拟以太网 (
veth
) 设备的支持。
如需了解更多与显著变化相关的信息,请参阅上游发行注记:
iproute2
实用程序引入了流量控制操作,以在以太网标头前添加 MPLS 标头
在这个版本中,iproute2
工具提供三个新的流量控制 (tc
) 操作:
-
mac_push
-act_mpls
模块提供此操作,在原始以太网标头前面添加 MPLS 标签。 -
push_eth
-act_vlan
模块提供此操作,以在数据包开头构建以太网标头。 -
pop_eth
-act_vlan
模块提供此操作来丢弃外部以太网标头。
这些 tc
操作有助于实施第 2 层虚拟专用网络(L2VPN),方法是在以太网标头之前添加多协议标签切换 (MPLS) 标签。您可以在将 tc 过滤器
添加到网络接口时使用这些操作。
红帽将这些操作作为不受支持的技术预览提供,因为 MPLS 本身只是一个技术预览功能。
有关这些操作及其参数的更多信息,请参阅 tc-mpls(8)
和 tc-vlan(8)
man page。
(BZ#1861261)
nmstate
API 现在被完全支持
Nmstate(以前是一个技术预览)是主机的网络 API,在 RHEL 8.4 中被完全支持。nmstate
软件包提供了一个库和 nmstatectl
命令行实用程序,以声明性方式管理主机网络设置。网络状态由预定义的 schema 描述。报告当前状态以及对所需状态的更改都符合 schema。
详情请查看 配置和管理网络文档中的 /usr/share/doc/nmstate/README.md
文件以及有关 nmstatectl
的部分。
(BZ#1674456)
新软件包: rshim
rhsim
软件包提供 Mellanox BlueField rshim 用户空间驱动程序,它允许从外部主机机器访问 BlueField SmartNIC 目标上的 rshim 资源。rshim 用户空间驱动程序的当前版本实施设备文件用于引导镜像推送和虚拟控制台访问。此外,它还创建一个虚拟网络接口来连接 BlueField 目标,并提供访问内部 rshim 注册表的方法。
请注意,要让虚拟控制台或虚拟网络接口正常运行,目标必须运行 tmfifo
驱动程序。
(BZ#1744737)
iptraf-ng
rebase 到 1.2.1
iptraf-ng
软件包已更新到上游版本 1.2.1,它提供一些程序错误修复和改进。最值得注意的是:
-
在显示已删除接口的详细统计信息时,
iptraf-ng
应用不再会出现 100% CPU 用量的情况。 -
已修复
printf()
函数的不安全处理参数。 - 添加了对 InfiniBand(IPoIB)接口的部分支持。因为内核没有在接口中提供源地址,所以无法在 LAN 站监控模式中使用这个功能。
-
添加了数据包捕获抽象,以允许
iptraf-ng
可以以数千兆的速度捕获数据包。 -
现在,您可以使用
Home
、End
、Page up
和Page down
键盘键进行滚动。 - 应用程序现在显示丢弃的数据包计数。
4.8. 内核
RHEL 8.4 中的内核版本
Red Hat Enterprise Linux 8.4 带有内核版本 4.18.0-305。
另请参阅外部内核参数的重要变化和设备驱动程序。
RHEL 8.4 的扩展 Berkeley Packet 过滤器
Extended Berkeley Packet Filter(eBPF) 是一个内核中的虚拟机,允许在可访问有限功能的受限沙箱环境中在内核空间中执行代码。虚拟机执行类特殊的装配代码。
eBPF 字节码首先加载到内核,然后进行验证,通过即时编译到原生机器代码转换,然后虚拟机执行代码。
红帽提供大量使用 eBPF 虚拟机的组件。每个组件处于不同的开发阶段,因此目前并不完全支持所有组件。在 RHEL 8.4 中,支持以下 eBPF 组件:
- The BPF Compiler Collection (BCC)工具软件包,提供用于使用 eBPF 的 I/O 分析、联网和监控 Linux 操作系统的工具。
- BCC 库,它允许开发与 BCC 工具软件包中相似的工具。
- eBPF for Traffic Control(tc) 功能,可在内核网络数据路径中启用可编程数据包处理。
- eXpress Data Path(XDP)功能在内核网络堆栈处理它们前提供对接收的数据包的访问,在特定情况下被支持。
-
libbpf
软件包对于 bpf 相关应用程序(如bpftrace
和bpf/xdp
开发)至关重要。 -
xdp-tools
软件包包含 XDP 特性的用户空间支持工具,现在在 AMD 和 Intel 64 位构架中被支持。这包括libxdp
库、加载 XDP 程序的xdp-loader
实用程序、用户数据包过滤的xdp-filter
示例程序、用于从启用了 XDP 的网络接口捕获数据包的xdpdump
工具程序。
请注意,所有其他 eBPF 组件都作为技术预览提供,除非有特定的组件被显示为受支持。
以下显著的 eBPF 组件当前作为技术预览提供:
-
bpftrace
追踪语言 -
用于连接eXpress Data Path (XDP) 路径到用户空间的
AF_XDP
套接字
如需有关技术预览组件的更多信息,请参阅技术预览。
新软件包: kmod-redhat-oracleasm
在这个版本中添加了新的 kmod-redhat-oracleasm
软件包,它提供 ASMLib 工具程序的内核模块部分。Oracle Automated Storage Management(ASM)是 Oracle 数据库的数据卷管理器。ASMLib 是一个可选工具,可用于 Linux 系统来管理 Oracle ASM 设备。
(BZ#1827015)
xmon 程序更改为支持安全引导和 kernel_lock 对安全攻击的恢复
如果禁用了 Secure Boot 机制,您可以在内核命令行上将 xmon
程序设置为读写模式(xmon=rw
)。但是,如果您指定了 xmon=rw
并引导至安全引导模式,kernel_lockdown
功能会覆盖 xmon=rw
,并将其更改为只读模式。根据安全引导是否启用的情况,xmon
的额外行为如下:
安全引导启用:
-
xmon=ro
(默认) - 堆栈追踪会被输出
- 内存读取正常工作
- 内存写入被阻断
安全引导关闭:
-
设置
xmon=rw
的可能性 - 堆栈追踪总是被输出
- 内存读取始终可以正常工作
-
只有
xmon=rw
时才允许写入内存
对 xmon
行为的这些更改旨在支持 安全引导 和 kernel_lock
,对具有 root 权限的攻击进行更好的应对。
有关如何配置内核命令行参数的详情,请参考客户门户网站中的配置内核命令行参数信息。
(BZ#1952161)
Cornelis Omni-Path Architecture(OPA)主机软件
Red Hat Enterprise Linux 8.4 完全支持 Omni-Path Architecture(OPA)主机软件。OPA 为在集群环境中的计算和 I/O 节点之间的高性能数据传输(高带宽、高消息率、低延迟)提供主机 Fabric Interface(HFI)硬件初始化和设置。
有关安装 Omni-Path 架构的说明,请参阅: Cornelis Omni-Path Fabric Software 发行注记文件。
默认情况下禁用 SLAB 缓存合并
禁用了 CONFIG_SLAB_MERGE_DEFAULT
内核配置选项,现在默认情况下不会合并 SLAB 缓存。这个变化旨在提高分配程序可靠性和可追踪缓存用量。如果需要之前的 slab-cache 合并行为,用户可以通过在内核命令行中添加 slub_merge
参数来重新启用它。有关如何设置内核命令行参数的详情,请参考客户门户网站中的配置内核命令行参数。
(BZ#1871214)
ima-evm-utils 软件包 rebase 到版本 1.3.2
ima-evm-utils
软件包已升级到 1.3.2 版本,提供多个程序错误修复和增强。主要变更包括:
- 添加了对处理受信任平台模块(TPM2)多功能的支持
- 将引导聚合值扩展到平台配置注册表(PCR)8 和 9
- 通过 CLI 参数预载入 OpenSSL 引擎
- 添加了对 Intel Task State Segment(TSS2)PCR 读取的支持
- 添加了对原始 Integrity 架构(IMA)模板的支持
libimaevm.so.0
和 libimaevm.so.2 库
都是 ima-evm-utils
的一部分。当最近的应用程序在使用 libimaevm.so.2
时,libimaevm.so.0
用户不会受到影响。
(BZ#1868683)
在支持的 CPU 构架中控制 IMA 和 EVM 功能
除 ARM 外,所有 CPU 架构对完整性迁移架构(IMA)和扩展验证模块(EVM)技术具有类似的功能支持。启用的功能会因每个 CPU 架构的不同而有所不同。以下是每个支持的 CPU 架构最重要的更改:
- IBM Z:IMA 应用程序和可信密钥环启用。
- AMD64 和 Intel 64:处于安全引导状态的特定构架策略。
- IBM Power System(little-endian):处于安全和可信引导状态的特定架构策略。
- SHA-256 作为所有支持的构架的默认哈希算法。
-
对于所有架构,测量模板已改为 IMA-SIG。模板包括存在时的签名位。其格式为
d-ng|n-ng|sig
。
此更新的目的是降低 IMA 和 EVM 中的功能差异,从而使用户空间应用程序在所有支持的 CPU 架构中的行为相同。
(BZ#1869758)
现在,RHEL 8 中包含了主动压缩 功能,默认被禁用
由于不断进行工作负载,系统内存会变得碎片化。碎片可能会导致容量和性能问题。在某些情况下,也有可能出现程序错误。因此,内核依赖于一个称为内存压缩的被动机制。该机制的原始设计比较保守,紧凑活动是根据分配请求的需求启动的。但是,如果系统内存已经大量碎片,追溯行为会增加分配延迟。主动紧凑通过在请求分配前定期启动内存压缩工作来改进设计。这个功能增强提高了内存分配请求在不需要内存压缩时按需按需找到内存的物理连续块的几率。因此,特定内存分配请求的延迟会降低。
主动压缩(Proactive compaction) 可增加压缩活动。这可能会对系统范围的严重影响,因为属于不同进程的内存页面会被移动并重新映射。因此,启用主动压缩需要非常小心,以避免应用程序中的延迟激增。
(BZ#1848427)
在 RHEL 8 中添加了 EDAC 支持
在这个版本中,RHEL 8 支持在第 8 代和第 9 代的 Intel Core Processors(CoffeeLake)中设置的 Error Detection and malection(EDAC)内核模块。EDAC 内核模块主要处理错误代码解析(ECC)内存,并检测和报告 PCI 总线奇偶校验错误。
(BZ#1847567)
新软件包: kpatch-dnf
kpatch-dnf
软件包提供了一个 DNF 插件,它允许订阅 RHEL 系统以进行内核实时补丁更新。该订阅会影响系统中目前安装的所有内核,包括以后安装的内核。有关 kpatch-dnf
的详情,请查看 dnf-kpatch (8)
手册页或 管理、监控和更新内核 文档。
(BZ#1798711)
slab 内存的新 cgroups 控制器实现
RHEL 8 现在提供了控制组群技术的 slab 内存控制器的新实现。目前,单个内存 slab 可以包含由不同内存控制组群拥有的对象。slab 内存控制器提高了 slab 使用率(最多 45%),并允许将内存核算从页面级别转换到对象级别。另外,这个更改可取消每个内存控制组群的每个 CPU 和每个节点 slab 缓存集合,并为所有内存控制组群设置一组通用的每 CPU 和每个节点 slab 缓存。因此,您可以显著降低内核内存总量,并观察对内存碎片的影响。
请注意,新的和更精确的内存核算需要更多 CPU 时间。但是,在实践中这种差异看起来微不足道。
(BZ#1877019)
RHEL 8 中添加了时间命名空间
time 命名空间可让系统单调和引导时钟使用 AMD64、Intel 64 和 64 位 ARM 架构中的每个命名空间偏移。此功能适用于更改 Linux 容器内的日期和时间,以及从检查点恢复后对时钟的容器内调整。现在,用户可以为每个容器独立设置时间。
(BZ#1548297)
新功能: 返回空闲页
在这个版本中,RHEL 8 主机内核可以将虚拟机没有使用的内存页面返回给 hypervisor。这提高了主机的稳定性和资源效率。请注意,对于返回到工作的内存页面,必须在虚拟机中配置它,而且虚拟机还必须使用 virtio_balloon
设备。
(BZ#1839055)
支持在 perf top
中更改排序顺序
在这个版本中,当对组中多个事件进行抽样时,perf top
可以按任意事件列对样本进行排序,而不是按第一列排序。因此,按数字键按匹配的 data 列对表进行排序。
列编号从 0
开始。
使用 --group-sort-idx
命令行选项时,可以按照列号排序。
(BZ#1851933)
kabi_whitelist 软件包已重命名为 kabi_stablelist
根据红帽承诺替换有问题的语言,我们在 RHEL 8.4 发行版中将 kabi_whitelist
软件包重命名为 kabi_stablelist
。
(BZ#1867910、BZ#1886901)
bpf rebase 到版本 5.9
RHEL 8 中的 bpf
内核技术已更新为来自内核 v5.9 的上游认证机构。
这个更新提供多个程序错误修正和增强。主要变更包括:
- 添加了映射元素的 Berkeley Packet Filter(BPF)迭代所有 BPF 程序以便有效地进行内核检查。
- 同一控制组群(cgroup)中的程序可以共享 cgroup 本地存储映射。
- BPF 程序可以在套接字查找中运行。
-
SO_KEEPALIVE
和相关的选项可用于bpf_setsockopt()
helper。
请注意,有些 BPF 程序可能需要更改其源代码。
(BZ#1874005)
bcc 软件包被 rebase 到版本 0.16.0
bcc
软件包已升级到 0.16.0 版本,它提供多个程序错误修复和增强。主要变更包括:
-
添加了实用程序
klockstat
和funcinterval
-
修复
tcpconnect
手册页的多个部分 -
修复了相关代码以使
tcptracer
工具输出显示 IPv6 地址的 SPORT 和 DPORT 列 - 修复有问题的依赖关系
(BZ#1879411)
bpftrace rebase 到版本 0.11.0
bpftrace
软件包已升级至 0.11.0 版本,提供多个程序错误修复和增强。主要变更包括:
-
添加了实用程序
threadsnoop
、tcpsynbl
、tcplife
、swapin
、setuids
和naptime
-
修复了
tcpdrop.bt
和syncsnoop.bt 工具
运行的失败 - 修复了在 IBM Z 构架中加载 Berkeley Packet Filter(BPF)程序失败的问题
- 修复了符号查找错误
(BZ#1879413)
libbpf rebase 到版本 0.2.0.1
libbpf
软件包已升级到版本 0.2.0.1,它提供多个程序错误修复和增强。主要变更包括:
-
添加了对从具有 BPF 类型格式(BTF)结构访问权限的程序访问
bpf_map
结构中的 Berkeley Packet Filter(BPF)映射字段的支持 - 添加了 BPF 环缓冲
-
添加了
bpf
迭代基础架构 -
改进了
bpf_link
可观察性
perf
现在支持从正在运行的收集器添加或删除追踪点,而无需停止或重启 perf
在以前的版本中,要从 perf record
实例添加或删除追踪点,必须停止 perf
进程。因此,在进程被停止的期间发生的性能数据将不会被收集,因此会丢失。在这个版本中,您可以动态地通过控制管道接口启用和禁用 perf record
收集的追踪点,而无需停止 perf record
进程。
(BZ#1844111)
perf
工具现在支持记录并显示 trace 数据的绝对时间戳
在这个版本中,perf script
可以记录并显示带有绝对时间戳的 trace 数据。
注: 要显示带有绝对时间戳的 trace 数据,数据必须使用指定的时钟 ID 记录。
要使用绝对时间戳记录数据,请指定时钟 ID:
# perf record -k CLOCK_MONOTONIC sleep 1
要显示使用指定时钟 ID 记录的追踪数据,请执行以下命令:
# perf script -F+tod
(BZ#1811839)
dwarves rebase 到版本 1.19.1
dwarves
软件包升级至 1.19.1 版本,提供多个程序错误修复和增强。值得注意的是,这个更新引入了一种从带有相关 ftrace
条目的 DWARF 调试数据检查函数的新方法,以确保生成了 ftrace
函数子集。
perf
现在支持使用指定事件触发快照的循环缓冲
在这个版本中,您可以创建自定义循环缓冲区,在检测到指定事件时将数据写入 perf.data
文件中。因此,perf 记录
可以在系统后台中持续运行,而不会因为不断地将数据写入 perf.data
文件而产生额外的开销,而且只记录您感兴趣的数据。
要使用 perf
工具创建自定义循环缓冲来记录事件特定快照,请使用以下命令:
# perf record --overwrite -e _events_to_be_collected_ --switch-output-event _snapshot_trigger_event_
(BZ#1844086)
内核 DRBG 和 Jitter 熵源符合 NIST SP 800-90A 和 NIST SP 800-90B
Kernel Deterministic Random Bit Generator(DRBG)和 Jitter 熵源现在符合使用 DRBG(NIST SP 800-90A)的随机数生成建议,并对用于随机生成(NIST SP 800-90B)的熵源(NIST SP 800-90B)规格推荐。因此,在 FIPS 模式中的应用程序可以使用这些源作为 FIPS 兼容的随机性和 noise 源。
(BZ#1905088)
kdump 现在支持标记为团队网络接口的 Virtual Local Area Network
在这个版本中增加了支持为 kdump
配置 Virtual Local Area Network 标记的组接口。现在,此功能可让 kdump
使用带有 Virtual Local Area Network 标记的组接口转储 vmcore
文件。
(BZ#1844941)
kernel-rt 源树已更新至 RHEL 8.4 树
kernel-rt
源已更新为使用最新的 Red Hat Enterprise Linux 内核源树。实时补丁集也更新至最新的上游版本 v5.10-rt7。这两个更新都提供很多程序错误修正和增强。
(BZ#1858099, BZ#1858105)
stalld 软件包现在添加到 RHEL 8.4 发行本中
在这个版本中,将 stalld
软件包添加到 RHEL 8.4.0。stalld
是一个监控运行低延迟应用的系统上的线程的守护进程。它检查在运行队列上没有调度到指定阈值的 CPU 的作业线程。
当它检测到一个死锁的线程时,stalld
会临时将调度策略更改为 SCHED_DEADLINE
,并为线程分配大量 CPU 时间以进行向前进度。当时间分片完成或者线程块时,线程会返回到其原始调度策略。
(BZ#1875037)
在 hv_24x7
和 hv_gpci
PMU 中支持 CPU 热插拔
在这个版本中,PMU 计数器可以正确地响应 CPU 的热插操作。因此,如果 hv_gpci
事件计数器在禁用的 CPU 上运行,则计数会重定向到另一个 CPU。
(BZ#1844416)
POWERPC hv_24x7
事件的指标现在可用
POWERPC hv_24x7
嵌套事件的指标现在可用于 perf
。通过聚合多个事件,这些指标可以更好地了解从 perf
计数器获取的值,以及 CPU 如何处理工作负载。
(BZ#1780258)
Hwloc rebase 到版本 2.2.0
hwloc
软件包已升级到 2.2.0 版本,它提供以下更改:
-
hwloc
功能可以报告 Nonvolatile Memory Express (NVMe) 驱动器的详细信息,包括磁盘总大小和扇区大小。
igc
驱动程序现在被完全支持
igc
Intel 2.5G 以太网 Linux 有线 LAN 驱动程序是在RHEL 8.1中作为技术预览引入的。从 RHEL 8.4 开始,它在所有架构中都被完全支持。ethtool
还支持 igc
有线 LAN。
(BZ#1495358)
4.9. 文件系统和存储
RHEL 安装现在支持创建大小为 16 TiB 的交换分区
在以前的版本中,当安装 RHEL 时,安装程序会创建一个最多 128 GB 的 swap 分区来进行自动和手动分区。
在这个版本中,对于自动分区,安装程序会继续创建一个最多 128 GB 的 swap 分区,但当手动分区时,您可以创建一个 16 TiB 的 swap 分区。
意外删除(Surprise removal)NVMe 设备
在这个版本中,您可以在不预先通知操作系统的情况下从 Linux 操作系统中意外删除 NVMe 设备。这可提高 NVMe 设备的可用性,因为不需要额外的步骤来准备设备以按顺序删除,从而可以避免服务器停机时间以确保服务器可用。
注意以下几点:
-
意外删除 NVMe 设备需要
kernel-4.18.0-193.13.2.el8_2.x86_64
或更高版本。 - 要成功意外删除 NVMe 设备,可能需要硬件平台或软件的额外要求。
- 不支持意外删除对系统操作很重要的 NVMe 设备。例如:您无法意外删除包含操作系统或者 swap 分区的 NVMe 设备。
(BZ#1634655)
Stratis 文件系统符号链接路径已更改
在这个版本中,Stratis 文件系统符号链接路径已从 /stratis/<stratis-pool>/<filesystem-name>
改为 /dev/stratis/<stratis-pool>/<filesystem-name>
。因此,必须迁移所有现有的 Stratis 符号链接,才能使用新的符号链接路径。
使用包含的 stratis_migrate_symlinks.sh
迁移脚本,或重启您的系统来更新符号链接路径。如果您手动更改 systemd
单元文件或 /etc/fstab
文件来自动挂载 Stratis 文件系统,那么你必须使用新的符号链接路径来更新它们。
如果您没有使用新的 Stratis 符号链接路径更新配置,或者临时禁用自动挂载,引导过程可能无法在下次重启或启动系统时完成。
Stratis 现在支持绑定加密池到附加 Clevis 加密策略
在这个版本中,您可以使用 Tang 服务器将加密的 Stratis 池绑定到 Network Bound Disk Encryption(NBDE),或绑定到信任的平台模块(TPM)2.0。将加密的 Stratis 池绑定到 NBDE 或 TPM 2.0 可方便自动解锁池。因此,您可以在每次系统重启后访问 Stratis 池,而无需在每次系统重启后提供内核密钥环描述。请注意,将 Stratis 池绑定到附加 Clevis 加密策略不会删除主内核密钥环加密。
新的挂载选项来控制在 XFS 和 ext4 文件系统中启用 DAX 的时间
此更新引进了新的挂载选项,这些选项与 FS_XFLAG_DAX inode
标志结合使用,为 XFS 和 ext4 文件系统上的文件提供更精细的直接访问 (DAX) 模式控制。在以前的版本中,使用 dax
挂载选项为整个文件系统启用 DAX。现在,可以根据每个文件启用直接访问模式。
磁盘上的标志 FS_XFLAG_DAX
用于有选择地为特定文件或目录启用或禁用 DAX。dax
挂载选项指定是否使用该标志:
-
-o dax=inode
- 跟随FS_XFLAG_DAX
。如果没有指定 dax 选项,则这是默认设置。 -
-o dax=never
- 永不启用 DAX,忽略FS_XFLAG_DAX
。 -
-o dax=always
- 永远启用 DAX,忽略FS_XFLAG_DAX
。 -
-o dax
- 一个传统选项,是 "dax=always" 的别名。这可能会在以后被删除,因此首选使用 "-o dax=always"。
您可以使用 xfs_io
实用程序的 chatter 命令设置 FS_XFLAG_DAX
标志:
# xfs_io -c "chattr +x" filename
(BZ#1838876、BZ#1838344)
现在支持 SMB Direct
在这个版本中,SMB 客户端支持 SMB Direct。
(BZ#1887940)
添加了用于挂载文件系统的新 API
在这个版本中,RHEL 8.4 中添加了一个基于名为文件系统上下文(struct fs_context
)的内部内核结构挂载文件系统的新 API,从而在用户空间、VFS 和文件系统间传输挂载参数方面提供了更大的灵活性。另外,在文件系统上下文中还有以下系统调用进行操作:
-
fsopen()
- 在内核中为fsname
参数中指定的文件系统创建一个空的文件系统配置上下文,将其添加到创建模式,并将其附加到文件描述符,然后返回。 -
fsmount()
- 采用fsopen()
返回的文件描述符,并为在其中指定的文件系统 root 创建挂载对象。 -
fsconfig()
- 向由fsopen(2)
或fspick(2)
系统调用设置的文件系统配置上下文提供参数并发布命令。 -
fspick()
- 在内核中创建一个新的文件系统配置上下文,并为其附加一个预先存在的超级块,以便可以重新配置它。 -
move_mount()
- 将挂载从一个位置移到另一个位置;它也可用于通过OPEN_TREE_CLONE
系统调用附加由fsmount()
或open_tree()
创建的未附加的挂载。 -
open_tree()
- 选择由pathname所指定的挂载对象,并将其附加到新文件描述符或克隆它,并将克隆附加到文件描述符。
请注意,基于 mount()
系统调用的旧 API 仍然受到支持。
如需更多信息,请参阅内核源树中的 Documentation/filesystems/mount_api.txt
文件。
(BZ#1622041)
vfat
文件系统 mtime
不再出现差异
在这个版本中,vfat
文件系统 mtime
在内存中和磁盘上写入时间间的差异不再存在。这种差异是由内存中和磁盘上 mtime
元数据之间的区别造成的,这不再发生。
(BZ#1533270)
RHEL 8.4 现在支持 close_range()
系统调用
在这个版本中,close_range()
系统调用被向后移植到 RHEL 8.4。这个系统调用可以有效地关闭给定范围内的所有文件描述符,防止在应用程序配置非常大的限制时按顺序关闭多种文件描述符时出现的时间问题。
(BZ#1900674)
添加了通过 NFSv4.2 协议支持用户扩展属性
在这个版本中增加了对用户扩展属性(RFC 8276)的 NFSV4.2 客户端和服务器端的支持,新增了了以下协议扩展:
新操作:
-
- GETXATTR
- 获取文件的扩展属性 -
- SETXATTR
- 为文件设置扩展属性 -
- LISTXATTR
- 列出文件的扩展属性 -
- REMOVEXATTR
- 删除文件的扩展属性
新的错误代码:
-
- NFS4ERR-NOXATTR
-xattr
不存在 -
- NFS4ERR_XATTR2BIG
-xattr
值太大
新属性:
-
- xattr_support
- per-fs 只读属性决定是否支持xattrs
。当设置为True
时,对象的文件系统支持扩展属性。
(BZ#1888214)
4.10. 高可用性和集群
现在支持 colocation 约束中的非关键资源
在这个改进中,您可以配置共存位置(colocation)约束,如果约束的依赖资源达到失败的迁移阈值,Pacemaker 会将该资源保持离线,并将主资源保留在当前节点上,而不是尝试将这两个资源移至另一节点。要支持这个行为,colocation 约束现在有一个 influence
选项,它可以设置为 true
或 false
,资源也具有 critical
的 meta-attribute,也可以设置为 true
或 false
。critical
资源 meta 选项的值决定 influence
选项的默认值,适用于作为依赖资源涉及资源的所有 colocation 约束。
当 influence
colocation 约束选项的值为 true
Pacemaker 时,会尝试使主资源和依赖的资源保持活跃状态。如果依赖资源达到失败的迁移阈值,则两个资源都将移至另一个节点。
当 influence
colocation 选项的值为 false
时,Pacemaker 会避免在依赖资源的状态后移动主资源。在这种情况下,如果依赖资源达到失败的迁移阈值,则当主资源活跃并可以保持在当前节点上时,它将停止。
默认情况下,critical
资源 meta 选项的值设为 true
,后者决定 influence
选项的默认值为 true
。这会保留之前 Pacemaker 试图保持这两个资源活跃的行为。
Pacemaker 规则支持的新 数字
数据类型
PCS 现在支持一种数据类型 的数字
,您可以在接受规则的任何 PCS 命令中定义 Pacemaker 规则时使用这些数据。Pacemaker 规则将 数字
实施为双精确浮点数,整数
为 64 位整数。
(BZ#1869399)
在创建克隆资源或可升级克隆资源时指定自定义克隆 ID
当您创建克隆资源或可升级的克隆资源时,克隆资源默认命名为 resource-id -clone
。如果该 ID 已在使用,则 PCS 会添加后缀 -integer,从整数值 1
开始,每增加一个克隆,值就增加1。现在,在使用 pcs resource create
或 pcs resource clone
命令创建克隆资源时,您可以通过为克隆资源 ID 指定名称或使用 clone-id 选项指定可升级克隆资源 ID 来覆盖此默认设置。有关创建克隆资源的信息,请参阅创建在多个节点上活跃的集群资源。
显示 Corosync 配置的新命令
现在,您可以使用新的 pcs cluster config [show]
命令以多种输出格式打印 corosync.conf
文件的内容。默认情况下,pcs cluster config
命令使用文本
输出格式,它以人类可读的形式显示 Corosync 配置,其结构和选项名称与 pcs cluster setup
和 pcs cluster config update
命令相同。
新命令修改现有集群的 Corosync 配置
现在,您可以使用新的 pcs cluster config update
命令修改 corosync.conf
文件的参数。例如,您可以使用这个命令来增加 totem
令牌,以避免在临时系统无响应期间进行隔离。有关修改 corosync.conf
文件的详情,请参考 使用 pcs 命令修改 corosync.conf 文件。
在现有集群中启用和禁用 Corosync 流量加密
在以前的版本中,您只能在创建新集群时配置 Corosync 流量加密。在这个版本中:
-
您可以使用
pcs cluster config update
命令更改 Corosync 加密加密和散列的配置。 -
您可以使用
pcs cluster authkey corosync
命令更改 Corosyncauthkey
。
用于共享和加密的 GFS2 文件系统的新 crypt
资源代理
RHEL HA 现在支持一个新的 crypt
资源代理,它允许您配置一个 LUKS 加密的块设备,用来提供共享和加密的 GFS2 文件系统。目前只支持在 GFS2 文件系统中使用 crypt
资源。有关配置加密的 GFS2 文件系统的详情,请参考在集群中配置加密的 GFS2 文件系统。
(BZ#1471182)
4.11. 动态编程语言、网页和数据库服务器
新模块: python39
RHEL 8.4 引入了 Python 3.9,它由新模块 python39
和 ubi8/python-39
容器镜像提供。
与 Python 3.8 相比的主要改进包括:
-
合并(
|
)和更新(|=
)Operator 已添加到dict
类中。 - 在字符串中添加了删除前缀和后缀的方法。
-
类型提示一般已添加到特定的标准类型,如
list
和dict
。 - IANA Time Zone 数据库现在可以通过新的 zoneinfo 模块获得。
Python 3.9 及其构建的软件包可与同一个系统中的 Python 3.8 和 Python 3.6 并行安装。
要从 python39
模块安装软件包,请使用:
# yum install python39 # yum install python39-pip
python39:3.9
模块流将自动启用。
要运行解释器,例如:
$ python3.9 $ python3.9 -m pip --help
如需更多信息,请参阅 安装和使用 Python。
请注意,红帽将继续对 Python 3.6 提供支持,直至 RHEL 8 生命周期结束。与 Python 3.8 类似,Python 3.9 的生命周期会短于 Red Hat Enterprise Linux 8 应用程序流生命周期。
(BZ#1877430)
Python urllib
解析功能的默认分隔符更改
为缓解 Python urllib
库中的 Web Cache Poisoning CVE-2021-23336,urllib.parse.parse_qsl
和 urllib.parse.parse_qs
功能的默认分隔符将从 &
和分号(;
)改为只使用 &。
随着 RHEL 8.4 的发布,这个更改已被在 Python 3.6 中实现,并在以下 RHEL 8 次要发行本中向后移植到 Python 3.8 和 Python 2.7。
默认分隔符的更改可能会向后不兼容,因此红帽提供了一种方法来配置 Python 软件包中修改了默认分隔符的行为。此外,如果受影响的 urllib
解析功能检测到客户的应用受到更改的影响,则发出警告。
如需更多信息,请参阅 Python urllib 库中的 Web Cache Poisoning 问题的缓解方案(CVE-2021-23336)。
Python 3.9 不受影响,并且已经包含新的默认分隔符(&
),其只能在调用 由Python 代码编写的 urllib.parse.parse_qsl
和 urllib.parse.parse_qs
函数时传递 separator 参数来进行修改。
(BZ#1935686, BZ#1928904)
新模块流: swig:4.0
RHEL 8.4 引入了Simplified Wrapper 和 Interface Generator(SWIG)版本 4.0,它作为新模块流 swig:4.0
提供。
与之前发布的 SWIG 3.0
相比的显著变化包括:
-
唯一支持的
Python
版本是:2.7 和 3.2 到 3.8。 -
Python
模块已被改进:生成的代码已被简化,现在默认启用大多数优化。 -
添加了对
Ruby 2.7
的支持。 -
PHP 7
现在是唯一受支持的 PHP 版本;对PHP 5
的支持已被删除。 -
在大型接口文件上运行
SWIG
时性能显著提高。 - 添加了对命令行选项文件(也称为响应文件)的支持。
-
添加了对 JavaScript
Node.js
版本 2 到 10 版的支持。 -
添加了对
Octave
版本 4.4 到 5.1 版的支持。
要安装 swig:4.0
模块流,请使用:
# yum module install swig:4.0
如果要从 swig:3.0
流升级,请参阅切换到更新的流。
有关 swig
模块流支持长度的详情,请查看 Red Hat Enterprise Linux 8 Application Streams 生命周期。
新模块流:subversion:1.14
RHEL 8.4 引入了一个新的模块流 subversion:1.14
。Subversion 1.14
是最新的长期支持 (LTS) 版本。
在 RHEL 8.0 中的 Subversion 1.10
的重大变化包括:
-
Subversion 1.14
包括用于自动化并将Subversion
集成到客户构建和发行基础架构的Python 3
绑定。 -
新的
svnadmin rev-size
命令允许用户确定修订版本的总大小。 -
新的
svnadmin build-repcache
命令使管理员能够在缺少的条目填充rep-cache
数据库。 - 添加了一个新的实验性的命令,以概述当前工作副本状态。
-
实施了对
svn log
、svn info
和svn list
命令的各种改进。例如,svn list --human-readable
现在将人类可读的单位用于文件大小。 -
对大型工作副本的
svn status
有了显著改进。
兼容性信息:
-
与
Subversion 1.14
服务器和客户端进行交流的Subversion 1.10
客户端和服务器。但是,除非客户端和服务器升级到最新版本,否则某些功能可能不可用。 -
Subversion 1.10
下创建的存储库可以在Subversion 1.14
中成功加载。 -
在 RHEL 8 中包括的
Subversion 1.14
允许用户在客户端以纯文本形式缓存密码。这个行为与Subversion 1.10
相同,但与Subversion 1.14
的上游版本不同。 -
实验性
Shelving
功能已发生显著变化,它与Subversion 1.10
中创建的 shelves 不兼容。有关详情和升级说明,请参阅上游文档。 -
Subversion 1.14
中更改了使用全局规则和特定于存储库的规则对基于路径的身份验证配置的解释。有关受影响的配置的详情,请参阅上游文档。
要安装 subversion:1:14
模块流,请使用:
# yum module install subversion:1.14
如果要从 subversion:1.10
流升级,请参阅切换到更新的流。
有关 subversion
模块流支持长度的详情,请查看 Red Hat Enterprise Linux 8 Application Streams 生命周期。
新模块流: redis:6
Redis 6
,(高级键值存储)现在作为新模块流 redis:6
提供。
Redis 5
的显著变化包括:
-
Redis
现在支持所有频道上的 SSL。 -
Redis
现在支持访问控制列表 (ACL),它定义了命令调用和密钥模式访问的用户权限。 -
Redis
现在支持一个新的RESP3
协议,它返回更多的语义回复。 -
Redis
现在可以选择使用线程来处理 I/O。 -
Redis
现在为客户端的键值缓存提供服务器端支持。 -
改进了
Redis
活跃的过期周期,可以更快地驱除过期的密钥。
Redis 6
与 Red Hatis 5
兼容,但这个向后不兼容的更改除外:
-
当集合键不存在时,
SPOP <count>
命令不再返回 null。在Redis 6 中
,命令在这种情况下返回一个空集,类似于使用0
参数调用的情况下的情况。
要安装 redis:6
模块流,请使用:
# yum module install redis:6
如果要从 redis:5
流升级,请参阅切换到更新的流。
有关 redis
模块流支持长度的详情,请查看 Red Hat Enterprise Linux 8 Application Streams 生命周期。
(BZ#1862063)
新模块流: postgresql:13
RHEL 8.4 引入了 PostgreSQL 13
,它比版本 12 提供了一些新功能和增强。主要变更包括:
- 通过删除 B-tree 索引条目的重复数据已改进性能
- 提高了使用聚合或分区表的查询的性能
- 改进了使用扩展统计时的查询规划
- 索引的并行配置
- 增量排序
请注意,自 PostgreSQL 11
以来上游提供的对 Just-In-Time(JIT)编译的支持,postgresql :13
模块流不再提供支持。
另请参阅 使用 PostgreSQL。
要安装 postgresql:13
流,请使用:
# yum module install postgresql:13
如果要从 RHEL 8 中的更早的 postgresql
流升级,请按照 切换到更新的流中介绍的步骤进行, 然后迁移 PostgreSQL 数据,如 Migrating to a RHEL 8 版本 所述。
有关 postgresql
模块流支持长度的详情,请查看 Red Hat Enterprise Linux 8 Application Streams 生命周期。
(BZ#1855776)
新模块流:mariadb:10.5
MariaDB 10.5
现在作为新的模块流 mariadb:10.5
提供。与之前发布的 10.3 版本相比的显著改进包括:
-
MariaDB
现在默认使用unix_socket
身份验证插件。该插件允许用户在通过本地 Unix 套接字文件连接到MariaDB
时使用操作系统凭证。 -
MariaDB
支持新的FLUSH SSL
命令重新加载 SSL 证书,而不重新启动服务器。 -
MariaDB
添加了以mariadb-*
命名的二进制代码,mysql*
符号链接指向mariadb-*
的二进制代码。例如,mysqladmin
、mysqlaccess
和mysqlshow
分别指向mariadb-admin
、mariadb-access
和mariadb-show
二进制代码。 -
MariaDB
支持一个新的INET6
数据类型来存储 IPv6 地址。 -
MariaDB
现在使用 Perl Compatible Regular Expressions(PCRE)库版本 2。 -
SUPER
特权已被分成几个特权,以更好地与每个用户角色保持一致。因此,某些语句已更改了所需的权限。 -
MariaDB
添加一个新的全局变量binlog_row_metadata
,以及系统变量和状态变量,以控制记录的元数据量。 -
eq_range_index_dive_limit
变量的默认值已从0
更改为200
。 -
添加了一个新的
SHUTDOWN WAIT FOR ALL SLAVES
服务器命令和一个新的mysqladmin shutdown --wait-for-all-slaves
选项,以指示服务器仅在最后一个 binlog 事件发送到所有连接的副本后关闭。 -
在并行复制中,
slave_parallel_mode
变量现在默认为optimistic
。
InnoDB
存储引擎包括以下更改:
-
InnoDB
现在支持即时DROP COLUMN
操作,并允许用户更改列顺序。 -
以下变量的默认值已更改:
nodb_adaptive_hash_index
变为OFF
,nodb_checksum_algorithm
变为full_crc32
。 -
已删除或弃用了多个
InnoDB
变量。
MariaDB Galera 集群
已升级至版本 4,有以下显著变化:
-
Galera
添加了一个新的流复制功能,它支持复制无限大小的事务。在执行流复制的过程中,集群以小片段复制事务。 -
Galera
现在全面支持全球交易 ID (GTID)。 -
/etc/my.cnf.d/galera.cnf
文件中的wsrep_on
选项的默认值已从1
改为0
,以防止最终用户在没有配置所需的附加选项的情况下启动wsrep
复制。
另请参阅 使用 MariaDB。
要安装 mariadb:10.5
流,请使用:
# yum module install mariadb:10.5
如果要从 mariadb:10.3
模块流升级,请参阅 从 MariaDB 10.3 升级到 MariaDB 10.5。
有关 mariadb
模块流支持长度的详情,请查看 Red Hat Enterprise Linux 8 Application Streams 生命周期。
(BZ#1855781)
MariaDB 10.5
提供 PAM 插件版本 2.0
MariaDB 10.5
添加了可插拔验证模块 (PAM) 插件的新版本。PAM 插件版本 2.0 使用单独的 setuid root
帮助程序二进制文件来执行 PAM 身份验证,这使得 MariaDB
可以使用其他 PAM 模块。
在 MariaDB 10.5
中,可插拔验证模块 (PAM) 插件及其相关文件已移至新软件包 mariadb-pam
。此软件包同时包含 PAM 插件版本:版本 2.0 是默认值,版本 1.0 则作为 auth_pam_v1
共享对象库提供。
请注意,默认情况下 MariaDB
服务器不安装 mariadb-pam
软件包。要在 MariaDB 10.5
中提供 PAM 身份验证插件,请手动安装 mariadb-pam
软件包。
另请参阅已知问题 PAM 插件版本 1.0 在 MariaDB
中无法正常工作。
新软件包: mysql-selinux
RHEL 8.4 添加一个新的 mysql-selinux
软件包,它为 SELinux 模块提供 MariaDB
和 MySQL 数据库
的规则。软件包默认与数据库服务器一起安装。模块的优先级设置为 200
。
(BZ#1895021)
python-PyMySQL
rebase 到版本 0.10.1
python-PyMySQL
软件包提供 pure-Python MySQL 客户端库,它已更新至 0.10.1 版本。该软件包包含在 python36、python
38
和 python39
模块中。
主要变更包括:
-
在这个版本中,增加了对
ed25519
和caching_sha2_password
身份验证机制的支持。 -
python38
和python39
模块中设置的默认字符是utf8mb4
,它们与上游一致。python36
模块保留默认latin1
字符集,以保持与此模块的早期版本的兼容性。 -
在
python36
模块中,/usr/lib/python3.6/site-packages/pymysql/tests/
目录不再可用。
新软件包:python3-pyodbc
在这个版本中,将 python3-pyodbc
软件包添加到 RHEL 8。pyodbc
Python 模块提供对 Open Database Connectivity (ODBC) 数据库的访问。这个模块实现了 Python DB API 2.0 规格,并可与第三方 ODBC 驱动程序一起使用。例如,您现在可以使用 Performance Co-Pilot (pcp
) 来监控 SQL Server 的性能。
(BZ#1881490)
新软件包: micropipenv
现在提供了一个新的 micropipenv
软件包。它为 pip
软件包安装程序提供了一个轻量级打包程序,以支持 Pipenv
和 Poetry
锁定文件。
请注意,micropipenv
软件包在 AppStream 存储库中发布,并在 Compatibility 级别 4 下提供。如需更多信息,请参阅 Red Hat Enterprise Linux 8 应用程序兼容性指南。
(BZ#1849096)
新软件包: py3c-devel
和 py3c-docs
RHEL 8.4 引入了新的 py3c-devel
和 py3c-docs
软件包,这简化了将 C 扩展移植到 Python 3。这些软件包包括一组详细指南以及一组用于更轻松端口的宏。
请注意,py3c-devel
和 py3c-docs
软件包通过不支持的 CodeReady Linux Builder(CRB)存储库 发布。
(BZ#1841060)
增强了用于配置 httpd
的 ProxyRemote
指令
Apache HTTP 服务器中的 ProxyRemote
配置指令已被改进,可以选择性地采用用户名和密码凭据。这些凭据用于使用 HTTP 基本身份验证
向远程代理进行身份验证。此功能已从 httpd 2.5
向后移植。
(BZ#1869576)
非端点证书可与 SSLProxyMachineCertificateFile
和 SSLProxyMachineCertificatePath
httpd
指令一起使用
在这个版本中,您可以使用非端点(非叶子)证书,如证书颁发机构(CA)或中间证书,以及使用 Apache HTTP 服务器中的 SSLProxyMachineCertificateFile
和 SSLProxyMachineCertificatePath
配置指令。Apache HTTP 服务器现在将此类证书视为可信 CA,就像它们与 SSLProxyMachineCertificateChainFile
指令一起使用一样。在以前的版本中,如果非端点证书与 SSLProxyMachineCertificateFile
和 SSLProxyMachineCertificatePath
指令一同使用,则 httpd
无法以配置错误开头。
(BZ#1883648)
mod_security
模块中的新 SecRemoteTimeout
指令
在以前的版本中,您无法修改在 Apache HTTP 服务器的 mod_security
模块中检索远程规则的默认超时时间。在这个版本中,您可以使用新的 SecRemoteTimeout
配置指令,以秒为单位设置自定义超时。
达到超时后,httpd
现在会失败,并带有 Timeout was reached
错误消息。请注意,在这种情况下,错误消息也包含 Syntax 错误
,即使配置文件在语法上有效。httpd
依赖于超时的行为取决于 SecRemoteRulesFailAction
配置指令的值(默认值为 Abort
)。
mod_fcgid
模块现在可以将最多 1024 个环境变量传递给 FCGI 服务器进程
在这个版本中,Apache HTTP 服务器的 mod_fcgid
模块可将最多 1024 个环境变量传递给 FastCGI (FCGI) 服务器进程。以前的 64 个环境变量的限制可能会导致 FCGI 服务器上运行的应用程序出现故障。
perl-IO-String
现在包括在 AppStream 软件仓库中
perl-IO-String
软件包提供 Perl IO::String
模块,现在通过受支持的 AppStream 软件仓库发布。在以前的版本中,在 RHEL 8 的发行版本中,perl-IO-String
软件包包括在不支持的 CodeReady Linux Builder 存储库中。
(BZ#1890998)
新软件包: quota-devel
RHEL 8.4 引入了 quota-devel
软件包,它为实现 配额
远程过程(RPC)服务提供了头文件。
请注意 , quota-devel
软件包通过不受支持的 CodeReady Linux Builder(CRB)存储库 发布。
4.12. 编译器和开发工具
glibc
库现在支持 glibc-hwcaps
子目录来加载优化的共享库实现
在某些架构中,硬件升级有时会导致 glibc
加载具有基准优化的库,而不是为之前的硬件生成而优化的库。另外,当在 AMD CPU 上运行时,优化的库根本不会加载。
在这个版本中,glibc
支持在 glibc-hwcaps
子目录中查找优化的库实现。动态装载程序会根据使用的 CPU 及其硬件功能,检查子目录中的库文件。此功能可用于以下架构:IBM Power Systems(little endian)、IBM Z、64 位 AMD 和 Intel。
(BZ#1817513)
glibc
动态装载程序现在会在运行时激活所选审计模块
在以前的版本中,binutils
链接编辑器 ld
支持 --audit
选项,在运行时选择审计模块进行激活,但 glibc
动态装载程序会忽略请求。在这个版本中,glib
动态加载程序不再忽略请求,并载入指定的审计模块。因此,可以在不编写打包程序脚本或使用类似的机制的情况下为特定程序激活审计模块。
glibc
现在提供改进 IBM POWER9 的性能
这个版本为 IBM POWER9 引进了功能 strlen
、strcpy
、stpcpy
和 rawmemchr
的新实现。现在,这些功能在 IBM POWER9 硬件上可以更快地执行,从而提高了性能。
在 IBM Z 上优化了 memcpy
和 memset
的性能
在这个版本中,对memcpy
和 memset
API 的核心库实现进行了调整,以加快对IBM Z 处理器上的小型(< 64KiB)和大型数据副本的处理。现在,处理内存数据的应用程序会显著提高不同工作负载的性能。
GCC 现在支持 ARMv8.1 LSE 原子指令
在这个版本中,GCC 编译器支持大系统扩展(LSE),使用 ARMv8.1 规格添加的 atomic 说明。与 ARMv8.0 Load-Exclusive 和 Store-Exclusive 指令相比,这些说明为多线程应用程序提供更好的性能。
(BZ#1821994)
GCC 现在为特定的 IBM Z 系统释放向量兼容提示
在这个版本中,GCC 编译器可以为 IBM z13 处理器发出向量负载并存储对齐提示。要使用这个改进,编译器必须支持这样的 hint。因此,用户现在可以从某些向量操作的性能提高。
(BZ#1850498)
Dyninst rebase 到版本 10.2.1
Dyninst 二进制分析和修改工具已更新至版本 10.2.1。重要的程序错误修复和增强包括:
-
支持 elfutils
debuginfod
客户端库。 - 改进了并行二进制代码分析。
- 改进了对大型二进制文件的分析和工具。
elfutils
rebase 到版本 0.182
elfutils
软件包已更新至版本 0.182。重要的程序错误修复和增强包括:
-
识别
DW_CFA_AARCH64_negate_ra_state
指令。如果没有启用 Pointer Authentication Code(PAC),您可以使用DW_CFA_AARCH64_negate_ra_state
来展开在 64 位 ARM 架构中为 PAC 编译的代码。 -
elf_update
现在在设置了SHF_COMPRESSED
标志的部分修复了错误的sh_addralign
值。 -
debuginfod-client
现在支持使用 ZSTD 压缩的内核 ELF 镜像。 -
debuginfod
具有更高的软件包遍历,在扫描过程中容忍各种错误。gearing 过程更为可见且可中断,并提供更多 Prometheus 指标。
SystemTap rebase 到版本 4.4
SystemTap 工具已更新至版本 4.4,提供多个程序错误修复和增强。主要变更包括:
- 提高用户空间的性能和稳定性。
- 用户现在可以访问这些架构上的隐式线程本地存储变量: AMD64、Intel 64、IBM Z,IBM Power Systems 的 little-endian 变体。
- 处理浮动点值的初始支持。
- 改进了使用全局变量的脚本的并发性。为保护对全局变量的并发访问所需的锁定进行了优化,以便跨越最小的区域。
- 使用 prologue 和 epilogue 定义别名的新语法。
-
新的
@probewrite
predicate。 -
syscall
参数可再次写入。
有关显著变化的更多信息,请在更新前阅读上游发行注记。
Valgrind 现在支持 IBM z14 指令
在这个版本中,Valgrind 工具套件支持 IBM z14 处理器的说明。现在,您可以使用 Valgrind 工具使用 z14 vector 指令和大量 z14 指令集调试程序。
(BZ#1504123)
cmake rebase 到版本 3.18.2
CMake 构建系统已从版本 3.11.4 升级到 3.18.2。它在 RHEL 8.4 中作为 cmake-3.18.2-8.el8
软件包提供。
要在需要 3.18.2 或更高版本的项目上使用 CMake,请使用命令 cmake_minimum_required(version x.y.z)
。
有关新功能和已弃用功能的更多信息,请参阅 CMake 发行注记。
libmpc
rebase 到版本 1.1.0
libmpc
软件包已更新到 1.1.0 版本,它提供了几个改进和程序错误修复。详情请查看GNU MPC 1.1.0 发行注记。
更新了 GCC 工具集 10
GCC 工具集 10 是提供开发工具最新版本的编译器工具组。它以 AppStream
存储库中的 Software Collection 的形式作为 Application Stream 提供。
RHEL 8.4 中引入的主要更改包括:
- GCC 编译器已更新至上游版本,提供多个程序错误修复。
-
elfutils
已更新至 0.182 版本。 - Dyninst 更新至版本 10.2.1。
- SystemTap 更新至版本 4.4。
GCC 工具集 10 提供以下工具和版本:
工具 | 版本 |
---|---|
GCC | 10.2.1 |
GDB | 9.2 |
Valgrind | 3.16.0 |
SystemTap | 4.4 |
Dyninst | 10.2.1 |
binutils | 2.35 |
elfutils | 0.182 |
dwz | 0.12 |
make | 4.2.1 |
strace | 5.7 |
ltrace | 0.7.91 |
annobin | 9.29 |
要安装 GCC Toolset 10,请以根用户身份运行以下命令:
# yum install gcc-toolset-10
要从 GCC Toolset 10 运行工具:
$ scl enable gcc-toolset-10 tool
要运行一个 shell 会话,其中的 GCC Toolset 10 中的工具版本会覆盖这些工具的系统版本:
$ scl enable gcc-toolset-10 bash
如需更多信息,请参阅使用 GCC Toolset。
GCC Toolset 10 组件在两个容器镜像中可用:
-
rhel8/gcc-toolset-10-toolchain
,包括 GCC 编译器、GDB 调试器和make
自动化工具。 -
rhel8/gcc-toolset-10-perftools
,其中包括性能监控工具,如 SystemTap 和 Valgrind。
要拉取容器镜像,以 root 身份运行以下命令:
# podman pull registry.redhat.io/<image_name>
请注意,现在只支持 GCC Toolset 10 容器镜像。之前 GCC Toolset 版本的容器镜像已弃用。
有关容器镜像的详情,请参阅使用 GCC Toolset 容器镜像。
(BZ#1918055)
GCC Toolset 10: GCC 现在支持 bfloat16
在 GCC Toolset 10 中,GCC 编译器现在支持通过 ACLE Intrinsics 进行 bfloat16
扩展。此增强提供高性能计算。
(BZ#1656139)
GCC Toolset 10: GCC 现在支持 Intel Sapphire Rapids 处理器上的 ENQCMD
和 ENQCMDS
指令
在 GCC Toolset 10 中,GNU 编译器集合(GCC)现在支持 ENQCMD
和 ENQCMDS
指令,您可以使用它们自动将工作描述符提交到设备。要应用这个增强功能,请使用 -menqcmd
选项运行 GCC。
(BZ#1891998)
GCC Toolset 10:Dyninst rebase 到版本 10.2.1
在 GCC Toolset 10 中,Dyninst 二进制分析和修改工具更新至版本 10.2.1。重要的程序错误修复和增强包括:
-
支持 elfutils
debuginfod
客户端库。 - 改进了并行二进制代码分析。
- 改进了对大型二进制文件的分析和工具。
GCC Toolset 10: elfutils
rebase 到版本 0.182
在 GCC Toolset 10 中,elfutils
软件包已更新至 0.182 版本。重要的程序错误修复和增强包括:
-
识别
DW_CFA_AARCH64_negate_ra_state
指令。如果没有启用 Pointer Authentication Code(PAC),您可以使用DW_CFA_AARCH64_negate_ra_state
来展开在 64 位 ARM 架构中为 PAC 编译的代码。 -
elf_update
现在在设置了SHF_COMPRESSED
标志的部分修复了错误的sh_addralign
值。 -
debuginfod-client
现在支持使用 ZSTD 压缩的内核 ELF 镜像。 -
debuginfod
具有更高的软件包遍历,在扫描过程中容忍各种错误。gearing 过程更为可见且可中断,并提供更多 Prometheus 指标。
Go Toolset rebase 到版本 1.15.7
Go Toolset 已升级到 1.15.7。主要改进包括:
-
现在,连接速度更快且需要较少的内存。这是因为新实现的对象文件格式并增加了内部阶段的并发。在这个版本中,内部链接是默认。要禁用此设置,请使用编译器标志
-ldflags=-linkmode=external
。 - 对于高数量的内核,分配小对象已改进(包括最坏的延迟情况)。
-
当没有指定
Subject Alternative Names
时将 X.509 证书中的CommonName
字段视为主机名现在被默认禁用。要启用它,请将值x509ignoreCN=0
添加到GODEBUG
环境变量中。 -
GOPROXY
现在支持跳过返回错误的代理。 -
Go 现在包括新包
time/tzdata
。它允许您将时区数据库嵌入到程序中,即使时区数据库在本地系统中不可用。
有关 Go Toolset 的更多信息,请参阅 使用 Go Toolset。
(BZ#1870531)
Rust Toolset 被 rebase 到版本 1.49.0
Rust Toolset 已更新至 1.49.0 版本。主要变更包括:
- 现在,您可以使用 rustdoc 页面项的路径在 rustdoc 中链接到它。
- rust 测试框架现在隐藏线程输出。失败的测试输出仍然显示在终端中。
-
现在,您可以使用
[T; N]: TryFrom<Vec<T>>
将一个向量转换为任意长度的数组。 现在,您可以使用
slice::select_nth_unstable
执行排序分区。此功能还提供以下变体:-
slice::select_nth_unstable_by
提供 comparator 函数。 -
slice::select_nth_unstable_by_key
提供密钥提取功能。
-
-
现在,您可以使用
ManuallyDrop
作为 Union 字段的类型。还可以使用impl Drop for Union
将 Drop trait 添加到现有地区中。这样便可定义需要手动丢弃某些字段的位置。 - Rust Toolset 的容器镜像已弃用,并且 Rust Toolset 已添加到通用基础镜像(UBI)仓库中。
如需更多信息,请参阅 使用 Rust Toolset。
(BZ#1896712)
LLVM Toolset rebase 到版本 11.0.0
LLVM Toolset 已升级至版本 11.0.0。主要变更包括:
-
AMD 和 Intel 64 位构架、IBM Power Systems、Little Endian 和 IBM Z 添加了对
-fstack-clash-protection
命令行选项的支持。这个新编译器标志通过检查每个 stack 页面来防止对 stack-clash 的攻击。 -
新的编译器 flag
ffp-exception-behavior={ignore,maytrap,strict}
启用浮点异常行为的规格。默认设置为ignore
。 -
新的编译器标志
ffp-model={precise,strict,fast}
允许简化单目的浮点选项。默认设置为precise
。 -
现在默认启用新的编译器标志
-fno-common
。在这个版本中,在多个转换单元中使用 C 版变量定义的代码会触发多定义 linker 错误。要禁用此设置,请使用-fcommon
标志。 - LLVM Toolset 的容器镜像已弃用,LLVM Toolset 已添加到通用基础镜像(UBI)仓库中。
如需更多信息,请参阅使用 LLVM Toolset。
(BZ#1892716)
pcp
rebase 到版本 5.2.5
pcp
软件包已升级到 5.2.5 版本。主要变更包括:
- 通过安全连接支持 SQL 服务器指标数据。
-
带有每个进程网络指标的
eBPF/BCC
netproc 模块. -
pmdaperfevent(1)
支持hv_24x7 core-level
和hv_gpci
事件指标。 - 新的 Linux 进程核算指标、Linux ZFS 指标、Linux XFS 指标、Linux 内核套接字指标、Linux 多路径 TCP 指标、Linux 内存和 ZRAM 指标以及 S.M.A.R.T. 指标支持 NVM Express 磁盘。
-
新的
pcp-htop(1)
实用程序可视觉化系统和进程指标。 -
新的 pmrepconf(1)实用程序来生成
pmrep/pcp2xxx
配置。 -
新的
pmiectl(1)
工具可控制pmie
服务。 -
新的
pmlogctl(1)
工具,用于控制pmlogger
服务。 -
新的
pmlogpaste(1)
实用程序,用于编写日志字符串指标。 -
新的
pcp-atop(1)
实用程序,来处理会计统计和各进程网络统计报告。 -
新的
pmseries(1)
实用程序,来查询函数、语言扩展和 REST API。 -
检测 OOM 终止和套接字连接饱和性的全新
pmie(1)
规则。 -
pcp-atopsar(1)
、pcp-free(1)
、pcp-dstat(1)
、pmlogger(1)
和pmchart(1)
工具中的程序错误修复。 - 对每个文本派生指标的 REST API 和 C API 支持。
- 改进了 OpenMetrics 指标元数据(单元、语义)。
-
广泛重新安排已安装的
/var
文件系统布局。
通过在 grafana-pcp
中 Vector 数据源的中央 pmproxy
来访问远程主机
在一些环境中网络策略不允许从仪表板查看器浏览器中直接连接到受监控的主机的连接。在这个版本中,可以自定义 hostspec
以连接到中央 pmproxy
,后者将请求转发到单个主机。
Grafana
被 rebase 到版本 7.3.6
grafana
软件包已升级至 7.3.6 版本。主要变更包括:
- 新的面板编辑器和新数据转换功能
- 改进了时区支持
-
现在,默认置备路径已从
/usr/share/grafana/conf/provisioning
改为/etc/grafana/provisioning
目录。您可以在/etc/grafana/grafana.ini
配置文件中配置此设置。
如需更多信息,请参阅 Grafana v7.0 中的新内容、Grafana v7.1 中的新内容、Grafana v7.2 中的新内容 和 Grafana v7.3 中的新内容。
grafana-pcp
rebase 到版本 3.0.2
grafana-pcp
软件包已升级至版本 3.0.2。主要变更包括:
Redis:
- 支持在 Grafana 中创建警报。
-
由于性能原因,在 Grafana 变量查询中使用
label_values(metric, label)
已弃用。label_values(label)
查询仍然被支持。
Vector:
-
支持派生的指标,允许在查询中使用算术运算符和统计功能。如需更多信息,请参阅
pmRegisterDerived(3)
man page。 -
可配置 hostspec,您可以在其中通过中央
pmproxy
访问远程性能指标收集器守护进程(PMCD)。 - 自动配置面板的单元。
-
支持派生的指标,允许在查询中使用算术运算符和统计功能。如需更多信息,请参阅
仪表板:
- 使用 Utilization Saturation and Errors(USE)方法,检测潜在的性能问题,并使用清单仪表板显示可能的解决方案。
-
使用
CGroups v2
新的 MS SQL 服务器仪表板、eBPF/BCC
仪表板和容器概述仪表板。 - 所有仪表板现在位于 Datasource 设置页面中的 Dashboards 标签页中,它们不会被自动导入。
升级备注:
更新 Grafana 配置文件:
编辑
/etc/grafana/grafana.ini
Grafana 配置文件,并确保设置了以下选项:allow_loading_unsigned_plugins = pcp-redis-datasource
重启 Grafana 服务器:
# systemctl restart grafana-server
用于访问 PCP 中的 SQL 服务器指标的 Active Directory 身份验证
在这个版本中,系统管理员可以配置 pmdamssql(1)
,以使用 Active Directory(AD)身份验证安全地连接到 SQL Server 指标。
grafana-container
rebase 到版本 7.3.6
rhel8/grafana
容器镜像提供 Grafana。Grafana 是一个开源实用程序,它带有 metrics dashboard,以及 Graphite、Elasticsearch、OpenTSDB、Prometheus、InfluxDB 和 Performance Co-Pilot(PCP)的图形编辑器。grafana-container
软件包已升级至版本 7.3.6。主要变更包括:
-
grafana
软件包现在更新至版本 7.3.6。 -
grafana-pcp
软件包现在更新至版本 3.0.2。
rebase 更新 Red Hat Container Registry 中的 rhel8/grafana
镜像。
要拉取此容器镜像,请执行以下命令:
# podman pull registry.redhat.io/rhel8/grafana
pcp-container
rebase 到版本 5.2.5
rhel8/pcp
容器镜像提供 Performance Co-Pilot,这是系统性能分析工具包。pcp-container
软件包已升级到 5.2.5 版本。主要变更包括:
-
pcp
软件包现在更新至版本 5.2.5。 -
引入了一个新的
PCP_SERVICES
环境变量,它指定要在容器内启动的 PCP 服务逗号分隔列表。
rebase 更新 Red Hat Container Registry 中的 rhel8/pcp
镜像。
要拉取此容器镜像,请执行以下命令:
# podman pull registry.redhat.io/rhel8/pcp
JDK Mission Control rebase 到版本 8.0.0
HotSpot JVM 的 JDK Mission Control(JMC)配置集程序由 jmc:rhel8
模块流提供,已升级到 8.0.0 版本。主要改进包括:
-
Treemap
viewer 已添加到JOverflow
插件中,按类可视化内存用量。 -
Threads
图现在增加了更多的过滤和缩放选项。 - JDK Mission Control 现在支持打开使用 LZ4 算法压缩的 JDK Flight Recorder 记录。
-
在
Memory
和TLAB
视图中添加了新的列,以帮助您确定分配压力的区域。 -
添加了
Graph
视图以改进堆栈追踪的视觉化。 -
Percentage
列已添加到直方图表中。
RHEL 8 中的 JMC 需要运行 JDK 版本 8 或更高版本。目标 Java 应用程序必须至少使用 OpenJDK 版本 8 运行,以便 JDK Flight Recorder 功能可以访问 JDK Flight Recorder 功能。
jmc:rhel8
模块流有两个配置集:
-
通用
配置集,用于安装整个 JMC 应用程序 -
内核
配置文件
,仅安装核心 Java 库(jmc-core
)
要安装 jmc:rhel8
模块流的 common
配置集,请使用:
# yum module install jmc:rhel8/common
将配置文件名称更改为 core
,以仅安装 jmc-core
软件包。
(BZ#1919283)
4.13. Identity Management
对身份管理术语的变化
红帽承诺使用适当的语言。
在身份管理中,计划中的术语变化包括:
- 使用 block list 替换 blacklist
- 使用 allow list 替换 whitelist
- 使用 secondary 替换 slave
master 会根据上下文被替换为其他更适当的术语:
- 使用 IdM server 替换 IdM master
- 使用 CA renewal server 替换 CA renewal master
- 使用 CRL publisher server 替换 CRL master
- 使用 multi-supplier 替换 multi-master
(JIRA:RHELPLAN-73418)
dsidm
实用程序支持重命名和移动条目
在这个版本中,您可以使用 dsidm
实用程序重命名和移动目录服务器中的用户、组、POSIX 组、角色和组织单元(OU)。有关详情和示例,请参阅目录服务器管理指南中的 重命名用户、组、POSIX 组和 OU 部分。
删除 IdM 中的子 CA
在这个版本中,如果您运行 ipa ca-del
命令且没有禁用 Sub-CA,则错误表示无法删除 Sub-CA,且必须禁用它。首先运行 ipa ca-disable
命令,以禁用 Sub-CA,然后使用 ipa ca-del
命令将其删除。
请注意,您无法禁用或删除 IdM CA。
(JIRA:RHELPLAN-63081)
IdM 现在支持新的 Ansible 管理角色和模块
RHEL 8.4 提供 Ansible 模块,用于自动管理 Identity Management(IdM)中的基于角色的访问控制(RBAC)、备份和恢复 IdM 服务器的 Ansible 角色,以及用于位置管理的一个 Ansible 模块:
-
您可以使用
ipapermission
模块在 IdM RBAC 中创建、修改和删除权限和权限成员。 -
您可以使用
ipaprivilege
模块在 IdM RBAC 中创建、修改和删除特权和特权成员。 -
您可以使用
iparole
模块在 IdM RBAC 中创建、修改和删除角色和角色成员。 -
您可以使用
ipadelegation
模块来委派 IdM RBAC 中用户的权限。 -
您可以使用
ipaselfservice
模块在 IdM 中创建、修改和删除自助服务访问规则。 -
您可以使用
ipabackup
角色在本地或控制节点中创建、复制和删除 IdM 服务器备份和恢复 IdM 服务器。 -
您可以使用
ipalocation
模块来确保主机的物理位置或不存在,例如其数据中心机架。
(JIRA:RHELPLAN-72660)
FIPS 模式中的 IdM 现在支持使用 AD 的跨林信任
在这个版本中,管理员可以在启用了 FIPS 模式的 IdM 域和 Active Directory(AD)域间建立跨林信任。请注意,在 IdM 中启用了 FIPS 模式时,您无法使用共享 secret 建立信任,请参阅 FIPS 合规性。
(JIRA:RHELPLAN-58629)
AD 用户现在可以使用 UPN 后缀从属到已知的 UPN 后缀登录到 IdM
在以前的版本中, Active Directory(AD)用户无法使用通用 Principal Name(UPN)(例如,sub1.ad-example.com
),它是已知 UPN 后缀(例如 ad-example.com
)的子域登录到 Identity Management(IdM),因为内部 Samba 进程将子域过滤为任何 Top 级别名称(TLN)的副本。在这个版本中,如果被从属到已知的 UPN 后缀,会测试 UPN 来验证 UPN。现在,用户可以在上述场景中使用下级 UPN 后缀登录。
IdM 现在支持新的密码策略选项
在这个版本中,Identity Management(IdM)支持额外的 libpwquality
库选项:
--maxrepeat
- 指定序列中相同字符的最大数量。
--maxsequence
- 指定单例字符序列的最大长度 (abcd)。
--dictcheck
- 检查密码是否为字典里的单词。
--usercheck
- 检查密码是否包含用户名。
如果设置了任何新密码策略选项,则密码的最小长度为 6 个字符,无论 --minlength
选项的值为何。新密码策略设置仅应用到新密码。
在使用 RHEL 7 和 RHEL 8 服务器的混合环境中,新的密码策略设置仅在在 RHEL 8.4 及更新版本上运行的服务器中强制实施。如果用户登录到 IdM 客户端,并且 IdM 客户端与在 RHEL 8.3 或更早版本上运行的 IdM 服务器通信,则系统管理员设置的新密码策略要求不会被应用。为确保行为一致,请将所有服务器升级或更新至 RHEL 8.4 及更新的版本。
改进了 Active Directory 站点发现过程
SSSD 服务现在发现 Active Directory 站点与无连接 LDAP(CLDAP)的并行发现,以便在某些域控制器无法访问时加快站点发现速度。在以前的版本中,站点发现会按顺序执行,如果无法访问域控制器,则最终会发生超时,SSSD 会离线。
关闭 nsslapd-nagle
的默认值来提高吞吐量
在以前的版本中,cn=config
条目中的 nsslapd-nagle
参数默认启用。因此,Directory 服务器执行大量 setsocketopt
系统调用,这会减慢服务器的速度。这个版本将默认值 nsslapd-nagle
更改为 off
。因此,Directory 服务器会执行较低数量的 setsocketopt
系统调用,并可每秒处理更高数量的操作。
(BZ#1996076)
在 sssd.conf 文件的 [domain] 部分启用或禁用 SSSD 域
在这个版本中,您可以通过修改 sssd.conf
文件中的对应 [domain]
部分来启用或禁用 SSSD 域。
在以前的版本中,如果您的 SSSD 配置包含独立域,您仍需要修改 sssd.conf
文件的 [sssd]
部分中的 domains
选项。此更新允许您在域配置中将 enabled=
选项设置为 true 或 false。
-
将
enabled
选项设置为 true 可启用域,即使它没有在sssd.conf
文件的[sssd]
部分的domains
选项下列出。 -
将
enabled
选项设置为 false 可禁用域,即使它在sssd.conf
文件的[sssd]
部分的domains
选项下列出。 -
如果没有设置
enabled
选项,则会使用sssd.conf
的[sssd]
部分中的domains
选项中的配置。
添加了手动控制最大离线超时的选项
offline_timeout
周期决定 SSSD 重新在线尝试之间的时间递增。在以前的版本中,这个间隔的最大可能值被硬编码为 3600 秒,这足以满足一般使用要求,但在快速或慢速变化环境中可能会造成问题。
在这个版本中,增加了 offline_timeout_max
选项来手动控制每个间隔的最大时长,可让您更加灵活地在 SSSD 中跟踪服务器行为。
请注意,您应该根据 offline_timeout
参数值设置这个值。0 代表禁用递增行为。
支持 SSSD 会话记录配置中 scope=all
的 exclude_users
和 exclude_groups
Red Hat Enterprise 8.4 现在为大量组或用户列表提供了新的 SSSD 选项来定义会话记录:
exclude_users
记录中排除的以逗号分隔的用户列表,仅适用于
scope=all
配置选项。exclude_groups
以逗号分隔的组列表,其中的成员应不包括在记录中。仅适用于
scope=all
配置选项。
如需更多信息,请参阅 sssd-session-recording
man page。
samba rebase 到版本 4.13.2
samba 软件包升级至上游版本 4.13.2,它提供了大量的程序错误修复和增强:
-
为避免出现允许未经身份验证的用户使用
netlogon
协议接管域的安全问题,请确保您的 Samba 服务器使用server schannel
参数的默认值(yes
)。要验证,请使用testparm -v | grep 'server schannel'
命令。详情请参阅 CVE-2020-1472。 - Samba "wide link" 功能已转换为 VFS 模块。
- 以 PDC 或 BDC 身份运行 Samba 已被弃用。
现在,您可以在启用了 FIPS 模式的 RHEL 上使用 Samba。由于 FIPS 模式的限制:
- 您不能使用 NT LAN Manager(NTLM)验证,因为 RC4 密码会被阻断。
- 在 FIPS 模式中,Samba 客户端实用程序在 AES 密码中使用 Kerberos 验证。
- 您只能在 Active Directory(AD)或带有使用 AES 密码的 Kerberos 身份验证的 Active Directory(AD)或 Red Hat Identity Management(IdM)环境中使用 Samba 作为域成员。请注意,红帽继续支持后台使用的主域控制器(PDC)功能 IdM。
用于不安全的验证方法的以下参数现已弃用,它们仅适用于服务器消息块版本 1(SMB1)协议:
-
client plaintext auth
-
client NTLMv2 auth
-
client lanman auth
-
client use spnego
-
- 解决了 GlusterFS write-behind 性能转换器中与 Samba 一起使用的问题,以防止数据崩溃。
- 现在,支持的最小运行时版本是 Python 3.6。
-
已弃用的
ldap ssl ads
参数已被删除。
当 smbd
、nmbd
或者 winbind
服务启动时,Samba 会自动更新它的 tdb
数据库文件。在启动 Samba 前备份数据库文件。请注意,红帽不支持降级 tdb
数据库文件。
有关显著变化的更多信息,请在更新前阅读上游发行注记。
新的 GSSAPI PAM 模块,可以使用 SSSD 进行免密码 sudo
身份验证
使用新的 pam_sss_gss.so
Pluggable 身份验证模块(PAM),您可以配置系统安全服务守护进程(SSSD)来使用通用安全服务应用程序编程界面(GSSAPI)向 PAM 感知服务验证用户。
例如,您可以使用这个模块通过 Kerberos ticket 进行无密码 sudo
验证。为了在 IdM 环境中获得额外的安全性,您可以将 SSSD 配置为只为用户问题单中带有特定验证指示符的用户授予访问权限,比如使用智能卡或一次性密码验证的用户。
如需更多信息,请参阅授予 IdM 客户端上 IdM 用户的 sudo 访问权限。
目录服务器 rebase 到版本 1.4.3.16
389-ds-base
软件包已升级到上游版本 1.4.3.16,它提供了一些程序错误修正和增强。如需显著变化的完整列表,请在更新前阅读上游发行注记:
- https://www.port389.org/docs/389ds/releases/release-1-4-3-16.html
- https://www.port389.org/docs/389ds/releases/release-1-4-3-15.html
- https://www.port389.org/docs/389ds/releases/release-1-4-3-14.html
- https://www.port389.org/docs/389ds/releases/release-1-4-3-13.html
- https://www.port389.org/docs/389ds/releases/release-1-4-3-12.html
- https://www.port389.org/docs/389ds/releases/release-1-4-3-11.html
- https://www.port389.org/docs/389ds/releases/release-1-4-3-10.html
- https://www.port389.org/docs/389ds/releases/release-1-4-3-9.html
目录服务器现在在 RESULT
条目中记录工作和操作时间
在这个版本中,Directory 服务器会在 /var/log/dirsrv/slapd-<instance_name>/access
文件中的 RESULT
条目中记录两个额外时间值:
-
wtime
值指示操作从工作队列移到 worker 线程所需的时间。 -
optime
值显示在 worker 线程启动操作后实际操作完成的时间。
新值提供有关 Directory 服务器如何处理负载和进程操作的附加信息。
详情请查看 Red Hat Directory Server Configuration、命令和文件参考中的访问日志参考部分。
目录服务器现在可以拒绝内部非索引搜索
为 cn=<database_name>,cn=ldbm database,cn=plugins,cn=config
项增加了 nsslapd-require-internalop-index
参数来拒绝内部未进行索引的搜索。当插件修改数据时,它在数据库中有一个写入锁定。在大型数据库中,如果插件随后执行未索引的搜索,该插件有时会使用所有的有数据库锁定,这会破坏数据库,或者导致服务器变得无响应。要避免这个问题,现在您可以通过启用 sslapd-require-internalop-index
参数来拒绝内部未索引的搜索。
4.14. Desktop
您可以在 GNOME 中配置无响应应用程序超时
GNOME 定期向每个应用程序发送信号,以检测应用程序是否无响应。当 GNOME 检测到无响应应用程序时,它会在应用程序窗口中显示一个对话框,该对话框会要求停止应用程序或等待。
某些应用程序无法及时响应信号。因此,即使应用程序正常工作,GNOME 也会显示对话框。
在这个版本中,您可以配置信号之间的时间。设置存储在 org.gnome.mutter.check-alive-timeout
GSettings 键中。要完全禁用无响应应用程序检测,请将键设置为 0。
有关配置 GSettings 密钥的详情,请参考在命令行中使用 GSettings 密钥。
(BZ#1886034)
4.15. 图形基础结构
现在支持 Intel Tiger Lake GPU
此发行版本添加了对带有集成图形的 Intel Tiger Lake CPU 微架构的支持。这包括在以下 CPU 型号中的 Intel UHD Graphics 和 Intel Xe 集成的 GPU:
- Intel Core i7-1160G7
- Intel Core i7-1185G7
- Intel Core i7-1165G7
- Intel Core i7-1165G7
- Intel Core i7-1185G7E
- Intel Core i7-1185GRE
- Intel Core i7-11375H
- Intel Core i7-11370H
- Intel Core i7-1180G7
- Intel Core i5-1130G7
- Intel Core i5-1135G7
- Intel Core i5-1135G7
- Intel Core i5-1145G7E
- Intel Core i5-1145GRE
- Intel Core i5-11300H
- Intel Core i5-1145G7
- Intel Core i5-1140G7
- Intel Core i3-1115G4
- Intel Core i3-1115G4
- Intel Core i3-1110G4
- Intel Core i3-1115GRE
- Intel Core i3-1115G4E
- Intel Core i3-1125G4
- Intel Core i3-1125G4
- Intel Core i3-1120G4
- Intel Pentium Gold 7505
- Intel Celeron 6305
- Intel Celeron 6305E
您不再需要设置 i915.alpha_support=1
或 i915.force_probe=*
内核选项来启用 Tiger Lake GPU 支持。
(BZ#1882620)
现在支持使用第 11 代 Core 微处理器的 Intel GPU
此发行版本增加了对带有 Xe gen 12 集成图形的 11 代 Core CPU 架构(以前称为 Rocket Lake)的支持,它包括在以下 CPU 模型中:
- Intel Core i9-11900KF
- Intel Core i9-11900K
- Intel Core i9-11900
- Intel Core i9-11900F
- Intel Core i9-11900T
- Intel Core i7-11700K
- Intel Core i7-11700KF
- Intel Core i7-11700T
- Intel Core i7-11700
- Intel Core i7-11700F
- Intel Core i5-11500T
- Intel Core i5-11600
- Intel Core i5-11600K
- Intel Core i5-11600KF
- Intel Core i5-11500
- Intel Core i5-11600T
- Intel Core i5-11400
- Intel Core i5-11400F
- Intel Core i5-11400T
(BZ#1784246、BZ#1784247、BZ#1937558)
现在支持 nvidia Ampere
此版本添加了对使用 GA102 或 GA104 芯片集的 Nvidia Ampere GPU 的支持。这包括以下 GPU 模型:
- GeForce RTX 3060 Ti
- GeForce RTX 3070
- GeForce RTX 3080
- GeForce RTX 3090
- RTX A4000
- RTX A5000
- RTX A6000
- Nvidia A40
请注意,nouveau
图形驱动程序尚不支持使用 Nvidia Ampere 系列进行 3D 加速。
(BZ#1916583)
各种更新的图形驱动程序
以下图形驱动程序已更新至最新的上游版本:
-
Matrox
mgag200
驱动 -
A fast
ast
驱动程序
(JIRA:RHELPLAN-72994, BZ#1854354, BZ#1854367)
4.16. Web 控制台
Software Updates 页面检查所需的重启
在这个版本中,RHEL web 控制台中的 Software Updates 页面检查是否足以重启一些服务或运行进程以使更新在安装后生效。在这些情况下,这可以避免重启计算机。
(JIRA:RHELPLAN-59941)
web 控制台中的图形性能分析
在这个版本中,系统图形页面已被一个新的专用页面替换,用于分析机器的性能。要查看性能指标,请点击 Overview 页面中的查看详情和历史信息。它根据 Utilization Saturation 和 Errors(USE)方法显示当前的指标和历史事件。
(JIRA:RHELPLAN-59938)
Web 控制台有助于使用 SSH 密钥设置
在以前的版本中,当在登录时选择了 Reuse my password for remote connections,则 web 控制台允许使用您的初始登录密码登录到远程主机。这个选项已被删除,Web 控制台现在会帮助需要自动登录和无密码登录到远程主机的用户设置 SSH 密钥。
查看 web 控制台中的远程系统以了解更多详细信息。
(JIRA:RHELPLAN-59950)
4.17. Red Hat Enterprise Linux 系统角色
添加至日志记录角色配置中的 RELP 安全传输支持
可靠的事件日志记录协议 RELP 是一个安全可靠的协议,用于在 rsyslog
服务器间转发和接收日志信息。在这个版本中,管理员可从 RELP 中受益,它是一个由 rsyslog
用户提供高负载的协议,因为 rsyslog
服务器可以通过 RELP 协议转发和接收日志信息。
现在支持 SSH 客户端 RHEL 系统角色
在以前的版本中,没有厂商支持的自动化工具来为服务器和客户端以一致和稳定的方式配置 RHEL SSH。有了这个增强,您可以使用 RHEL 系统角色以系统化和统一的方式配置 SSH 客户端,独立于操作系统版本。
传统的 RHEL 系统角色格式的替代方案:Ansible Collection
RHEL 8.4 以 Collection 格式引入了 RHEL 系统角色,作为传统 RHEL 系统角色格式的选项。
在这个版本中引进了一个完全限定的集合名称(FQCN),它由一个命名空间和集合名称组成。例如,kernel 角色完全限定名称为: redhat.rhel_system_roles.kernel_settings
- 命名空间和集合名称的组合保证了对象是唯一的。
- 命名空间和集合名称的组合可确保对象在集合和命名空间间共享,而不会有冲突。
使用 RPM 软件包安装集合。确保已在执行 playbook 的主机上安装了 python3-jmespath
:
# yum install rhel-system-roles
RPM 软件包包含旧 Ansible Roles 格式和新的 Ansible Collection 格式的角色。例如,要使用 network 角色,请执行以下步骤:
旧格式:
--- - hosts: all roles: rhel-system-roles.network
集合格式:
--- - hosts: all roles: redhat.rhel_system_roles.network
如果您使用 Automation Hub,并希望安装托管在 Automation Hub 中的系统角色集合,请输入以下命令:
$ ansible-galaxy collection install redhat.rhel_system_roles
然后,您可以使用 Collection 格式的角色,如前面所述。这需要使用 ansible-galaxy 命令配置您的系统以使用 Automation Hub 而不是 Ansible Galaxy。如需了解更多详细信息,请参阅 如何将 ansible-galaxy
客户端配置为使用 Automation Hub 而不是 Ansible Galaxy。
Metrics
角色支持通过 PCP 为 SQL 服务器配置并启用指标集合
metrics
RHEL 系统角色现在提供与 Performance Co-Pilot pcp
连接 SQL Server, mssql
的功能。SQL Server 是来自 Microsoft 的一般目的关系数据库。当它运行时,SQL Server 会更新有关它执行操作的内部统计。这些统计数据可以使用 SQL 查询来访问。但是,非常重要的一点是,系统和数据库管理员需要执行性能分析任务来记录、报告、视觉化这些指标数据。在这个版本中,用户可以使用 metrics RHEL 系统角色自动连接 SQL 服务器 mssql
,使用 Performance Co-Pilot、pcp
为 mssql
指标提供记录、报告和视觉化功能。
Metrics RHEL 系统角色中的 export-metric-data-to-elasticsearch
功能
Elasticsearch 是一个广泛、强大且可扩展的搜索引擎。在这个版本中,通过将 Metrics RHEL 系统角色中的指标值导出到 Elasticsearch,用户可以通过 Elasticsearch 接口(包括通过图形界面和 REST API)访问指标。因此,用户可以使用这些 Elasticsearch 接口来帮助诊断性能问题,并帮助进行其他与性能相关的任务,如容量规划、基准测试等。
支持 SSHD RHEL 系统角色
在以前的版本中,没有厂商支持的自动化工具来为服务器和客户端以一致且稳定的方式配置 SSH RHEL 系统角色。有了这个增强,无论操作系统版本是什么,您可以使用 RHEL 系统角色以系统化和统一的方式配置 sshd
服务器。
现在支持加密策略 RHEL 系统角色
在这个版本中,RHEL 8 引入了系统范围的加密策略管理的新功能。通过使用 RHEL 系统角色,您现在可以在任意数量的 RHEL 8 系统上一致且轻松地配置加密策略。
Logging RHEL 系统角色现在支持 rsyslog
行为
在这个版本中,rsyslog 会接收
来自 Red Hat Virtualization 的信息,并将消息转发到 elasticsearch
。
networking
RHEL 系统角色现在支持 ethtool
设置
有了这个增强,您可以使用 networking
RHEL 系统角色来配置 NetworkManager
连接的 ethtool
coalesce 设置。在使用 中断合并
时,系统会收集网络数据包并为多个数据包生成一个中断。因此,这会增加发送到带有一个硬件中断的内核的数据量,这可以减少中断的负载,并最大程度提高吞吐量。
4.18. 虚拟化
IBM Z 虚拟机现在可以运行多达 248 个 CPU
在以前的版本中,启用了 DIAG318
的 IBM Z(s390x)虚拟机(VM)中使用的 CPU 数量限制为 240。现在,使用 Extended-Length SCCB,IBM Z 虚拟机最多可运行 248 个 CPU。
(JIRA:RHELPLAN-44450)
现在,RHEL KVM 支持 HMAT
在这个版本中,RHEL KVM 支持 ACPI Heterogeneous Memory Attribute Table(HMAT)。ACPI HMAT 通过提供内存属性信息(如内存侧缓存属性,以及与系统物理地址(SPA)内存范围相关的带宽和延迟详情)优化内存。
(JIRA:RHELPLAN-37817)
虚拟机现在可以使用 Intel Atom P5000 处理器的功能
Snowridge
CPU 模型名称现在可用于虚拟机(VM)。在装有 Intel Atom P5000 处理器的主机上,在虚拟机的XML配置中使用 Snowridge
作为 CPU 类型,会向虚拟机公开这些处理器的新功能。
(JIRA:RHELPLAN-37579)
virtio-gpu
设备现在可以在装有 Windows 10 及更高版本的虚拟机上工作良好。
此更新扩展了 virtio-win
驱动程序,为所选的Windows 平台上的 virtio-gpu
设备提供自定义驱动程序。因此,virtio-gpu
设备现在可以提高使用 Windows 10 或更高版本作为其系统的虚拟机的性能。此外,这些设备还将从以后对 virtio-win
的改进中受益。
对第三代 AMD EPYC 处理器的虚拟化支持
在这个版本中,RHEL 8 的虚拟化增加了对第三代 AMD EPYC 处理器(也称为 EPYC Milan)的支持。因此,在 RHEL 8 中托管的虚拟机现在可以使用 EPYC-Milan
CPU 模型,并使用处理器提供的新功能。
(BZ#1790620)
4.19. 云环境中的 RHEL
为 AWS 的金级镜像自动注册
在这个版本中,用户可配置 Amazon Web Services 和 Microsoft Azure 的 RHEL 8.4 及更新版本的金级镜像,以自动注册到 Red Hat Subscription Management(RHSM)和 Red Hat Insights。这使得配置通过 gold 镜像创建的大量虚拟机速度更快且容易。
但是,如果您需要使用 RHSM 提供的存储库,请确保将 /etc/rhsm/rhsm.conf
中的 manage_repos
选项设置为 1
。有关详细信息,请参阅红帽知识库。
现在 IBM Cloud 的 Power Systems Virtual Server 支持 cloud-init
在这个版本中,cloud-init
工具可用于配置托管在 IBM Power Systems 主机上的 RHEL 8 虚拟机,并在 IBM Cloud Virtual Server 服务中运行。
4.20. 支持性
SOS
rebase 到 版本 4.0
sos
软件包已升级到 4.0 版本。这个主版本包括了一些新功能和修改。
主要变更包括:
-
新的
sos
二进制文件替换了之前的 sosreport 二进制文件,来作为该实用程序的主入口点。 -
SOS 报告
现在用来生成 sosreport tar包。sosreport
二进制文件作为重定向点进行维护,现在可以调用sos report
。 /etc/sos.conf
文件已移到/etc/sos/sos.conf
,其布局已更改,如下所示:-
[general]
部分已重命名为[global]
,可用于指定适用于所有sos
命令和子命令的选项。 -
[tunables]
部分已重命名为[plugin_options]
。 -
每个
sos
组件,report
、collect
和clean
都有自己的专用部分。例如,sos report
从global
和report
加载选项。
-
-
SOS 现在
是一个仅适用于 Python3的工具。Python2 不再受支持。
SOS collect
SOS collect
正式将 sos-collector
实用程序加入到主 sos
项目中,用于同时从多个节点收集 sosreport。sos-collector
二进制文件作为重定向点维护,可以调用 sos collect
。单独的 sos-collector
项目将不再独立开发。sos collect
的增强功能包括:
-
SOS collect
现在支持sos
报告所支持的所有发行版 ( 即定义了 策略 的任何发行版)。 -
--insecure-sudo
选项已重命名为--nopasswd-sudo
。 -
用于同时连接多个节点的
--threads
选项已被重命名为--jobs
scs clean
sos clean
正式将 soscleaner
实用程序的功能引入到 sos
主项目中。此子命令对报告执行进一步的数据模糊处理,如清理 IP 地址、域名和用户提供的关键字。
注意:当sos report
或 sos collect
命令使用--clean
选项时, clean
将应用于正在生成的报告。因此,不需要生成报告,只需在之后对其应用清理功能即可。
sos clean
的主要改进包括:
- 支持 IPv4 地址模糊.请注意,这将尝试保留发现的地址之间的拓扑关系。
- 支持主机名和域名混淆.
- 支持用户提供的关键字模糊。
sos report
命令使用的--clean
或--mask
标志会使正在生成的报告模糊。另外,以下命令会模糊已经存在的报告:[user@server1 ~]$ sudo sos (clean|mask) $archive
使用前者会导致单个模糊的报告存档,而后者则会产生两个存档:一个模糊的存档和不模糊的原始文件。
有关本发行版本中所包含的更改的完整信息,请参阅 sos-4.0。
(BZ#1966838)
4.21. 容器
Podman 现在支持为 Docker 编写的卷插件
Podman 现在支持 Docker 卷插件。Podman 可使用这些由供应商和社区成员编写的卷插件或驱动程序来创建和管理容器卷。
podman volume create
命令现在支持使用具有指定名称的卷插件来创建卷。卷插件必须在 container.conf
配置文件的 [engine.volume_plugins]
部分中定义。
例如:
[engine.volume_plugins] testvol = "/run/docker/plugins/testvol.sock"
其中 testvol
是插件的名称,/run/docker/plugins/testvol.sock
是插件套接字的路径。
您可以使用 podman volume create --driver testvol
来通过testvol
插件创建卷。
(BZ#1734854)
ubi-micro
容器镜像现在可用
registry.redhat.io/ubi8/ubi-micro
容器镜像是最小的基础镜像,它使用底层主机上的软件包管理器来安装软件包,通常使用 Buildah,或使用 Podman 的多阶段构建。除软件包管理器及其所有依赖项外,会增加镜像的安全性级别。
(JIRA:RHELPLAN-56664)
支持自动更新的容器镜像
在这个版本中,用户可以使用 podman auto-update
命令来根据其自动更新策略自动更新容器。容器必须使用指定的 "io.containers.autoupdate=image"
标签进行标记,以检查镜像是否已更新。如果存在,Podman 会拉取新镜像并重启执行容器的 systemd 单元。podman auto-update
命令依赖于 systemd,并需要一个完全指定的镜像名称才能创建容器。
(JIRA:RHELPLAN-56661)
Podman 现在支持安全简短名称
现在可以在 [aliases]
表中的 registries.conf
文件中配置镜像的短名称别名。简短名称模式为:
-
Enforcing:如果在镜像拉取过程中找不到匹配的别名,则 Podman 会提示用户选择一个非限定 registry。如果成功拉取了所选镜像,Podman 会在用户的
$HOME/.config/containers/short-name-aliases.conf
文件中自动记录一个新的短名称别名。如果无法提示用户(例如,stdin 或 stdout 而不是 TTY),则 Podman 会失败。请注意,如果两者都指定了相同的别名,则short-name-aliases.conf
文件优先于registries.conf
文件。 - Permissive:与 enforcing 模式类似,但如果无法提示用户,它不会失败。相反,Podman 会按照指定顺序搜索所有非限定 registry。请注意,没有记录别名。
例如:
unqualified-search-registries=[“registry.fedoraproject.org”, “quay.io”] [aliases] "fedora"="registry.fedoraproject.org/fedora"
(JIRA:RHELPLAN-39843)
container-tools:3.0
stable流现已正式发布
container-tools:3.0
stable模块流现已可用,其中包含 Podman、Buildah、Skopeo 和 runc 工具。与之前的版本相比,这个版本提供了程序错误修正和增强。
有关如何从旧流升级的步骤,请参阅切换到更新的流。
(JIRA:RHELPLAN-56782)
第 5 章 对外部内核参数的重要更改
本章为系统管理员提供了与 Red Hat Enterprise Linux 8.4 附带的内核有显著变化的总结。这些更改包括添加或更新的 proc
条目、sysctl
和 sysfs
默认值、引导参数、内核配置选项或者任何可见的行为更改。
5.1. 新内核参数
- bgrt_disable = [ACPI, X86]
- 这个参数禁用引导图形资源表(BGRT)以避免出现 Original Manufacturer(OEM)徽标。
- radix_hcall_invalidate = on [PPC/PSERIES]
- 这个参数禁用 Radix GTSE 功能,并使 Translation Lookaside Buffer(TLB)的 hcall 无效。
- disable_tlbie = [PPC]
- 这个参数禁用 Translation Look-Aside Buffer Invalidate Entry(TLBIE)指令。目前无法使用 KVM、哈希内存管理单元(MMU)或者一致的加速器。
- fw_devlink = [KNL]
这个参数通过扫描固件来推断消费者关系和企业关系,在消费者和企业设备之间创建设备链接。当将驱动程序作为模块加载时,这个功能很有用,因为它确保了类似如下的任务的正确排序:
- 设备探测(首先为供应者,然后是消费者)
- 供应者引导状态清理(仅在所有消费者都探测到后)
挂起、恢复和运行时电源管理(PM)(首先为消费者,然后为供应者)
格式:{ off | permissive | on | rpm }
-
off
- 不从固件信息创建设备链接。 -
permissive
- 从固件信息创建设备链接,但仅将其用于排序引导状态清理(sync_state()
调用)。 -
on
- 从固件信息创建设备链接,并使用它来强制探测并挂起或恢复排序。 -
rpm
- 类似于on
,但也用于排序运行时 PM。
默认值为 permissive
。您可以检查 /proc/cmdline
文件中配置的值。
- init_on_alloc = [MM]
这个参数使用零填充新分配的页面和堆对象。
格式: 0 | 1
默认由 kernel
CONFIG_INIT_ON_ALLOC_DEFAULT_ON
配置设置- init_on_free = [MM]
该参数使用零填充空页面和堆对象。
格式: 0 | 1
默认由
CONFIG_INIT_ON_FREE_DEFAULT_ON
设置- nofsgsbase [X86]
- 这个参数禁用 FSGSBASE 指令。
- nosgx [X86-64,SGX]
- 这个参数禁用 Intel Software Guard Extensions(SGX)内核支持。
- rcutree.rcu_min_cached_objs = [KNL]
-
每个 CPU 缓存和维护的最小对象数量。对象大小等于
PAGE_SIZE
。缓存可以降低页面分配器的压力。它还可使整个算法在内存不足的情况下更好地工作。 - rcuperf.kfree_rcu_test = [KNL]
-
此参数用于测量
kfree_rcu()
函数的洪灾性能。 - rcuperf.kfree_nthreads = [KNL]
-
运行
kfree_rcu()
循环的线程数量。 - rcuperf.kfree_alloc_num = [KNL]
- 迭代中分配和释放的数量。
- rcuperf.kfree_loops = [KNL]
-
进行
rcuperf.kfree_alloc_num
个分配和释放的循环的数量。 - rcupdate.rcu_cpu_stall_ftrace_dump = [KNL]
-
这个参数在报告 Read-copy-update(RCU)CPU 停止警告后,转储
ftrace
缓存。 - nopvspin = [X86,KVM]
-
这个参数使用 Para-virtualization(PV)优化禁用
qspinlock
慢路径。这可以使虚拟机监控程序在锁定竞争时"闲置"客户端。
5.2. 新的 /proc/sys/user 参数
- max_time_namespaces
- 当前用户命名空间中的任何用户可以创建命名空间的最大次数。
5.3. 新的 /proc/sys/vm 参数
- compaction_proactiveness
此参数决定了内核在后台应该压缩内存的力度。参数取 [0, 100] 范围内的值,默认值为 0。默认禁用此参数的动机是避免kthread破坏当前建立的和预期的系统行为,kthread将每500毫秒唤醒一次以移动内存。
请注意,压缩会在系统范围内有较大的影响,因为属于不同进程的页在不同位置间移动。这也可能会导致在意料外的应用程序中出现大量延迟的问题。内核使用各种 heuristics 来避免在出现主动压缩效果时出现 CPU 循环的问题。
当将此参数设置为极端值时(如 100)请小心。这可能导致过度的后台压缩活动。
- watermark_boost_factor
这个参数控制内存碎片时重新声明的级别。它定义了一个区高水位线的百分比,如果在页块中混合使用不同连接的页面,则该百分比将重新声明。这样做的目的是,压缩在以后会做较少的工作,并增加将来高顺序分配(如 SLUB 分配、THP 和 hugetlbfs 页面)成功的速度。
对于
watermark_scale_factor
参数,单位是10,000的几分之一。在!DISCONTIGMEM
配置的默认值为15,000 意味着,如果一个页面块由于碎片而被混合,则最多可回收高达 150% 的高水位线。重新声明的程度由最近发生的碎片事件数量决定。如果这个值小于 pageblock,则会重新声明任意页块(例如,64 位 x86 中为 2MB)。提升因数 0 将禁用这个功能。
第 6 章 设备驱动程序
6.1. 新驱动程序
网络驱动程序
- Realtek 802.11ac wireless 8822b driver (rtw88_8822b.ko.xz)
- Realtek 802.11ac wireless 8822be driver (rtw88_8822be.ko.xz)
- Realtek 802.11ac wireless 8822c driver (rtw88_8822c.ko.xz)
- Realtek 802.11ac wireless 8822ce driver (rtw88_8822ce.ko.xz)
- Realtek 802.11ac wireless core module (rtw88_core.ko.xz)
- Realtek 802.11ac wireless PCI driver (rtw88_pci.ko.xz)
- Interface driver for UDP encapsulated traffic (bareudp.ko.xz)
图形驱动程序和各种驱动程序
- Regmap SoundWire Module (regmap-sdw.ko.xz)
- Intel® QuickAssist Technology (qat_4xxx.ko.xz)
- Intel® Data Accelerator Driver (idxd.ko.xz)
- Oracle VM VirtualBox Graphics Card (vboxvideo.ko.xz)
- HID driver for gaming keys on Logitech gaming keyboards (hid-lg-g15.ko.xz)
- Driver for AMD Energy reporting from RAPL MSR via HWMON interface (amd_energy.ko.xz)
- Elastic Fabric Adapter (EFA) (efa.ko.xz)
- AMD® PCI-E Non-Transparent Bridge Driver (ntb_hw_amd.ko.xz)
- PCIe NTB Performance Measurement Tool (ntb_perf.ko.xz)
- PCIe NTB Simple Pingpong Client (ntb_pingpong.ko.xz)
- PCIe NTB Debugging Tool (ntb_tool.ko.xz)
- Software Queue-Pair Transport over NTB (ntb_transport.ko.xz)
- Intel Elkhart Lake PCH pinctrl/GPIO driver (pinctrl-elkhartlake.ko.xz)
- Dell platform setting control interface (dell-wmi-sysman.ko.xz)
- DesignWare PWM Controller (pwm-dwc.ko.xz)
- SoundWire bus (soundwire-bus.ko.xz)
- Cadence Soundwire Library (soundwire-cadence.ko.xz)
- SoundWire Generic Bandwidth Allocation (soundwire-generic-allocation.ko.xz)
- Intel Soundwire Init Library (soundwire-intel.ko.xz)
- Fast-charge control for Apple "MFi" devices (apple-mfi-fastcharge.ko.xz)
- TI HD3SS3220 DRP Port Controller Driver (hd3ss3220.ko.xz)
- STMicroelectronics STUSB160x Type-C controller driver (stusb160x.ko.xz)
- Nitro Enclaves Driver (nitro_enclaves.ko.xz)
6.2. 更新的驱动程序
图形和各种驱动程序更新
- Standalone drm driver for the VMware SVGA device (vmwgfx.ko.xz) 已被更新到版本 2.18.0.0。
- Cisco FCoE HBA Driver (fnic.ko.xz) 已被更新到版本 1.6.0.53。
- Driver for HP Smart Array Controller 版本 3.4.20-200-RH1 (hpsa.ko.xz) 已被更新到版本 3.4.20-200-RH1。
- Emulex LightPulse Fibre Channel SCSI driver 12.8.0.5 (lpfc.ko.xz) 已被更新到版本 0:12.8.0.5。
- LSI MPT Fusion SAS 3.0 Device Driver (mpt3sas.ko.xz) 已被更新到版本 35.101.00.00。
- QLogic Fibre Channel HBA Driver (qla2xxx.ko.xz) 已被更新到版本 10.02.00.104-k。
- SCSI debug adapter driver (scsi_debug.ko.xz) 已被更新到版本 0190。
- Driver for Microsemi Smart Family Controller 版本 1.2.16-012 (smartpqi.ko.xz) 已被更新到版本 1.2.16-012。
- hpe watchdog driver (hpwdt.ko.xz) 已被更新到版本 2.0.4.
第 7 章 程序错误修复
这部分论述了 Red Hat Enterprise Linux 8.4 中修复的、对用户有严重影响的错误。
7.1. 安装程序和镜像创建
Anaconda 现在在文本模式中显示 ldl
或未格式化的 DASD 磁盘对话框
在以前的版本中,在安装过程中,Anaconda 无法显示 Linux 磁盘布局(ldl
)或未格式化的 Direct-Access Storage Device(DASD)磁盘的对话框。因此,用户无法将这些磁盘用于安装。
在这个版本中,在文本模式中,Anaconda 会识别ldl
和未格式化的 DASD 磁盘,并显示一个对话框,用户可以在其中正确格式化它们以备将来安装使用。
当使用安装程序引导选项配置 InfiniBand 网络接口时,RHEL 安装程序无法启动
在以前的版本中,当使用安装程序引导选项(例如:使用 PXE 服务器下载的安装程序镜像)在 RHEL 安装的早期配置 InfiniBand 网络接口时,安装程序无法激活网络接口。
这是因为 RHEL NetworkManager 无法识别 InfiniBand 模式中的网络接口,而是为接口配置了以太网连接。
因此,连接激活会失败,且在早期需要 InfiniBand 界面的连接,RHEL 安装程序无法启动安装。
在这个版本中,安装程序可以使用安装程序引导选项成功激活在 RHEL 安装的早期配置的 InfiniBand 网络接口,安装可以成功完成。
(BZ#1890009)
自动分区可以在 Anaconda 中调度
在以前的版本中,在 LVM 类型磁盘中自动分区过程中,安装程序会尝试在每个所选磁盘上为 LVM PV 创建分区。如果这些磁盘已经有分区布局,则自动分区的调度可能会失败,并显示错误信息。
在这个版本中,这个问题已被解决。现在您可以在安装程序中调度自动分区。
(BZ#1642391)
使用 Anaconda GUI 配置无线网络已被修复
在以前的版本中,在使用 Anaconda 图形用户界面(GUI)配置无线网络时会导致安装崩溃。
在这个版本中,这个问题已被解决。您可以在安装过程中使用 Anaconda GUI 配置无线网络。
(BZ#1847681)
7.2. 软件管理
现在%autopatch
rpm 宏支持新的 -m
和-M
参数
在这个版本中,-m
(min)和-M
(max))参数被添加到 %autopatch
宏 ,以便仅应用具有给定参数的一系列补丁。
popt
rebase 到版本 1.18
popt
软件包已升级到上游版本 1.18,它与之前的版本相比提供了以下显著变化:
- 整个代码库清理和观察。
-
解决了在
alias exec
命令中无法删除权限的问题。 - 修复了各种程序错误,包括资源泄漏。
7.3. Shell 和命令行工具
snmpbulkget
现在为不存在的 PID 提供有效的输出
在以前的版本中,snmpbulkget
命令不会为不存在的 PID 提供有效的输出。因此,这个命令会失败,并输出 no results found。
在这个版本中,snmpbulkget
为不存在的 PID 提供了有效的输出。
CRON
命令现在根据触发器条件发送电子邮件。
在以前的版本中,当正确配置了 Relax-and-Recover(ReaR
)工具时,CRON
命令会触发一条错误消息,并通过电子邮件发送给管理员。因此,即使没有为ReaR
执行配置,管理员也会收到电子邮件。
在这个版本中,对CRON
命令进行了修改,并根据触发器条件发送电子邮件。
使用 NetBackup 版本 8.2 作为 ReaR
中的备份机制现在可以正常工作。
在以前的版本中,当使用 NetBackup 作为备份方法时,Relax-and-Recover(ReaR
)工具不会在救援系统中启动 vxpbx_exchanged
服务。因此,使用 NetBackup 8.2 从救援系统中的备份中恢复数据会失败,并在 NetBackup 服务器中记录以下出错信息:
error bpbrm(pid=…) cannot execute cmd on client
Info tar(pid=…)done. status: 25: cannot connect on socket
Error bpbrm(pid=…)client restore EXIT STATUS 25: cannot connect on socket
在这个版本中,ReaR
将vxpbx_exchanged
服务和相关所需的文件添加到救援系统中,并在救援系统启动时启动该服务。
(BZ#1898080)
libvpd
rebase 到版本 2.2.8。
主要变更包括:
-
通过使
sqlite
操作异步执行 ,提高了vpdupdate
的性能。
(BZ#1844429)
ReaR
工具现在使用 LUKS2
加密分区恢复系统
在以前的版本中,当系统中至少有一个 LUKS2
加密分区使用 Relax-and-Recover( Rear
)工具进行备份时,用户不会被告知 ReaR 不支持 LUKS2
加密分区。因此,ReaR
工具无法在恢复阶段重新创建系统的原始状态。
在这个版本中,在ReaR
工具中添加了对基本 LUKS2
配置、错误检查以及改进的输出的支持。ReaR
工具现在使用基本的LUKS2
加密分区来恢复系统,或者在相反情况下通知用户。
Texlive 现在可以
和 Poppler
一起正常工作
在以前的版本中,Poppler
工具进行了对 API 更改的更新。因此,由于这些 API 更改了, Texlive
构建无法正常工作。在这个版本中,Texlive
构建可以使用新的 Poppler
工具正常工作。
7.4. 基础架构服务
RPZ 现在可以与通配符字符一同工作
在以前的版本中,当存在相同后缀的记录时,lib/dns/rpz.c
文件中的 dns_rpz_find_name
函数不会考虑通配符字符。因此,一些包含通配符字符的记录会被忽略。在这个版本中,dns_rpz_find_name
函数已被修复,它现在会认可通配符字符。
7.5. 安全性
改进了pkcs11
的padding
在以前的版本中,pkcs11
令牌标签会对一些智能卡有额外的 padding。因此,错误的 padding 可能会导致基于 label 属性的匹配卡的问题。在这个版本中,所有卡的 padding 已被修复,并定义了 PKCS #11 URI,并在应用程序中匹配它们应如预期工作。
修复了 sealert
连接问题处理
在以前的版本中,setroubleshoot
守护进程的崩溃可能会导致 sealert
进程停止响应。因此,GUI 没有显示任何分析,也变得无响应,命令行工具不会打印任何输出结果,并在被终止前保持运行。这个版本改进了 sealert
和 setroubleshootd
之间的连接问题的处理。现在 sealert
报告错误消息,并在 setroubleshoot
守护进程崩溃时退出。
通过 setroubleshoot
优化审计记录分析
在以前的版本中,setroubleshoot-3.3.23-1
中引入的新功能对性能有负面影响,这导致 AVC 分析比以前要最多慢 8 倍。这个版本提供了优化功能,可显著缩短 AVC 分析时间。
(BZ#1794807)
修复了 SELinux 策略接口解析程序
在以前的版本中,在安装一个在其接口文件中包含 ifndef
块的自定义策略时,策略接口解析器会导致出现语法错误消息。这个版本改进了接口文件解析,从而解决了这个问题。
setfiles
不会在标记错误时停止
在以前的版本中,当重新标记文件失败时,setfiles
工具会停止。因此,错误标记的文件保留在目标目录中。在这个版本中,setfiles
会跳过它无法重新标记的文件,因此 setfile
会处理目标目录中的所有文件。
现在,重建 SELinux 策略存储可以更好地解决电源失败
在以前的版本中,SELinux 策略重建会因为写缓存造成在电源出现问题时导致问题。因此,在策略重建过程中,SELinux 策略存储可能会在电源失败后崩溃。在这个版本中,libsemanage
库将所有待处理的修改写入元数据,并在使用前将缓存的文件数据写入包含策略存储的文件系统中。因此,策略存储现在可以在电源失败和其他中断的情况下,更好地修复。
libselinux
现在可以正确地决定 SELinux 用户的默认上下文
在以前的版本中,由于使用了已弃用的 security_compute_user()
函数,libselinux
库无法决定某些系统中 SELinux 用户的默认上下文。因此,在具有复杂的安全策略的系统中有些系统服务不可用。在这个版本中,libselinux
不再使用 security_compute_user()
,无论策略复杂性如何,都无法正确决定 SELinux 用户的默认上下文。
(BZ#1879368)
rsync
模式中的 GEO-replication 不会再因为SELinux而 失败
在以前的版本中,SELinux 策略不允许运行在 rsync_t
下的进程设置 security.trusted
扩展属性的值。因此,Red Hat Gluster Storage(RHGS)中的 geo-replication 复制会失败。在这个版本中,新的SELinuxrsync_sys_admin
布尔值允许rsync_t
进程设置security.trusted
。因此,如果启用了 rsync_sys_admin
布尔值,rsync
可以设置 security.trusted
扩展属性,geo-replication不会再失败。
OpenSCAP 现在可以在没有内存不足的情况下扫描含有大量文件的系统
在以前的版本中,当扫描内存较低和大量文件的系统时,OpenSCAP 扫描程序有时会导致系统内存不足。在这个版本中,OpenSCAP 扫描程序内存管理有所改进。因此,扫描程序在扫描大量文件时,在 RAM 较低的系统上不再耗尽内存,例如,软件包组 Server with GUI
和 Workstation
。
在引导时,使用 FAT 修复的系统不再失败
在以前的版本中,SCAP 安全指南(SSG)中的互联网安全中心(CIS)配置集包含一个规则,它禁用了负责访问 FAT 文件系统的内核模块的加载。因此,如果 SSG 修复了这个规则,系统将无法访问使用 FAT12、FAT16 和 FAT32 文件系统格式的分区,包括 EFI 系统分区(ESP)。这会导致系统无法引导。在这个版本中,该规则已从配置集中删除。因此,使用这些文件系统的系统不再无法引导。
OVAL 检查会将 GPFS 视为远程
在以前的版本中,OpenSCAP 扫描程序没有将挂载的 General Parallel File Systems(GPFS)识别为远程文件系统(FS)。因此,OpenSCAP 会在只应用于本地系统的 OVAL 检查中扫描 GPFS。这有时会导致扫描程序耗尽资源,且无法完成扫描。在这个版本中,GPFS 包含在远程 FS 列表中。因此,OVAL 检查可以正确地将 GPFS 视为远程 FS,扫描速度更快。
fapolicyd-selinux
SELinux 策略现在涵盖了所有文件类型
在以前的版本中,fapolicyd-selinux
SELinux 策略没有涵盖所有文件类型。因此,fapolicyd
服务无法访问位于非监控位置的文件,如 sysfs
。在这个版本中,fapolicyd
服务涵盖并分析所有文件系统类型。
fapolicyd
不再阻止 RHEL 更新
当更新替换了正在运行的应用程序的二进制文件时,内核会通过附加 (删除)
后缀来修改内存中的应用程序二进制路径。在以前的版本中,fapolicyd
文件访问策略守护进程将此类应用程序视为不被信任。因此,fapolicyd
会阻止这些应用程序打开和执行任何其他文件。在这个版本中,fapolicyd
会忽略二进制路径中的后缀,以便二进制文件可以与信任的数据库匹配。因此,fapolicyd
会正确强制执行规则,更新过程也可以完成。
usbguard rebase 到 1.0.0-1
usbguard
软件包已更新到上游版本 1.0.0-1。这个版本提供改进和程序错误修复,重要的是:
- 稳定的公共 API 可确保向后兼容。
-
rules.d
目录中的规则文件现在以字母数字顺序加载。 - 修复了单个规则无法更改多个设备的策略的某些用例。
- 根据标签过滤规则不再会产生错误。
usbguard 现在可以发送审计信息
作为服务强化的一部分,usbguard.service 的功能
是有限的,同时缺少 CAP_AUDIT_WRITE
这个 功能。因此,作为系统服务运行的 usbguard
无法发送审计事件。在这个版本中,服务配置已被更新,因此 USBGuard 可以发送审计信息。
Tangd
现在可以正确地处理无效请求
在以前的版本中,tangd
守护进程会对一些无效请求返回一个错误退出代码。因此, tangd.socket@.service
会失败,如果此类失败单元的数量增加,可能会造成问题。在这个版本中,tangd
仅在tangd
服务器本身遇到问题时,才会退出并产生错误代码。因此,tangd
可以正确处理无效的请求。
7.6. 网络
使用涉及 ipset
查询的规则在将 iptables
规则集从 RHEL 7 迁移到 RHEL 8 时不会再失败
在以前的版本中,只有在所有附加约束都匹配时才会更新 ipset
计数器,同时从 iptables
规则集中引用启用了计数器的 ipset
命令。因此,涉及 ipset
查询的规则(例如 -m set --match-set xxx src --bytes-gt 100
)永远不会有匹配的机会,因为ipset
成员的计数器不会添加。在这个版本中,迁移包含涉及到 ipset
查询规则的 iptables
规则集可以正常工作。
(BZ#1806882)
iptraf-ng
不再公开原始内存内容
在以前的版本中,当在 iptraf-ng
的过滤器中设置 %p
时,应用程序会在状态栏中显示原始内存内容。因此,显示了非基础信息。在这个版本中,iptraf-ng
进程不会在底部的状态栏中显示任何原始内存内容。
(BZ#1842690)
现在,在 Anaconda ip
引导选项中使用DHCP 时,可以使用网络访问
初始 RAM 磁盘(initrd
)使用 NetworkManager 管理网络。在以前的版本中,RHEL 8.3 ISO 文件提供的 dracut
NetworkManager 模块错误地假定 Anaconda 引导选项中 ip
选项的第一个字段总是被设置了。因此,如果您使用 DHCP 并设置了 ip=::::<host_name>::dhcp
,NetworkManager 无法检索 IP 地址,且网络在 Anaconda 中不可用。这个问题已被解决。因此,当使用 RHEL 8.4 ISO 在上述场景中安装主机时,Anaconda ip
引导选项可以正常工作。
(BZ#1900260)
在使用nfp
驱动程序的 Netronome 网卡中卸载 XDP 程序不再失败
在以前的版本中,Netronome 网卡的nfp
驱动程序存在一个程序错误。因此,如果您使用这样的卡,并使用带有 XDP_FLA GS_REPLACE
标志的 IFLA_XDP_EXPECTED_FD
功能来载入 XDP 程序,那么卸载 eXpress Data Path(XDP)程序会失败。例如,这会影响到使用 libxdp
库载入的 XDP 程序。这个程序错误已被解决。因此,从 Netronome 网卡卸载 XDP 程序可以正常工作。
NetworkManager 现在尝试使用 DHCP 检索主机名,并在所有接口中反向 DNS 查找
在以前的版本中,如果 /etc/hostname
文件中没有设置主机名,NetworkManager 只能通过具有最低指标值的默认路由的接口,尝试使用DHCP或反向DNS查询来获取主机名。因此,在没有默认路由的情况下,无法在网络中自动分配主机名。在这个版本中,NetworkManager 会首先尝试使用默认路由接口检索主机名。如果这个过程失败,NetworkManager 会尝试其他可用接口。因此,如果主机名未在 /etc/hostname
中设置,NetworkManager 会尝试使用 DHCP,并对所有接口进行反向 DNS 查询来检索主机名。
把配置网络管理器(NetworkManager)配置为使用旧的行为:
创建包含以下内容 的
/etc/NetworkManager/conf.d/10-hostname.conf
文件:[connection-hostname-only-from-default] hostname.only-from-default=1
重新载入
NetworkManager
服务:# systemctl reload NetworkManager
7.7. 内核
内核不再在 IBM Z 系统中返回假的警告
在以前的版本中,装有RHEL 8 的 IBM Z 系统的 ZONE_DMA
内存区缺少允许用户访问的条目。因此,内核返回假的警告,例如:
... Bad or missing usercopy whitelist? Kernel memory exposure attempt detected from SLUB object 'dma-kmalloc-192' (offset 0, size 144)! WARNING: CPU: 0 PID: 8519 at mm/usercopy.c:83 usercopy_warn+0xac/0xd8 ...
当通过 sysfs
接口访问某些系统信息时会出现警告信息。例如,运行 debuginfo.sh
脚本。
在这个版本中,在 Direct Memory Access(DMA)缓冲中添加了一个标志,以便用户空间应用程序能够访问缓冲区。
因此,在以上场景中不会显示任何警告信息。
(BZ#1660290)
RHEL 系统从 tboot
GRUB 条目中如预期引导
在以前的版本中,版本 1.9.12-2 的 tboot
工具会导致一些带有 Trusted Platform 模块(TPM) 2.0 的 RHEL 系统无法在旧模式下引导。因此,当系统试图从 tboot
Grand Unified Bootloader(GRUB)条目引导时停止。随着新版本的 RHEL 8 和 tboot
工具的更新,这个问题已被解决,RHEL 系统可以如预期引导。
(BZ#1947839)
内核在高工作负载容器场景中成功重新声明内存
当为容器中的 I/O 和内存限制卷时,负责重新声明内存的内核代码会因为数据竞争条件而出现软锁定。如果出现以下情况,会出现数据竞争现象:
- 至少两组 CPU 线程尝试同时修改同一组数据。
- 至少一个 CPU 线程试图在 dataset 上进行写入操作。
根据修改 dataset 的每个线程准确时间,结果可以是 A、B 或 AB(确定)。
当容器面临内存压力时,这种情况可能会导致多次内存(OOM)终止,从而导致容器锁定并变得不响应。在这个发行版本中,用于锁定和优化的 RHEL 内核代码已更新。因此,内核不再会变为没有响应,数据也不会受到竞争条件的影响。
(BZ#1860031)
离线内存的 RHEL 8 不再会导致内核 panics
在以前的版本中,当使用启动但标记为离线的内存运行 RHEL 8 时,内核在某些情况下会尝试访问未初始化的内存页面。因此,会出现内核 panic。这个版本修复了闲置页面跟踪的内核机制,它可以防止问题的发生。
(BZ#1867490)
NUMA 系统不再遇到意外内存布局
在以前的版本中,因为缺少 CONFIG_NODES_SPAN_OTHER_NODES
选项,ARM64
和 S390
架构在 NUMA 系统上会遇到意外的内存布局。因此,来自不同 NUMA 节点的内存区域被交集,来自低 NUMA 节点的内存区域被添加到高 NUMA 节点中。
在这个版本中,NUMA 系统不再遇到内存布局问题。
(BZ#1844157)
rngd 服务不再忙于等待poll()系统调用
从版本 4.18.0-193.10 开始,内核添加了 FIPS 模式的新内核熵源。因此,rngd
服务忙于等待 /dev/random
设备的 poll()
系统调用。这会导致当系统处于 FIPS 模式时,消耗 100% 的 CPU 时间。在这个版本中,在 FIPS 模式中,/dev/random 设备的
poll()
处理程序已从默认处理程序改为专门为 /dev/random
设备开发的处理程序。因此,在上述场景中,rngd
服务不再忙于等待 poll(
)。
(BZ#1884857)
启用了对 SCHED_DEADLINE 调度程序的 HRTICK 支持
在以前的版本中,高分辨率系统计时器(HRTICK
)的功能不适用于使用 SCHED_DEADLINE
策略配置的某些任务。因此,使用 SCHED_DEADLINE
调度程序的这些任务的节流机制,消耗了为这些任务配置的所有运行时。这个行为会在实时环境中造成意外的延迟激增。
在这个版本中,启用了 HRTICK
功能,该功能提供了高分辨率优先权。HRTICK
使用高分辨率计时器,它会在任务完成运行时时强制使用节流机制。因此,这个问题不再在上述场景中发生。
(BZ#1885850)
tpm2-abrmd rebase 到 2.3.3.2 版本
tpm2-abrmd
软件包已升级到 2.3.3.2 版本,其提供了多个程序错误修复。主要变更包括:
- 修复了临时处理的使用
- 修复了 TPM 命令传输接口(TCTI)中的部分读取
- 重构了访问代理(access broker)
cxgb4
驱动程序不再导致 kdump
内核崩溃
在以前的版本中,在 vmcore
文件中保存信息时 kdump
内核会崩溃。因此,cxgb4
驱动程序阻止 kdump
内核保存内核以便稍后进行分析。要临时解决这个问题,在 kdump
内核命令行中添加 novmcoredd
参数以允许保存核心文件。
随着 RHSA-2020:1769 公告的发布,k dump
内核可以正确处理这种情况,不再崩溃。
7.8. 文件系统和存储
访问 SMB 目标不再会出现显示EREMOTE
错误的失败
在以前的版本中,使用 cifsacl
挂载选项在 RHEL SMB 客户端挂载 DFS 命名空间会无法访问,列表会失败并显示EREMOTE
错误。在这个版本中修复了负责 EREMOTE
的内核,从而使SMB 共享可以被访问。
(BZ#1871246)
改进了NFS readdir
功能的性能
在以前的版本中,列出目录的 NFS 客户端中的进程可能需要很长时间才能完成,且可能永远不会完成。在这个版本中,在以下情况下改进了 NFS 客户端目录列出性能:
- 列出带有 100,000 或更多文件 的的大目录列表。
- 列出正在修改的目录列表。
(BZ#1893882)
7.9. 高可用性和集群
corosync.conf
文件中的默认令牌超时的值从 1 秒增加到 3 秒
在以前的版本中,corosync.conf
文件中的 TOTEM 令牌超时的值被设置为 1 秒。这个较短的超时时间使集群可以快速响应,但如果网络延迟,可能会导致提早出现故障转移。现在,默认值设定为 3 秒,可在快速响应与更广泛的响应之间提供更好的利弊。有关修改令牌超时值的详情,请参阅如何更改 RHEL 5、6、7 或 8 High Availability 集群中的 totem 令牌超时值?
7.10. 动态编程语言、网页和数据库服务器
现在,在安装了 perl-Time-HiRes
后可以进行原位升级
在以前的版本中,在 RHEL 8 中发布的 perl-Time-HiRes
软件包缺少了一个包括在 RHEL 7 软件包中的 epoch 号。因此,在安装了 perl-Time-HiRes
后,无法从 RHEL 7 原位升级到 RHEL 8。添加了缺少的 epoch 号,在安装了 perl-Time-HiRes
后,原位升级不再会失败。
7.11. 编译器和开发工具
glibc
DNS 存根解析器可以正确地处理具有相同事务 ID 的并行查询
在以前的版本中,GNU C 库 glibc
中的 DNS 存根解析器无法对具有相同事务 ID 的并行查询进行正确的响应。因此,当事务 ID 相等时,第二个并行响应不会与查询匹配,从而导致超时和重试。
在这个版本中,第二个并行响应被识别为有效。因此,glibc
DNS 存根解析器可避免因为未识别的响应而造成的大量超时。
使用 fgetsgent()
和 fgetsgent_r()
读取配置文件现在更加灵活
/etc/gshadow
文件中特定的结构化条目,或者读取时文件大小的变化,有时会导致 fgetsgent()
和 fgetsgent_r()
函数返回无效的指针。因此,使用这些功能来读取 /etc/gshadow
或 /etc/
中的其他配置文件的应用会失败,并显示segmentation错误。这个版本修改 fgetsgent()
和 fgetsgent_r()
,以便更加灵活地读取配置文件。因此,应用程序现在可以成功读取配置文件。
glibc
字符串功能现在避免了对 AMD64 和 Intel 64 处理器上的系统缓存造成的负面影响
在以前的版本中,字符串功能的glibc
实现错误地估算了 64 位 AMD 和 Intel 处理器中线程可用的上级缓存量。因此,对大型缓冲区调用 memcpy
函数会对系统的整体缓存性能造成负面影响,或者降低 memcpy
系统调用的速度。
在这个版本中,上层缓存大小不再通过系统中报告的硬件线程数量扩展。现在,字符串现在可以绕过大型缓冲区的缓存,从而避免对系统的其余缓存造成负面影响。
glibc
动态加载程序现在可以避免 libc.so.6
的某些故障
在以前的版本中,当 libc.so.6
共享对象作为主程序运行时(例如,显示 glibc
版本信息),glibc
动态加载程序没有针对使用LD_PRELOAD
环境变量加载的对象正确地重新定位libc.so.6
。因此,当设置了 LD_PRELOAD
时,调用 libc.so.6
有时会导致 libc.so.6
意外终止,并出现segmentation错误。在这个版本中解决了这个程序错误,动态装载程序现在可以正确地处理 libc.so.6的重定位
。因此,上面描述的问题不再发生。
(BZ#1882466)
glibc
动态链接器现在将静态线程本地存储空间的一部分限制为静态 TLS 分配
在以前的版本中,glibc
动态连接器根据先到先服务的原则,为动态TLS使用了所有可用的静态线程本地存储(TLS)空间。因此,在运行时使用 dlopen
函数加载额外的共享对象有时会失败,因为动态 TLS 分配已经消耗了所有可用的静态 TLS 空间。这个问题特别是 64 位 ARM 架构和 IBM Power Systems 发生。
现在,动态链路器将静态 TLS 区域的部分限制为静态 TLS 分配,且不将此空间用于动态 TLS 优化。因此,在使用默认设置的情况下,dlopen
调用可以成功。需要分配的静态 TLS 比默认设置要多的应用程序可以使用新的可调整的glibc.rtld.optional_static_tls
。
glibc
动态链接程序现在禁用对64位ARM变体调用约定的lazy绑定。
在以前的版本中,glibc
动态链接程序没有对使用 64 位 ARM(AArch64)变体调用约定的功能禁用 lazy 绑定。因此,动态链路器在这样的功能调用中破坏了参数,从而导致错误的结果或进程失败。在这个版本中,动态链路器在描述的场景中禁用 lazy 绑定,函数参数会被正确传递。
GCC
rebase 到版本 8.4
GNU Compiler Collection(GCC)已更新至上游版本 8.4,它修复了几个程序错误。
7.12. Identity Management
Samba wide links
功能已转换为 VFS 模块
在以前的版本中,wide links
参数是 smbd
服务的核心功能的一部分。启用此功能是不安全的,因此已移至一个名为 widelinks
的单独的虚拟文件系统(VFS)模块中。为了向后兼容,RHEL 8.4 中的 Samba 会自动为在配置中设置了 wide links = yes
的共享载入此模块。
重要: 红帽建议不要使用不安全的 wide links
功能。反之,使用 bind mount
将文件层次结构的一部分挂载到您在 Samba 中共享的目录。有关配置bind mount的详情,请查看mount(8)
手册页中的Bind mount operation
部分。
从使用 wide links
的配置切换到bind mount
:
-
对于每个链接到共享外的符号链接,使用
bind mount
替换此链接。详情请查看mount(8)
手册页中的Bind mount operation
部分。 -
从
/etc/samba/smb.conf
文件中删除所有wide links = yes
的条目。 重新载入 Samba:
# smbcontrol all reload-config
网络连接闲置超时不再报告资源错误
在以前的版本中,Directory Server 会报告一个误导错误,当闲置网络连接超时时资源临时不可用。在这个版本中,网络连接闲置超时的错误宏已从 EAGAIN
改为 ETIMEDOUT
,并将一个准确描述超时的错误消息写入到目录服务器访问日志中。
连接到 PKI CA 的 PKI ACME Responder 发布的证书不再会出现 OCSP 验证失败
在以前的版本中,PKI CA 提供的默认 ACME 证书配置集包含一个 OCSP URL 示例,它不指向实际 OCSP 服务。因此,如果将 PKI ACME Responder 配置为使用 PKI CA 签发者,则响应者发布的证书可能会出现 OCSP 验证失败。在这个版本中,删除了 ACME 证书配置集中的硬编码 URL,并添加升级脚本来修复配置集配置文件,如果未自定义该文件。
7.13. 图形基础结构
显示后端现在可在 Intel 最近笔记本电脑上正常工作
某些带有 Intel CPU 的笔记本电脑需要一个专有接口来控制显示后台。在以前的版本中,RHEL 不支持专有接口,并尝试使用 VESA 接口,这在笔记本电脑中不可靠。因此,RHEL 无法控制这些笔记本电脑显示后备状态。
在这个版本中,RHEL 添加了对专有后向接口的支持,因此显示控制现在可以正常工作。
(BZ#1885406)
7.14. Red Hat Enterprise Linux 系统角色
tests_luks.yml
不再导致 NVME 磁盘分区失败
在以前的版本中,NVME 磁盘使用的分区命名约定与virtio/scsi
所使用的不同,存储角色并没有反映这一点。因此,使用 NVME 磁盘运行存储角色会导致崩溃。在这个版本中,Storage RHEL 系统角色会从 blivet
模块获取分区名称。
selinux
RHEL 系统角色不再使用名为 present
的变量
在以前的版本中,selinux
RHEL 系统角色中的一些任务被错误地使用名为 present
的变量,而不是使用字符串 present
。因此,selinux
RHEL 系统角色返回一个错误信息,告知没有名为 present
的变量。在这个版本中解决了这个问题,将这些任务改为使用字符串 present
。因此,selinux
RHEL 系统角色可以正常工作,没有错误消息。
当缺少 rsyslog-gnutls
软件包时,Logging
不再会失败
当 logging
RHEL 系统角色被配置为提供安全的远程输入和安全转发输出时,需要一个全局的 tls
rsyslog-gnutls
软件包。在以前的版本中,tls
rsyslog-gnutls
软件包被修改为在以前的版本中无条件地安装。因此,当受管节点上没有 tls
rsyslog-gnutls
软件包时,logging
角色配置会失败,即使安全的远程输入和安全转发输出没有作为配置的一部分包括在内。在这个版本中,通过检查是否配置了安全连接并检查全局 tls
logging_pki_files
变量解决了这个问题。只有在配置了安全连接时才会安装 rsyslog-gnutls
软件包。因此,将红帽企业虚拟化 Hypervisor 配置为作为 logging输出的集成 elasticsearch
不再会因为缺少 rsyslog-gnutls
软件包而失败。
7.15. 虚拟化
在 Windows Server 2019 主机上连接到 RHEL 8 客户机控制台的速度不再会较慢
在以前的版本中,当在 Windows Server 2019 主机的多用户模式中使用 RHEL 8 作为客户机操作系统时,连接到客户端的控制台输出所需的时间比预期的时间要长。这个版本提高了 Hyper-V hypervisor 中的 VRAM 的性能,从而解决了这个问题。
(BZ#1908893)
现在可以通过 QXL 显示多个使用 Wayland 的虚拟机的监控器
在以前的版本中,使用 remote-viewer
工具显示使用 Wayland 显示服务器的虚拟机(VM)的多个监视器会导致 VM 变得无响应,并会一直显示 Waiting for display 状态信息。底层代码已被修复,这可以防止上面描述的问题发生。
(BZ#1642887)
7.16. 云环境中的 RHEL
GPU 优化的 Azure 实例现在可以在休眠后正常工作
当在带有 GPU 优化虚拟机大小的 Microsoft Azure 实例上运行 RHEL 8 作为客户机操作系统时,如 NV6,恢复虚拟机从休眠状态之前会导致虚拟机的 GPU 工作不正确。当发生这种情况时,内核会记录以下信息:
hv_irq_unmask() failed: 0x5
在这个版本中,Microsoft Azure 上受影响的虚拟机在恢复后可以正确处理其 GPU,这可以防止问题的发生。
(BZ#1846838)
在虚拟机从休眠中恢复后,TX/RX
数据包计数器会按预期增加
在以前的版本中,当在 Microsoft Azure 上使用 CX4 VF NIC 将RHEL 8 虚拟机从休眠中恢复过来时,TX/RX
数据包计数器会停止增长。这个版本解决了这个问题,数据包计数器也会正确增加。
(BZ#1876527)
RHEL 8 虚拟机不再无法从 Azure 的休眠状态恢复
在以前的版本中,当启用了 SR-IOV
的 RHEL 8 虚拟机(VM)在Microsoft Azure 上休眠并释放时,虚拟功能(VF)(vmbus 设备
)的 GUID 会改变。因此,当虚拟机重启时,它将无法恢复并意外终止。在这个版本中,vmbus 设备
VF 不再改变,虚拟机可以成功地从休眠状态恢复。
(BZ#1876519)
删除了 Hyper-V 和 KVM 客户端中的冗余错误消息
在以前的版本中,当 RHEL 8 客户机操作系统在 KVM 或 Hyper-V 虚拟机中运行时,在 /var/log/messages
文件中会报告以下错误信息:
serial8250: too much work for irq4
这是一个冗余的错误信息,现在已被删除。
有关此问题的详情,请查看红帽知识库解决方案。
(BZ#1919745)
7.17. 容器
podman system connection add
会自动设置默认连接
在以前的版本中,podman system connection add
命令不会自动将第一个连接设置为默认连接。因此,您必须手动运行 podman system connection default <connection_name>
命令来设置默认连接。在这个版本中,podman system connection add
命令可以正常工作。
podman run --pid=host
在非root模式下工作
在以前的版本中,以非root用户身份运行 podman run --pid=host
命令无法正常工作。因此,会出现 OCI 权限错误:
$ podman run --rm --pid=host quay.io/libpod/testimage:20200929 cat -v /proc/self/attr/current Error: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: readonly path /proc/bus: operation not permitted: OCI permission denied
在这个版本中,这个问题已被解决。
(BZ#1940854)
第 8 章 技术预览
这部分列出了 Red Hat Enterprise Linux 8.4 中的所有技术预览。
如需有关红帽对技术预览功能支持范围的信息,请参阅 技术预览功能支持范围。
8.1. 安装程序和镜像创建
Red Hat Connector 作为技术预览提供
现在,您可以使用一个命令连接到 RHEL 系统,以使用 Red Hat Insights 和您的订阅内容。在 Red Hat Enterprise Linux 8.4 中,红帽连接器(rhc
)CLI 作为一个技术预览提供,其统一了注册体验,无需单独运行 subscription-manager
和 insights-client
命令来连接到红帽。通过红帽连接器和智能管理订阅,您还可以直接从云修复问题。
如需更多信息,请参阅红帽连接器配置指南。
8.2. 网络
作为技术预览,引入了对通过 UDP 隧道封装了 MPLS 流量的 bareudp
设备的支持
现在,ip link
命令支持 bareudp
设备作为一个技术预览。bareudp
设备为使用不同 L3 协议的路由流量提供了L3 封装隧道支持,如单播和多播多协议标签切换(MPLS)和 UDP 隧道中的 IPv4/IPv6。通过添加 tc
过滤器和操作,您可以在 UDP 中开始路由 MPLS 数据包。
例如,要创建新的 bareudp
设备,请使用以下命令:
# ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls_uc
要使用 bareudp0 设备在 UDP 隧道中路由 MPLS 传入的数据包,请使用以下命令:
# tc qdisc add dev enp1s0 ingress # tc filter add dev enp1s0 ingress proto mpls_uc matchall \ > action tunnel_key set src_ip 2001:db8::22 dst_ip 2001:db8::21 id 0 \ > action mirred egress redirect dev bareudp0
有关创建 bareudp
设备时所使用的选项和参数的详情,请参阅 ip-link(8)
手册页中的 Bareudp Type Support
部分。
AF_XDP
作为技术预览
Address Family eXpress Data Path
(AF_XDP
) 是设计用于处理高性能数据包。它包含 XDP
,并允许通过编程方式将选定的数据包高效地重定向到用户空间应用,以便进一步处理。
(BZ#1633143)
KTLS 作为技术预览提供
在 Red Hat Enterprise Linux 8 中,KTLS 是作为技术预览提供的。KTLS 使用内核中的对称加密或者解密算法为 AES-GCM 密码处理 TLS 记录。KTLS 还提供将 TLS 记录加密卸载到支持此功能的网络接口控制器(NIC)的接口。
(BZ#1570255)
可作为技术预览的 XDP 功能
红帽提供了以下 eXpress Data Path(XDP)功能作为不受支持的技术预览:
-
在 AMD 和 Intel 64 位以外的构架中载入 XDP 程序。请注意,
libxdp
库不适用于 AMD 和 Intel 64 位的构架。 - XDP 硬件卸载。
TC 的多协议标签交换,作为技术预览提供
Multi-protocol Label Switching(MPLS)是一个内核内数据转发机制,用于跨企业网络路由流量。在 MPLS 网络中,接收数据包的路由器根据附加到数据包的标签决定数据包的其他路由。使用标签时,MPLS 网络可以处理带有特定特征的数据包。例如,您可以添加 tc 过滤器
,以一致的方式管理从特定端口接收的数据包或执行特定类型的流量。
数据包进入企业网络后,MPLS 路由器对数据包执行多个操作,如 push
来添加标签、swap
来更新标签,以及 pop
来删除标签。MPLS 允许基于 RHEL 中的一个或多个标签在本地定义操作。您可以配置路由器并设置流量控制(tc
)过滤器,根据 MPLS 标签堆栈条目(lse
)元素来对数据包执行相应的操作,如 label
、traffic class
、bottom of stack
以及 time to live
。
例如,以下命令在 enp0s1 网络接口中添加过滤器以匹配传入的数据包,第一个标签为 12323,第二个标签为 45832。在匹配的数据包中,会执行以下操作:
- 第一个 MPLS TTL 被缩减(如果 TTL 到达 0,则会丢弃数据包)
- 第一个 MPLS 标签被改为 549386
生成的数据包通过 enp0s2 传输,目标 MAC 地址为 00:00:5E:00:53:01,源 MAC 地址为 00:00:5E:00:53:02
# tc filter add dev enp0s1 ingress protocol mpls_uc flower mpls lse depth 1 label 12323 lse depth 2 label 45832 \ action mpls dec_ttl pipe \ action mpls modify label 549386 pipe \ action pedit ex munge eth dst set 00:00:5E:00:53:01 pipe \ action pedit ex munge eth src set 00:00:5E:00:53:02 pipe \ action mirred egress redirect dev enp0s2
(BZ#1814836, BZ#1856415)
act_mpls
模块作为技术预览提供
act_mpls
模块现在作为技术预览在 kernel-modules-extra
rpm 中找到。该模块允许使用流量控制(TC)过滤器进行多协议标签交换(MPLS)操作,例如:通过 TC 过滤器推送和弹出 MPLS 标签堆栈条目。模块还允许独立设置 Label、Traffic Class、Stack 的 Bottom 和 Time to Live 字段。
(BZ#1839311)
改进了多路径 TCP 支持作为技术预览提供
多路径 TCP(MPTCP)改进了网络中的资源使用量以及网络故障的恢复能力。例如:在 RHEL 服务器中使用多路径 TCP,启用了 MPTCP v1 的智能手机可以连接到服务器上运行的应用程序,并在 Wi-Fi 和手机网络间切换,而不会中断到服务器的连接。
RHEL 8.4 提供了其他功能,例如:
- 多个并发活跃子流
- 支持 active-backup
- 改进了流性能
-
更好的内存利用率,以及
receive
和send
缓冲区自动调整 - SYN cookie 支持
请注意,在服务器中运行的应用程序必须原生支持 MPTCP 或管理员必须在内核中载入 eBPF
程序,以便动态地将 IPPROTO_TCP
改为 IPPROTO_MPTCP
。
详情请查看 多路径 TCP 入门。
(JIRA:RHELPLAN-57712)
systemd-resolved
服务现在作为技术预览提供
systemd 解析的服务
为本地应用提供名称解析。该服务实现了缓存和验证 DNS stub 解析器、链接本地多播名称解析(LLMNR)以及多播 DNS 解析器和响应程序。
请注意,即使 systemd 软件包提供 systemd
-resolved
,这个服务还是一个不受支持的技术预览。
The nispor
软件包现在作为技术预览提供
The nispor
软件包现在作为技术预览提供,它是 Linux 网络状态查询的统一接口。它提供了一个通过 python 和 C api 以及 rust crate 查询所有正在运行的网络状态的统一方法。nispor
作为nmstate
工具中的依赖项使用。
您可以将 nispor
软件包作为 nmstate
的依赖项或单独的软件包来安装。
要将
nispor
作为单独的软件包来安装,请输入:# yum install nispor
要将
nispor
作为nmstate
的依赖项来安装,请输入:# yum install nmstate
nispor
被列为依赖项。
有关使用 nispor
的更多信息,请参阅 /usr/share/doc/nispor/README.md
文件。
(BZ#1848817)
8.3. 内核
kexec fast reboot 功能作为技术预览提供
kexec fast reboot
功能仍作为技术预览提供。kexec fast reboot
允许内核直接引导进入第二个内核而无需首先通过基本输入/输出系统(BIOS),从而显著加快启动过程。要使用这个功能:
-
手动加载
kexec
内核。 - 重启操作系统。
accel-config
软件包作为技术预览提供
accel-config
软件包现在作为技术预览在 RHEL 8.4 的 Intel EM64T
和 AMD64
架构中提供。这个软件包有助于控制并配置 Linux 内核中的数据流化器(DSA)子系统。另外,它还通过 sysfs(
pseudo-filesystem)配置设备,以 json
格式保存和加载配置。
(BZ#1843266)
SGX 作为技术预览
软件扩展(SGX)是一个 Intel® 技术,用于保护软件代码和数据不受公开和修改的影响。此发行版本启动了对 SGX v1 和 v1.5 的内核支持。版本 1 启用使用 Flexible Launch Control 机制的平台使用 SGX 技术。
(BZ#1660337)
eBPF 作为技术预览
Extended Berkeley Packet Filter(eBPF) 是一个内核中的虚拟机,允许在可访问有限功能的受限沙箱环境中在内核空间中执行代码。
虚拟机包含新系统调用 bpf()
,它支持生成各种映射类型,同时还允许在特殊的装配类代码中载入程序。然后,代码被加载到内核,并使用即时编译方式转换为原生机器代码。请注意,只有具有 CAP_SYS_ADMIN
能力的用户(如 root 用户)才可以成功使用 bpf()
syscall。如需更多信息,请参阅 bpf(2)
手册页。
载入的程序可附加到不同的点(套接字、追踪点、数据包)来接收和处理数据。
红帽提供的很多组件都使用 eBPF 虚拟机。每个组件处于不同的开发阶段,因此目前并不完全支持所有组件。所有组件都作为技术预览提供,除非有特定组件被显示为受支持。
以下显著的 eBPF 组件当前还作为技术预览提供:
-
bpftrace
是使用 eBPF 虚拟机的高级别追踪语言。 -
AF_XDP
,这是用于连接至 用户空间的套接字(XDP) 路径,用于优先选择数据包处理性能的应用程序。
(BZ#1559616)
为内核使用 accelerator 驱动程序的数据流作为技术预览提供
内核的数据流器(DSA)驱动程序当前还作为技术预览提供。DSA 是一个 Intel CPU 集成的加速器,它支持使用处理地址空间 ID(pasid)提交和共享虚拟内存(SVM)的共享工作队列。
(BZ#1837187)
soft-RoCE 作为技术预览提供
通过融合以太网的远程直接内存访问(RDMA)是一个网络协议,通过以太网实现 RDMA。soft-RoCE 是 RoCE 的软件实施,它支持两种协议版本:RoCE v1 和 RoCE v2。在 RHEL 8 中,Soft-RoCE 驱动程序 rdma_rxe
作为不受支持的技术预览提供。
(BZ#1605216)
8.4. 文件系统和存储
NVMe/TCP 作为技术预览提供
通过 TCP/IP 网络(NVMe/TCP)访问和共享 Nonvolatile Memory Express(NVMe/TCP)存储及其对应的 nvme-tcp.ko
和 nvmet-tcp.ko
内核模块已被添加为技术预览。
使用 nvme-cli
和 nvmetcli
软件包提供的工具可以管理 NVMe/TCP 作为存储客户端或目标。
NVMe/TCP 目标技术预览仅用于测试目的,目前没有计划提供全面支持。
(BZ#1696451)
现在 ext4 和 XFS 作为技术预览提供文件系统 DAX
在 Red Hat Enterprise Linux 8 中,文件系统 DAX 作为技术预览提供。DAX 提供了将持久内存直接映射到其地址空间的方法。要使用 DAX,系统必须有某种可用的持久内存,通常使用一个或多个非线内存模块(NVDIMM),且必须在 NVDIMM 上创建支持 DAX 的文件系统。另外,该文件系统必须使用 dax
挂载选项挂载。然后,在 dax 挂载的文件系统中的一个文件 mmap
会把存储直接映射到应用程序的地址空间中。
(BZ#1627455)
OverlayFS
OverlayFS 是一种联合文件系统。它允许您在另一个文件系统上覆盖一个文件系统。更改记录在上面的文件系统中,而较小的文件系统则未修改。这允许多个用户共享文件系统镜像,如容器或 DVD-ROM,基础镜像使用只读介质。
在大多数情况下,OverlayFS 仍是一个技术预览。因此,当这个技术被激活时,内核会记录警告信息。
与支持的容器引擎(podman
、cri-o
或 buildah
)一同使用时,对 OverlayFS 提供的全面支持包括以下限制:
-
OverlayFS 仅支持作为容器引擎图形驱动程序或其他专用用例使用,如 squashed
kdump
initramfs。它主要用于容器 COW 内容,不支持持久性存储。您必须将任何持久性存储放在非OverlayFS 卷中。您只能使用默认容器引擎配置:一个级别的覆盖、一个较低 dir 以及较低级别和上一级都位于同一个文件系统中。 - 目前只支持 XFS 作为较低层文件系统使用。
另外,以下规则和限制适用于使用 OverlayFS:
- OverlayFS 内核 ABI 和用户空间的行为被视为不稳定,将来的更新可能会改变。
OverlayFS 提供一组受限的 POSIX 标准。在使用 OverlayFS 部署前,先测试您的应用程序。以下情况与 POSIX 不兼容:
-
O_RDONLY
打开的较低文件在读取文件时不会接收st_atime
更新。 -
使用
O_RDONLY
打开的较低文件,然后与MAP_SHARED
映射与后续修改不一致。 RHEL 8 中不默认启用完全兼容
st_ino
或d_ino
值,但您可以使用模块选项或挂载选项为它们启用完整的 POSIX 合规性。要获得一致的内节点编号,请使用
xino=on
挂载选项。您还可以使用
redirect_dir=on
和index=on
选项提高 POSIX 合规性。这两个选项使上层的格式与没有这些选项的 overlay 不兼容。也就是说,如果您使用redirect_dir=on
或index=on
创建一个覆盖,卸载覆盖,然后在没有这些选项的情况下挂载覆盖,则可能会出现意外的结果或错误。
-
要确定现有 XFS 文件系统是否有资格用作 overlay,请使用以下命令查看是否启用了
ftype=1
选项:# xfs_info /mount-point | grep ftype
- 使用 OverlayFS 在所有支持的容器引擎中默认启用 SELinux 安全标签。
- 本发行版本中与 OverlayFS 相关的几个已知问题。详情请查看 Linux 内核文档 中的 非标准行为。
有关 OverlayFS 的更多信息,请参阅 Linux 内核文档。
(BZ#1690207)
Stratis 现在作为技术预览提供
Stratis 是一个新的本地存储管理器。它在存储池的上面为用户提供额外的功能。
Stratis 可让您更轻松地执行存储任务,比如:
- 管理快照和精简配置
- 根据需要自动增大文件系统大小
- 维护文件系统
要管理 Stratis 存储,使用 stratis
工具来与 stratisd
后台服务进行通信。
Stratis 作为技术预览提供。
如需更多信息,请参阅 Stratis 文档: 设置 Stratis 文件系统。
RHEL 8.3 将 Stratis 更新至 2.1.0 版本。如需更多信息,请参阅 Stratis 2.1.0 发行注记。
(JIRA:RHELPLAN-1212)
IdM 现在支持在 IdM 域成员中将 Samba 服务器设置为技术预览
在这个版本中,您可以在 Identity Management(IdM)域成员中设置 Samba 服务器。由同名软件包提供的新 ipa-client-samba
程序为 IdM 添加了特定于 Samba 的 Kerberos 服务主体并准备 IdM 客户端。例如,实用程序使用 sss
ID 映射后端的 ID 映射配置创建 /etc/samba/smb.conf
。现在,管理员可以在 IdM 域成员中设置 Samba。
由于 IdM Trust Controller 不支持全局目录服务,AD-enrolled Windows 主机无法在 Windows 中找到 IdM 用户和组。另外,IdM Trust Controller 不支持使用分布式计算环境/远程过程调用(DCE/RPC)协议解析 IdM 组。因此,AD 用户只能访问 IdM 客户端的 Samba 共享和打印机。
详情请查看在 IdM 域成员中设置 Samba。
(JIRA:RHELPLAN-13195)
8.5. 高可用性和集群
pcs cluster setup
命令的本地模式版本作为技术预览提供
默认情况下, pcs cluster setup
命令会自动将所有配置文件与集群节点同步。从 Red Hat Enterprise Linux 8.3 开始,pcs cluster setup
命令作为技术预览提供 --corosync-conf
选项。指定这个选项可将命令切换到 本地
模式。在这个模式中, pcs
会创建一个 corosync.conf
文件,并将其只保存到本地节点的指定文件中,而不与其它节点沟通。这可让您在脚本中创建 corosync.conf
文件,并使用脚本处理该文件。
pacemaker podman
bundles 作为技术预览
pacemaker 容器捆绑包现在在 Podman 上运行,容器捆绑包功能作为技术预览提供。其中一个功能例外于技术预览:红帽完全支持在 Red Hat Openstack 中使用 Pacemaker 捆绑包。
(BZ#1619620)
作为技术预览的 corosync-qdevice
中的 Heuristics
Heuristics是一组在启动、集群成员资格更改、成功连接到 corosync-qnetd
时本地执行的命令,以及可选的定期执行的命令。当所有命令及时成功完成(返回的错误代码为零),代表 heuristics 通过,否则代表失败。Heuristics 结果发送到 corosync-qnetd
,在计算中用来决定哪个分区应该是 quorate。
新的 fence-agents-heuristics-ping
保护代理
作为技术预览,Pacemaker 现在支持 fence_heuristics_ping
代理。这个代理旨在打开一组实验性保护代理,它们本身没有实际隔离,而是以新的方式利用隔离级别。
如果 heuristics 代理的配置与用于实现实际隔离代理有相同的隔离级别,但在代理之前配置,隔离会在试图进行隔离前,在 heuristics 代理上发出一个 off
操作。如果 heuristics 代理给出了 off
操作的一个负结果,则代表隔离不成功,从而导致 Pacemaker 隔离跳过对实现隔离的代理发出 off
动作的步骤。heuristics 代理可以利用这个行为来防止实际上进行隔离的代理在特定情况下隔离节点。
用户可能希望使用这个代理,特别是在双节点集群中,如果节点可以预先知道无法正确接管该服务,则节点可以隔离这个代理。例如,如果节点在网络连接链接出现问题,使服务无法访问客户端,则节点接管服务可能不真实。在这种情况下,向路由器的 ping 可能会探测到这个情况。
(BZ#1775847)
8.6. 身份管理
身份管理 JSON-RPC API 作为技术预览
一个 API 可用于 Identity Management(IdM)。要查看 API,IdM 还提供了一个 API 浏览器作为技术预览。
在以前的版本中,IdM API 被改进来启用多个 API 命令版本。这些增强可能会以不兼容的方式改变命令的行为。用户现在可以继续使用已有的工具和脚本,即使 IdM API 发生了变化。这可启用:
- 管理员要在服务器中使用之前或更高版本的 IdM,而不是在管理客户端中使用。
- 开发人员可以使用 IdM 调用的特定版本,即使 IdM 版本在服务器上发生了变化。
在所有情况下,与服务器进行通信是可能的,无论是否一方使用,例如,一个新的版本会为这个功能引进新的选项。
有关使用 API 的详细信息,请参阅使用身份管理 API 与 IdM 服务器通信(TECHNOLOGY PREVIEW)。
DNSSEC 在 IdM 中作为技术预览提供
带有集成 DNS 的身份管理(IdM)服务器现在支持 DNS 安全扩展(DNSSEC),这是一组增强 DNS 协议安全性的 DNS 扩展。托管在 IdM 服务器上的 DNS 区可以使用 DNSSEC 自动签名。加密密钥是自动生成和轮转的。
建议那些决定使用 DNSSEC 保护 DNS 区的用户读取并遵循这些文档:
- DNSSEC Operational Practices, Version 2: http://tools.ietf.org/html/rfc6781#section-2
- Secure Domain Name System (DNS) Deployment Guide: http://dx.doi.org/10.6028/NIST.SP.800-81-2
- DNSSEC Key Rollover Timing Considerations: http://tools.ietf.org/html/rfc7583
请注意,集成了 DNSSEC 的 IdM 服务器验证从其他 DNS 服务器获取的 DNS 答案。这可能会影响未按照推荐的命名方法配置的 DNS 区域可用性。
ACME 作为技术预览提供
自动证书管理环境(ACME)服务现在作为技术预览在 Identity Management(IdM)中提供。ACME 是一个用于自动标识符验证和证书颁发的协议。它的目标是通过缩短证书生命周期并避免证书生命周期管理中的手动过程来提高安全性。
在 RHEL 中,ACME 服务使用红帽认证系统(RHCS)PKI ACME 响应程序。RHCS ACME 子系统自动部署到 IdM 部署中的每个证书颁发机构(CA)服务器上,但只有管理员启用它之后,它才会为请求提供服务。RHCS 在发布 ACME 证书时使用 acmeIPAServerCert
配置文件。签发的证书的有效期为 90 天。启用或禁用 ACME 服务会影响整个 IdM 部署。
建议仅在所有服务器都运行 RHEL 8.4 或以上版本的 IdM 部署中启用 ACME。早期的 RHEL 版本不包括 ACME 服务,这可能会在混合版本部署中引起问题。例如,没有 ACME 的 CA 服务器可能会导致客户端连接失败,因为它使用不同的 DNS Subject Alternative Name(SAN)。
目前,RHCS 不会删除过期的证书。由于 ACME 证书在 90 天后过期,因此过期的证书可能会累积,这会影响性能。
要在整个 IdM 部署中启用 ACME,请使用
ipa-acme-manage enable
命令:# ipa-acme-manage enable The ipa-acme-manage command was successful
要在整个 IdM 部署中禁用 ACME,请使用
ipa-acme-manage disable
命令:# ipa-acme-manage disable The ipa-acme-manage command was successful
要检查是否安装了 ACME 服务,以及它是否启用或禁用了,请使用
ipa-acme-manage status
命令:# ipa-acme-manage status ACME is enabled The ipa-acme-manage command was successful
(JIRA:RHELPLAN-58596)
8.7. Desktop
GNOME 用于 64 位 ARM 架构,作为一个技术预览
GNOME 桌面环境现在可作为技术预览用于 64 位 ARM 架构。这可让管理员使用 VNC 会话从图形用户界面(GUI)远程配置和管理服务器。
因此,在 64 位 ARM 架构中提供了新的管理应用程序。例如: Disk Usage Analyzer (baobab)
, 防火墙配置 (firewall-config
), Red Hat Subscription Manager (subscription-manager
),或 Firefox web 浏览器。使用 Firefox,管理员可以远程地连接到本地 Cockpit 守护进程。
(JIRA:RHELPLAN-27394, BZ#1667225, BZ#1667516, BZ#1724302)
IBM Z 上的 GNOME 桌面作为技术预览提供
GNOME 桌面,包括 Firefox 网页浏览器,现在在 IBM Z 构架中作为技术预览提供。现在,您可以使用 VNC 连接到运行 GNOME 的远程图形会话来配置和管理您的 IBM Z 服务器。
(JIRA:RHELPLAN-27737)
8.8. 图形基础结构
VNC 远程控制台作为 64 位 ARM 架构的一个技术预览提供
在 64 位 ARM 架构中,虚拟网络计算(VNC)远程控制台可作为技术预览使用。请注意,在 64 位 ARM 架构中,目前图形堆栈的其它部分没有被验证。
(BZ#1698565)
Intel Tiger Lake 图形作为技术预览提供
Intel Tiger Lake UP3 和 UP4 Xe 图形现在作为技术预览提供。
要启用 Intel Tiger Lake 图形的硬件加速,请在内核命令行中添加以下选项:
i915.force_probe=pci-id
在这个选项中,将 pci-id 替换为以下之一:
- Intel GPU 的 PCI ID
-
启用带有所有 alpha 质量
硬件的 i915
驱动程序的*
字符
(BZ#1783396)
8.9. Red Hat Enterprise Linux 系统角色
HA 集群 RHEL 系统角色作为技术预览提供
High Availability Cluster(HA Cluster)角色现在作为技术预览提供。目前,有以下显著配置可用:
- 配置没有隔离(fencing)没有资源的集群
- 配置多链接集群
- 配置自定义集群名称和节点名称
- 配置集群在引导时是否自动启动
RHEL 系统角色的 postfix
角色作为技术预览
Red Hat Enterprise Linux 系统角色为 Red Hat Enterprise Linux 子系统提供了一个配置接口,通过包含 Ansible 角色来简化系统配置。这个界面支持在多个 Red Hat Enterprise Linux 版本间管理系统配置,并使用新的主发行版本。
rhel-system-roles
软件包通过 AppStream 软件仓库发布。
postfix
角色是作为技术预览提供的。
以下角色被完全支持:
-
kdump
-
network
-
selinux
-
storage
-
timesync
如需更多信息,请参阅有关 RHEL 系统角色 的知识库文章。
8.10. 虚拟化
KVM 虚拟化可用于 RHEL 8 Hyper-V 虚拟机
作为技术预览,现在可将嵌套的 KVM 虚拟化用于 Microsoft Hyper-V hypervisor。因此,您可以在运行在 Hyper-V 主机的 RHEL 8 虚拟机中创建虚拟机。
请注意目前,这个功能仅适用于 Intel 系统。另外,在一些情况下,Hyper-V 中不默认启用嵌套虚拟化。要启用它,请参阅以下文档:
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization
(BZ#1519039)
用于 KVM 虚拟机的 AMD SEV
作为技术预览,RHEL 8 为使用 KVM 虚拟机的 AMD EPYC 主机提供安全加密虚拟化(SEV)功能。如果在虚拟机(VM)上启用,SEV 会加密虚拟机内存,因此主机不能访问虚拟机上的数据。如果主机被恶意软件成功损坏,这可以提高虚拟机的安全性。
请注意,在单一主机上同时可以使用此功能的虚拟机数量是由主机硬件决定的。当前的 AMD EPYC 处理器支持使用 SEV 运行最多 509 个运行虚拟机。
也请注意,对于将 SEV 配置为可以引导的虚拟机,还必须使用硬内存限制配置虚拟机。要做到这一点,请在虚拟机 XML 配置中添加以下内容:
<memtune> <hard_limit unit='KiB'>N</hard_limit> </memtune>
建议 N 的值等于或大于客户机 RAM + 256 MiB。例如:如果为客户端分配 2 GiB RAM,则 N 应该为 2359296 或更高。
(BZ#1501618, BZ#1501607, JIRA:RHELPLAN-7677)
Intel vGPU
作为技术预览,现在可以将物理 Intel GPU 设备划分为多个虚拟设备(称为 mediated devices
)。然后可将这些 mediated devices 分配给多个虚拟机(VM)作为虚拟 GPU。因此,这些虚拟机共享单个物理 Intel GPU 的性能。
请注意,只有所选 Intel GPU 与 vGPU 功能兼容。
另外,也可以启用由 Intel vGPU 操作的 VNC 控制台。通过启用它,用户可以连接到虚拟机的 VNC 控制台,并查看由 Intel vGPU 托管的虚拟机桌面。但是,目前这仅适用于 RHEL 客户机操作系统。
(BZ#1528684)
创建嵌套虚拟机
对于在 Intel、AMD64 和使用 RHEL 8 的 IBM Z 系统主机上运行的 KVM 虚拟机,嵌套的 KVM 虚拟化是作为技术预览提供的。使用此功能,在物理 RHEL 8 主机上运行的 RHEL 7 或 RHEL 8 虚拟机可作为虚拟机监控程序,并托管自己的虚拟机。
(JIRA:RHELPLAN-14047、JIRA:RHELPLAN-24437)
选择 Intel 网络适配器现在支持 Hyper-V 的 RHEL 客户端中的 SR-IOV
作为技术预览,在 Hyper-V hypervisor 中运行的 Red Hat Enterprise Linux 客户机操作系统现在可以为 ixgbevf
和 iavf
驱动程序支持的 Intel 网络适配器使用单根 I/O 虚拟化(SR-IOV)功能。此功能在满足以下条件时启用:
- 对网络接口控制器(NIC)启用了 SR-IOV 支持
- 对虚拟 NIC 启用了 SR-IOV 支持
- 对虚拟交换机启用 SR-IOV 支持
- NIC 中的虚拟功能(VF)附加到虚拟机
目前,Microsoft Windows Server 2019 和 2016 支持该功能。
(BZ#1348508)
ESXi hypervisor 和 SEV-ES 作为 RHEL 虚拟机的一个技术预览提供
作为技术预览,在 RHEL 8.4 及之后的版本中,您可以在 VMware 的 ESXi hypervisor、7.0.2 及更新的版本上启用 AMD Secure Encrypted Virtualization-Encrypted State(SEV-ES)以防止 RHEL 虚拟机(VM)。
(BZ#1904496)
8.11. 容器
CNI 插件在 Podman 中作为技术预览提供
CNI 插件现在可作为技术预览在 Podman 无根模式中使用。要启用此功能,用户需要构建自己的无根 CNI 基础架构容器镜像。
crun
作为技术预览提供
crun
OCI 运行时现在作为技术预览用于 container-tools:rhel8
模块。crun
容器运行时支持注解,允许容器访问非根用户的额外组。这对设置 setgid 或用户只能访问组的目录中的卷挂载有用。目前,crun 或
runc
运行时都不支持 cgroupsv2
。
(BZ#1841438)
podman
容器镜像作为技术预览提供
registry.redhat.io/rhel8/podman
容器镜像是 podman
软件包的一个容器化实施。podman
工具用于管理容器和镜像、挂载到这些容器上的卷,以及由容器组构成的 pod。
(JIRA:RHELPLAN-56659)
podman-machine
命令不受支持
用于管理虚拟机的 podman-machine
命令仅作为技术预览提供。相反,请从命令行直接运行 Podman。
(JIRA:RHELDOCS-16861)
第 9 章 过时的功能
这部分提供在 Red Hat Enterprise Linux 8 中弃用 的功能概述。
弃用的设备被完全支持,这意味着它们会被测试和维护,且其支持状态在 Red Hat Enterprise Linux 8 中保持不变。但是,这些设备可能在以后的主版本中不被支持,且不建议对当前或将来的 RHEL 主发行版本进行新部署。
有关特定主发行版本中已弃用功能的最新列表,请查看最新发行版本的文档。有关支持长度的详情,请查看 Red Hat Enterprise Linux 生命周期 和 Red Hat Enterprise Linux 应用程序流生命周期。
一个软件包可以被弃用,我们不推荐在以后使用。在某些情况下,可以从产品中删除软件包。然后,产品文档可识别提供类似、完全相同或者更高级功能的最新软件包,并提供进一步建议。
有关 RHEL 7 中存在但已在 RHEL 8 中删除 的功能的详情,请参考使用 RHEL 8 的注意事项。
有关 RHEL 8 中存在但已在 RHEL 9 中删除的功能的信息,请参阅使用 RHEL 9 的注意事项。
9.1. 安装程序和镜像创建
弃用了一些 Kickstart 命令和选项
使用 RHEL 8 Kickstart 文件中的以下命令和选项会在日志中显示警告信息。
-
auth
或authconfig
-
device
-
deviceprobe
-
dmraid
-
install
-
lilo
-
lilocheck
-
mouse
-
multipath
-
bootloader --upgrade
-
ignoredisk --interactive
-
partition --active
-
reboot --kexec
如果只列出具体选项,则基础命令及其它选项仍可用且没有弃用。
有关 Kickstart 中的详情和相关更改,请参阅使用 RHEL 8 的参考事项文档中的 Kickstart 更改部分。
(BZ#1642765)
ignoredisk
Kickstart 命令的 --interactive
选项已被弃用
在以后的 Red Hat Enterprise Linux 版本中使用 --interactive
选项会导致严重安装错误。建议您修改 Kickstart 文件删除该选项。
(BZ#1637872)
Kickstart autostep
命令已弃用
autostep
命令已弃用。有关这个命令的相关部分已从 RHEL 8 文档中删除。
(BZ#1904251)
Image Builder 的 lorax-composer
后端在 RHEL 8 中已弃用
以前的镜像构建器后端 lorax-composer
被视为已弃用。它只会为 Red Hat Enterprise Linux 8 生命周期的其余部分获得特定的修复程序,并将在以后的主发行版本中被删除。 红帽建议您改为 uninstall lorax-composer
and install osbuild-composer
后端。
如需了解更多详细信息,请参阅生成自定义的 RHEL 系统镜像。
9.2. 软件管理
rpmbuild --sign
已弃用
在这个版本中,rpmbuild --sign
命令已过时。在以后的 Red Hat Enterprise Linux 版本中使用这个命令可能会导致错误。建议您使用 rpmsign
命令替代。
9.3. Shell 和命令行工具
OpenEXR
组件已弃用
OpenEXR
组件已弃用。因此,对 EXR
镜像格式的支持已从 imagecodecs
模块中去掉了。
禁用对 curl 的 metalink 支持。
在 curl 功能中发现了一个缺陷,它在处理使用 Metalink 下载的内容时处理凭证和文件哈希不匹配的方式存在问题。此漏洞允许控制托管服务器的恶意执行器:
- 欺骗用户下载恶意内容
- 在用户不知情的情况下获取对提供的凭证的未授权访问
来自此漏洞的最大威胁是机密性和完整性。为避免这种情况,在 Red Hat Enterprise Linux 8.2.0.z 中禁用了对 curl 的Metalink 支持。
作为临时解决方案,在下载 Metalink 文件后执行以下命令:
wget --trust-server-names --input-metalink`
例如:
wget --trust-server-names --input-metalink <(curl -s $URL)
(BZ#1999620)
9.4. 安全性
NSS
SEED 密码已弃用
Mozilla Network Security Services (NSS
) 库将不支持在以后的版本中使用 SEED 密码的 TLS 密码组合。为确保在 NSS 取消支持时依赖 SEED 密码的部署平稳过渡,红帽推荐对其它密码套件的支持。
请注意,在 RHEL 中,SEED 密码已经被默认禁用。
TLS 1.0 和 TLS 1.1 已弃用
TLS 1.0 和 TLS 1.1 协议在 DEFAULT
系统范围的加密策略级别被禁用。如果需要使用启用的协议,如 Firefox 网页浏览器中的视频检查程序,把系统范围的加密策略切换到 LEGACY
级别:
# update-crypto-policies --set LEGACY
如需更多信息,请参阅 RHEL 8 中的 Strong crypto 默认值,并弃用红帽客户门户网站中的弱加密算法 知识库文章和 update-crypto-policies(8)man
page。
在 RHEL 8 中弃用 DSA
数字签名算法(DSA)在 Red Hat Enterprise Linux 8 中被视为已弃用。依赖于 DSA 密钥的身份验证机制在默认配置中不起作用。请注意,即使使用系统范围的LEGACY
加密策略级别中,OpenSSH
客户端都不接受 DSA 主机密钥。
(BZ#1646541)
在 NSS
中弃用了SSL2
Client Hello
传输层安全性(TLS
)协议版本 1.2 和更早版本允许以向后兼容安全套接字层(SSL
)协议版本 2 的方式与 客户端 Hello
消息开始协商。网络安全服务(NSS
)库中对这个功能的支持已被弃用,默认是禁用的。
需要这个功能支持的应用程序需要使用新的 SSL_ENABLE_V2_compatible_HELLO
API 启用它。以后的 Red Hat Enterprise Linux 8 版本中可以完全删除对这个功能的支持。
(BZ#1645153)
TPM 1.2 已被弃用
Trusted Platform Module (TPM) 安全加密处理器标准版本在 2016 年更新至 2.0 版本。TPM 2.0 比 TPM 1.2 提供了很多改进,它和之前的版本不向后兼容。在 RHEL 8 中弃用了 TPM 1.2,它可能会在下一个主发行版本中删除。
(BZ#1657927)
使用 /etc/selinux/config
运行时禁用 SELinux 现已弃用
使用 /etc/selinux/config
文件中的 SELINUX=disabled
选项禁用 SELinux 已被弃用。在 RHEL 9 中,当您只通过 /etc/selinux/config
禁用 SELinux 时,系统启动时会启用SELinux ,但没有载入任何策略。
如果您的情况确实需要完全禁用 SELinux,红帽建议通过在内核命令行中添加 selinux=0
参数来禁用 SELinux,如在标题为使用SELinux的在引导时更改 SELinux模式部分中所述。
ipa
SELinux模块从selinux-policy
中删除了
ipa
SELinux 模块已从 selinux-policy
软件包中删除了,因为不再对其进行维护。这个功能现在包括在 ipa-selinux
子软件包中。如果您需要在本地 SELinux 策略中使用 ipa
模块中的类型或接口,请安装 ipa-selinux
软件包。
(BZ#1461914)
9.5. 网络
在 RHEL 8 中已弃用网络脚本
网络脚本在 Red Hat Enterprise Linux 8 中已弃用,且不再默认提供。基本安装提供了 ifup
和 ifdown
脚本的新版本,它们通过 nmcli 工具调用 NetworkManager 服务。在 Red Hat Enterprise Linux 8 中,要运行 ifup
和 ifdown
脚本,NetworkManager 必须正在运行。
请注意, /sbin/ifup-local
、ifdown-pre-local
和 ifdown-local
脚本中的自定义命令不会执行。
如果需要这些脚本,您仍可以使用以下命令在系统中安装已弃用的网络脚本:
~]# yum install network-scripts
ifup
和 ifdown
脚本链接到已安装的旧网络脚本。
调用旧的网络脚本会显示一个关于它们已过时的警告。
(BZ#1647725)
dropwatch
工具已弃用
dropwatch
工具已弃用。该工具在以后的版本中不被支持。因此,不建议在新部署中使用这个软件包,红帽建议使用 perf
命令行工具来替换它。
有关使用 perf
命令行工具的更多信息,请参阅红帽客户门户网站的 Perf入门 部分或 perf
手册页。
在 nmstate
API 中弃用了术语 slave
红帽承诺使用适当的语言。因此,slaves
术语在 Nmstate API 中被弃用。使用 nmstatectl
时使用术语 port
。
(JIRA:RHELDOCS-17641)
9.6. 内核
使用无磁盘引导为 Real Time 8 安装 RHEL 现已弃用
无磁盘引导允许多个系统通过网络共享一个 root 文件系统。无盘引导是方便的,它在实时工作负载中容易引入网络延迟。在以后的 RHEL for Real Time 8 的更新中,无盘引导功能将不再被支持。
The rdma_rxe
Soft-RoCE 驱动程序已弃用
软件直接内存通过融合以太网(Soft-RoCE)(也称为 RXE)是模拟远程直接内存访问(RDMA)的功能。在 RHEL 8 中,Soft-RoCE 功能作为一个不受支持的技术预览提供。但是,由于稳定性问题,此功能已被弃用,并将在 RHEL 9 中删除。
(BZ#1878207)
9.7. 启用平台
Linux firewire
子系统及其关联的用户空间组件在 RHEL 8 中已弃用
firewire
子系统提供使用和维护 IEEE 1394 总线上的任何资源的接口。在 RHEL 9
中,内核软件包
不再支持 firewire。
请注意,firewire
包含由 libavc1394
提供的几个用户空间组件,libdc1394
,libraw1394
软件包。这些软件包也会受到弃用的影响。
9.8. 文件系统和存储
elevator
内核命令行参数已弃用
在之前的 RHEL 版本中使用 elevator
内核命令行参数为所有设备设置磁盘调度程序。在 RHEL 8 中,该参数已弃用。
上游 Linux 内核删除了对 elevator
参数的支持,但出于兼容性的原因,在 RHEL 8 中仍提供此支持。
请注意,内核会根据设备类型选择默认磁盘调度程序。这通常是最佳设置。如果您需要不同的调度程序,红帽建议您使用 udev
规则或 Tuned 服务来配置它。匹配所选设备并只为那些设备切换调度程序。
如需更多信息,请参阅设置磁盘调度程序。
(BZ#1665295)
LVM mirror
已弃用
LVM mirror
segment 类型已弃用。以后的 RHEL 主发行版本中会删除对 mirror
的支持。
红帽建议使用 segment 类型为 raid1
的 LVM RAID 1 设备来替代 mirror
。raid1
segment 类型是默认的 RAID 配置类型,它作为推荐的解决方案替换 mirror
。
要将 mirror
设备转换为 raid1
,请参阅 将镜像 LVM 设备转换为 RAID1 逻辑卷。
LVM mirror
有几个已知问题。详情请查看 文件系统和存储中的已知问题。
(BZ#1827628)
peripety 已被弃用
从 RHEL 8.3 开始,pipety
软件包已弃用。
Peripety 存储事件通知守护进程将系统存储日志解析为结构化的存储事件。它帮助您调查存储问题。
sync 以外的 VDO 写入模式已弃用
VDO 支持 RHEL 8 中的几种写入模式:
-
sync
-
async
-
async-unsafe
-
auto
从 RHEL 8.4 开始,以下写入模式已弃用:
sync
-
VDO 层之上的设备无法识别 VDO 是否同步,因此设备无法利用 VDO
同步
模式。 async-unsafe
-
VDO 添加了这个写入模式来作为降低
async
模式性能的一个临时解决方案,异步模式符合原子性、一致性、隔离性和持久性(ACID)。对于大多数用例,红帽不推荐使用async-unsafe
,也不知道任何依赖它的用户。 auto
- 这个写入模式只选择其它写入模式之一。当 VDO 只支持单个写入模式时,不再需要它。
这些写入模式将在以后的主 RHEL 发行版本中删除。
推荐的 VDO 写入模式现在是 async
的。
如需有关 VDO 写入模式的更多信息,请参阅选择 VDO 写入模式。
(JIRA:RHELPLAN-70700)
禁用了 NFSv3 over UDP
默认情况下,NFS 服务器不再默认在 User Datagram Protocol(UDP)套接字上打开或监听。这个变化只影响 NFS 版本 3,因为版本 4 需要传输控制协议(TCP)。
RHEL 8 不再支持通过 UDP 的 NFS。
(BZ#1592011)
cramfs
已被弃用
由于缺少用户,cramfs
内核模块已弃用。建议
squashfs 作为替代解决方案。
(BZ#1794513)
9.9. 高可用性和集群
支持 clufter
工具的 pcs
命令已被弃用
支持 clufter
工具来分析群集配置格式的 pcs
命令已被弃用。现在,这些命令会显示一个警告信息,提示该命令已弃用,并且与这些命令相关的部分已从 pcs
帮助显示和pcs(8)
手册页中删除。
(BZ#1851335)
9.10. 编译器和开发工具
gdb.i686
软件包已弃用
在 RHEL 8.1 中,GNU Debugger(GDB)gdb.i686
的 32 位版本因为另一个软件包中的依赖问题而提供。因为 RHEL 8 不支持 32 位硬件,所以 gdb.i686
软件包从 RHEL 8.4 开始已弃用。GDB的64 位版本gdb.x86_64
完全能够调试 32 位应用程序。
如果使用 gdb.i686
,请注意以下重要问题:
-
gdb.i686
软件包将不再更新。用户必须安装gdb.x86_64
。 -
如果您安装了
gdb.i686
,安装gdb.x86_64
将导致dnf
报告package gdb-8.2-14.el8.x86_64 obsoletes gdb < 8.2-14.el8 provided by gdb-8.2-12.el8.i686
。这是预期的。卸载gdb.i686
或向dnf
传递--allowerasing
选项来删除gdb.i686
, 并安装gdb.x8_64
。 -
用户将不能够在 64 位系统中安装
gdb.i686
软件包,也就是那些带有libc.so.6()64 位)
软件包的系统。
(BZ#1853140)
libdwarf
已弃用
libdwarf
库在 RHEL 8 中已弃用。将来的主版本中可能也不支持该程序库。对于打算处理 ELF/DWARF 文件的应用程序,请使用 elfutils
和 libdw
库。
libdwarf-tools
dwarfdump
程序的替代方案是 binutils
readelf
程序或elfutils
eu-readelf
程序,它们都通过传递 --debug-dump
标志来使用。
9.11. Identity Management
openssh-ldap
已被弃用
在 Red Hat Enterprise Linux 8 中弃用 openssh-ldap
子软件包,并将在 RHEL 9 中删除。因为 openssh-ldap
子软件包没有被上游维护,红帽建议您使用 SSSD 和 sss_ssh_authorizedkeys
帮助程序,它们与其他 IdM 解决方案更好地集成且更安全。
默认情况下,SSSD ldap
和 ipa
供应商会读取用户对象的 sshPublicKey
LDAP 属性(如果可用)。请注意,您无法为 ad
provider 或 IdM 可信域使用默认的 SSSD 配置从 Active Directory(AD)检索 SSH 公钥,因为 AD 没有存储公钥的默认 LDAP 属性。
要允许 sss_ssh_authorizedkeys
帮助程序从 SSSD 获取密钥,在 sssd.conf
文件的 services
选项中添加 ssh
来启用 ssh
响应程序。详情请查看 sssd.conf(5)
手册页。
要允许 sshd
使用 sss_ssh_authorizedkeys,
,添加 AuthorizedKeysCommand/usr/bin/sss_ssh_authorizedkeys
和 AuthorizedKeysCommandUser nobody
选项到 /etc/ssh/sshd_config
文件,如 ss_ssh_authorizedkeys(1)
手册页所述。
已经删除了 DES 和 3DES 加密类型
由于安全考虑,自 RHEL 7 开始,数据加密标准(DES)算法已被弃用并默认禁用。通过最近重新构建 Kerberos 软件包,已从 RHEL 8 中删除了 single-DES(DES)和 triple-DES(3DES) 加密类型。
如果您已经将服务或用户配置为只使用 DES 或 3DES 加密,您可能会遇到服务中断,例如:
- Kerberos authentication 错误
-
unknown enctype
加密错误 -
带有 DES 加密数据库主密钥(
K/M
)的 KDC 无法启动
执行以下操作准备升级:
-
检查您的 KDC 是否使用 DES 或者 3DES 加密,并使用
krb5check
打开源 Python 脚本。请参阅 GitHub 上的 krb5check。 - 如果您要将 DES 或 3DES 加密用于任何 Kerberos 主体,请使用支持的加密类型重新加密,比如高级加密标准(AES)。有关重新打包的步骤,请参考 MIT Kerberos 文档中的 Retiring DES。
通过在升级前临时设置以下 Kerberos 选项,从 DES 和 3DES 测试测试:
-
在 KDC 上的
/var/kerberos/krb5kdc/kdc.conf
中设置support_enctypes
且不包含des
或des3
。 -
对于每个主机,在
/etc/krb5.conf
以及/etc/krb5.conf.d
中的任意文件,将allow_weak_crypto
设为false
。默认为 false。 -
对于每个主机,在
/etc/krb5.conf
以及/etc/krb5.conf.d
中的任意文件设置allowed_enctypes
,default_tgs_enctypes
,以及default_tkt_enctypes
且不包含des
或des3
。
-
在 KDC 上的
- 如果您没有遇到上一步中测试 Kerberos 设置的服务中断,请删除并升级它们。升级到最新的 Kerberos 软件包后您不需要这些设置。
单独使用 ctdb
服务已弃用
从 RHEL 8.4 开始,建议客户仅在满足以下任一条件时使用 ctdb
集群的Samba 服务:
-
ctdb
服务通过资源代理ctdb
作为pacemaker
资源进行管理。 -
ctdb
服务使用包含由红帽 Gluster 存储产品提供的 GlusterFS 文件系统或 GFS2 文件系统的存储卷。
ctdb
服务的独立用例已被弃用,其不会包含在 Red Hat Enterprise Linux 的下一个主版本中。有关 Samba 支持政策的更多信息,请参阅 RHEL Resilient Storage - ctdb 常规政策的支持政策。
(BZ#1916296)
以 PDC 或 BDC 的形式运行 Samba 已被弃用
传统的域控制器模式使管理员能够作为类似 NT4 的主域控制器(PDC)和备份域控制器(BDC)运行 Samba。用于配置这些模式的代码和设置将在以后的 Samba 发行版本中删除。
只要 RHEL 8 中的 Samba 版本提供 PDC 和 BDC 模式,红帽就仅在带有支持 NT4 域的 Windows 版本的现有安装中支持这些模式。红帽建议不要设置新的 Samba NT4 域,因为 Microsoft 操作系统稍后于 Windows 7 和 Windows Server 2008 R2 不支持 NT4 域。
如果您使用 PDC 仅验证 Linux 用户,红帽建议迁移到 RHEL 订阅中包含的 Red Hat Identity Management(IdM)。但是,您无法将 Windows 系统加入到 IdM 域中。请注意,红帽继续支持在后台使用 PDC 功能 IdM。
红帽不支持将 Samba 作为 AD 域控制器(DC)运行。
libwbclient 的 SSSD 版本已弃用
添加了 libwbclient
软件包的 SSSD 实施,允许 Samba smbd
服务从 AD 检索用户和组信息,而无需运行 winbind
服务。由于 Samba 现在要求 winbind
服务运行并处理与 AD 的通信,出于安全原因,相关的代码已从 smdb
中删除。因为这个额外的所需功能不是 SSSD 的一部分,libwbclient
的SSSD 实施无法用于 Samba 的最新版本,因此 libwbclient
的 SSSD 实施已被弃用。
SMB1 协议在 Samba 中已弃用
从 Samba 4.11 开始,不安全的服务器消息块版本 1 (SMB1)协议已弃用,并将在以后的发行版本中删除。
为提高安全性,在 Samba 服务器和客户端工具中默认禁用 SMB1。
Jira:RHELDOCS-16612
9.12. Desktop
libgnome-keyring
库已弃用
libgnome-keyring
库已弃用,现在使用 libsecret
库,因为 libgnome-keyring
没有被上游维护,且不会遵循 RHEL 所需的加密策略。新的 libsecret
库是符合所需安全标准的替换。
(BZ#1607766)
9.13. 图形基础结构
不再支持 AGP 图形卡
Red Hat Enterprise Linux 8 不支持使用图形端口(AGP)总线的图形卡。推荐使用 PCI-Express bus 图形卡替换。
(BZ#1569610)
9.14. Web 控制台
Web 控制台不再支持不完整翻译
RHEL web 控制台不再提供翻译少于 50% 的语言支持。如果浏览器要求转换成这种语言,用户界面将为英语。
9.15. Red Hat Enterprise Linux 系统角色
geoipupdate
软件包已弃用
geoipupdate
软件包需要第三方订阅,同时下载专有内容。因此,geoipupdate
软件包已被弃用,并将在下一个主要 RHEL 版本中删除。
(BZ#1874892)
9.16. 虚拟化
SPICE 已被弃用
SPICE 远程显示协议已弃用。因此,RHEL 8 中仍支持 SPICE,但红帽建议对远程显示流使用备用解决方案:
- 要访问远程控制台,请使用 VNC 协议。
- 对于高级远程显示功能,请使用 RDP、HP RGS 或 Mechdyne TGX 等第三方工具。
请注意,SPICE 使用的 QXL 图形设备也已被弃用。
(BZ#1849563)
virt-manager 已被弃用
虚拟机管理器(也称 virt-manager) 已弃用。RHEL 8 web 控制台(也称 Cockpit )旨在在以后的版本中成为它替换。因此,建议您使用 web 控制台使用 GUI 管理虚拟化。但请注意,virt-manager 中的一些功能可能还不能使用 RHEL 8 web 控制台。
(JIRA:RHELPLAN-10304)
RHEL 8 不支持虚拟机快照
当前创建虚拟机(VM)快照的机制已经被弃用,因为它无法可靠工作。因此,建议在 RHEL 8 中使用虚拟机快照。
请注意,一个新的 VM 快照机制正在开发中,并将在以后的 RHEL 8 次要发行本中完全实现。
Cirrus VGA 虚拟 GPU 类型已弃用
随着 Red Hat Enterprise Linux 的主要更新,Cirrus VGA GPU 设备将在 KVM 虚拟机中不再被支持。因此,红帽建议使用 stdvga 或 virtio-vga 设备而不是 Cirrus VGA。
(BZ#1651994)
IBM POWER 上的 KVM 已被弃用
在 IBM POWER 硬件中使用 KVM 虚拟化已被弃用。因此,RHEL 8 仍支持 IBM POWER 上的 KVM,但在以后的 RHEL 主发行版本中将不被支持。
(JIRA:RHELPLAN-71200)
使用基于 SHA1 的签名进行 SecureBoot 镜像验证已弃用
在 UEFI(PE/COFF)可执行文件中使用基于 SHA1 的签名执行 SecureBoot 镜像验证已过时。
反之,红帽建议使用基于 SHA2 算法或更新版本的签名。
(BZ#1935497)
9.17. 容器
基于 Podman varlink 的 API v1.0 已被删除
基于 Podman varlink 的 API v1.0 在之前的 RHEL 8 版本中已弃用。podman v2.0 引入了一个新的 Podman v2.0 RESTful API。Podman v3.0 发行版本中,基于 varlink 的 API v1.0 已被完全删除。
(JIRA:RHELPLAN-45858)
container-tools:1.0
已弃用
container-tools:1.0
模块已弃用,将不再接收安全更新。建议您使用较新支持的稳定模块流,如 container-tools:2.0
或 container-tools:3.0
。
(JIRA:RHELPLAN-59825)
9.18. 已弃用的软件包
下列软件包已弃用,可能不会包括在 Red Hat Enterprise Linux 未来的主发行版本中:
- 389-ds-base-legacy-tools
- authd
- custodia
- firewire
- geoipupdate
- hostname
- isl
- isl-devel
- libavc1394
- libdc1394
- libdwarf
- libdwarf-devel
- libdwarf-static
- libdwarf-tools
- libidn
- libpng12
- libraw1394
- lorax-composer
- mailman
- mailx - 被 s-nail 替代
- mercurial
- ncompress
- net-tools
- netcf
- netcf-libs
- network-scripts
- nss_nis
- nss-pam-ldapd
- openssh-ldap
- parfait
- peripety
- perl-prefork
- perl-Sys-Virt
- python3-nose
- python3-pymongo
- python3-pytoml - 被 python3-toml 替代
-
python3-virtualenv - 在 Python 3 中使用
venv
模块 - redhat-support-lib-python
- redhat-support-tool
- scala
- sendmail
- yp-tools
- ypbind
- ypserv
- xdelta
- xinetd
9.19. 弃用的设备
本节列出了在 RHEL 8 生命周期结束前继续受支持的设备(drivers、适配器),但可能在以后的主要发行本中不被支持,且不建议在新的部署中使用。对列出的设备的支持不会改变。
PCI ID 的格式是 vendor:device:subvendor:subdevice。如果没有列出 subdevice 或 subvendor:subdevice 条目,则已有此类缺失条目值的设备已弃用。要在您的系统中检查硬件的 PCI ID,请运行 lspci -nn
命令。
设备类型 | 驱动 | 设备 | 设备 ID |
---|---|---|---|
PCI | bnx2 | ||
PCI | hpsa | 0x103C:0x3239:0x103C:0x21C4 | |
PCI | hpsa | 0x103C:0x3239:0x103C:0x21C9 | |
PCI | hpsa | 0x103C:0x3239:0x103C:0x21CC | |
PCI | hpsa | 0x103C:0x3239:0x103C:0x21CD | |
PCI | hpsa | 0x103C:0x3239:0x103C:0x21CE | |
PCI | hpsa | 0x103C:0x323a:0x103C:0x3233 | |
PCI | hpsa | 0x103C:0x323a:0x103C:0x3241 | |
PCI | hpsa | 0x103C:0x323a:0x103C:0x3243 | |
PCI | hpsa | 0x103C:0x323a:0x103C:0x3245 | |
PCI | hpsa | 0x103C:0x323a:0x103C:0x3247 | |
PCI | hpsa | 0x103C:0x323a:0x103C:0x3249 | |
PCI | hpsa | 0x103C:0x323a:0x103C:0x324A | |
PCI | hpsa | 0x103C:0x323a:0x103C:0x324B | |
PCI | hpsa | 0x103C:0x323b:0x103C:0x3350 | |
PCI | hpsa | 0x103C:0x323b:0x103C:0x3351 | |
PCI | hpsa | 0x103C:0x323b:0x103C:0x3352 | |
PCI | hpsa | 0x103C:0x323b:0x103C:0x3353 | |
PCI | hpsa | 0x103C:0x323b:0x103C:0x3354 | |
PCI | hpsa | 0x103C:0x323b:0x103C:0x3355 | |
PCI | hpsa | 0x103C:0x323b:0x103C:0x3356 | |
PCI | hpsa | 0x103C:0x333f:0x103c:0x333f | |
PCI | hpsa | 0x9005:0x0290:0x9005:0x0580 | |
PCI | hpsa | 0x9005:0x0290:0x9005:0x0581 | |
PCI | hpsa | 0x9005:0x0290:0x9005:0x0582 | |
PCI | hpsa | 0x9005:0x0290:0x9005:0x0583 | |
PCI | hpsa | 0x9005:0x0290:0x9005:0x0584 | |
PCI | hpsa | 0x9005:0x0290:0x9005:0x0585 | |
PCI | lpfc | 0x10df:0x0724 | |
PCI | lpfc | 0x10df:0xe200 | |
PCI | lpfc | 0x10df:0xe220 | |
PCI | lpfc | 0x10df:0xf011 | |
PCI | lpfc | 0x10df:0xf015 | |
PCI | lpfc | 0x10df:0xf100 | |
PCI | lpfc | 0x10df:0xfc40 | |
PCI | megaraid_sas | 0x1000:0x005b | |
PCI | mpt3sas | 0x1000:0x006E | |
PCI | mpt3sas | 0x1000:0x0080 | |
PCI | mpt3sas | 0x1000:0x0081 | |
PCI | mpt3sas | 0x1000:0x0082 | |
PCI | mpt3sas | 0x1000:0x0083 | |
PCI | mpt3sas | 0x1000:0x0084 | |
PCI | mpt3sas | 0x1000:0x0085 | |
PCI | mpt3sas | 0x1000:0x0086 | |
PCI | mpt3sas | 0x1000:0x0087 | |
PCI | myri10ge | ||
PCI | netxen_nic | ||
PCI | sfc | 0x1924:0x0803 | |
PCI | sfc | 0x1924:0x0813 | |
PCI | qla2xxx | 0x1077:0x2031 | |
PCI | qla2xxx | 0x1077:0x2532 | |
PCI | qla2xxx | 0x1077:0x8031 |
第 10 章 已知问题
这部分论述了 Red Hat Enterprise Linux 8.4 中已知的问题。
10.1. 安装程序和镜像创建
auth
和 authconfig
Kickstart 命令需要 AppStream 软件仓库
auth
和 authconfig
Kickstart 命令在安装过程中需要 authselect-compat
软件包。如果没有这个软件包,如果使用了 auth
或 authconfig
,则安装会失败。但根据设计,authselect-compat
软件包只包括在 AppStream 仓库中。
要临时解决这个问题,请确定安装程序可使用 BaseOS 和 AppStream 软件仓库,或者在安装过程中使用 authselect
Kickstart 命令。
(BZ#1640697)
reboot --kexec
和 inst.kexec
命令不提供可预测的系统状态
使用 reboot --kexec Kickstart
命令或 inst.kexec
内核引导参数执行 RHEL 安装不会提供与完全重启相同的可预期系统状态。因此,在不重启的情况下切换安装的系统可能会导致无法预计的结果。
请注意,kexec
功能已弃用,并将在以后的 Red Hat Enterprise Linux 版本中删除。
(BZ#1697896)
在安装程序中不默认启用网络访问
几个安装功能需要网络访问,例如:使用 Content Delivery Network(CDN)、NTP 服务器支持和网络安装源注册系统。但默认情况下不启用网络访问,因此在启用网络访问前无法使用这些功能。
要临时解决这个问题,请添加 ip=dhcp
在启动安装时启用网络访问。另外,使用引导选项传递 Kickstart 文件或位于网络中的库也会解决这个问题。因此可以使用基于网络的安装功能。
(BZ#1757877)
USB CD-ROM 驱动器作为 Anaconda 中的安装源不可用
当源为 USB CD-ROM 驱动器,并且指定了 Kickstart ignoredisk --only-use=
命令时,安装会失败。在这种情况下,Anaconda 无法找到并使用这个源磁盘。
要临时解决这个问题,请使用 harddrive --partition=sdX --dir=/
命令从 USB CD-ROM 驱动器安装。因此,安装不会失败。
Anaconda 不显示自定义分区的加密
当您在系统安装过程中选择自定义分区时,无法使用 Encrypt my data 按钮。因此,安装完成后不会加密您的数据。
要解决这个问题,请为每个您要加密的设备在自定义分区页面中设置加密。Anaconda 在离开对话框时会询问密码短语。
如果没有在 Kickstart 文件中指定分区方案,安装程序会尝试自动分区
当使用 Kickstart 文件执行自动安装时,安装程序会尝试执行自动分区,即使您没有在 Kickstart 文件中指定任何分区命令。安装程序的行为就像在 Kickstart 文件中使用 autopart
命令一样,从而会导致意外的分区。要临时解决这个问题,在 Kickstart文件中使用 reqpart
命令,以便您可以交互式地配置手动分区。
(BZ#1954408)
new osbuild-composer
后端不会在升级时从 lorax-composer 复制
蓝图状态
从 lorax-composer
后端升级到新 osbuild-composer
后端的镜像构建器用户,蓝图可能会消失。因此,升级完成后,蓝图不会自动显示。要临时解决这个问题,请执行以下步骤。
先决条件
-
已安装
composer-cli
CLI 工具。
流程
运行该命令,将之前基于
lorax-composer
的蓝图加载到 newosbuild-composer
后端:$ for blueprint in $(find /var/lib/lorax/composer/blueprints/git/workspace/master -name '*.toml'); do composer-cli blueprints push "${blueprint}"; done
因此,相同的蓝图现在包括在 in osbuild-composer
后端。
其它资源
- 有关此已知问题的详情,请参阅镜像构建器蓝图在 Red Hat Enterprise Linux 8.3 的更新后不再存在。
在蓝图和 Kickstart 文件中添加相同的用户名会导致 Edge 镜像安装失败
要安装 RHEL for Edge 镜像,用户必须创建一个蓝图来构建 rhel-edge-container 镜像
,并创建一个 Kickstart 文件来安装 RHEL for Edge 镜像。当在蓝图和 Kickstart 文件中添加相同的用户名、密码和 SSH 密钥时,RHEL for Edge 镜像安装会失败。目前,还没有临时解决方案。
如果在仓库刷新完成前尝试使用 CDN 取消注册,则 GUI 安装可能会失败
从 RHEL 8.2 开始,当使用 Content Delivery Network(CDN)注册您的系统并附加订阅时,GUI 安装程序会启动对仓库元数据的刷新。刷新过程不是注册和订阅过程的一部分,因此在 Connect to Red Hat 窗口中启用了 Unregister 按钮。根据网络连接,刷新过程可能需要一分钟以上的时间完成。如果您在刷新过程完成前点 Unregister 按钮,则 GUI 安装可能会失败,因为未注册过程会删除 CDN 仓库文件和安装程序与 CDN 通信所需的证书。
要临时解决这个问题,点 连接到红帽 窗口中的 Register 按钮后在 GUI 安装中完成以下步骤:
- 在 连接到红帽的 窗口中点 完成 返回 安装概述 窗口。
- 在 安装概述 窗口中验证 安装源 和 软件选择状态 信息是否以斜体显示任何处理信息。
- 当安装源和软件选择类别准备好后,点 连接到红帽。
- 点 Unregister 按钮。
执行这些步骤后,您可以在 GUI 安装过程中安全地取消注册系统。
(BZ#1821192)
属于多个机构的用户帐户注册失败
目前,当试图使用属于多个机构的用户帐户注册系统时,注册过程会失败并显示出错信息, You must specify an organization for new units。
要临时解决这个问题,您可以:
- 使用不属于多个机构的不同用户帐户。
- 使用 GUI 和 Kickstart 安装的的 Connect to Red Hat 中的Activation Key 验证方法。
- 跳过连接到红帽的注册步骤,并使用 Subscription Manager 在安装后注册您的系统。
使用图形安装程序时,Red Hat Insights 客户端无法注册操作系统
目前,安装会失败,并显示结尾时指向 Insights 客户端的错误。
要临时解决这个问题,在安装程序注册系统前,在 连接到 Red Hat 这一步骤取消选择 Connect to Red Hat Insights 选项。
因此,您可以使用以下命令完成安装并在以后注册到 Insights:
# insights-client --register
磁盘扇区大小不一致的情况下,使用 autopart
工具安装会失败。
多个磁盘扇区大小不一致的情况下,使用 autopart
安装 RHEL 会失败。作为临时解决方案,请使用 plain
分区方案,如 autopart --type=plain
,而不是默认的 LVM
方案。另一个选择是尝试重新配置扇区大小,例如运行 hdparm --set-sector-size=<SIZE> <DEVICE>
。
作为 kickstart 安装的临时解决方案:
-
通过指定
ignoredisk --drives=
来限制用于分区的磁盘。或--only-use=...
-
指定要用于每个创建的 LVM 物理卷的磁盘:
partition pv.1 --ondisk=...
作为手动安装的临时解决方案:
- 在图形或文本模式中进行手动安装时,只选择扇区大小相同的磁盘。
- 当选择扇区大小不一致的磁盘进行安装时,请将每个创建的 LVM 卷组限制为使用具有相同扇区大小的物理卷。这只能在自定义分区中的图形模式下完成。
(BZ#1935722)
在启动过程中初始失败后,GRUB 会重试访问磁盘
有时,存储区域网络(SAN)无法确认 打开
和 读取
磁盘调用。在以前的版本中,用于进入 grub_rescue
提示符的 GRUB 工具会导致引导失败。有了这个更新,在初始调用打开并读取磁盘失败后,GRUB 会尝试访问磁盘最多 20 次。如果 GRUB 工具在尝试后仍无法打开或读取磁盘,它将进入 grub_rescue
模式。
(BZ#1987087)
HASH MMU
模式的 IBM Power 系统无法引导,并显示内存分配失败
带有 HASH 内存分配单元(MMU)模式的
IBM Power Systems 支持 kdump
最多 192 个内核。因此,如果在 192 内核中启用了 kdump
,则该系统会失败,并显示内存分配失败。这个限制是因为在 HASH MMU
模式早期引导时 RMA 内存分配造成的。要临时解决这个问题,使用启用 fadump
的 Radix MMU
模式,而不是使用 kdump
。
(BZ#2028361)
在 rhel-guest-image-8.4
镜像上使用 grub2-mkconfig
无法重建 grub.cfg
rhel-guest-image-8.4
类型在 /etc/default/grub
文件中不包含 'GRUB_DEFAULT=saved' 条目。因此,如果您安装了新内核,并使用 grub2-mkconfig -o /boot/grub2/grub.cfg
命令重建了 GRUB,则重启后,系统不能使用新内核引导。要临时解决这个问题,您可以将 GRUB_DEFAULT=saved
附加到 /etc/default/grub
文件中。因此,系统应该可以使用新内核引导。
(BZ#2227218)
10.2. 订阅管理
syspurpose addons
对 subscription-manager attach --auto
输出没有影响。
在 Red Hat Enterprise Linux 8 中,添加了 syspurpose
命令行工具的四个属性:role
、usage
、service_level_agreement
和 addons
目前,只有 role
、usage
和 service_level_agreement
会影响到运行 subscription-manager attach --auto
命令的输出。试图为 addons
参数设置值的用户不会观察到对自动附加的订阅有任何影响。
10.3. 基础架构服务
FIPS 模式中的 postfix TLS 指纹算法需要改为 SHA-256
默认情况下,在 RHEL 8中,postfix
使用带有TLS 的MD5 指纹来进行向后兼容。但是在 FIPS 模式中,MD5 哈希功能不可用,这可能会导致 TLS 在默认 postfix 配置中不正确正常工作。要解决这个问题,在 postfix 配置文件中需要将哈希功能改为 SHA-256。
如需了解更多详细信息,请参阅 Fix postfix TLS in the FIPS mode by switching to SHA-256 instead of MD5。
10.4. 安全性
锁定的用户可以运行 sudo
在使用 ALL
关键字定义 sudoers
权限的系统中,拥有 权限的 sudo
用户可以作为帐户被锁定的用户运行 sudo
命令。因此,仍然可以使用锁定的和过期的帐号来执行命令。
要临时解决这个问题,请启用新实现的 runas_check_shell
选项,并在 /etc/shells
中正确设置有效 shell。这样可防止攻击者在比如 bin
的系统帐户中运行命令。
(BZ#1786990)
libselinux-python
只能通过其模块提供
libselinux-python
软件包只包含用于开发 SELinux 应用程序的 Python 2 绑定,它用于向后兼容。因此,通过 dnf install libselinux-python
命令,默认的 RHEL 8 软件仓库不再提供 libselinux-python
。
要临时解决这个问题,请启用 libselinux-python
和 python27
模块,并使用以下命令安装 libselinux-python
软件包及其相依性软件包:
# dnf module enable libselinux-python # dnf install libselinux-python
或者,使用它的安装配置集在一个命令中安装 libselinux-python
:
# dnf module install libselinux-python:2.8/common
因此,您可以使用相关的模块安装 libselinux-python
。
(BZ#1666328)
UDICA
仅在使用 --env container=podman
启动时才会处理 UBI 8 容器
Red Hat Universal Base Image 8(UBI 8)容器将 container
环境变量设置为 oci
值,而不是 podman
值。这可以防止 udica
工具分析容器 JavaScript 对象表示法(JSON)文件。
要临时解决这个问题,请使用带有 --env container=podman
参数的 podman
命令启动 UBI 8 容器。因此,只有使用上述临时解决方案时,udica 才 可以为
UBI 8 容器生成 SELinux 策略。
默认日志设置在性能上的负面影响
默认日志环境设置可能会消耗 4 GB 内存甚至更多,当 systemd-journald
使用 rsyslog
运行时,速率限制值的调整会很复杂。
如需更多信息,请参阅 RHEL 默认日志设置对性能的负面影响及环境方案。
(JIRA:RHELPLAN-10431)
/etc/passwd- 的文件
权限与 CIS RHEL 8 Benchmark 1.0.0 不一致
由于 CIS Benchmark 存在问题,修正 SCAP 规则可以确保 /etc/passwd-
backup 文件中的权限被配置为 0644
。但是 CIS Red Hat Enterprise Linux 8 Benchmark 1.0.0
需要该文件的文件权限 0600
。因此,在修复后, /etc/passwd-
的文件权限与基准数据不一致。
/etc/selinux/config
中的SELINUX=disabled
无法正常工作
在 /etc/selinux/config
中使用 SELINUX=disabled 选项禁用
SELinux 会导致内核在启用了 SELinux 的情况下引导,并在稍后的引导过程中切换到禁用模式。这可能导致内存泄漏。
要临时解决这个问题,请在内核命令行中添加 selinux=0
参数来禁用 SELinux,如 使用 SELinux 中的在引导时更改 SELinux 模式部分所述。
(JIRA:RHELPLAN-34199)
crypto-policies
错误地允许 Camellia 密码
RHEL 8 系统范围的加密策略应该在所有策略级别禁用 Camellia 密码,如产品文档中所述。但是 Kerberos 协议默认启用密码。
要临时解决这个问题,请应用 NO-CAMELLIA
子策略:
# update-crypto-policies --set DEFAULT:NO-CAMELLIA
在上一命令中,如果您之前从 DEFAULT
切换,将 DEFAULT
替换为加密级别名称。
因此,只有在您通过临时解决方案禁用系统范围的加密策略的所有应用程序中,Camellia 密码才会被正确禁止。
到带有 SHA-1 签名的服务器的连接无法使用 GnuTLS
GnuTLS 安全通讯库以 insecure 形式拒绝 SHA-1 证书签名。因此,使用 GnuTLS 作为 TLS 后端的应用程序无法建立与提供此类证书的对等的 TLS 连接。这个行为与其他系统加密库不一致。
要临时解决这个问题,请升级服务器以使用 SHA-256 或更强大的哈希签名的证书,或切换到 LEGACY 策略。
(BZ#1628553)
Libreswan 忽略了 leftikeport
和 rightikeport
选项
在任何主机到主机的Libreswan连接中,Libreswan 忽略了 leftikeport
和rightikeport
选项。因此,Libreswan 使用默认端口,而不考虑 leftikeport
和 rightikeport
设置。目前还没有可用的临时解决方案。
使用带有 IKEv2
的多个标记的 IPsec 连接无法正常工作
当 Libreswan 使用 IKEv2
协议时,IPsec 的安全标签对于多个连接无法正常工作。因此,使用标记的 IPsec 的 Libreswan 只能建立第一个连接,但无法正确建立后续连接。要使用多个连接,请使用 IKEv1
协议。
FIPS 模式中的 openssl 只接受特定的 D-H 参数
在 FIPS 模式中,使用 OpenSSL 的 TLS 客户端返回一个bad dh value
错误,并中止与使用手动生成参数的服务器的 TLS 连接。这是因为 OpenSSL 当配置为符合 FIPS 140-2 时,只可用于符合 NIST SP 800-56A rev3 附加 D(RFC 3526 中定义的组 14、15、16、17 和 18,以及 RFC 7919)中定义的组。另,,使用 OpenSSL 的服务器会忽略所有其他参数,并选择类似大小的已知参数。要临时解决这个问题,请只使用兼容的组。
(BZ#1810911)
通过 OpenSC pkcs15-init
的智能卡配置过程无法正常工作
file_caching
选项在默认的 OpenSC 配置中是启用的,文件缓存功能无法正确处理pkcs15-init
工具中的一些命令。因此,通过 OpenSC 进行智能卡置备过程会失败。
要临时解决这个问题,请在 /etc/opensc.conf
文件中添加以下代码段:
app pkcs15-init { framework pkcs15 { use_file_caching = false; } }
只有在应用了前面描述的临时解决方案时,通过 pkcs15-init
进行智能卡配置才能正常工作。
systemd 无法从任意路径执行命令
systemd 服务无法从 /home/user/bin
任意路径执行命令,因为 SELinux 策略软件包不包括任何这样的规则。因此,在非系统路径中执行的自定义服务会失败,并最终会在 SELinux 拒绝访问时记录 Access Vector Cache(AVC)拒绝审核信息。要临时解决这个问题,请执行以下操作之一:
使用带有
-c
选项的 shell 脚本执行该命令。例如:bash -c command
-
从常用的命令路径
/bin
、/sbin
、/usr/sbin
、/usr/local/bin
和/usr/local/sbin
中执行命令。
selinux-policy
会阻止 IPsec 在 TCP上工作
RHEL 8.4 中的 libreswan
软件包支持使用 TCP 封装的基于 IPsec 的 VPN。但是,selinux-policy
软件包没有反映这个更新。因此,当将 Libreswan 设置为使用 TCP 时,ipsec
服务将无法绑定到给定的 TCP 端口。
要临时解决这个问题,使用自定义 SELinux 策略:
在文本编辑器中打开一个新的
.cil
文件,例如:# vim local_ipsec_tcp_listen.cil
插入以下规则:
(allow ipsec_t ipsecnat_port_t (tcp_socket (name_bind name_connect)))
- 保存并关闭该文件。
安装策略模块:
# semodule -i local_ipsec_tcp_listen.cil
重启
ipsec
服务:# systemctl restart ipsec
因此,Libreswan 可以绑定并连接到常用的 4500/tcp
端口。
无法使用 Server with GUI
或 Workstation
软件选择和 CIS 安全配置集进行安装
CIS安全配置集与Server with GUI
和Workstation
不兼容。因此,无法使用 Server with GUI
软件选择和 CIS 配置集进行 RHEL 8 安装。使用 CIS 配置集进行尝试安装,且这两种软件选择之一都会生成出错信息:
package xorg-x11-server-common has been added to the list of excluded packages, but it can't be removed from the current software selection without breaking the installation.
要临时解决这个问题,请不要在 Server with GUI
或 Workstation
软件选择中使用 CIS 安全配置集。
rpm_verify_permissions
在 CIS 配置集中失败
rpm_verify_permissions
规则将文件权限与软件包默认权限进行比较。但是,由 scap-security-guide
软件包提供的互联网安全中心(CIS)配置将某些文件权限更改为比默认权限更严格。因此,使用 rpm_verify_permissions
验证某些文件会失败。
要临时解决这个问题,请手动验证这些文件是否具有以下权限:
-
/etc/cron.d
(0700) -
/etc/cron.hourly
(0700) -
/etc/cron.monthly
(0700) -
/etc/crontab
(0600) -
/etc/cron.weekly
(0700) -
/etc/cron.daily
(0700)
Kickstart 在 RHEL 8 中使用 org_fedora_oscap
而不是 com_redhat_oscap
Kickstart 将 Open Security Content Automation Protocol(OSCAP)Anaconda 附加组件作为 org_fedora_oscap
而不是 com_redhat_oscap 来
引用,这可能会导致混淆。这样做可以保持与 Red Hat Enterprise Linux 7 的向后兼容性。
(BZ#1665082)
某些 SSG 中的规则组可能会失败
由于规则及其依赖项未定义,在基准中修复 SCAP 安全指南
(SSG)规则可能会失败。如果需要以特定顺序执行两个或多个规则,例如,当一条规则安装组件和另一个规则配置同一组件时,它们可按错误的顺序运行,并报告错误。要临时解决这个问题,请执行补救两次,第二次运行会修复依赖规则。
OSCAP Anaconda Addon
不会在文本模式中安装所有软件包
如果安装以文本模式运行,则 OSCAP Anaconda Addon
插件无法修改为系统安装程序安装而选择的软件包列表。因此,当使用 Kickstart 指定安全策略配置集且安装以文本模式运行时,安全策略所需的附加软件包不会在安装过程中安装。
要临时解决这个问题,可以使用图形模式运行安装,或者在 Kickstart 文件的 %packages
部分指定安全策略配置集所需的所有软件包。
因此,在没有描述的一个临时解决方案的情况下,安全策略配置集所需的软件包不会在 RHEL 安装过程中安装,且安装的系统与给定的安全策略配置集不兼容。
OSCAP Anaconda Addon
组件无法正确处理自定义配置集
OSCAP Anaconda Addon
插件无法以独立文件中自定义的方式正确处理安全配置集。因此,即使您在对应的 Kickstart 部分正确指定了自定义配置集,RHEL 图形安装中也不会提供自定义配置集。
要临时解决这个问题,请遵循 从原始 DS 创建单一 SCAP 数据流中的说明,以及一个定制文件 知识库文章。因此,您可以在 RHEL 图形安装中使用自定义的 SCAP 配置集。
(BZ#1691305)
在 kickstart 安装过程中修复与服务相关的规则可能会失败
在 kickstart 安装过程中,OpenSCAP 工具有时会错误地显示服务的 enable
或disable
状态补救不需要。因此,OpenSCAP 可能会将安装的系统上的服务设置为不合规的状态。作为临时解决方案,您可以在 kickstart 安装后扫描并修复该系统。这可以解决与服务相关的问题。
某些 rsyslog
优先级字符串无法正常工作
对允许精细控制加密的 imtcp 的
GnuTLS 优先级字符串的支持并不完整。因此,以下优先级字符串无法在 rsyslog
中正常工作:
NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+DHE-RSA:+AES-256-GCM:+SIGN-RSA-SHA384:+COMP-ALL:+GROUP-ALL
要临时解决这个问题,请只使用正确的优先级字符串:
NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+ECDHE-RSA:+AES-128-CBC:+SIGN-RSA-SHA1:+COMP-ALL:+GROUP-ALL
因此,当前的配置必须仅限于可正常工作的字符串。
SELinux 审计规则和 SELinux 布尔配置中存在冲突
如果审计规则列表包含一个含有 subj_*
或 obj_*
字段的审计规则,并且 SELinux 布尔值配置发生了变化,那么设置 SELinux 布尔值会导致死锁。因此,系统会停止响应,需要重启才能恢复。要临时解决这个问题,请禁用包含 subj_*
或 obj_*
字段的所有审计规则,或者在修改 SELinux 布尔值前临时禁用这些规则。
随着 RHSA-2021:2168 公告的发布,内核可以正确处理这种情况,不会再死锁。
(BZ#1924230)
10.5. 网络
nm-cloud-setup
服务从接口中删除手动配置的二级 IP 地址
根据云环境收到的信息,nm-cloud-setup
服务配置网络接口。禁用 nm-cloud-setup
以手动配置接口。然而,在某些情况下,主机上的其他服务也可以配置接口。例如,这些服务可以添加二级 IP 地址。为了避免 nm-cloud-setup
删除二级 IP 地址:
停止并禁用
nm-cloud-setup
服务和计时器:# systemctl disable --now nm-cloud-setup.service nm-cloud-setup.timer
显示可用的连接配置集:
# nmcli connection show
被动受影响的连接配置集:
# nmcli connection up "<profile_name>"
因此,该服务不再从接口中删除手动配置的二级 IP 地址。
当禁用 GRO 时,IPsec 网络流量在 IPsec 卸载过程中失败
当在该设备中禁用通用接收 Offload(GRO)时,IPsec 卸载将不会正常工作。如果在一个网络接口中配置了 IPsec 卸载,且在该设备中禁用 GRO,IPsec 网络流量会失败。
要临时解决这个问题,在该设备中启用 GRO。
(BZ#1649647)
10.6. 内核
某些 BCC 实用程序会显示不必要的警告
由于在某些编译器特定的内核标头中进行了宏重新定义。一些 BPF Compiler Collection(BCC)工具显示以下警告:
warning: __no_sanitize_address' macro redefined [-Wmacro-redefined]
这个警告是没有损害的,可以忽略它。
(BZ#1907271)
在内存热插拔或拔出操作后,vmcore 捕获失败
执行内存 hot-plug 或 hot-unplug 操作后,会更新包含内存布局信息的设备树。因此,makedumpfile
实用程序会尝试访问不存在的物理地址。如果以下条件都满足,就会出现问题:
- IBM Power System 的 little-endian 变体运行 RHEL 8。
-
在系统中启用了
kdump
或者fadump
服务。
因此,如果在内存 hot-plug 或 hot-unplug 操作后触发了内核崩溃,捕获内核将无法保存 vmcore
。
要临时解决这个问题,在 hot-plug 或 hot-unplug 后重启 kdump
服务:
# systemctl restart kdump.service
因此,vmcore
在上述场景中被成功保存。
(BZ#1793389)
kdump在SSH或NFS转储目标上转储vmcore会失败
新版本的 dracut-network
放了对需要 ipcalc
的 dhcp-client
的依赖。因此,当 NIC 端口配置为静态 IP ,并且kdump
配置为在 SSH 或 NFS 转储目标上进行转储,那么kdump
会失败,并显示以下错误消息:
ipcalc: command not found
要临时解决这个问题:
手动安装
ipcalc
软件包。dnf install ipcalc
为
kdump
重新构建initramfs
。kdumpctrl rebuild
重启
kdump
服务。systemctl restart kdump
因此,kdump
在上述场景中是成功的。
(BZ#1931266)
Debug 内核无法在 RHEL 8 的崩溃捕获环境中引导
由于 debug 内核的内存需求特性,会在使用 debug 内核并触发内核 panic 时出现问题。因此,调试内核无法作为捕获内核引导,而是生成一个堆栈追踪。要临时解决这个问题,相应地增大崩溃内核内存。因此,debug 内核可以在崩溃捕获环境中成功引导。
(BZ#1659609)
崩溃内核中的内存分配在引导时失败
在某些 Ampere Altra 系统中,当 BIOS 设置中禁用 32 位区域时,内存分配会失败。因此,kdump
服务无法启动,因为常规内存不够大,无法保留内存分配。
要临时解决这个问题,在 BIOS 中启用 32 位 CPU,如下所示:
- 在您的系统中打开 BIOS 设置。
- 打开 Chipset 菜单。
-
在 Memory Configuration 下,启用
SSlave 32-bit
选项。
因此,崩溃内核会在 32 位区域分配内存,kdump
服务可以正常工作。
(BZ#1940674)
某些内核驱动程序不显示其版本
RHEL 8.4 中更改了很多网络内核驱动程序的模块版本行为。因此,这些驱动程序现在不会显示其版本。或者,在执行 ethtool -i
命令后,驱动程序会显示 内核版本,而不是 驱动程序 版本。要临时解决这个问题,用户可以运行以下命令:
# modinfo <AFFECTED_DRIVER> | grep rhelversion
因此,用户可以在需要的情况下决定受影响内核驱动程序的版本。
请注意,驱动版本字符串中预期的变化对驱动程序本身没有实际影响。
(BZ#1944639)
使用 irqpoll 会导致 vmcore 生成失败
由于在 Amazon Web Services(AWS)云平台上运行的 64 位 ARM 架构中的 nvme
驱动程序存在问题,在第一个内核提供了 irqpoll
内核命令行参数时 vmcore
生成会失败。因此,在内核崩溃后,/var/crash/
目录中不会转储 vmcore
文件。要临时解决这个问题:
将
irqpoll
附加到/etc/sysconfig/kdump
文件中的KDUMP_COMMANDLINE_REMOVE
。KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
从
/etc/sysconfig/kdump
文件中的KDUMP_COMMANDLINE_APPEND
中删除irqpoll
。KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory udev.children-max=2 panic=10 swiotlb=noforce novmcoredd"
-
运行
systemctl restart kdump
命令重启kdump
服务。
因此,第一个内核会正确引导,在内核崩溃时可以捕获 vmcore
文件。
请注意,kdump
服务可能会使用大量崩溃内核内存转储 vmcore
文件。确定捕获内核有足够的内存可用于 kdump
服务。
(BZ#1654962)
HP NMI 监视器并不总是生成崩溃转储
在某些情况下,HP NMI watchdog 的 hpwdt
驱动无法声明一个由 HPE watchdog timer 生成的不可屏蔽中断(NMI),因为 NMI 被 perfmon
驱动所消耗。
缺少的 NMI 是由以下两个条件之一引发的:
- Integrated Lights-Out (iLO) 服务器管理软件中的 Generate NMI 按钮。这个按钮由用户触发。
-
hpwdt
watchdog。默认过期会向服务器发送一个 NMI。
在系统无响应时通常会出现这两个序列。在一般情况下,用于这两种情况的 NMI 处理程序调用 kernel panic()
功能,如果配置了, kdump
服务会生成 vmcore
文件。
由于缺少 NMI,没有调用 kernel panic()
且不收集 vmcore
。
第一种情况(1.),如果系统不响应,它会一直处于这个状态。要临时解决这种情况,请使用虚拟 Power 按钮来重置或者启用服务器。
在第二个示例中(2.),缺少的 NMI 之后会在 9 秒后被自动系统恢复(ASR)重置。
HPE Gen9 服务器行以单位数字显示这个问题。Gen10 频率更小。
(BZ#1602962)
tuned-adm profile powerave
命令会导致系统变得无响应
执行 tuned-adm 配置集 powersave
命令会导致 Penguin Valkyrie 2000 2-socket 系统具有较旧 Thunderx(CN88x)处理器的无响应状态。因此,需要重启系统以便恢复工作。要临时解决这个问题,如果您的系统符合上述说明,请避免使用 powersave
配置集。
(BZ#1609288)
内核 ACPI 驱动程序报告无法访问 PCIe ECAM 内存区域
固件提供的高级配置和电源接口(ACPI)表没有在 PCI 总线设备中定义内存区域。因此,在系统引导时会出现以下警告信息:
[ 2.817152] acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x30000000-0x31ffffff] not reserved in ACPI namespace [ 2.827911] acpi PNP0A08:00: ECAM at [mem 0x30000000-0x31ffffff] for [bus 00-1f]
但是,内核仍然可以访问 0x30000000-0x31ffff
内存区域,并可以正确地将该内存区域分配给 PCI 增强配置访问机制(ECAM)。您可以通过以下输出通过 256 字节偏移访问 PCIe 配置空间来验证 PCI 是正常工作的:
03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD (prog-if 02 [NVM Express]) ... Capabilities: [900 v1] L1 PM Substates L1SubCap: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1- L1_PM_Substates+ PortCommonModeRestoreTime=255us PortTPowerOnTime=10us L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1- T_CommonMode=0us LTR1.2_Threshold=0ns L1SubCtl2: T_PwrOn=10us
因此,您可以忽略警告信息。
有关此问题的详情,请参阅 "Firmware Bug: ECAM area mem 0x30000000-0x31ffffff
not reserved in ACPI namespace" appears during system boot。
(BZ#1868526)
带有默认设置的 hwloc 命令在单个 CPU Power9 和 Power10 LPAR 上无法正常工作
对于 2.2.0 版本的 hwloc
软件包,任何运行 Power9 / Power10 CPU 的单节点Non-Uniform Memory Access(NUMA)系统都被视为"禁用"。因此, all hwloc
命令都无法正常工作,并会显示以下错误信息:
Topology does not contain any NUMA node, aborting!
您可以使用这两个选项之一来解决这个问题:
-
设置环境变量
HWLOC_ALLOW=all
-
在各种
hwloc
命令中使用disallowed
标志
因此,hwloc
命令不会在上述场景中返回任何错误。
OPEN MPI 库可能会使用默认 PML 的触发程序运行时失败
在 OPEN 消息密码界面(OPEN MPI)实现 4.0.x 系列中,Unified communicating X(UCX)是默认的点到点通信器(PML)。之后版本的 OPEN MPI 4.0.x 系列弃用了 openib
Byte Transfer Layer(BTL)。
但是,OPEN MPI 在 同构 集群(与硬件和软件配置相同)上运行时,UCX 仍会为 MPI 单边操作使用 openib
BTL。因此,这可能会导致触发器执行错误。要临时解决这个问题:
-
使用以下参数运行
mpirun
命令:
-mca btl openib -mca pml ucx -x UCX_NET_DEVICES=mlx5_ib0
其中,
-
-mca btl openib
参数禁用openib
BTL -
-mca pml ucx
参数将 OPEN MPI 配置为使用ucx
PML。 -
x UCX_NET_DEVICES=
参数限制 UCX 使用指定的设备
OPEN MPI 在使用 异构 集群(不同硬件和软件配置)中运行时,使用 UCX 作为默认的 PML。因此,这可能会导致 OPEN MPI 任务在运行时出现错误的性能、不响应性行为或崩溃问题。要临时解决这个问题,将 UCX 优先级设置为:
-
使用以下参数运行
mpirun
命令:
-mca pml_ucx_priority 5
因此,OPEN MPI 库可以选择使用 UCX 的可替代传输层。
(BZ#1866402)
将虚拟功能附加到虚拟机时连接会失败
使用传奇 ionic
设备驱动程序的 Pensando 网卡会默默地接受 VLAN 标签配置请求,并在将网络虚拟功能(VF
)附加到虚拟机(VM
)上时尝试配置网络连接。这些网络连接会失败,因为卡的固件还没有支持这个功能。
(BZ#1930576)
10.7. 硬件启用
默认的 7 4 1 7 printk 值有时会导致系统暂时无响应
默认的 7 4 1 7 printk
值可以更好地调试内核的活动。但是,当与串口控制台搭配使用时,这个 printk
设置可能会导致大量 I/O,从而导致 RHEL 系统暂时变得不响应。为了解决这个问题,添加了一个新的 optimize-serial-console
TuneD 配置集,它把默认的 printk
值减为 4 4 1 7。用户可以按照以下方法追踪其系统:
# tuned-adm profile throughput-performance optimize-serial-console
重启后会保留一个较低的 printk
值,这可以降低系统挂起的可能性。
请注意,这个设置更改的代价是丢失额外的调试信息。
(JIRA:RHELPLAN-28940)
10.8. 文件系统和存储
无法将 /boot
文件系统放在 LVM 中
您不能将 /boot
文件系统放在 LVM 逻辑卷中。这种限制的原因如下:
-
在 EFI 系统中,EFI 系统分区 通常充当
/boot
文件系统。uEFI 标准要求有特定的 GPT 分区类型和具体文件系统类型。 -
RHEL 8 在系统引导条目中使用 Boot Loader 规格 (BLS)。这个规格要求
/boot
文件系统可由平台固件可读。在 EFI 系统中,平台固件只能读取 uEFI 标准定义的/boot
配置。 - 在 GRUB 2 引导装载程序中不支持 LVM 逻辑卷。红帽没有计划进行改进,因为如 uEFI 和 BLS 的标准,这个功能的使用情况正在下降。
红帽不计划在 LVM 中支持 /boot
。反之,红帽提供了管理系统快照和回滚的工具,这些工具不需要将 /boot
文件系统放在 LVM 逻辑卷中。
(BZ#1496229)
LVM 不再允许使用混合块大小创建卷组
LVM 工具(如 vgcreate
或 vgextend
)不再允许您创建有不同逻辑块大小的物理卷(PV)的卷组(VG)。LVM 启用了这个更改,因为如果您使用不同块大小的 PV 扩展了基本逻辑卷(LV),文件系统将无法挂载。
要重新创建带有混合块大小的 VG,在 lvm.conf
文件中设置 allow_mixed_block_sizes=1
选项。
LVM writecache
的限制
writecache
LVM 缓存方法有以下限制,这些限制不会出现在 cache
方法中:
-
使用
pvmove
命令时您无法命名writecache
逻辑卷。 -
您不能将带有
writecache
的逻辑卷与精简池或 VDO 结合使用。
以下限制也适用于 cache
方法:
-
您不能在将
cache
或writecache
附加到逻辑卷时重新定义大小。
(JIRA:RHELPLAN-27987、BZ#1798631、BZ#1808012)
保存一个 LUKS 卷的 LVM mirror
设备有时将变为无响应
在某些情况下,保存 LUKS 卷的片段类型的 mirror
LVM 设备可能会变得无响应。无响应设备会拒绝所有 I/O 操作。
要解决这个问题,红帽建议在有弹性软件定义的存储之上使用带 raid1
的片段类型的 LVM RAID 1 设备而不是镜像( mirror
)。
raid1
segment 类型是默认的 RAID 配置类型,它作为推荐的解决方案替换 mirror
。
要将 mirror
设备转换为 raid1
,请参阅将镜像 LVM 设备转换为 RAID1 设备。
(BZ#1730502)
NFS 4.0 补丁可能会导致 open-heavy 工作负载性能降低。
在以前的版本中,存在一个程序错误,在某些情况下,可能会导致 NFS 打开操作覆盖文件已被删除或重命名在服务器中的事实。但是,这个修复可能会在需要很多打开操作的工作负载中造成性能下降。要临时解决这个问题,您可能需要使用 NFS 版本 4.1 或更高版本,这些版本已被改进为客户端在本地、快速和安全地执行开放操作。
(BZ#1748451)
当指定了多个配额类型时,xfs_quota state
不会输出所有宽限期
目前,xfs_quota state
命令不会像指定多个配额类型选项那样输出配额的宽限期。要临时解决这个问题,请单独在命令选项中指定所需的配额类型,例如:xfs_quota state -g
、xfs_quota state -p
或 xfs_quota state -u
.
(BZ#1949743)
10.9. 高可用性和集群
ocf:heartbeat:pgsql
资源代理以及任何在其停止操作中解析crm_mon
输出的第三方代理可能无法在 RHEL 8.4 的关闭过程停止。
在 RHEL 8.4 GA 版中,Pacemaker 的crm_mon
命令行工具被修改为显示"shutting down"信息,而不是 Pacemaker 开始关闭时通常的集群信息。因此,无法监控关闭进度(如停止资源),并且在其停止操作中解析 crm_mon 输出的资源代理(如 随resource-agents软件包一起分发的ocf:heartbeat:pgsql
代理或一些自定义或第三方代理)可能无法停止,从而导致集群问题。
在 z-stream 可用前,建议使用 ocf:heartbeat:pgsql
资源代理的集群不要升级到 RHEL 8.4。
10.10. 动态编程语言、网页和数据库服务器
当有 32 位应用程序调用 getpwnam()
时,可能会失败
当 NIS 用户使用32 位应用程序调用 getpwnam()
函数时,如果没有 nss_nis.i686
软件包,则调用会失败。要临时解决这个问题,使用 yum install nss_nis.i686
手动安装缺少的软件包。
OpenLDAP 库之间的符号冲突可能会导致 httpd
中的崩溃
当 OpenLDAP 提供的 libldap
和libldap_r
库被加载并在单个进程中使用时,这些库之间可能会出现符号冲突。因此,如果 mod_security
或 mod_auth_openidc
模块也由 httpd
配置加载,则使用 PHP ldap
扩展的 Apache httpd
子进程可能会意外终止。
从因为RHEL 8.3 更新到 Apache Portable Runtime(APR)库,您可以通过设置 APR_DEEPBIND
环境变量来临时解决这个问题,该变量在载入 httpd
模块时,允许使用 RTLD_DEEPBIND
动态链接器选项。当 APR_DEEPBIND
环境变量启用时,会不再在加载冲突库的 httpd
配置中崩溃。
(BZ#1819607)
在启用 OQGraph
插件时,MariaDB 10.5
不会对删除不存在的表发出警告
当 OQGraph
存储引擎插件加载到 MariaDB 10.5
服务器 时,MariaDB
不会对删除不存在的表发出警告。特别是,当用户尝试使用DROP TABLE
或DROP TABLE IF EXISTS
SQL命令删除不存在的表时,MariaDB
不会返回错误信息,也不会记录警告。
请注意,OQGraph
插件由 mariadb-oqgraph-engine
软件包提供,该软件包默认情况下不会安装。
PAM 插件版本 1.0 在 MariaDB
中无法正常工作
MariaDB 10.3
提供可插拔验证模块(PAM)插件版本 1.0。MariaDB 10.5
提供插件版本 1.0 和 2.0,版本 2.0 是默认版本。
MariaDB
PAM 插件版本 1.0 在 RHEL 8 中不起作用。要临时解决这个问题,请使用 mariadb:10.5
模块流提供的 PAM 插件版本 2.0。
另请参阅 MariaDB 10.5
提供 PAM 插件版本 2.0。
pyodbc
不适用于 MariaDB 10.3
pyodbc
模块目前不适用于 RHEL 8.4 发行版本中包含的 MariaDB 10.3
服务器。MariaDB 10.3
服务器的早期版本和 MariaDB 10.5
服务器不受此问题的影响。
请注意,问题的根源在 mariadb-connector-odbc
软件包中,受影响的软件包版本如下:
-
pyodbc-4.0.30
-
mariadb-server-10.3.27
-
mariadb-connector-odbc-3.0.7
10.11. 编译器和开发工具
GCC Toolset 10:Valgrind 错误报告了对 IBM z15 架构的支持
Valgrind 尚不支持某些 IBM z15 处理器功能,但 GCC Toolset 10 Valgrind 中的一个错误会导致它在 z15 支持的系统上运行时报告对 z15 的支持。因此,尝试使用 z15 功能的软件无法在 Valgrind 下运行。要临时解决这个问题,在 z15 处理器中运行时,使用通过 /usr/bin/valgrind 访问的 Valgrind 系统版本。此构建将不会报告 z15 的支持。
PCP 中的 pmproxy
内存泄漏
pmproxy
服务在Co-Pilot(PCP)5.3.0之前的版本中会遇到内存泄漏的问题。 。在 RHEL 8.4 以及 RHEL 8 的早期小版本中,PCP 版本 5.3.0 不可用。因此,RHEL 8 用户可能会遇到比预期更高的内存使用率。
要临时解决这个问题,请限制 pmproxy
的内存使用率:
通过执行以下命令来创建
/etc/systemd/system/pmproxy.service.d/override.conf
文件:# systemctl edit pmproxy
在
override.conf
中添加以下内容并保存修改:[Service] MemoryMax=10G
根据您的需求替换 10G 值。
重启
pmproxy
服务:# systemctl restart pmproxy
因此,如果 pmproxy
的内存使用率达到了给定的限制,pmproxy
服务会被重启。
(BZ#1991659)
10.12. Identity Management
如果所有 KRA 成员都是隐藏的副本,则安装 KRA 会失败
如果在隐藏的副本中安装第一个 KRA 实例,ipa-kra-install
程序会在有密钥恢复授权(KRA)的集群中失败。因此,您无法向集群添加更多 KRA 实例。
要临时解决这个问题,请在添加新的 KRA 实例前,清除具有 KRA 角色的隐藏副本。ipa-kra-install
成功完成后您可以再次隐藏它。
将 cert-fix
程序与 --agent-uid pkidbuser
选项一同使用会破坏证书系统
使用带有 --agent-uid pkidbuser
选项的 cert-fix
工具可破坏证书系统的 LDAP 配置。因此,,证系统可能会变得不稳定,需要手动步骤才能恢复该系统。
IdM 主机上的 /var/log/lastlog
稀疏文件可能会导致性能问题
在 IdM 安装过程中,从总计 10,000 个可能范围内会随机选择并分配一个 200,000 UID 范围。当您决定以后合并两个独立的 IdM 域时,以这种方法选择一个随机范围可显著降低冲突 ID 的可能性。
但是,具有高 UID 可能会造成 /var/log/lastlog
文件的问题。例如,如果 UID 为 1280000008 的用户登录到 IdM 客户端,本地 /var/log/lastlog
文件大小增加到近 400 GB。虽然实际文件是稀疏的,且没有使用所有空间,但某些应用程序默认不是为识别稀疏文件而设计的,且可能需要一个特定的选项来处理这些文件。例如,如果设置比较复杂,备份和复制应用程序无法正确处理稀疏文件,则该文件会像大小为 400 GB 一样被复制。这个行为可能会导致性能问题。
要临时解决这个问题:
- 如果是标准软件包,请参考其文档来识别处理稀疏文件的选项。
-
如果是自定义应用程序,请确保它能够正确管理稀疏文件,如
/var/log/lastlog
。
(JIRA:RHELPLAN-59111)
FreeRADIUS 会默默地截断大于 249 个字符的 Tunnel-Password
如果 Tunnel-Password 大于 249 个字符,则 FreeRADIUS 服务会默默地截断它。这可能导致无法预期的,与其它系统不兼容的密码。
要临时解决这个问题,请选择 249 个字符或更少的密码。
FIPS 模式不支持使用共享 secret 建立跨林信任
在 FIPS 模式中使用共享 secret 建立跨林信任会失败,因为 NTLMSSP 身份验证不兼容 FIPS。要临时解决这个问题,在启用了 FIPS 模式的 IdM 域和 AD 域间建立信任时,使用 Active Directory(AD)管理帐户进行身份验证。
在 rebase 到版本 1.2.2 后,降级authselect
会破坏系统身份验证
authselect
软件包已 rebase 到最新的上游版本 1.2.2
。不支持降级 authselect
,这会中断所有用户的系统身份验证,包括root
用户。
如果您将authselect
软件包降级到 1.2.1
或更早版本,请执行以下步骤来解决这个问题:
-
在 GRUB 引导屏幕中,选择带有您要引导的内核版本的
Red Hat Enterprise Linux
,然后按e
编辑该条目。 -
在以
linux
开头的行尾输入single
,然后按Ctrl+x
来启动引动过程。 - 以单用户模式引导时,输入 root 密码。
使用以下命令恢复 authselect 配置:
# authselect select sssd --force
如果 pki-ca 软件包版本早于 10.10.5,则将 IdM 服务器从 RHEL 8.3 升级到 RHEL 8.4 会失败
如果 pki-ca
软件包版本早于 10.10.5,IdM 服务器升级程序ipa-server-upgrade
会失败。由于这些版本中所需的文件不存在,因此在包安装以及执行ipa-server-upgrade
或 ipactl
时,IdM 服务器升级无法成功完成。
要解决这个问题,将 pki-*
软件包升级到 10.10.5 或更高版本,然后再次运行 ipa-server-upgrade
命令。
(BZ#1957768)
将对 ldap_id_use_start_tls
选项使用默认值时有潜在的风险
当使用没有 TLS 的 ldap://
进行身份查找时,可能会导致攻击向量的风险。特别是中间人(MITM)攻击,其允许攻击者通过更改例如 LDAP 搜索中返回的对象的 UID 或 GID,来冒充用户。
目前,用于强制 TLS ldap_id_use_start_tls
的 SSSD 配置选项默认为 false
。确保您的设置在可信环境中操作,并决定对 id_provider = ldap
使用未加密的通信是否安全。注意 id_provider = ad
和 id_provider = ipa
不受影响,因为它们使用 SASL 和 GSSAPI 保护的加密连接。
如果使用未加密的通信不安全,请在 /etc/sssd/sssd.conf
文件中将 ldap_id_use_start_tls
选项设置为 true
来强制使用 TLS。计划在以后的 RHEL 版本中更改默认行为。
(JIRA:RHELPLAN-155168)
10.13. Desktop
无法从软件仓库中禁用 flatpak
程序库
目前,在 GNOME 软件工具中的软件程序库工具中无法禁用或删除 flatpak
程序库。
在桌面和应用程序间进行拖放操作无法正常工作
由于 gnome-shell-extensions
软件包中的一个 bug,drag-and-drop 功能目前在桌面和应用程序间无法正常工作。以后的发行版本中将重新添加对这个功能的支持。
第二代 RHEL 8 虚拟机有时无法在 Hyper-V Server 2016 主机上引导
当使用 RHEL 8 作为在 Microsoft Hyper-V Server 2016 主机上运行的虚拟机(VM)中的客户机操作系统时,虚拟机在某些情况下无法引导,并返回到 GRUB 引导菜单。另外,会在 Hyper-V 事件日志中记录以下错误:
The guest operating system reported that it failed with the following error code: 0x1E
这个错误是由 Hyper-V 主机上的 UEFI 固件错误造成的。要临时解决这个问题,,使用 Hyper-V Server 2019 作为主机。
(BZ#1583445)
10.14. 图形基础结构
radeon
无法正确重置硬件
radeon
内核驱动程序目前没有在 kexec 上下文中正确重置硬件。相反,radeon
无法工作,从而导致剩余的 kdump 服务失败。
要临时解决这个问题,在 kdump 中禁用 radeon
,方法是在 /etc/kdump.conf
文件中添加以下行:
dracut_args --omit-drivers "radeon" force_rebuild 1
重启机器和 kdump。启动 kdump 后,force_rebuild 1
行可能会从配置文件中删除 。
请注意,在这种情况下,kdump 不会提供图形,但 kdump 可成功运行。
(BZ#1694705)
多个 HDR 显示在单个 MST 拓扑上可能无法打开
在使用带有 nouveau
驱动程序的 NVIDIA Turing GPU 的系统上,使用带多个监视器的 DisplayPort
hub(如便携式计算机 dock)支持 HDR 插入其中可能会导致打开失败。这是因为系统错误地认为 hub 中没有足够的带宽来支持所有显示器。
(BZ#1812577)
无法使用 sudo
命令运行图形应用程序
当试图以具有更高权限的用户运行图形应用程序时,应用程序无法打开并带有一个出错信息。发生故障的原因是 Xwayland
被 Xauthority
文件限制,为使用常规用户凭证进行验证。
要临时解决这个问题,使用 sudo -E
命令以 root
用户运行图形程序。
VNC Viewer 显示在 IBM Z 中带有 16 位颜色深度的错误颜色
当您连接到带有 16 位色彩深度的 IBM Z 服务器上的 VNC 会话时,VNC Viewer 应用程序会显示错误的颜色。
要临时解决这个问题,请在 VNC 服务器中设置 24 位颜色深度。使用 Xvnc
服务器将 -depth 16
选项替换为 -depth 24
(在 Xvnc
配置中)。
因此,VNC 客户端会显示正确的颜色,但在服务器中使用更多的网络带宽。
ARM 不支持硬件加速
内置图形驱动程序不支持 64 位 ARM 架构中的硬件加速或 Vulkan API。
要启用硬件加速或者 ARM 上的 Vulkan,安装专有 Nvidia 驱动程序。
(JIRA:RHELPLAN-57914)
ESXi 中的 GUI 可能会因为视频内存较低而崩溃
VMware ESXi 7.0.1 带有 vCenter Server 7.0.1 的 RHEL 虚拟机上的图形用户界面(GUI)需要一定的视频内存。如果您将多个控制台或高分辨率监控器连接到虚拟机,则 GUI 至少需要 16 MB 视频内存。如果您使用较少的视频内存启动 GUI,则 GUI 可能会意外终止。
要临时解决这个问题,请配置虚拟机监控程序为虚拟机分配至少 16MB 视频内存。因此,虚拟机上的 GUI 不会崩溃。
(BZ#1910358)
10.15. 虚拟化
virsh iface-\*
命令无法一致性地工作
因为配置的依赖关系,目前virsh iface-*
命令(如 virsh iface-start
和 virsh iface-destroy
会经常失败。因此,建议您不要使用 virsh iface-\*
命令配置和管理主机网络连接。反之,使用 NetworkManager 程序及其相关管理程序。
(BZ#1664592)
当使用很多 virtio-blk 磁盘时,虚拟机有时无法启动
在虚拟机(VM)中添加大量 virtio-blk 设备可能会耗尽平台中可用的中断向量。如果发生了这种情况,VM 的客户机操作系统无法引导,并显示 dracut-initqueue[392]: Warning: Could not boot
错误。
使用 virtio-blk 将 LUN 设备附加到虚拟机中无法正常工作
q35 机器类型不支持 virtio 1.0 设备,因此 RHEL 8 不支持 virtio 1.0 中弃用的功能。特别是,RHEL 8 主机无法从 virtio-blk 设备发送 SCSI 命令。因此,使用 virtio-blk 控制器时,将物理磁盘作为 LUN 设备附加到虚拟机会失败。
请注意,物理磁盘仍可被传递给客户端操作系统,但应该使用 device='disk'
选项而不是 device='lun'
选项进行配置。
(BZ#1777138)
当主机上禁用 TSX
时,使用 Cooperlake
的虚拟机无法引导
使用 Cooperlake
CPU 模型的虚拟机(VM)目前在主机上禁用 TSX
CPU 标签时无法引导。相反,主机会显示以下出错信息:
the CPU is incompatible with host CPU: Host CPU does not provide required features: hle, rtm
要在此类主机上使用 Cooperlake
生成虚拟机,请在虚拟机 XML 配置中禁用 VM 配置中的 HLE、RTM 和 TAA_NO 标志:
<feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> <feature policy='disable' name='taa-no'/>
在 IBM POWER 系统中使用 perf kvm record
可能会导致虚拟机崩溃
当在 IBM POWER 硬件的 little-endian 变体中使用 RHEL 8 主机时,使用 perf kvm record
命令为 KVM 虚拟机(VM)收集追踪事件样本会导致虚拟机变得没有响应。在以下情况下发生这种情况:
-
perf
工具由非特权用户使用,-p
选项用来标识虚拟机 - 例如perf kvm record -e trace_cycles -p 12345
。 -
虚拟机是使用
virsh
shell 启动的。
要临时解决这个问题,请使用带有-i
选项的 perf kvm
工具来监控使用 virsh
shell 创建的虚拟机。例如:
# perf kvm record -e trace_imc/trace_cycles/ -p <guest pid> -i
请注意,在使用 -i
选项时,子任务不会继承计数器,因此线程不会被监控。
(BZ#1924016)
将 POWER9 客户端从 RHEL 7-ALT 主机迁移到 RHEL 8 会失败
目前,将 POWER9 虚拟机从 RHEL 7-ALT 主机系统迁移到 RHEL 8 会变得没有响应,显示Migration status: active
状态)。
要临时解决这个问题,在 RHEL 7-ALT 主机上禁用 Transparent Huge Pages(THP),这样可使迁移成功完成。
(BZ#1741436)
使用 virt-customize
有时会导致 guestfs-firstboot
失败
使用 virt-customize
工具修改了虚拟机(VM)磁盘镜像后,guestfs-firstboot
服务在某些情况下会因为 SELinux 权限不正确而失败。这会导致虚拟机启动过程中出现各种问题,如创建用户失败或系统注册失败。
要避免这个问题,请在 virt-customize
命令中添加 --selinux-relabel
选项。
带有 iommu_platform=on
的虚拟机无法在 IBM POWER 上启动
RHEL 8 目前不支持 IBM POWER 系统上的虚拟机(VM)的 iommu_platform=on
参数。因此,在 IBM POWER 硬件上启动使用这个参数的虚拟机会导致虚拟机在引导过程中变得无响应。
当在 AMD EPYC 上使用主机透传模式时,虚拟机不会检测到 SMT CPU 拓扑
当在 AMD EPYC 主机上使用 CPU 主机 passthrough 模式引导虚拟机(VM) 时,TOPOEXT
CPU 功能标志不存在。因此,虚拟机无法检测到每个内核有多个线程的虚拟 CPU 拓扑。要临时解决这个问题,使用 EPYC CPU 模型而不是主机透传引导虚拟机。
带有启用 Hyper-V 的 Windows Server 2016 虚拟机无法引导
目前,无法引导使用 Windows Server 2016 作为客户端操作系统的虚拟机,它启用了 Hyper-V 角色,并使用以下 CPU 模型之一:
- EPYC-IBPB
- EPYC
要临时解决这个问题,使用 EPYC-v3 CPU 模型,或者为虚拟机手动启用 xsaves CPU 标记。
(BZ#1942888)
从虚拟机中删除 macvtap 接口会重置所有 macvtap 连接
目前,从带有多个 macvtap
设备的正在运行的虚拟机(VM)中删除 macvtap
接口也会重置其他 macvtap
接口的连接设置。因此,虚拟机可能会遇到网络问题。
在PowerVM上热插拔 IBMVFC 设备会失败
当在 PowerVM hypervisor上使用装有 RHEL 8 操作系统的虚拟机(VM)时,尝试从正在运行的虚拟机中删除 IBM Power Virtual Fibre Channel(IBMVFC)设备当前会失败。相反,它会显示一个 outstanding translation
错误。
要临时解决这个问题,在虚拟机关闭时删除 IBMVFC 设备。
(BZ#1959020)
当使用ibmvfc
驱动程序时,IBM POWER 主机可能会崩溃
当在 PowerVM 逻辑分区(LPAR)上运行 RHEL 8 时,目前可能会因为ibmvfc
驱动程序的问题而出现各种错误。因此,在某些情况下主机的内核可能会出现 panic,例如:
- 使用 Live Partition Mobility(LPM)功能
- 重置主机适配器
- 使用 SCSI 错误处理(SCSI EH)功能
(BZ#1961722)
在某些情况下,在 RHEL 8 虚拟机上挂载 virtiofs
目录会失败
目前,当使用 virtiofs
功能向虚拟机(VM)提供主机目录时,如果虚拟机使用 RHEL 8.4(或更早版本)内核但 RHEL 8.5(或更新版本)selinux -policy
软件包,则会在虚拟机上挂载目录并显示"Operation not supported"错误。
要临时解决这个问题,请重新启动虚拟机,并将其引导至虚拟机上的最新可用内核。
(BZ#1995558)
10.16. 云环境中的 RHEL
kdump 有时不会在 Azure 和 Hyper-V 上启动
在托管在 Microsoft Azure 或 Hyper-V hypervisor 上的 RHEL 8 客户机操作系统中,启动 kdump
内核在某些情况下会在启用执行后通知程序时失败。
要临时解决这个问题,请禁用 crash kexec post notifiers:
# echo N > /sys/module/kernel/parameters/crash_kexec_post_notifiers
(BZ#1865745)
在 VMWare 主机的 RHEL 8 虚拟机中设置静态 IP 无法正常工作
目前,当在 VMWare 主机中使用 RHEL 8 作为虚拟机(VM)的客户机操作系统时,DatasourceOVF 功能无法正常工作。因此,如果您使用 cloud-init
实用程序将虚拟机的网络设置为静态 IP,然后重启虚拟机,则虚拟机的网络将更改为 DHCP。
内核转储带有特定 NIC 的 RHEL 8 虚拟机到 Azure 的远程机器所需的时间比预期的时间要长
目前,虚拟机使用启用了加速网络的 NIC 时,用 kdump
实用程序将 RHEL 8 虚拟机(VM)的内核转储保存到远程机器上无法正常工作。因此,转储文件会在大约 200 秒后保存,而不是立即保存。另外,在保存转储文件前会在控制台中记录以下出错信息。
device (eth0): linklocal6: DAD failed for an EUI-64 address
(BZ#1854037)
nm-cloud-setup
工具 在 Microsoft Azure 上设置了一个不正确的默认路由
在 Microsoft Azure 上,nm-cloud-setup
工具无法检测云环境的正确网关。因此,实用程序会设置不正确的默认路由,并破坏连接性。目前还没有可用的临时解决方案。
当使用多个客户机磁盘引导 Hyper-V 虚拟机时,SCSI 主机地址有时会改变
目前,当在 Hyper-V hypervisor 上引导 RHEL 8 虚拟机时,主机部分的主机 、Bus、Target、Lun(HBTL)SCSI 地址在某些情况下发生了变化。因此,使用虚拟机中的 HBTL SCSI 识别或者设备节点设置的自动任务无法持续工作。如果虚拟机有多个磁盘,或者磁盘大小不同,会出现这种情况。
要临时解决这个问题,使用以下方法之一修改 kickstart 文件:
方法 1:对 SCSI 设备使用持久性标识符。
您可以使用以下 powershell 脚本来确定具体设备标识符:
# Output what the /dev/disk/by-id/<value> for the specified hyper-v virtual disk. # Takes a single parameter which is the virtual disk file. # Note: kickstart syntax works with and without the /dev/ prefix. param ( [Parameter(Mandatory=$true)][string]$virtualdisk ) $what = Get-VHD -Path $virtualdisk $part = $what.DiskIdentifier.ToLower().split('-') $p = $part[0] $s0 = $p[6] + $p[7] + $p[4] + $p[5] + $p[2] + $p[3] + $p[0] + $p[1] $p = $part[1] $s1 = $p[2] + $p[3] + $p[0] + $p[1] [string]::format("/dev/disk/by-id/wwn-0x60022480{0}{1}{2}", $s0, $s1, $part[4])
您可以在 hyper-v 主机上使用此脚本,如下所示:
PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> .\by-id.ps1 .\Testing_8\disk_3_8.vhdx /dev/disk/by-id/wwn-0x60022480e00bc367d7fd902e8bf0d3b4 PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> .\by-id.ps1 .\Testing_8\disk_3_9.vhdx /dev/disk/by-id/wwn-0x600224807270e09717645b1890f8a9a2
之后,可在 kickstart 文件中使用磁盘值,如下所示:
part / --fstype=xfs --grow --asprimary --size=8192 --ondisk=/dev/disk/by-id/wwn-0x600224807270e09717645b1890f8a9a2 part /home --fstype="xfs" --grow --ondisk=/dev/disk/by-id/wwn-0x60022480e00bc367d7fd902e8bf0d3b4
因为这些值特定于每个虚拟磁盘,因此需要为每个虚拟机实例进行配置。因此,使用 %include
语法将磁盘信息放在单独的文件中可能会很有用。
方法 2:按大小设置设备选择。
根据大小配置磁盘选择的 kickstart 文件必须包含类似如下的行:
... # Disk partitioning information is supplied in a file to kick start %include /tmp/disks ... # Partition information is created during install using the %pre section %pre --interpreter /bin/bash --log /tmp/ks_pre.log # Dump whole SCSI/IDE disks out sorted from smallest to largest ouputting # just the name disks=(`lsblk -n -o NAME -l -b -x SIZE -d -I 8,3`) || exit 1 # We are assuming we have 3 disks which will be used # and we will create some variables to represent d0=${disks[0]} d1=${disks[1]} d2=${disks[2]} echo "part /home --fstype="xfs" --ondisk=$d2 --grow" >> /tmp/disks echo "part swap --fstype="swap" --ondisk=$d0 --size=4096" >> /tmp/disks echo "part / --fstype="xfs" --ondisk=$d1 --grow" >> /tmp/disks echo "part /boot --fstype="xfs" --ondisk=$d1 --size=1024" >> /tmp/disks %end
(BZ#1906870)
RHEL 8 虚拟机在 AWS ARM64 实例上的网络性能较低
当在 Amazon Web Services(AWS) ARM64 实例上运行的虚拟机(VM)中使用 RHEL 8 作为操作系统时,当使用iommu.strict=1
内核参数或 未定义iommu.strict
参数时,VM的网络性能会低于预期。
要临时解决这个问题,将参数改为iommu.strict=0
。但是,这也会降低虚拟机的安全性。
(BZ#1836058)
启用 FIPS 模式时,休眠 RHEL 8 虚拟机会失败
目前,如果虚拟机使用 FIPS 模式,则无法休眠使用 RHEL 8 作为其客户机操作系统的虚拟机。
(BZ#1934033, BZ#1944636)
从备份 AMI 创建的 EC2 实例上未正确生成 SSH 密钥
目前,当从备份 Amazon Machine Image(AMI)创建新的 RHEL 8 的 Amazon EC2 实例时,cloud-init
会删除虚拟机上现有的 SSH 密钥,但不会创建新密钥。因此,在某些情况下虚拟机无法连接到主机。
要临时解决这个问题,请编辑 cloud.cgf
文件,并将"ssh_genkeytypes:~"那行改为 ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519']
。
当在上述的情形中创建 RHEL 8 虚拟机时,可以正确删除并生成 SSH 密钥。
从备份 AMI 创建的 EC2 实例上未正确生成 SSH 密钥
目前,当从备份 Amazon Machine Image(AMI)创建新的 RHEL 8 的 Amazon EC2 实例时,cloud-init
会删除虚拟机上现有的 SSH 密钥,但不会创建新密钥。因此,在某些情况下虚拟机无法连接到主机。
要临时解决这个问题,请编辑 cloud.cgf
文件,并将"ssh_genkeytypes:~"那行改为 ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519']
。
当在上述的情形中创建 RHEL 8 虚拟机时,可以正确删除并生成 SSH 密钥。
10.17. 支持性
redhat-support-tool
无法用于 FUTURE
加密策略
因为客户门户网站 API 中的证书使用的加密密钥不满足 FUTURE
系统范围的加密策略的要求,所以 redhat-support-tool
程序目前无法使用这个策略级别。
要临时解决这个问题,在连接到客户门户网站 API 时使用 DEFAULT
加密策略。
第 11 章 国际化
11.1. Red Hat Enterprise Linux 8 国际语言
Red Hat Enterprise Linux 8 支持多种语言的安装,并根据您的需要更改语言。
- 东亚语言 - 日语、韩语、简体中文和繁体中文。
- 欧洲语言 - 英语、德语、西班牙语、法语、意大利语、葡萄牙语和俄语。
下表列出了为各种主要语言提供的字体和输入法。
语言 | 默认字体(字体软件包) | 输入法 |
---|---|---|
English | dejavu-sans-fonts | |
法语 | dejavu-sans-fonts | |
德语 | dejavu-sans-fonts | |
意大利语 | dejavu-sans-fonts | |
俄语 | dejavu-sans-fonts | |
西班牙语 | dejavu-sans-fonts | |
葡萄牙语 | dejavu-sans-fonts | |
简体中文 | google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts | ibus-libpinyin, libpinyin |
繁体中文 | google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts | ibus-libzhuyin, libzhuyin |
日语 | google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts | ibus-kkc, libkc |
韩语 | google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts | ibus-hangul, libhangul |
11.2. RHEL 8 中国际化的显著变化
RHEL 8 与 RHEL 7 相比,对国际化进行了以下更改:
- 添加了对 Unicode 11 计算行业标准的支持。
- 国际化发布在多个软件包中,这样就可以进行较小的内存占用安装。如需更多信息,请参阅使用语言包。
-
很多
glibc
区域已经与 Unicode Common Locale Data Repository(CLDR)同步。
附录 A. 按组件划分的问题单列表
Bugzilla 和 JIRA ID 列在本文档中以便参考。可公开访问的 Bugzilla 程序错误包括到 ticket 的链接。
组件 | 票证 |
---|---|
| |
| JIRA:RHELPLAN-44450 |
| BZ#1900260, BZ#1878783,BZ#1766944,BZ#1912236 |
| BZ#1796588 |
| |
| BZ#1843266 |
| BZ#1890009, BZ#1874394, BZ#1642391, BZ#1609325, BZ#1854307, BZ#1821192, BZ#1822880, BZ#1914955, BZ#1847681, BZ#1903786, BZ#1931069, BZ#1954408, BZ#1897657 |
| BZ#1819607 |
| |
| BZ#1879411 |
| |
| BZ#1879413 |
| |
| |
| |
| |
| |
| |
| BZ#1795936, BZ#1894361 |
| BZ#1841438 |
| |
| |
| BZ#1877430, BZ#1855776, BZ#1855781, BZ#1657927 |
| |
| |
| |
| BZ#1935497 |
| |
| |
| BZ#1775847 |
| BZ#1861627 |
| |
| BZ#1868446, BZ#1821994, BZ#1850498, BZ#1656139, BZ#1891998 |
| BZ#1853140 |
| |
| BZ#1868106, BZ#1871397, BZ#1880670, BZ#1882466, BZ#1871396, BZ#1893662, BZ#1817513, BZ#1871385, BZ#1871387, BZ#1871395 |
| |
| |
| BZ#1628553 |
| BZ#1870531 |
| |
| |
| |
| BZ#1583445 |
| BZ#1869576, BZ#1883648 |
| |
| BZ#1868683 |
| BZ#1891056, BZ#1340463,BZ#1816784,BZ#1924707,BZ#1664719,BZ#1664718 |
| |
| BZ#1842690, BZ#1906097 |
| BZ#1919283 |
| BZ#1858099 |
| BZ#1806882, BZ#1846838, BZ#1884857, BZ#1876527, BZ#1660290, BZ#1885850, BZ#1649647, BZ#1838876, BZ#1871246, BZ#1893882, BZ#1876519, BZ#1860031, BZ#1844416, BZ#1780258, BZ#1851933, BZ#1885406, BZ#1867490, BZ#1908893, BZ#1919745, BZ#1867910, BZ#1887940, BZ#1874005, BZ#1871214, BZ#1622041, BZ#1533270, BZ#1900674, BZ#1869758, BZ#1861261, BZ#1848427, BZ#1847567, BZ#1844157, BZ#1844111, BZ#1811839, BZ#1877019, BZ#1548297, BZ#1844086, BZ#1839055, BZ#1905088, BZ#1882620, BZ#1784246, BZ#1916583, BZ#1924230, BZ#1793389, BZ#1944639, BZ#1694705, BZ#1748451, BZ#1654962, BZ#1708456, BZ#1812577, BZ#1666538, BZ#1602962, BZ#1609288, BZ#1730502, BZ#1865745, BZ#1868526, BZ#1910358, BZ#1924016, BZ#1906870, BZ#1940674, BZ#1930576, BZ#1907271, BZ#1942888, BZ#1836058, BZ#1934033, BZ#1519039, BZ#1627455, BZ#1501618, BZ#1495358, BZ#1633143, BZ#1570255, BZ#1814836, BZ#1696451, BZ#1348508, BZ#1839311, BZ#1783396, JIRA:RHELPLAN-57712, BZ#1837187, BZ#1904496, BZ#1660337, BZ#1665295, BZ#1569610 |
| BZ#1844941, BZ#1931266, BZ#1854037 |
| BZ#1827015 |
| BZ#1798711 |
| |
| |
| BZ#1607766 |
| |
| |
| BZ#1743650 |
| |
| BZ#1891128, BZ#1372050, BZ#1025061, BZ#1934058, BZ#1934859 |
| BZ#1666328 |
| BZ#1879368 |
| |
| BZ#1664592, BZ#1332758, BZ#1528684 |
| BZ#1844429 |
| BZ#1892716 |
| BZ#1496229, BZ#1768536 |
| |
| |
| |
| BZ#1849096 |
| |
| |
| BZ#1886034 |
| BZ#1895021 |
| |
| BZ#1592011 |
| BZ#1848817 |
| BZ#1674456 |
| |
| BZ#1817533, BZ#1645153 |
| BZ#1844427 |
| BZ#1847433 |
| |
| BZ#1866402 |
| |
| |
| BZ#1810911 |
| |
| BZ#1843932, BZ#1665082, BZ#1674001, BZ#1691305, BZ#1834716 |
| BZ#1887853 |
| |
| |
| |
| BZ#1869399, BZ#1741056, BZ#1667066, BZ#1667061, BZ#1457314, BZ#1839637, BZ#1619620, BZ#1851335 |
| BZ#1890998 |
| |
| |
| BZ#1734854, BZ#1881894, BZ#1932083 |
| |
| |
| |
| BZ#1853297 |
| BZ#1841060 |
| BZ#1629914 |
| BZ#1637872 |
| BZ#1881490 |
| |
| |
| BZ#1790620, BZ#1719687, BZ#1860743, BZ#1740002, BZ#1651994 |
| |
| BZ#1729499, BZ#1898080, BZ#1832394 |
| |
| BZ#1862063 |
| BZ#1471182 |
| BZ#1865990, BZ#1926947, BZ#1889484, BZ#1927943, BZ#1893712, BZ#1893743, BZ#1893906, BZ#1893908, BZ#1895188, BZ#1893696, BZ#1893699, BZ#1889893, BZ#1893961 |
| |
| BZ#1744737 |
| BZ#1869874, JIRA:RHELPLAN-10431, BZ#1679512 |
| BZ#1896712 |
| BZ#1878109, JIRA:RHELPLAN-13195, Jira:RHELDOCS-16612 |
| BZ#1889344, BZ#1927019, BZ#1918742, BZ#1778188, BZ#1843913, BZ#1858866, BZ#1750755 |
| |
| BZ#1889673, BZ#1860443, BZ#1931848, BZ#1461914 |
| |
| BZ#1875290, BZ#1794807 |
| BZ#1940854 |
| BZ#1966838 |
| |
| BZ#1849563 |
| BZ#1819012, BZ#1884196, BZ#1884213, BZ#1784459, BZ#1893698, BZ#1881992 |
| BZ#1875037 |
| |
| |
| |
| BZ#1786990 |
| |
| BZ#1827462 |
| |
| BZ#1913310 |
| |
| |
| |
| |
| |
| |
| |
| BZ#1504123, BZ#1937340 |
| |
| |
| |
| BZ#1949743 |
| BZ#1642887 |
| BZ#1698565 |
其他 | BZ#1839151, BZ#1780124, JIRA:RHELPLAN-59941, JIRA:RHELPLAN-59938, JIRA:RHELPLAN-59950, BZ#1952421, JIRA:RHELPLAN-37817, BZ#1918055, JIRA:RHELPLAN-56664, JIRA:RHELPLAN-56661, JIRA:RHELPLAN-39843, BZ#1925192, JIRA:RHELPLAN-73418, JIRA:RHELPLAN-63081, BZ#1935686, BZ#1634655, JIRA:RHELPLAN-56782, JIRA:RHELPLAN-72660, JIRA:RHELPLAN-72994, JIRA:RHELPLAN-37579, BZ#1952161, BZ#1640697, BZ#1659609, BZ#1687900, BZ#1697896, JIRA:RHELPLAN-59111, BZ#1757877, BZ#1777138, JIRA:RHELPLAN-27987, JIRA:RHELPLAN-28940, JIRA:RHELPLAN-34199, JIRA:RHELPLAN-57914, BZ#1897383, BZ#1741436, BZ#1971061, JIRA:RHELPLAN-58629, BZ#1960412, BZ#1959020, BZ#1690207, JIRA:RHELPLAN-1212, BZ#1559616, BZ#1889737, BZ#1812552, JIRA:RHELPLAN-14047, BZ#1769727, JIRA:RHELPLAN-27394, JIRA:RHELPLAN-27737, JIRA:RHELPLAN-56659, BZ#1906489, BZ#1957316, BZ#1960043, BZ#1642765, JIRA:RHELPLAN-10304, BZ#1646541, BZ#1647725, BZ#1932222, BZ#1686057, BZ#1748980, JIRA:RHELPLAN-71200, BZ#1827628, JIRA:RHELPLAN-45858, BZ#1871025, BZ#1871953, BZ#1874892, BZ#1893767, BZ#1916296, BZ#1926114, BZ#1904251, JIRA:RHELPLAN-59825, BZ#1920624, JIRA:RHELPLAN-70700, BZ#1929173 |
附录 B. 修改历史记录
0.3-6
2024 年 5 月 23 日星期四,Brian Angelica (bangelic@redhat.com)
- JIRA:RHELDOCS-18188 (网络)中更新的增强。
0.3-5
2024 年 5 月 9 日星期四,Brian Angelica (bangelic@redhat.com)
0.3-4
2024 年 5 月 9 日星期四,Gabriela Fialova (gfialova@redhat.com)
- 更新了一个已知问题 BZcriu0502 ( Storage)。
0.3-3
2024 年 2 月 29 日星期四, Lucie Vaááková(lvarakova@redhat.com)
- 添加了一个已弃用的功能 JIRA:RHELDOCS-17641 (网络)。
0.3-2
2023 年 11 月 10 日星期五, Gabriela Fialová(gfialova@redhat.com)
- 更新了对 RHEL 文档提供反馈的模块。
0.3-1
2023 年 11 月 7 日星期二, Gabriela Fialová(gfialova@redhat.com)
- 修复损坏的链接。
0.3-0
2023 年 10 月 13 日星期五, Gabriela Fialová(gfialova@redhat.com)
- 添加了一个技术预览 JIRA:RHELDOCS-16861(容器)。
0.2-9
2023 年 9 月 8 日, Marc Muehlfeld (mmuehlfeld@redhat.com)
- 添加了一个已弃用的功能发行注记 JIRA:RHELDOCS-16612 (Samba)。
0.2-8
2023 年 8 月 11 日星期五, Lucie Vařáková (lvarakova@redhat.com)
- 添加了一个已知问题 BZ#2227218(安装程序和镜像创建)。
0.2-7
2023 年 4 月 27 日星期四, Gabriela Fialová(gfialova@redhat.com)
- 添加了一个已知问题 JIRA:RHELPLAN-155168 (身份管理)。
0.2-6
2023 年 4 月 13 日星期四, Gabriela Fialová(gfialova@redhat.com)
- 修复了 DF 和 KI 中的 2 个坏链接。
0.2-5
2022 年 12 月 8 日星期四,Marc Muehlfeld (mmuehlfeld@redhat.com)
- 添加了一个已知问题 BZ#2132754 (网络)。
0.2-4
Thu Jun 09, Lucie Vařáková (lmanasko@redhat.com)
- 添加了新功能 BZ#1996076 (Identity Management)。
0.2-3
Fri Apr 29, Lenka InventoryServicepaCurveková(lspackova@redhat.com)
- 更新了 已弃用的功能 简介。
- 修复了 BZ#1605216 中的拼写错误。
- 修复了损坏链接。
0.2-2
Thu Mar 24 2022, Jaroslav Klech (jklech@redhat.com)
- 添加了程序错误修复 BZ#1947839 (Kernel)。
0.2-1
Mon Mar 21 2022, Jaroslav Klech (jklech@redhat.com)
- 删除了已知问题(Kernel)。
0.2-0
2022 年 2 月 4 日星期五,Jaroslav Klech(jklech@redhat.com)
- 添加了已弃用的功能 BZ#1871863 (Hardware 启用)。
- 更新了 启用的软件包.
- 添加了已弃用的功能 BZ#1794513 (文件系统和存储)。
0.1-9
2022 年 1 月 20 日星期四,Lucie Maňásková (lmanasko@redhat.com)
- 添加了已知问题 BZ#2028361 (Installer 和 image 创建)。
0.1-8
2021 年 12 月 23 日星期四,Lenka Špačková (lspackova@redhat.com)
-
向技术预览 BZ#1605216 和已弃用的功能 BZ #1878207 (Kernel)添加了有关 Soft-RoCE 驱动程序
rdma_rxe
的信息。
-
向技术预览 BZ#1605216 和已弃用的功能 BZ #1878207 (Kernel)添加了有关 Soft-RoCE 驱动程序
0.1-7
2021 年 12 月 22 日星期三, Lenka Špačková (lspackova@redhat.com)
- 添加了增强 BZ#2005431 (安全性)。
- 更新了 启用的软件包.
0.1-6
Jaroslav Klech 排空 29 2021 号(jklech@redhat.com)
-
更新了
fw_devlink
参数(对外部内核参数的重要更改)。
-
更新了
0.1-5
2021 年 10 月 7 日星期四,Lenka Špačková (lspackova@redhat.com)
- 更新了已知问题 BZ#1942330 (Dynamic 编程语言、Web 和数据库服务器)。
0.1-4
2021 年 10 月 5 日星期二, Lucie Maňásková (lmanasko@redhat.com)
- 添加了已弃用的功能 BZ#1999620(Shells 和命令行工具)。
0.1-3
2021 年 9 月 17 日星期五,Lucie Maňásková (lmanasko@redhat.com)
- 添加了已知问题 BZ#1987087 (Installer)。
0.1-2
Tue Sep 07 2021, Lucie Ma\ásková(lmanasko@redhat.com)
- 更新了已知问题 BZ#1961722 (虚拟化)。
0.1-1
Fri Sep 03 2021, Lenka Špačková (lspackova@redhat.com)
- 更新了已知问题 BZ#1995558 (虚拟化)。
0.1-0
Mon Aug 30 2021, Lenka Špačková (lspackova@redhat.com)
- 添加了一个已知问题 BZ#1995558 (虚拟化)。
- 添加了程序错误修复 BZ#1940854 (容器)。
0.0-9
Fri Aug 20 2021, Lucie Maňásková (lmanasko@redhat.com)
- 向分发一章中添加了 使用 YUM/DNF 的软件包管理。
- 更新了 BZ#1708456 (内核)的文本。
- 添加了新的功能 BZ#1888214 (文件系统和存储)。
- 添加了一个已知问题 BZ#1991659 (Compilers 和 development 工具)。
- 添加了技术预览功能 JIRA:RHELPLAN-58596 (身份管理)。
0.0-8
Tue Aug 10 2021, Lucie Manásková (lmanasko@redhat.com)
- 更新了新的功能 BZ#1905398 (云环境中的 RHEL)。
0.0-7
Tue Aug 03 2021, Lucie Maňásková (lmanasko@redhat.com)
- 添加了已知问题 BZ#1935722 (安装和镜像创建)。
- 添加了已知问题 BZ#1961722 (虚拟化)。
0.0-6
Fri Jul 23 2021, Lucie Maňásková (lmanasko@redhat.com)
- 添加了已知问题 BZ#1924230 (安全性)。
- 添加了已知问题 BZ#1957768 (身份管理)。
0.0-5
Fri Jul 16 2021, Lucie Maňásková (lmanasko@redhat.com)
- 添加了已知问题 BZ#1959020 (虚拟化)。
- 添加了已知问题 BZ#1963981 (云环境中的 RHEL)。
- 添加了新功能 BZ#1340463 (身份管理)。
- 删除了无效的发行注记及其修订历史记录条目。
0.0-4
Wed Jun 23 2021, Lucie Maňásková (lmanasko@redhat.com)
- 添加了新的功能 BZ#1966838 (可支持性)。
-
使用
sfc
更新了已弃用的设备。 - 其他小改进.
0.0-3
Wed Jun 16 2021, Lucie Maňásková (lmanasko@redhat.com)
- 添加了已弃用的功能 BZ#1929173 (网络)。
- 添加了已弃用的功能 BZ#1920624 (编译器和开发工具)。
- 添加了新的功能 JIRA:RHELPLAN-63081 (身份管理)。
- 添加了已知问题 BZ#1949743 (文件系统和存储)。
- 添加了已知问题BZ#1332758 (虚拟化)。
- 添加了已知问题 BZ#1957532 (云环境中的 RHEL)。
- 其他小改进.
0.0-2
Fri Jun 04 2021, Lenka Špačková (lspackova@redhat.com)
- 修复了 BZ#1849815备注。
- 各种格式的改进。
0.0-1
2021 年 5 月 18 日,Lucie Ma\"ásková(lmanasko@redhat.com)
- Red Hat Enterprise Linux 8.4 发行注记。
0.0-0
Wed Mar 31 2021, Lucie Maňásková (lmanasko@redhat.com)
- 发布 Red Hat Enterprise Linux 8.4 Beta 发行注记。