第 5 章 RHEL 8.3.0 发行版本
5.1. 新特性
本部分论述了 Red Hat Enterprise Linux 8.3 中的新特性及主要改进。
5.1.1. 安装程序和镜像创建
Anaconda 被 rebase 到版本 33.16
在这个版本中,Anaconda 被 rebase 到版本 33.16。与上一个版本相比,这个版本提供以下显著改进。
- 安装程序现在在多行中显示静态 IPv6 地址,且不再改变窗口大小。
- 安装程序现在显示支持的 NVDIMM 设备扇区大小。
- 现在,在安装了 IPv6 静态配置的系统中配置了主机名。
- 现在您可以在磁盘加密密码短语中使用非 ASCII 字符。
- 安装程序在 /boot、/tmp 以及除 /usr/local 和 /var/www 之外的所有 /var 和 /usr 挂载点显示一个新文件系统。
- 现在,安装程序可以正确地检查键盘布局。当使用键(ALT+SHIFT) 在不同布局和语言间进行切换时,不会改变键盘布局屏幕的状态。
- 在存在 RAID1 分区的系统上,救援模式不再失败。
-
现在,在
Manual Partitioning
屏幕中可以更改容器的 LUKS 版本。 -
安装程序在没有
btrfs-progs
软件包时可以成功完成安装。 - 安装程序现在将默认 LUKS2 版本用于加密的容器。
-
当 Kickstart 文件将逻辑卷组(VG)的物理卷(PV)放置在
ignoredisk
列表中时,安装程序不再崩溃。 -
为系统根引进一个新的挂载路径
/mnt/sysroot
。这个路径用来挂载目标系统的/
。通常物理根和系统根是相同的,因此/mnt/sysroot
被连接到和/mnt/sysimage
相同的文件系统中。唯一例外是 rpm-ostree 系统,其中的系统根更改基于部署。然后/mnt/sysroot
被附加到/mnt/sysimage
的子目录中。建议您使用/mnt/sysroot
作为 chroot。
(BZ#1691319,BZ#1679893, BZ#1684045, BZ#1688478, BZ#1700450, BZ#1720145, BZ#1723888, BZ#1754977,BZ#1755996, BZ#1784360, BZ#1796310, BZ#1871680)
RHEL 安装程序中的 GUI 更改
RHEL 安装程序现在在安装概述窗口中包括以下用户设置:
- root 密码
- 创建用户
在这个版本中,您可以配置 root 密码并在开始安装前创建一个用户帐户。之前,您需要在安装过程开始后配置一个 root 密码并创建用户帐户。
root 密码是用来登录管理员(又称超级用户或 root)帐户,这些帐户用于系统管理任务。用户名用于从命令行登录;如果您安装了图形环境,则图形登录管理器将使用全名。详情请参阅 执行标准 RHEL 安装文档。
(JIRA:RHELPLAN-40469)
镜像构建器后端 osbuild-composer
替换 lorax-composer
osbuild-composer
后端替换 lorax-composer
。新服务为镜像构建提供 REST API。因此,用户可从更可靠的后端及更可预测的输出镜像中受益。
(BZ#1836211)
镜像构建器 osbuild-composer
支持一组镜像类型
借助 osbuild-composer
后端替换,当前 osbuild-composer
支持的以下镜像类型组:
- TAR Archive (.tar)
- QEMU QCOW2 (.qcow2)
- VMware Virtual Machine Disk (.vmdk)
- Amazon Machine Image (.ami)
- Azure Disk Image (.vhd)
- OpenStack Image (.qcow2)
当前不支持以下输出:
- ext4-filesystem
- partitioned-disk
- Alibaba Cloud
- Google GCE
(JIRA:RHELPLAN-42617)
镜像构建器 现在支持通过 GUI 推送到云
在这个版本中,在创建镜像时,用户可以通过 GUI Image Builder 选择推送到 Azure
和 AWS
服务云的选项。因此,用户可更容易地进行上传及安装。
(JIRA:RHELPLAN-30878)
5.1.2. RHEL for Edge
RHEL for Edge 镜像
在这个版本中,您可以为 Edge 服务器创建自定义 RHEL 镜像。
您可以使用镜像构建器为 RHEL for Edge 镜像,然后使用 RHEL 安装程序在 AMD 和 Intel 64 位系统中部署它们。Image Builder 生成一个 RHEL for Edge 镜像rhel-edge-commit
(在一个 .tar
文件中)。
RHEL for Edge 镜像是一个 rpm-ostree
镜像,其中包含在 Edge 服务器中远程安装 RHEL 的系统软件包。
系统软件包包括:
- 基本操作系统软件包
- podman 作为容器引擎
您可以根据要求自定义镜像来配置 OS 内容,并将其部署到物理和虚拟机中。
在 RHEL for Edge 镜像中,您可以实现:
- 原子升级,每个更新的状态都是已知的,在重新引导该设备前不会看到任何变化。
- 在升级失败时,使用 Greenboot 和智能回滚进行定制健康检查。
- 以容器为主的工作流,可将核心操作系统更新与应用程序更新分开,并测试和部署不同的应用程序版本。
- 为低带宽环境优化 OTA 有效负载。
- 使用 Greenboot 自定义健康检查以确保弹性。
有关 RHEL for Edge 镜像制作、安装和管理的更多信息,请参阅 制作、安装和管理 RHEL for Edge 镜像。
(JIRA:RHELPLAN-56676)
5.1.3. 软件管理
best
dnf 配置选项地默认值从 True
该为 False
有了这个更新,默认配置文件中的 best
dnf 配置选项的值被设置为 True
,以保留原始的 dnf 行为。因此,对于使用默认配置文件的用户来说,行为不会改变。
如果你自己提供自己的配置文件,请确定使用 best=True
选项来保留原有的行为。
dnf reposync
命令的新 --norepopath
选项 现在可用
在以前的版本中, reposync
命令默认为每个下载的仓库在 --download-path
目录下创建一个子目录。在这个版本中,引进了一个 --norepopath
选项,reposync
不会创建子目录。因此,仓库会直接下载到 --download-path
指定的目录中。YUM v3 中也有这个选项。
启用和禁用 libdnf
插件的能力
在以前的版本中,订阅检查被写死到 libdnf
插件的 RHEL 版本。有了这个更新,microdnf
工具可以启用和禁用 libdnf
插件,现在可以以与 DNF 相同的方式禁用订阅检查。要禁用订阅检查,请使用 --disableplugin=subscription-manager
命令。要禁用所有插件,请使用 --noplugins
命令。
5.1.4. Shell 和命令行工具
ReaR
更新
RHEL 8.3 对 Relax-and-Recover (ReaR
) 工具程序引入了大量的更新。主要变更包括:
-
添加了对第三方 Rubrik Cloud Data Management(CDM)作为外部备份软件的支持。要使用它,请将配置文件中的
BACKUP
选项设置为CDM
。 - 在 IBM POWER 上创建一个大于 4 GB 的救援镜像,启用了 little endian 构架。
-
由
ReaR
创建的磁盘布局不再包含 Rancher 2 Longhorn iSCSI 设备和文件系统的条目。
(BZ#1743303)
smartmontools
rebase 到版本 7.1
smartmontools
软件包已升级至版本 7.1,提供多个程序错误修复和增强。主要变更包括:
- 在驱动器数据库中添加 HDD、SSD 和 USB。
-
启用 JSON 输出模式的新选项
-j
和--json
。 -
解决某些 SAS SSD 中不完整的
Log
子页面响应。 -
改进了对
READ CAPACITY
命令的处理。 - 日志页面解码方面的各种改进。
opencryptoki
rebase 到版本 3.14.0
opencryptoki
软件包升级至 3.14.0 版本,提供多个程序错误修复和增强。主要变更包括:
EP11 加密服务增强:
- 支持 Dilithium
- Edwards-curve 数字签名算法(EdDSA)支持
- 支持带有非 SHA1 哈希和掩码生成功能(MGF)的 Rivest-Shamir-Adleman 最佳非对称加密 padding(RSA-OAEP),
- 加强的进程和线程锁定
-
增强的
btree
和对象锁定 - 支持新的 IBM Z 硬件 z15
- 支持可信平台模块(TPM)、IBM 加密架构(ICA)和集成加密服务工具(ICSF)的多个令牌实例
-
添加新工具
p11sak
,它会在openCryptoki
令牌存储库中列出令牌密钥 - 添加了将令牌存储库迁移到兼容 FIPS 加密的工具
-
修复了
了 pkcsep11_migrate
工具 - 对 ICSF 软件进行小修复
(BZ#1780293)
gpgme
被 rebase 到版本 1.13.1。
gpgme
软件包已升级到上游版本 1.13.1。主要变更包括:
-
新的上下文标志
no-symkey-cache
(与 GnuPG 2.2.7 或更高版本一起使用时起作用)、re request-origin
(与 GnuPG 2.2.6 或更新版本一起使用时起作用)、auto-key-locate
和trust-model
已引入。 -
添加了新的工具
gpgme-json
作为 web 浏览器的原生 messaging 服务器。现在,支持公钥加密和解密。 - 引入了新的加密 API,以支持直接密钥规格,包括隐藏接收者选项和从文件中获取密钥。这也允许使用子密钥。
5.1.5. 基础架构服务
powertop
rebase 到版本 2.12
powertop
软件包已升级到 2.12 版本。2.11 版本的显著变化包括:
- 对 SATA 链接 PM 使用设备接口电源管理(DIPM)。
- 支持 Intel Comet Lake 移动和桌面系统、Skylake 服务器和基于 Atom 的 Tremont 架构(Jasper Lake)。
(BZ#1783110)
tuned
rebase 到版本 2.14.0
tuned
软件包已升级到上游版本 2.14.0。主要改进包括:
-
引进
optimize-serial-console
配置集。 - 添加了对 postload 配置集的支持。
-
添加了用于处理
irqbalance
设置的irqbalance
插件。 - 添加了对 Marvell ThunderX 和 AMD 平台的特定架构调整。
-
调度程序插件已扩展,以支持 CPU 关联性设置的
cgroups-v1
。
tcpdump
rebase 到版本 4.9.3
tcpdump
工具已更新至版本 4.9.3 ,以修复常见漏洞和风险(CVE)。
libpcap
rebase 到版本 1.9.1
libpcap
软件包已更新至版本 1.9.1 ,以修复常见漏洞和风险(CVE)。
iperf3
现在在客户端支持 sctp
选项
有了这个增强,用户可以在测试网络吞吐量的客户端使用流控制传输协议(SCTP)而不是传输控制协议(TCP)。
以下 iperf3
的选项现在包括在测试的客户端中:
-
--sctp
-
--xbind
-
--nstreams
要获得更多信息,请参阅 iperf3
man 页中的 Client Specific Options
。
(BZ#1665142)
iperf3
现在支持 SSL
有了这个增强,用户可以在客户端和服务器之间使用 RSA 身份验证,将到服务器的连接限制为合法客户端。
现在,在服务器端支持 iperf3
的以下选项:
-
--rsa-private-key-path
-
--authorized-users-path
以下 iperf3
的选项现在包括在客户端:
-
--username
-
--rsa-public-key-path
bind
rebase 到 9.11.20
bind
软件包已升级到版本 9.11.20,它提供了多个 bug 修复和增强。主要变更包括:
- 通过修复多个竞争条件,提高有很多 CPU 内核的系统的可靠性。
-
详细错误报告:
dig
和其它工具现在可以打印扩展 DNS 错误(EDE)选项。 - 当入站 DNS 区域传输协议(AXFR)中的消息 ID 不一致时,会对其进行检查和记录。
(BZ#1818785)
增加了一个新的 optimize-serial-console
TuneD 配置集,通过降低 printk
值来减小到串口控制台的 I/O
在这个版本中,包括了一个新的 optimize-serial-console
TuneD 配置集。在某些情况下,内核驱动程序可将大量 I/O 操作发送到串口控制台。在将 I/O 写入串口控制台时,这种行为可能会导致系统临时无响应。optimize-serial-console
配置集通过把 printk
的值从默认的 7 4 1 7 改为 4 4 1 7 来减少了这类 I/O具有串行控制台的用户如果希望在自己的系统中进行此更改,则可按如下方式检测其系统:
# tuned-adm profile throughput-performance optimize-serial-console
因此,用户在重启后会有一个较小的 printk
值,这降低了系统停滞的可能性。
这个 TuneD 配置集删除了调试信息,从而减少了写入串口控制台的 I/O 数量。如果您需要收集这个调试信息,应该确保未启用此配置集,并将您的 printk
值设为 7 4 1 7。检查 printk
run 的值:
# cat /proc/sys/kernel/printk
为基于 AMD 的平台添加新的 TuneD 配置集
在 RHEL 8.3 中, throughput-performance TuneD
配置集被更新为包括基于 AMD 的平台的性能优化。不需要手动更改任何参数,它会在 AMD
系统中自动应用调整。AMD Epyc Naples
和─ Rome
系统在默认的 throughput-performance
配置集中修改以下参数:
sched_migration_cost_ns=5000000
和 kernel.numa_balancing=0
通过这个变化,系统性能大约提高了 5%。
(BZ#1746957)
memcached
rebase 到版本 1.5.22
memcached
软件包已升级至 1.5.22 版本。与以前版本相比的显著变化包括:
- 启用 TLS。
-
删除
-o inline_ascii_response
选项。 -
添加
-Y [authfile]
选项和 ASCII 协议的验证模式。 -
Memcached
现在可以在重启之间恢复缓存。 - 添加了新的实验性 meta 命令。
- 各种性能改进。
5.1.6. 安全性
Cyrus SASL
现在支持使用 SASL/GSSAPI
和 SASL/GSS-SPNEGO
插件的通道绑定
在这个版本中增加了对 SASL/GSSAPI
和 SASL/GSS-SPNEGO
插件的通道绑定的支持。因此,当在 openldap
库中使用时,此功能使 Cyrus SASL
能够保持与 Microsoft Active Directory 和 Microsoft Windows 系统的兼容性和访问权限,它们为 LDAP 连接引入了强制通道绑定。
Libreswan rebase 到 3.32
在这个版本中,Libreswan 基于上游版本 3.32,其中包括几个新功能和程序错误修复。主要特性包括:
- libreswan 不再需要独立的 FIPS 140-2 认证。
- libreswan 现在实现了 RFC 8247 的加密建议,并将首选从 SHA-1 和 RSA-PKCS v1.5 改为 SHA-2 和 RSA-PS。
- libreswan 支持 XFRMi 虚拟 ipsecXX 接口来简化编写防火墙规则的过程。
- 改进了在完整加密网络中恢复崩溃和重新引导节点的过程。
libssh
程序库已更新至 0.9.4 版本
使用 SSH 协议的 libssh
库已升级至 0.9.4 版本。
此更新包括程序错误修正和增强,其中包括:
-
添加了对 PEM 文件中
Ed25519
密钥的支持。 -
添加了对
diffie-hellman-group14-sha256
密钥交换算法的支持。 -
添加了对
libssh
客户端配置文件中Match
关键字中localuser
的支持。 -
Match
条件关键字参数现在区分大小写(请注意,关键字区分大小写,但关键字参数区分大小写) - 修复了 CVE-2019-14889 和 CVE-2020-1730。
- 添加了递归创建已知主机文件提供的路径字符串中缺失的目录的支持。
-
添加了对 PEM 文件中带有注释和头空白的
OpenSSH
密钥的支持。 -
从
libssh
服务器配置中删除了OpenSSH
服务器配置中包含的 OpenSSH 服务器配置。
gnutls
rebase 到 3.6.14
gnutls
软件包已更新至上游版本 3.6.14。这个版本提供很多程序错误的修正和增强,最重要的是:
-
gnutls
现在拒绝包含无效字符或格式的Time
字段的证书。 -
gnutls
现在检查可信 CA 证书以最小密钥大小。。 -
显示加密的私钥时,
certtool
工具不再包含其纯文本描述。 -
使用
gnutls
的服务器现在宣传对 OCSP 交换的支持。 -
使用
gnutls
的客户端现在只根据请求发送 OCSP 错误。
gnutls
FIPS DH 检查现在与 NIST SP 800-56A rev 一致。3
这个对 gnutls
软件包的更新提供了 NIST Special Publication 800-56A Revision 3,第 5.7.1.1 和 5.7.1.2 节,第 2 步所需的检查。对于将来的 FIPS 140-2 认证,需要进行修改。因此,在以 FIPS 模式操作时,在 Diffie-Hellman 密钥交换过程中,gnutls
现在只接受 2048 位或 来自 RFC 7919 和 RFC 3526 的更大的参数。
gnutls
现在根据 NIST SP 800-56A rev 3 执行验证
这个对 gnutls
软件包的更新添加了 NIST Special Publication 800-56A Revision 3,第 5.6.2.2.2 和 5.6.2.1.3 节,第 2 步所需的检查。这为将来的 FIPS 140-2 认证进行准备 gnutls
。因此,在使用 FIPS 模式操作时,gnutls
在 Diffie-Hellman 密钥交换过程中为生成和接收的公钥执行额外的验证步骤。
(BZ#1855803)
update-crypto-policies
和 fips-mode-setup
移动到 crypto-policies-scripts
中
update-crypto-policies
和 fips-mode-setup
脚本以前包括在 crypto-policies
软件包中,现在它们被移到一个单独的 RPM 软件包 crypto-policies-scripts
中。软件包通过推荐对常规安装的依赖关系自动安装。这可让 ubi8/ubi-minimal
镜像避免出现 Python 语言解释器,从而减少镜像大小。
OpenSC rebase 到版本 0.20.0
opensc
软件包已更新为 0.20.0 版本,它解决了多个程序错误和安全问题。主要变更包括:
- 在这个版本中,CVE-2019-6502、CVE-2019-15946、CVE-2019-15945、CVE-2019-19480、CVE-2019-19481 和 CVE-2019-19479 安全问题已被解决。
-
OpenSC 模块现在支持
C_WrapKey
和C_UnwrapKey
功能。 - 您现在可以按预期使用工具检测插入和移除卡片读取器。
-
pkcs11-tool
程序现在支持CKA_ALLOWED_MECHANISMS
属性。 - 这个版本允许默认检测 OsEID 卡。
- OpenPGP 卡 v3 现在支持 Elliptic Curve Curve Cryptography (ECC)。
- PKCS#11 URI 现在使用 ellipsis 截断读者名称。
stunnel
被 rebase 到版本 5.56
在这个版本中, stunnel
加密打包程序更新到上游社区版本 5.56,其中包括几个新功能和程序错误修复。主要特性包括:
-
新的
ticketKeySecret
和ticketMacSecret
选项,控制所发出会话问题单的机密性和完整性保护。这些选项允许您恢复集群中其他节点的会话。 -
新的
curves
选项控制 OpenSSL 1.1.0 及之后的版本中的 elliptic curves 列表。 -
新的
ciphersuites
选项来控制允许的 TLS 1.3 密码组列表。 -
为 OpenSSL 1.1.0 及之后的版本添加了
sslVersion
、sslVersionMin
和sslVersionMax
libkcapi
rebased 到版本 1.2.0
libkcapi
软件包更新到上游版本 1.2.0,它包括了较小的修改。
(BZ#1683123)
setools
rebase 到版本 4.3.0
setools
软件包是设计用于进行 SELinux 策略分析的工具集合,已升级到 4.3.0 版本。
此更新包括程序错误修正和增强,其中包括:
-
修订了 Type Enforcing(TE)规则的
sediff
方法,这可显著减少内存和运行时问题。 -
为
seinfo
、sediff
和apol
增加了infiniband
上下文支持 -
添加了用于显示在线文档的 Qt 工具程序位置的
apol
配置。 修复了以下
sediff
问题:- 如果没有请求,显示属性标头。
-
type_transition
文件的名称对比。
-
修复了map socket
sendto
信息流方向的权限问题。 -
在
TypeAttribute
类中添加了方法使其成为完整的 Python 集合。 -
Genfscon
现在会查找类,而不是使用从libsepol
中丢出的固定值。
setools
软件包需要以下软件包:
-
setools-console
-
setools-console-analyses
-
setools-gui
单个 CephFS 文件和目录现在可以有 SELinux 标签
Ceph 文件系统(CephFS)最近启用了在文件的扩展属性中存储 SELinux 标签。在以前的版本中,CephFS 卷中的所有文件都有一个通用标签 system_u:object_r:cephfs_t:s0
。在这个改进中,您可以更改单个文件的标签,SELinux 根据过渡规则定义新创建的文件标签。请注意,之前未标记的文件仍旧有 system_u:object_r:cephfs_t:s0
标签,直到显式更改为止。
OpenSCAP rebase 到版本 1.3.3
openscap
软件包已升级到上游版本 1.3.3,与之前的版本相比它提供了很多 bug 修复和增强,最重要的是:
-
添加了
autotailor
脚本,可让您使用命令行界面(CLI)生成量身定做的文件。 - 向可扩展的配置清单描述格式(XCCDF)TestResult 启动和结束时间戳添加了时区部分
-
添加
yamlfilecontent
独立探测作为实施草稿。 -
在 XCCDF 中引入了
urn:xccdf:fix:script:kubernetes
修复类型。 -
添加了生成
machineconfig
修复的功能。 -
oscap-podman
工具现在可以检测模糊的扫描目标。 -
rpmverifyfile
探测现在可以从/bin
目录中验证文件。 -
修复了在
textfilecontent58
探测中执行复杂常规表达式时的崩溃问题。 -
XCCDF 报告的评估特性现在与
system_info
探测中的 OVAL 实体一致。 -
修复了
textfilecontent58
探测中离线模式下文件路径模式匹配。 -
修复了
systemdunitdependency
探测中的无限重复的问题。
SCAP 安全指南现在提供了一个与 CIS RHEL 8 Benchmark v1.0.0 一致的配置集。
在这个版本中, scap-security-guide
软件包提供了一个与 CIS Red Hat Enterprise Linux 8 Benchmark v1.0.0 一致的配置集。这个配置可让您使用互联网安全中心(CIS)提供的指南强化系统配置。因此,您可以使用 CIS Ansible Playbook 和 CIS SCAP 配置集配置并自动化 RHEL 8 系统与 CIS 的合规性。
请注意,CIS 配置集中的 rpm_verify_permissions
规则无法正常工作。
scap-security-guide
现在提供了一个可以实现 HIPAA 的配置集
这个 scap-security-guide
软件包更新在 RHEL 8 安全合规内容中增加了 Health Insurance Portability and Accountability Act (HIPAA) 配置集。此配置集实施 HIPAA 隐私规则网站上的建议。
HIPAA 安全规则建立了美国国家标准,以保护由涉及的实体创建、接收、使用或维护的个人电子健康信息。安全规则要求适当的管理、物理和技术保护,以确保电子保护的健康信息的机密性、完整性和安全性。
scap-security-guide
rebase 到 0.1.50
scap-security-guide
软件包(包含 Linux 系统的最新安全策略集合)已升级至版本 0.1.50。
这个版本包括程序错误修正和增强,最重要的是:
- Ansible 内容已被改进:第一次有多个包含 Ansible 补救的规则,其他规则已更新,以解决程序错误修复。
修正并改进
scap-security-guide
内容以扫描 RHEL7 系统,包括:-
scap-security-guide
软件包现在提供与 CIS RHEL 7 Benchmark v2.2.0 一致的配置集。请注意,CIS 配置集中的rpm_verify_permissions
规则无法正常工作。在 CIS 配置文件中,rpm_verify_permissions
失败是一个已知的问题。 - SCAP 安全指南配置集现在可以正确地禁用和屏蔽不应启动的服务。
-
scap-security-guide
软件包中的audit_rules_privileged_commands
规则现在可以在特权命令中正常工作。 -
对
scap-security-guide
软件包中的dconf_gnome_login_banner_text
规则的修正不再会失败。
-
SCAP Workbench
现在可以根据定制的配置集生成基于结果的补救方法。
在这个版本中,您可以使用 SCAP Workbench
工具从定制的配置集生成基于结果的补救角色。
(BZ#1640715)
新的 Ansible 角色提供 Clevis 客户端的自动部署
这个 rhel-system-roles
软件包的更新引入了 nbde_client
RHEL 系统角色。这个 Ansible 角色允许您自动部署多个 Clevis 客户端。
新的 Ansible 角色现在可以设置 Tang 服务器
在这个改进中,您可以使用新的 nbde_server
系统角色部署和管理 Tang 服务器作为自动磁盘加密解决方案的一部分。nbde_server
Ansible 角色包含在 rhel-system-roles
软件包中,它支持以下功能:
- 轮转 Tang 密钥
- 部署和备份 Tang 密钥
如需更多信息,请参阅 轮转 Tang 服务器密钥。
clevis
rebase 到版本 13
clevis
软件包升级至版本 13,提供多个程序错误修复和增强。主要变更包括:
-
clevis luks unlock
可在设备中使用非互动模式的密钥文件。 -
如果输入以 JSON 阵列形式提供,
clevis encrypt tpm2
会解析pcr_ids
项。 -
clevis-luks-unbind(1)
手册页不再只引用 LUKS v1。 -
如果给定的密码不正确,
clevis luks bind
不会再写入非活动的插槽。 -
当系统使用非英语区域时,
clevis luks bind
现在可以正常工作。 -
添加了对
tpm2-tools
4.x 的支持。
Clevis luks edit
可让您编辑特定的 pin 配置
这个 clevis
软件包更新引进了新的 clevis luks edit
子命令,可让您编辑特定的 pin 配置。例如,您现在可以更改 Tang 服务器的 URL 地址和 TPM2 配置中的 pcr_ids
参数。您还可以添加和删除新 sss
pin 并更改 sss
pin 的阈值。
(BZ#1436735)
clevis luks bind -y
现在允许自动绑定
在这个版本中,Clevis 支持使用 -y
参数自动绑定。现在,可以将 -y
选项与 clevis luks bind
命令一同使用,该命令可使用 yes 自动回答后续提示。例如,在使用 Tang pin 时,您不再需要手动信任 Tang 密钥。
(BZ#1819767)
fapolicyd
rebase 为版本 1.0
fapolicyd
软件包已改为版本 1.0,它提供多个程序错误修复和增强。主要变更包括:
- 已解决多个线程同步问题。
- 通过减少数据库的大小和载入时间来提高性能。
-
为
fapolicyd.conf
文件中的fapolicyd
软件包增加了一个新的信任选项,以自定义信任后端。您可以将所有可信文件、二进制文件和脚本添加到新的/etc/fapolicyd/fapolicyd.trust
文件中。 -
您可以使用 CLI 管理
fapolicyd.trust
文件。 - 您可以使用 CLI 清理或转储数据库。
-
fapolicyd
软件包会覆盖 magic 数据库来更好地解码脚本。根据覆盖,CLI 会输出类似文件命令的 MIME 类型。 -
/etc/fapolicyd/fapolicyd.rules
文件支持使用一组值作为属性值。 -
fapolicyd
守护进程有一个syslog_format
选项,用于设置audit/sylog 事件格式
。
fapolicyd
现在在 fapolicyd-selinux
中提供自己的 SELinux 策略
在这个版本中,fapolicyd
框架提供了自己的 SELinux 安全策略。守护进程被限制在 fapolicyd_t
域下,并通过 fapolicyd-selinux
子软件包安装该策略。
USBGuard
rebase 到版本 0.7.8
usbguard
软件包被更新到版本 0.7.8,它提供多个程序错误修复和增强。主要变更包括:
-
/etc/usbguard/usbguard-daemon.conf
文件中的HidePII=true|false
参数现在可以隐藏审计条目中的个人可识别信息。 -
/etc/usbguard/usbguard-daemon.conf
文件中的AuthorizedDefault=keep|none|all|internal
参数可预定义控制器设备的授权状态。 -
使用新的
withconnect-type
规则属性,用户现在可以区分设备的连接类型。 -
用户现在可以使用
-t
选项添加临时规则。在守护进程重启前,临时规则都会保留在内存中。 -
usbguard list-rules
现在可以根据特定属性过滤规则。 -
usbguard generate-policy
现在可以为特定设备生成策略。 -
usbguard allow|block|reject
命令现在可以处理规则字符串,并在每个与指定规则字符串匹配的设备上都应用一个目标。 -
包括了新的子软件包
usbguard-notifier
和usbguard-selinux
。
USBGuard
为企业桌面用户提供很多改进
这个对 USBGuard 项目的增加包含了增强和 bug 修复,以提高企业桌面用户的可用性。主要变更包括:
-
为了保持
/etc/usbguard/rules.conf
规则文件的完整性,用户可以在RuleFolder=/etc/usbguard/rules.d/
目录里定义多个配置文件。默认情况下,RuleFolder 在/etc/usbguard-daemon.conf
文件中指定。 -
usbguard-notifier
工具现在提供 GUI 通知。工具会在设备被插入或被拔出时、以及设备是否被任何用户允许、阻塞或拒绝时通知用户。 -
现在您可以在配置文件中包括注释,
usbguard-daemon
不再解析以#
开始的行。
USBGuard 现在在 usbguard-selinux
中提供自己的 SELinux 策略
在这个版本中, USBGuard 框架提供了自己的 SELinux 安全策略。该守护进程限制在 usbguard_t
域下,并通过 usbguard-selinux 子软件包安装该策略
。
libcap
现在支持不同的能力
在这个版本中,用户可以在登录时授予不固定的功能,并避免具有适当配置的进程的 root 访问权限。
(BZ#1487388)
libseccomp
库已更新到 2.4.3 版本
libseccomp
库为 seccomp
系统调用过滤机制提供了一个界面,它已升级到 2.4.3 版本。
这个版本提供了大量的程序错误修正和增强。主要变更包括:
-
更新了 Linux v5.4-rc4 的
syscall
表。 -
不再为不存在的系统调用定义
__NR_x
值。 -
__SNR_x
现在内部使用。 -
为
__SNR_ppoll
增加了define
。 - 修复了 s390/s390x shm* 系统调用的问题。
-
从
libseccomp
工具编译中删除了static
标志。 -
添加了对
io-uring
相关系统调用的支持。 -
修复了 v2.4.0 发行版中引入的 Python 模块命名问题;与之前一样,该模块被命名为
seccomp
。 -
修复了
clang
在scmp_bpf_sim
工具中识别的潜在内存泄漏。
omamqp1
模块现在被支持
有了这个版本更新,AMQP 1.0
协议支持将消息发送到总线上的目的地。在以前的版本中,Openstack 使用 AMQP1
协议作为通信标准,此协议现在可以在 AMQP 信息中记录信息。这个更新引进了 rsyslog-omamqp1
子软件包,来交付 omamqp1
输出模式,它会记录消息并将其发送到总线上的目的地。
OpenSCAP 压缩远程内容
有了这个更新,OpenSCAP 使用 gzip
压缩来传输远程内容。最常见的远程内容类型是基于文本的 CVE 提要,其大小随着时间的推移而增加,通常每次扫描都必须下载。gzip
压缩将带宽降至未压缩内容所需带宽的 10%。因此,这就降低了扫描系统和托管远程内容的服务器之间的整个链的带宽要求。
SCAP 安全指南现在提供了一个与 NIST-800-171 一致的配置集
有了这个更新,scap-security-guide
软件包提供了一个与 NIST-800-171 标准一致的配置文件。该配置文件使您能够根据非联邦信息系统中受控的未机密信息(CUI)的安全要求来强化系统配置。因此,您可以更轻松地配置系统,使其与 NIST-800-171 标准一致。
5.1.7. 网络
IPv4 和 IPv6 连接跟踪模块已合并到 nf_conntrack
模块
这个功能将 nf_conntrack_ipv4
和 nf_conntrack_ipv6
Netfilter 连接跟踪模块合并到 nf_conntrack
内核模块中。由于这个变化,将特定于地址系列的模块列入黑名单不再适用于 RHEL 8.3 ,您只能将 nf_conntrack
模块列入黑名单,以禁用对 IPv4 和 IPv6 协议的连接跟踪支持。
(BZ#1822085)
firewalld 升级到版本 0.8.2
firewalld
软件包已升级到上游版本 0.8.2,它修复了几个程序错误。详情请查看 firewalld 0.8.2 发行注记。
NetworkManager rebase 到版本 1.26.0
NetworkManager
软件包升级至上游版本 1.26.0,它提供了大量的改进和程序错误修复:
- NetworkManager 在停用设备时将自动协商、速度和双工设置重置为原始值。
- 现在,如果所有之前的激活尝试失败,Wil-Fi 配置集会自动连接。这意味着,初始无法自动连接到网络不再阻断自动性能。副作用是之前阻断的现有 Wi-Fi 配置集会自动连接。
-
添加
了 nm-settings-nmcli(5)
和nm-settings-dbus(5)
man page。 - 添加了对多个网桥参数的支持。
- 添加了对虚拟路由和转发(VRF)接口的支持。详情请查看 在不同的接口上永久重复使用相同的 IP 地址。
- 添加了对 Wi-Fi 网络的 Opportunistic Wireistic Wireless Encryption(OWE)模式的支持。
- NetworkManager 现在根据 RFC 3021 支持 IPv4 点对点链接上的 31 位前缀。
-
nmcli
工具现在支持使用nmcli connection modify <connection_name> remove <setting>
命令删除设置。 - 如果缺少主设备,NetworkManager 不再创建并激活从设备。
如需了解更多与显著变化相关的信息,请参阅上游发行注记:
XDP 被有条件地支持
只有满足以下条件时,红帽才支持 eXpress Data Path(XDP)功能:
- 您在 AMD 或者 Intel 64 位构架中载入 XDP 程序
-
您可以使用
libxdp
库将程序加载到内核中 -
XDP 程序使用以下返回代码之一:
XDP_ABORTED
、XDP_DROP
或XDP_PASS
- XDP 程序不使用 XDP 硬件卸载
有关不支持的 XDP 特性的详情,请查看 以技术预览形式提供的 XDP 特性的概述
部分支持 xdp-tools
现在,AMD 和 Intel 64 位构架上支持 xdp-tools
软件包,其包含内核 eXpress Data Path(XDP)功能的用户空间支持工具。这包括 libxdp
库、用于加载 XDP 程序的 xdp-loader
工具,以及用于数据包过滤的 xdp-filter
示例程序。请注意,从启用了 XDP 的网络接口捕获数据包的 xdpdump
工具还是一个技术预览。(BZ#1820670)
dracut
工具默认在初始 RAM 磁盘中使用 NetworkManager
在以前的版本中,dracut
程序使用 shell 脚本管理初始 RAM 磁盘 initrd
中的网络功能。在某些情况下,这可能会造成问题。例如, NetworkManager 会发送另一个 DHCP 请求,即使 RAM 磁盘中的脚本已经请求了一个 IP 地址,这可能导致超时。
在这个版本中, dracut
在初始 RAM 磁盘中使用 NetworkManager,并防止系统运行时出现问题。如果您想要切回到以前的实现,并重新创建 RAM 磁盘镜像,请使用以下命令:
# echo 'add_dracutmodules+=" network-legacy "' > /etc/dracut.conf.d/enable-network-legacy.conf # dracut -vf --regenerate-all
(BZ#1626348)
内核命令行中的网络配置已整合到 ip
参数下
在内核命令行中设置网络配置的 ipv6
、netmask
、gateway
和 hostname
参数已整合到 ip
参数下。ip
参数接受不同的格式,如下所示:
ip=__IP_address__:__peer__:__gateway_IP_address__:__net_mask__:__host_name__:__interface_name__:__configuration_method__
有关此参数接受的各个字段以及其他格式的详情,请查看 dracut.cmdline(7)
手册页中 ip
参数的描述。
RHEL 8 中不再提供 ipv6
、netmask
、gateway
和 hostname
参数。
(BZ#1905138)
5.1.8. 内核
RHEL 8.3 中的内核版本
Red Hat Enterprise Linux 8.3 带有内核版本 4.18.0 240。
RHEL 8.3 的扩展 Berkeley Packet 过滤器
Extended Berkeley Packet Filter(eBPF) 是一个内核中的虚拟机,允许在可访问有限功能的受限沙箱环境中在内核空间中执行代码。虚拟机执行类特殊的装配代码。
eBPF 字节码首先加载到内核,然后进行验证,通过即时编译到原生机器代码转换,然后虚拟机执行代码。
红帽提供大量使用 eBPF 虚拟机的组件。每个组件处于不同的开发阶段,因此目前并不完全支持所有组件。在 RHEL 8.3 中,支持以下 eBPF 组件:
- The BPF Compiler Collection (BCC)工具软件包,提供用于使用 eBPF 的 I/O 分析、联网和监控 Linux 操作系统的工具
- BCC 库,它允许开发与 BCC 工具软件包中相似的工具。
- eBPF for Traffic Control(tc) 功能,可在内核网络数据路径中启用可编程数据包处理。
- eXpress Data Path(XDP)功能在内核网络堆栈处理它们前提供对接收的数据包的访问,在特定情况下被支持。详情请参考发行注记的 Networking 部分。
-
libbpf
软件包对于 bpf 相关应用程序(如bpftrace
和bpf/xdp
开发)至关重要。如需了解更多详细信息,请参阅完全支持的专用发行注记 libbpf。 -
包含 XDP 功能的用户空间支持工具的
xdp-tools
软件包,现在在 AMD 和 Intel 64 位构架上受支持。这包括libxdp
库、用于加载 XDP 程序的xdp-loader
工具以及用于数据包过滤的xdp-filter
示例程序。请注意,用于从启用了 XDP 的网络接口捕获数据包的xdpdump
工具仍是一个不受支持的技术预览。如需了解更多详细信息,请参阅发行注记的 Networking 部分。
请注意,所有其他 eBPF 组件都作为技术预览提供,除非有特定的组件被显示为受支持。
以下显著的 eBPF 组件当前作为技术预览提供:
-
bpftrace
追踪语言 -
用于连接eXpress Data Path (XDP) 路径到用户空间的
AF_XDP
套接字
如需有关技术预览组件的更多信息,请参阅技术预览。
Cornelis 网络 Omni-Path 架构(OPA)主机软件
Red Hat Enterprise Linux 8.3 完全支持 Omni-Path Architecture(OPA)主机软件。OPA 为在集群环境中的计算和 I/O 节点之间的高性能数据传输(高带宽、高消息率、低延迟)提供主机 Fabric Interface(HFI)硬件初始化和设置。
现在默认禁用 TSX
从 RHEL 8.3 开始,内核会默认禁用 Intel® Transactional Synchronization Extensions(TSX) 技术以提高 OS 的安全性。此更改适用于支持禁用 TSX 的 CPU,包括第二代 Intel® Xeon® Scalable Processors(以前被称为 Cascade Lake with Intel® C620 Series Chipsets)。
对于其应用程序不使用 TSX 的用户,该更改消除了在第二代 Intel® Xeon® Scalable Processors 上 TSX Asynchronous Abort(TAA) 缓解措施的默认的性能损失。
此更改还使 RHEL 内核行为与上游一致。上游自 Linux 5.4 开始默认禁用 TSX。
要启用 TSX,请在内核命令行中添加 tsx=on
参数。
(BZ#1828642)
RHEL 8.3 现在支持页面所有者跟踪功能
在这个版本中,您可以使用页面所有者跟踪功能来观察内存在页面分配级别的使用情况。
要启用页面跟踪程序,请执行以下步骤:
# grubby --args="page_owner=on" --update-kernel=0 # reboot
页面所有者跟踪会跟踪内核内存消耗情况,这有助于调试内核内存泄漏并检测使用大量内存的驱动程序。
(BZ#1825414)
现在支持 EDAC for AMD EPYC™ 7003 系列处理器
此增强为 AMD EPYC™ 7003 系列处理器提供了错误检测和修正(EDAC)设备支持。在以前的版本中,修正的(CE)和未修正(UE)内存错误不会在基于 AMD EPYC™ 7003 系列处理器的系统上报告。在这个版本中,会使用 EDAC 来报告这些错误。
(BZ#1735611)
Flamegraph 支持 perf
工具
在这个版本中,perf
命令行工具支持 flamegraphs 来生成系统性能的图形化表示。perf
数据被分组成带有类似堆栈后端的样本。因此,这些数据被转换为可视化表示,以便更容易地识别计算密集型代码区域。要使用 perf
工具生成 flamegraph,请执行以下命令:
$ perf script record flamegraph -F 99 -g -- stress --cpu 1 --vm-bytes 128M --timeout 10s stress: info: [4461] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd stress: info: [4461] successful run completed in 10s [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.060 MB perf.data (970 samples) ] $ perf script report flamegraph dumping data to flamegraph.html
注: 要生成 flamegraphs,请安装 js-d3-flame-graph
rpm。
(BZ#1281843)
/dev/random
和 /dev/urandom
现在由 Kernel Crypto API DRBG 有条件地开机
在 FIPS 模式中,/dev/random
和 /dev/urandom
伪随机数生成器由 Kernel Crypto API Deterministic Random Bit Generator(DRBG)提供支持。FIPS 模式中的应用程序使用上述设备作为 FIPS 兼容的 noise 源,因此设备必须使用 FIPS 批准的算法。为了达到这个目的,需要在 /dev/random
驱动中添加了必需的 hook。因此,hook 在 FIPS 模式中被启用,并导致 /dev/random
和 /dev/urandom
连接到 Kernel Crypto API DRBG。
(BZ#1785660)
libbpf
完全支持
现在,完全支持 libbpf
软件包,它对于 bpftrace
和 bpf/xdp
开发很重要。
它是 bpf-next linux tree bpf-next/tools/lib/bpf
目录及其支持的标题文件镜像。软件包的版本反映了应用程序二进制接口(ABI)的版本。
(BZ#1759154)
lshw
工具现在提供额外的 CPU 信息
在这个改进中, List Hardware utility (lshw) 会显示更多 CPU 信息。CPU version
项现在以数字格式提供系统处理器的家族、模型和步骤,格式为version: <family>.<model>.<stepping>
kernel-rt
源树已更新至 RHEL 8.3 树
kernel-rt
源已更新为使用最新的 Red Hat Enterprise Linux 内核源树。实时补丁集也更新至最新的上游版本 v5.6.14-rt7。这两个更新都提供很多程序错误修正和增强。
(BZ#1818138, BZ#1818142)
tpm2-tools
rebase 到版本 4.1.1
tpm2-tools
软件包已升级至版本 4.1.1 ,其提供了大量命令添加、更新和删除。如需了解更多详细信息,请参阅 在 RHEL8.3 中更新到 tpm2-tools 软件包 解决方案。
(BZ#1789682)
Mellanox ConnectX-6 Dx 网络适配器现已获得全面支持
在这个版本中,Mellanox ConnectX-6 Dx 网络适配器的 PCI ID 被添加到 mlx5_core
驱动中。在使用这个适配器的主机上,RHEL 会自动加载 mlx5_core
驱动程序。此功能以前作为技术预览提供,现在在 RHEL 8.3 中被完全支持。
(BZ#1782831)
mlxsw
驱动程序 rebase 到版本 5.7
mlxsw 驱动程序
升级至上游版本 5.7,包括以下新功能:
- 共享缓冲区占用功能,其提供缓冲区占用数据。
-
数据包丢弃功能,其启用监控
第 2 层
、第 3 层
、隧道
和访问控制列表
丢弃。 - 支持数据包抓取策略器。
- 默认端口优先级配置支持使用链路层发现协议(LLDP)代理。
- 增强的传输选择(ETS)和令牌桶过滤器(TBF)排队规则卸载支持。
-
启用了 RED 排队规则
nodrop
模式,以防止早期数据包丢失。 -
流量类 SKB 编辑操作
skbedit
优先级功能允许更改数据包元数据,并且使用pedit
流量类卸载(TOS)进行补充。
(BZ#1821646)
崩溃内核现在为 kdump 扩展内存保留
有了这个增强,crashkernel=auto
参数会在具有 4GB 内存到 64GB 内存容量的机器上保留更多的内存。在以前的版本中,由于内存保留的有限,随着内核空间和用户空间内存的扩展,崩溃内核无法捕获崩溃转储。因此,崩溃内核会出现内存不足(OOM)错误。这个更新有助于减少上述场景中 OOM 错误的发生,并为 kdump
相应地扩展内存容量。
(BZ#1746644)
5.1.9. 文件系统和存储
LVM 现在可以管理 VDO 卷
LVM 现在支持 Virtual DataOptimizer(VDO)片段类型。现在,您可以使用 LVM 工具创建和管理 VDO 卷作为原生 LVM 逻辑卷。
VDO 提供内联块级 deduplication、压缩和精简置备功能。
如需更多信息,请参阅 RHEL 中的编辑和压缩逻辑卷。
(BZ#1598199)
SCSI 堆栈现在可以更好地用于高性能适配器
SCSI 堆栈的性能有所提高。因此,在 RHEL 上,下一代高性能主机总线适配器(HBA)能够带来更高的 IOPS(每秒 I/O)。
(BZ#1761928)
megaraid_sas
驱动已更新至最新版本
megaraid_sas
驱动已更新为版本 07.713.01.00-rc1。这个版本提供了几个与改进性能、支持 MegaRAID 适配器的稳定性以及更丰富的功能集相关的程序错误修复和增强。
(BZ#1791041)
stratis 现在根据错误列出池名称
当您试图在现有 Stratis 池已经使用的块设备中创建 Stratis 池时,stratis
程序现在会报告现有池的名称。在以前的版本中,实用程序只列出池的 UUID 标签。
FPIN ELS 框架通知支持
lpfc
光纤通道(FC)驱动程序现在支持关于链路完整性的光纤性能影响通知(FPIN),这有助于识别链路级问题,允许交换机选择更可靠的路径。
(BZ#1796565)
用于 LVM on-disk 元数据故障排除的新命令
pvck
工具可在 lvm2
软件包中使用,它现在提供低级命令来调试或者救援物理卷中的 LVM on-disk 元数据
-
要提取元数据,请使用
pvck --dump
命令。 -
要修复元数据,请使用
pvck --repair
命令。
如需更多信息,请参阅 pvck(8)
man page。
(BZ#1541165)
LVM RAID 支持 DM 完整性,以防止因为设备中的数据损坏而丢失数据
现在,可以将设备映射器(DM)完整性添加到 LVM RAID 配置中,以防止数据丢失。完整性层探测到设备中的数据崩溃,并警告 RAID 层以在 LVM RAID 中修复损坏的数据。
当 RAID 防止设备失败造成数据丢失时,在 LVM RAID 阵列中添加完整性可防止因为设备中数据损坏而丢失数据。您可在创建新 LVM RAID 时添加完整性层,或者您可以将其添加到已存在的 LVM RAID 阵列中。
(JIRA:RHELPLAN-39320)
AWS、Azure 和 Aliyun 公有云上支持弹性存储(GFS2)
随着在三大公有云平台(Amazon(AWS)、Microsoft(Azure)和 Alibaba(Aliyun))上支持共享块设备的引入,弹性存储(GFS2)现在在这些平台上得到了支持。因此,现在 GFS2 是一个真正的混合云集群文件系统,可选择在内部和公有云中使用。有关在 Microsoft Azure 和 AWS 上配置共享存储的详情,请参考 在 Microsoft Azure 上部署 RHEL 8 和 在 Amazon Web Services 上部署 RHEL 8。有关在 Alibaba Cloud 中配置共享存储的详情,请参考在 Alibaba Cloud 上为 Red Hat High Availability Cluster 配置共享存储。
用户空间现在支持最新的 nfsdcld
守护进程
用户空间现在支持最新的 nfsdcld
守护进程,这是唯一的命名空间识别客户端跟踪方法。此增强可确保客户打开或锁定从容器化 knfsd
守护进程中的恢复,而不会造成任何数据崩溃。
nconnect
现在支持多个并发连接
在这个改进中,您可以使用 nconnect
功能创建到 NFS 服务器的多个并发连接,从而允许不同的负载均衡功能。使用 nconnect=X
NFS 挂载选择(其中 X 是要使用的并行连接数)启用 nconnect
功能。当前限制为 16。
(BZ#1683394, BZ#1761352)
现在支持用于客户端信息跟踪的 nfsdcld
守护进程
有了这个增强,nfsdcld
守护进程是跟踪稳定存储上每个客户端信息的默认方法。因此,容器中运行的 NFS v4 允许客户端在服务器重启后回收打开或锁定。
(BZ#1817752)
5.1.10. 高可用性和集群
pacemaker
rebase 到版本 2.0.4
Pacemaker 集群资源管理器已升级到上游版本 2.0.4,它提供了大量的程序错误修复。
新的 priority-fencing-delay
集群属性
Pacemaker 现在支持新的 priority-fencing-delay
集群属性,它允许您配置一个双节点集群,以便在脑裂情况下,运行最少资源的节点是被隔离的节点。
priority-fencing-delay
属性可以设置为持续时间。这个属性的默认值为 0(禁用)。如果将此属性设置为非零值,并且 priority
meta-attribute 至少是为一个资源配置的,那么在脑裂情形下,在其上运行的所有资源的具有最高组合优先级的节点将更有可能存活。
例如:如果您设置 pcs resource defaults priority=1
和 pcs property set priority-fencing-delay=15s
,且没有设置其他优先级,那么运行最多资源的节点将更可能丢失,因为其他节点将在启动保护前等待 15 秒。如果特定资源比其他资源更重要,您可以赋予它更高的优先权。
如果为该克隆配置了优先级,运行可升级的克隆 master 角色的节点会得到额外的 1 点。
使用 priority-fencing-delay 设置的任何延迟
都会添加到 pcmk_delay_base
和 pcmk_delay_max
隔离设备属性中的任何延迟。当两个节点具有相等的优先级,或者不是由于节点丢失的原因(例如,为资源监控器操作设置了 on-fail=fencing
)需要对两个节点进行隔离时,这种行为允许一些延迟。如果同时使用,建议您将 priority-fencing-delay
属性设置为显著大于 pcmk_delay_base
和 pcmk_delay_max
之间最大延迟的值,以确保首选优先节点(确保优先节点是完全安全的)。
管理多组资源和操作默认配置的新命令
现在可以创建、列出、更改和删除多个资源组和操作默认值。当您创建一组默认值时,您可以指定一个包含 esource
和 op
表达式的规则。例如,这允许您为特定类型的所有资源配置默认值。列出现有默认值的命令现在在输出中包含多个默认值集。
-
pcs resource [op] defaults set create
命令生成一个新的默认值集合。当使用这个命令指定规则时,只允许使用resource
和op
表达式,包括and
、or
和括号。 -
pcs resource [op] defaults set delete | remove
命令删除默认值。 -
pcs resource [op] defaults set update
命令更改默认值。
(BZ#1817547)
支持标记集群资源
现在可以使用 pcs tag
命令在 Pacemaker 集群中标记集群资源。这个功能允许您使用单个命令管理一组指定的资源。您还可以使用 pcs tag
命令删除或修改资源标签,并显示标签配置。
pcs resource enable
、pcs resource disable
、pcs resource manage
和 pcs resource unmanage
命令接受 tag ID 作为参数。
pacemaker 现在通过降级一个被提升的资源而不是完全停止它来支持恢复
现在,可以在 Pacemaker 集群中配置可升级的资源,这样在对资源执行升级或监控操作失败,或在其中运行资源的分区丢失仲裁时,该资源将被降级,但不会完全停止。
如果您希望资源在未升级模式中仍然可用,则这个功能很有用。例如,如果主数据库的分区丢失仲裁,您可能希望数据库资源失去 Master
角色,但在只读模式下保持活动状态,这样尽管失去了仲裁,仅需要读取的应用程序也能够继续运行。当成功降级足以恢复,且比完全重启快得多时,此功能也很有用。
支持此功能:
on-fail
操作 meta-attribute 现在接受与promote
操作一起使用的demote
值,例如:pcs resource op add my-rsc promote on-fail="demote"
on-fail
操作 meta-attribute 现在接受与monitor
操作一起使用的demote
值,这个操作的interval
设置为一个非零值,role
设置为Master
。例如:pcs resource op add my-rsc monitor interval="10s" on-fail="demote" role="Master"
-
no-quorum-policy
集群属性现在接受demote
值。当设置时,如果集群分区缺少仲裁,任何提升的资源都会降级但会继续运行,所有其他资源将会停止。
为操作指定 demote
meta-attribute 不会影响如何决定资源推广。如果受影响的节点仍然具有最高的升级分数,则会选择再次提升。
(BZ#1837747, BZ#1843079)
新的 SBD_SYNC_RESOURCE_STARTUP
SBD 配置参数,以改进与 Pacemaker 的同步
为了更好地控制 SBD 和 Pacemaker 之间的同步,/etc/sysconfig/sbd
文件现在支持 SBD_SYNC_RESOURCE_STARTUP
参数。当安装了 RHEL 8.3 或更高版本的 Pacemaker 和 SBD 软件包,并使用 SBD_SYNC_RESOURCE_STARTUP=true
配置了 SBD 时,SBD 会联系 Pacemaker 守护进程以了解有关守护进程状态的信息。
在这个配置中,Pacemaker 守护进程会等待指定 SBD 联系后(在子守护进程启动前,且最终退出前)。因此,如果 SBD 无法与它进行活跃通讯,Pacemaker 将不会运行资源,而 Pacemaker 在它向 SBD 报告安全关闭前不会退出。这可以防止一个不太可能出现的情况:当 SBD 在 Pacemaker 最后断开连接前没有运行任何资源时,安全关闭期间可能会出现问题,这会导致不必要的重启。使用一个定义的握手来检测安全关闭也可以在维护模式下工作。以前在没有运行的资源的情况下检测安全关闭的方法需要在维护模式中禁用,因为运行的资源不会在关机时受到影响。
另外,启用此功能可避免当 SBD 和 Pacemaker 可以成功启动但 SBD 无法联系 pacemaker 时,避免了在集群中出现分割崩溃的风险。这可能会发生,例如因为 SELinux 策略。在这种情况下,Pacemaker 假设 SBD 在不工作时可以正常工作。启用这个新功能后,Pacemaker 在 SBD 联系之前不会完成启动。这个新功能的另一个优点是,当启用 SBD 时,它会重复使用 heartbeat 联络 Pacemaker,如果 Pacemaker 停止响应,它可以随时阻塞节点。
如果编辑了 /etc/sysconfig/sbd 文件或者通过 PCS 配置 SBD,那么 RPM 升级将不会拉取新的 SBD_SYNC_RESOURCE_STARTUP
参数。在这些情况下,要实现这个功能,您必须手动在 /etc/sysconfig/sbd.rpmnew
文件中添加它,或者按照 sbd
(8)手册页中的 Configuration via environment
部分中描述的步骤进行添加。
5.1.11. 动态编程语言、网页和数据库服务器
新模块流: ruby:2.7
RHEL 8.3 在新的 ruby:2.7
模块流中引入了 Ruby 2.7.1。这个版本对 RHEL 8.1 提供的 Ruby 2.6 版本提供了很多性能改进、程序错误和安全性修复以及新的功能。
主要改进包括:
- 增加了新的 Compaction Garbage Collector(GC)。这个 GC 可以对碎片化内存进行处理。
- Ruby yet Another Compiler-Compiler (Racc) 现在提供了一个命令行界面用于 one-token Look-Ahead Left-to-Right – LALR(1) – parser generator.
-
交互式 Ruby Shell(
irb
)(捆绑的 Read-Eval-Print Loop(REPL)环境)现在支持多行编辑。 - 模式匹配是作为实验功能引进的,经常在功能编程语言中使用。
- 已引进了作为默认块参数的编号参数作为一个实验性功能。
改进的性能:
- 光纤缓存策略已被修改来加快光纤的创建速度。
-
提高了
CGI.escapeHTML
方法的性能。 -
Monitor
类和MonitorMixin
模块的性能有所改进。
另外,关键字参数和位置参数的自动转换已被弃用。在 Ruby 3.0 中,,positional 参数和 keyword 参数将被分开。如需更多信息,请参阅 上游文档。
要绕过针对实验功能的警告,请使用 -W:no-experimental
命令行选项。要禁用弃用警告,请使用 -W:no-deprecated
命令行选项,或者在您的代码中添加 Warning[:deprecated] = false
。
要安装 ruby:2.7
模块流,请使用:
# yum module install ruby:2.7
如果要从 ruby:2.6
流升级,请参阅切换到更新的流。
(BZ#1817135)
新模块流: nodejs:14
现在提供了一个新的模块流 nodejs:14
。Node.js 14
包含在 RHEL 8.3 中,与 RHEL 8.1 中的 Node.js 12
相比,提供了大量新功能、错误和安全修复。
主要变更包括:
- V8 引擎已升级至 8.3。
- 实施了一个新的实验性 WebAsembly 系统接口(WASI)。
- 引入了一个新的实验性 Async Local Storage API。
- 现在,诊断报告的功能是稳定的。
- streams API 已强化。
- 已删除实验性模块警告。
随着 RHEA-2020:5101 公告的发布,RHEL 8 提供了 Node.js 14.15.0
,它是最新的长期支持(LTS)版本,具有更高的稳定性。
要安装 nodejs:14
模块流,使用:
# yum module install nodejs:14
如果要从 nodejs:12
流升级,请参阅切换到更新的流。
(BZ#1815402,BZ#1891809)
git
rebase 到版本 2.27
git
软件包已升级到上游版本 2.27。之前发布的 2.18 版本的显著变化包括:
git checkout
命令已经被分成两个独立命令:-
git switch
用于管理分支 -
git restore
用于管理目录树中的变化
-
-
git rebase
命令的行为现在默认基于merge
工作流,而不是之前的patch+apply
工作流。要保留之前的行为,把rebase.backend
配置变量设置为apply
。 -
git difftool
命令现在可以在程序库之外使用。 -
引进了四个新配置变量
{author,committer}.{name,email}
,以便在更具体的情况下覆盖user.{name,email}
。 - 添加了几个新选项可让用户配置 SSL 进行与代理沟通。
-
以非 UTF-8 字符编码处理日志消息的提交在
git fast-export
和git fast-import
工具中得到了改善。 -
lfs
扩展已添加为一个新的git-lfs
软件包。Git 大文件存储(LFS)在Git
中使用文本指针替代大型文件,并将文件内容存储在远程服务器上。
(BZ#1825114, BZ#1783391)
Python
的更改
RHEL 8.3 对 python38:3.8
模块流包括以下更改:
-
Python
解释器已更新至 3.8.3 版本,它提供一些程序错误修复。 -
python38-pip
软件包已更新至版本193.1,现在pip
支持安装许多linux2014
wheels。
由 python3
软件包提供的 Python 3.6
解释器性能显著提高。
ubi8/python-27
,ubi8/python-36
和 ubi8/python-38
容器镜像现在支持从自定义软件包索引或 PyPI 镜像(如果客户提供了)安装 pipenv
工具。在以前的版本中,pipenv
只能从上游 PyPI 存储库下载,如果上游存储库不可用,安装会失败。
(BZ#1847416,BZ#1724996,BZ#1827623, BZ#1841001)
新模块流: php:7.4
RHEL 8.3 引入了 PHP 7.4
,它比版本 7.3 提供了很多程序错误修复和增强。
此发行版本引入了一个新的实验性扩展 - Foreign Function Interface(FFI),它可让您调用原生功能、访问原生变量以及创建和访问 C 库中定义的数据结构。FFI 扩展包括在 php-ffi
软件包中。
删除了以下扩展:
-
从
php-xml
软件包中删除wddx
扩展 -
从
php-recode
软件包中删除recode
扩展。
要安装 php:7.4
模块流,请使用:
# yum module install php:7.4
如果要从 php:7.3
流升级,请参阅切换到更新的流。
有关 RHEL 8 中 PHP 使用的详情 ,请参阅使用 PHP 脚本语言。
新模块流:nginx:1.18
nginx 1.18
网页和代理服务器,与版本 1.16 相比,提供多个程序错误修复、安全修复、新功能以及改进。主要变更包括:
-
实现了对 HTTP 请求率和连接限制的增强。例如:
limit_rate
和limit_rate_after
指令现在支持变量,其中包括新的$limit_req_status
和$limit_conn_status
变量。另外,为limit_conn_dry_run
和limit_req_dry_run
指令增加了 dry-run 模式。 -
添加了一个新的
auth_delay
指令,它可启用对未授权请求的处理延迟。 -
以下指令现在支持变量:
grpc_pass
、proxy_upload_rate
和proxy_download_rate
。 -
添加了额外的 PROXY 协议变量,即
$proxy_protocol_server_addr
和$proxy_protocol_server_port
。
要安装 nginx:1.18
流,请使用:
# yum module install nginx:1.18
如果要从 nginx:1.16
流升级,请参阅 切换到更新的流。
新模块流: perl:5.30
RHEL 8.3 引进了 Perl 5.30
,它比之前发布的 Perl 5.26
提供了很多 bug 修复和增强。新版本还会弃用或删除某些语言功能。显著影响变化包括:
-
Math::BigInt::CalcEmu
、arybase
和B::Debug
模块已被删除 -
现在使用一个
close-on-exec
标记打开文件描述符 - 不再允许打开和文件和目录句柄相同的符号
- 现在,subroutine 属性必须在 subroutine 签名前进行。
-
:locked
和:uniq
属性已删除 - 不再允许没有使用逗号分隔的变量列表
-
不再允许使用裸
<<
here-document 操作符 -
在正则表达式中使用未转义的左括号 (
{
) 不再允许 -
AUTOLOAD()
子程序无法再继承到非方法函数 -
sort
不再允许指定sort
算法 -
B::OP::terse()
子函数已被B::Concise::b_terse()
子函数替代 -
File::Glob::glob()
功能已被File::Glob::bsd_glob()
功能替代 -
dump()
功能现在必须通过CORE::dump()
调用 -
yada-yada operator (
…
) 现在是一个声明,它不能作为一个表达式 -
为
$[
变量分配一个非零值,现在返回一个致命错误 -
不再允许
$*
和$#
变量 -
不再允许在 false 条件分支中使用
my()
函数来定义变量 -
在
:utf8
handles 上使用函数sysread()
和syswrite()
现在返回一个致命的错误 -
pack()
函数不再返回不正确的 UTF-8 格式 -
不再允许值大于
IV_MAX
的 Unicode 代码点 - Unicode 12.1 现在被支持
要从以前的 perl
模块流升级,请参阅 切换到更新的流。
Perl 5.30
还可作为 s2i-enabled ubi8/perl-530
容器镜像提供。
新模块流: perl-libwww-perl:6.34
RHEL 8.3 引进了新的 perl-libwww-perl:6.34
模块流,它为 RHEL 8 中的所有 Perl
版本提供 perl-libwww-perl
软件包。从 RHEL 8.0 开始,非 modular perl-libwww-perl
软件包(它不能与 5.26 之间的其它 Perl
流一起使用)已被新的默认 perl-libwww-perl:6.34 stream
弃用。
新模块流: perl-IO-Socket-SSL:2.066
现在提供了一个新的 perl-IO-Socket-SSL:2.066
模块流。这个模块提供 perl-IO-Socket-SSL
和 perl-Net-SSLeay
软件包,并与 RHEL 8 中的所有 Perl
流兼容。
squid:4
模块流恢复到版本 4.11
Squid
代理服务器由 squid:4
模块流提供,已从版本 4.4 升级到 4.11。此发行版本提供多个程序错误和安全修复以及各种增强,如新的配置选项。
(BZ#1829467)
httpd:2.4
模块流中的更改
RHEL 8.3 对 Apache HTTP 服务器包括以下显著更改,这些更改可通过 httpd:2.4
模块流提供:
-
mod_http2
模块被 rebase 到版本 1.15.7 -
H2Upgrade
和H2Push
指令的配置已改变 -
新的
H2Padding
配置指令,用于控制 HTTP/2 有效负载数据帧的 padding - 修复多个程序错误。
支持从 httpd
中的 CustomLog
指令登录到 journald
现在你可以使用 CustomLog
指令的新选项将 Apache HTTP 服务器的 journald
输出到 journald。
支持语法如下:
CustomLog journald:priority format|nickname
其中 priority 是 LogLevel
指令 中使用的任何优先级字符串,最高为 debug
。
例如,要使用 combined
日志格式在 journald
中记录日志,请使用:
CustomLog journald:info combined
请注意,当使用这个选项时,服务器性能可能会低于使用在一个平面文件中直接记录日志。
5.1.12. 编译器和开发工具
.NET 5 现在包括在 RHEL 中
.NET 5 在 Red Hat Enterprise Linux 7、Red Hat Enterprise Linux 8 和 OpenShift Container Platform 中提供。.NET 5 包括新的语言版本:C# 9 和 F#5.0。基本程序库的性能有显著提高。GC 和 JIT. .NET 5 有单一文件应用程序,用户可以使用一个可执行文件来发布 .NET 应用程序,所有的依赖程序都包括在这个文件中。Red Hat 容器 registry 提供了 .NET 5 的 UBI8 镜像,它们可用于 OpenShift。
要使用 .NET 5,安装 dotnet-sdk-5.0
软件包:
$ sudo dnf install -y dotnet-sdk-5.0
如需更多信息,请参阅 .NET 5 文档。
新的 GCC 工具集 10
GCC 工具集 10 是提供开发工具最新版本的编译器工具组。它在 AppStream
存储库中以软件集合的形式作为应用程序流提供。
GCC 编译器已更新至版本 10.2.1,它在上游 GCC 中提供了很多程序错误修复和增强。
GCC 工具集 10 提供以下工具和版本:
工具 | 版本 |
---|---|
GCC | 10.2.1 |
GDB | 9.2 |
Valgrind | 3.16.0 |
SystemTap | 4.3 |
Dyninst | 10.1.0 |
binutils | 2.35 |
elfutils | 0.180 |
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 工具集。
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 工具集容器镜像。
(BZ#1842656)
Rust Toolset 被 rebase 到版本 1.45.2
Rust Toolset 已更新至 1.452 版本。主要变更包括:
-
用于查看依赖关系的子命令的
cargo tree
现在包含在cargo
中。 - 现在从浮点值转换到整数时会使用一个范围保护。在以前的版本中,当转换浮点值时,如果被简化的浮点值超出了目标整数类型的范围时,编译器会认为是未定义(undefined)非限定浮动点值也会导致未定义的行为。在这个改进中,有限值被声明为整数的最小值或最大范围。正无限值和负无限值会分别默认为最大整数值和最小整数值,Not-a-Number(NaN) 值为零。
- 现在,表达式、模式和声明等类似于函数的程序宏被扩展并稳定。
有关使用方法的详细信息,请参阅使用 Rust Toolset。
(BZ#1820593)
LLVM Toolset rebase 到版本 10.0.1
LLVM Toolset 升级至版本 10.0.1。在这个版本中,clang-libs
软件包不再包含各个组件库。因此,无法再连接针对它们的应用程序。要根据 clang
库链接应用程序,使用 libclang-cpp.so
软件包。
如需更多信息,请参阅使用 LLVM Toolset。
(BZ#1820587)
Go Toolset rebase 到版本 1.14.7
Go Toolset 已经升级至 1.14.7 版,新的变更包括:
- Go 模块系统现已获得全面支持。
- 不再支持 SSL 版本 3.0(SSLv3)。Delve debugger 的主要改进包括:
-
新命令
examinemem
(或x
)检查原始内存 -
新命令
display
在程序每次停止时打印一个表达式的值 -
为调试程序提供 Teletypewriter(TTY)的新
--tty
标志 - Arm64 的新 coredump 支持
- 打印 goroutine 标签的新功能
- 发布 Debug Adapter Protocol(DAP)服务器
-
改进了
dlv trace
和trace
REPL(read-eval-print-loop)命令的输出
有关 Go Toolset 的详情,请参考使用 Go Toolset。
有关 Delve 的更多信息,请参见上游 Delve 文档。
(BZ#1820596)
SystemTap rebase 到版本 4.3
SystemTap 工具已更新至版本 4.3,提供多个程序错误修复和增强。主要变更包括:
-
用户空间探测可以通过
readelf -n
的十六进制buildid
作为目标。这种路径名称的替代方案允许在任何名称下探测匹配的二进制文件,从而允许单个脚本以一系列不同版本为目标。这个功能可以和 elfutilsdebuginfod
服务器一起正常工作。 -
脚本函数可以使用探测
$context
变量访问探测位置中的变量,这使得 SystemTap 脚本能够使用通用逻辑与各种探测一起工作。 -
已经进行了
stapbpf
程序改进,包括 try-catch 语句和错误探测,以便在 BPF 后端上运行的脚本中启用适当的容错。
有关显著变化的详情,请在更新前阅读 上游发行注记。
Valgrind 被 rebase 到版本 3.16.0
Valgrind 可执行文件代码分析工具已更新至版本 3.16.0 ,与之前的版本相比,它提供了一些 bug 修复和增强:
-
现在,如果您的程序在 Valgrind 下运行(通过
vgdb
,通过一个gdb
连接到 Valgrind gdbserver,或通过程序客户端请求),可以动态地修改许多命令行参数的值。要获得可更改的选项列表,请运行valgrind --help-dyn-options
命令。 -
对于 Cachegrind(
cg_annotate
)和 Callgrind(callgrind_annotate
)工具,--auto
和--show-percs
选项现在默认为yes
。 -
Memcheck 工具在优化代码时生成较少的假错误。特别是 Memcheck 现在更好地处理编译器将
A && B
检查转换为B && A
检查的情况,其中B
可以是未定义,A
为 false。memcheck 也能更好地处理对部分定义值的整数相等性检查和非相等性检查。 -
试验性的 Stack and Global Array Checking 工具(
exp-sgcheck
)已被删除。它的功能可以由 GCC 的 AddressSanitizer(ASAN)工具替代,这需要您使用-fsanitize=address
选项重建代码。
elfutils
rebase 到版本 0.180
elfutils
软件包更新至 0.180 版本,提供多个程序错误修复和增强。主要变更包括:
-
更好地支持 GCC LTO 构建的代码调试信息(链接时间优化)。
eu-readelf
和libdw
程序现在可以读取和处理.gnu.debuglto_
部分,并正确地解析跨 CU(组合单元)定义的功能的文件名。 -
eu-nm
程序现在明确将弱对象定义为V
,常见符号为C
。 -
debuginfod
服务器现在可以对.deb
归档进行索引,并有通用扩展以添加其它软件包归档格式(使用-Z EXT[=CMD]
选项)。例如,-Z '.tar.zst=zstdcat'
表示以.tar.zst
扩展结尾的归档应该使用zstdcat
程序解包。 -
debuginfo-client
工具有几个新的帮助程序功能,如debuginfod_set_user_data
、debuginfod_get_user_data
、debuginfod_get_url
和debuginfod_add_http_header
。它现在还支持file://
URL。
GDB 现在支持在 IBM z15 上的进程记录和重新进行
在这个版本中,GNU Debugger(GDB)支持进程记录,并使用 IBM z15 处理器的大部分新指令(以前称为 arch13)进行重播。请注意,当前不支持以下指令:SORTL(排序列表)、DFLTCC(删除转换调用)、KDSA(计算数字签名身份验证)。
(BZ#1659535)
在 papi
中更新了 Marvell ThunderX2 性能监控事件
在这个版本中,很多特定于 ThunderX2 的性能事件(包括非核事件)已被更新。因此,开发人员可以更好地调查 Marvell ThunderX2 系统的系统性能。
(BZ#1726070)
glibc
math 库现在为 IBM Z 进行了优化
在这个版本中,libm
math 功能进行了优化,可以提高 IBM Z 机器的性能。主要变更包括:
- 改进了循环模式处理,以避免多余的浮动点控制集和提取
- 利用 z196 整数和浮点之间的转换
(BZ#1780204)
现在提供了额外的特定于 libffi 的临时目录
之前在强化型系统中,系统范围内的临时目录可能没有适合 libffi
库的权限。
在这个版本中,系统管理员可以设置 LIBFFI_TMPDIR
环境变量指向 libffi 特定的临时目录,并具有 write
和 exec
mount 或 selinux 权限。
提高了 strstr()
和 strcasestr()
的性能
在这个版本中,在几个支持的构架中,strstr()
和 strcasestr()
函数的性能已改进。现在,所有使用字符串和内存操作程序的应用程序性能可以提高用户的性能。
(BZ#1821531)
glibc
现在可以正确加载被截断的区域归档
如果之前截断了系统本地的归档,在升级过程中出现断电或磁盘失败,进程可能会在加载归档时意外终止。这个改进为加载语言归档增加了一致性检查。现在,进程可以检测到归档中继并回退到非构架安装的区域或默认的 POSIX 区域。
(BZ#1784525)
GDB 现在支持 debuginfod
有了这个增强,GNU Debugger(GDB)现在可以使用 elfutils debuginfod
客户端库按需从集中式服务器下载调试信息软件包。
pcp
rebase 到版本 5.1.1-3
pcp
软件包已升级至版本 5.1.1-3。主要变更包括:
-
更新服务单元,改进了所有 PCP 服务的
systemd
集成和可靠性。改进了归档日志轮转并更及时进行压缩。pmproxy
协议中的归档发现程序错误被修复。 -
改进了
pcp-atop
、pcp-dstat
、pmrep
和相关的监控工具,以及pmrep
和导出工具中的指标标签。 -
改进了
bpftrace
、OpenMetrics
、MMV、Linux 内核代理和其他集合代理。Open vSwitch
和RabbitMQ
服务器的新指标收集器。 -
新的主机发现
pmfind systemd
服务替换独立pmmgr
守护进程。
grafana
rebase 到版本 6.7.3
grafana
软件包已更新至 6.7.3 版本。主要变更包括:
-
通用
OAuth
角色映射支持 - 新的日志面板
- 在表面板中显示多行文本
- 新的货币单位和能源单位
grafana-pcp
rebase 到版本 2.0.2
grafana-pcp
软件包已更新至版本 2.0.2。主要变更包括:
-
支持在
flamegraph
中显示多维 eBPF 映射。 - 删除查询编辑器中的自动完成缓存,以便 PCP 指标可以动态显示。
新的 rhel8/pcp
容器镜像
rhel8/pcp
容器镜像现在包括在 Red Hat Container Registry 中。镜像包含 Performance Co-Pilot(PCP)工具包,其中包括预安装的 pcp-zeroconf
软件包和 OpenMetrics
PMDA。
(BZ#1497296)
新的 rhel8/grafana
容器镜像
rhel8/grafana
容器镜像现在包括在 Red Hat Container Registry 中。Grafana 是一个开源实用程序,它带有 metrics dashboard,以及 Graphite
、Elasticsearch
、OpenTSDB
、Prometheus
、InfluxDB
和 PCP
监控工具的图形编辑器。
5.1.13. 身份管理
IdM 备份工具现在检查所需的副本角色
ipa-backup
工具现在检查 IdM 集群中使用的所有服务,如证书颁发机构(CA)、域名系统(DNS)和密钥恢复代理(KRA)是否安装在您要运行备份的副本上。如果副本没有安装所有的服务,ipa-backup
程序会以警告方式退出,因为在该主机上进行的备份不足以完全恢复集群。
例如,如果您的 IdM 部署使用集成证书认证机构(CA),非副本中运行的备份将无法捕获 CA 数据。红帽建议验证执行 ipa-backup
的副本是否在集群安装中使用了所有 IdM 服务。
如需更多信息,请参阅准备使用 IdM 备份数据丢失。
新的密码过期通知工具
由 ipa-client-epn
软件包提供的过期密码通知(EPN)是一个独立的工具,您可以用来构建密码即将过期的身份管理(IdM)用户的列表。
IdM 管理员可以使用 EPN 进行以下操作:
- 以 JSON 格式显示受影响用户列表,该列表在运行时计算
- 计算在给定日期或日期范围内发送多少封电子邮件
- 向用户发送密码过期电子邮件通知
红帽建议每天从 IdM 客户端或使用 ipa-epn.timer
systemd
计时器启动一次 EPN。
(BZ#913799)
JSS 现在提供 FIPS 兼容 SSLContext
之前,Tomcat 使用来自 Java 加密架构(JCA)SSLContext 类的 SSLEngine 指令。默认的 SunJSSE 实现不符合联邦信息处理标准(FIPS),因此 PKI 现在通过 JSS 提供符合 FIPS 的实现。
现在可以使用检查您的公钥基础架构的整体健康状况
有了这个更新,公钥基础架构(PKI) Healthcheck 工具向 RHEL 8.1 中引入的身份管理(IdM) Healthcheck 工具报告 PKI 子系统的健康状况。执行 IdM Healthcheck 会调用 PKI Healthcheck,它会收集并返回 PKI 子系统的健康状况报告。
所有部署的 RHEL IdM 服务器或副本都提供了 pki-healthcheck
工具。pki-healthcheck
提供的所有检查也集成到 ipa-healthcheck
工具中。ipa-healthcheck
可以与 idm:DL1
模块流安装分开安装。
请注意, pki-healthcheck
也可以在独立 Red Hat 证书系统(RHCS)基础架构中正常工作。
(BZ#1770322)
支持 RSA PSS
在这个版本中,PKI 支持 RSA PSS(安全签名方案)签名算法。
要启用此功能,在 pkispawn
脚本文件中为给定子系统设置以下行: pki_use_pss_rsa_signing_algorithm=True
因此,此子系统的所有现有的默认签名算法(在其 CS.cfg
配置文件中指定)将使用相应的 PSS 版本。例如, SHA256withRSA 变为 SHA256withRSA/PSS
在服务启动时,目录服务器将私钥和证书导出到私有命名空间中
目录服务器使用 OpenLDAP 库进行外部连接,比如复制协议。由于这些库无法直接访问网络安全服务(NSS)数据库,目录服务器会从带有 TLS 加密支持的实例上的 NSS 数据库提取私钥和证书,使 OpenLDAP 库能够建立加密的连接。在以前的版本中,目录服务器将私钥和证书提取到 cn=config
条目(默认为 /etc/dirsrv/slapd-<instance_name>/
)中 thensslapd-certdir
参数中设置的目录。因此,Directory 服务器将 Server-Cert-Key.pem
和 Server-Cert.pem
保存在这个目录中。在这个改进中,Directory 服务器提取私钥和证书给 systemd
挂载到 /tmp/
目录中的专用命名空间。因此,增加了安全性。
如果达到磁盘监控阈值,则目录服务器现在可以将实例切换到只读模式
这个版本在 cn=config
条目中添加 nsslapd-disk-monitoring-readonly-on-threshold
参数。如果您启用这个设置,在启用了磁盘监控且可用磁盘空间低于您在 nsslapd-disk-monitoring-threshold
中配置的值时,Directory 服务器会将所有数据库切换成只读。如果将 nsslapd-disk-monitoring-readonly-on-threshold
设置为 on
,则数据库无法修改,直到 Directory 服务器成功关闭该实例。这可以防止数据崩溃。
(BZ#1728943)
samba rebase 到版本 4.12.3
samba 软件包升级至上游版本 4.12.3,比之前的版本提供了很多程序错误修复和增强:
- 内置的加密功能已被 GnuTLS 功能替代。这提高了服务器消息块版本 3(SMB3)性能,复制速度显著提高。
- 现在,最小运行时版本是 Python 3.5。
-
删除了
write cache size
参数,因为以前的写入缓存概念可能会降低内存约束系统的性能。 - 删除了对使用带有 DES 加密类型的 Kerberos ticket 验证连接的支持。
-
vfs_netatalk
虚拟文件系统(VFS)模块已被删除。 -
ldap ssl ads
参数标记为已弃用,并将在以后的 Samba 版本中删除。有关如何加密 LDAP 流量和详情的详情请参考 samba: removal of "ldap ssl ads" smb.conf option。 -
默认情况下,RHEL 8.3 中的 Samba 不再支持过时的 RC4 密码套件。如果您在 AD 中作为域成员运行 Samba ,仍然需要 Kerberos 验证的 RC4,请使用
update-crypto-policies --set DEFAULT:AD-SUPPORT
命令启用对 RC4 加密类型的支持。
当 smbd
、nmbd
或者 winbind
服务启动时,Samba 会自动更新它的 tdb
数据库文件。在启动 Samba 前备份数据库文件。请注意,红帽不支持降级 tdb
数据库文件。
有关显著变化的详情,请在更新前阅读 上游发行注记。
cockpit-session-recording rebase 到版本 4
cockpit-session-recording
模块更新到版本 4。此版本提供以下与上一个版本相比的显著变化:
-
更新了
metainfo
文件中的父 ID。 - 更新软件包清单。
-
修复了
rpmmacro
以解析 CentOS7 上正确的路径。 - 处理由 byte-array 编码的日志数据。
- 将代码从已弃用的 React 生命周期功能中移出。
krb5
rebase 到版本 1.18.2
krb5
软件包已升级到上游版本 1.18.2。重要的修复和增强包括:
- 删除了 single-DES 和 triple-DES 加密类型。
- 第 9 章 PKINIT 已被删除,因为所有受支持的 Active Directory 版本都不需要它。
- NegoEx 机制插件现在被支持。
-
Hostname canonicalization fallback 现在支持(
dns_canonicalize_hostname = fallback
)。
(BZ#1802334)
IdM 现在支持新的 Ansible 管理模块
此更新引入了几个 ansible-freeipa
模块,用于使用 Ansible playbook 自动完成通用身份管理(IdM)任务:
-
config
模块允许在 IdM 中设置全局配置参数。 -
dnsconfig
模块允许修改全局 DNS 配置。 -
dnsforwardzone
模块允许在 IdM 中添加和删除 DNS 转发程序。 -
dnsrecord
允许管理 DNS 记录。与上游ipa_dnsrecord
不同,它允许在一次执行中进行多个记录管理,并支持更多记录类型。 -
dnszone
模块允许在 DNS 服务器中配置区。 -
service
允许确保存在服务或不存在服务。 -
vault
模块可保证 vaults 和 vaults 成员的存在和不存在。
请注意,ipagroup
和 ipahostgroup
模块已扩展为分别包含用户和主机组成员资格管理器。组成员管理器是用户或组,它可以添加组群成员或从组中删除成员。如需更多信息,请参阅对应 /usr/share/doc/ansible-freeipa/README-*
文件的 Variables
部分。
(JIRA:RHELPLAN-49954)
IdM 现在支持新的 Ansible 系统角色来管理证书
身份管理(IdM)支持新的 Ansible 系统角色来自动化证书管理任务。新角色包括以下优点:
- 该角色有助于自动运行和续订证书。
-
角色可以被配置为使
ipa
证书颁发机构签发您的证书。这样,您可以使用现有 IdM 基础架构来管理证书信任链。 - 角色允许您指定在签发证书之前和发出后要执行的命令,例如停止和启动服务。
(JIRA:RHELPLAN-50002)
身份管理现在支持 FIPS
有了这个增强,您现在可以使用联邦信息处理标准(FIPS)批准的加密类型以及身份管理(IdM)中的验证机制。请注意 IdM 和 Active Directory 间的跨林信任不兼容 FIPS。
需要 FIPS 但不需要 AD 信任的用户现在可以在 FIPS 模式中安装 IdM。
(JIRA:RHELPLAN-43531)
idm:DL1
中的 OpenDNSSEC 更新到版本 2.1
idm:DL1
模块流的 OpenDNSSEC 组件已升级至 2.1 版本,这是当前上游支持版本。OpenDNSSEC 是一个开源项目,推动采用域名系统安全扩展(DNSSEC),以进一步增强互联网安全性。OpenDNSSEC 2.1 提供了一些程序错误修正和增强。如需更多信息,请参阅上游发行注记: https://www.opendnssec.org/archive/releases/
(JIRA:RHELPLAN-48838)
IdM 现在支持弃用的 RC4 密码套件,并使用新的系统范围的加密子策略
这个更新引进了新的 AD-SUPPORT
加密子策略,其启用了身份管理(IdM)中的 Rivest Cipher 4(RC4)密码套件。
作为 IdM 活动目录(AD)跨林信任中的管理员,当 AD 没有配置为使用高级加密标准(AES)时,您可以激活新的 AD-SUPPORT
子策略。更具体地说,如果适用以下条件之一,红帽建议启用新的子策略:
- AD 中的用户或服务帐户具有 RC4 加密密钥且缺少 AES 加密密钥。
- 各个活跃目录域之间的信任链接具有 RC4 加密密钥,且缺少 AES 加密密钥。
除了 DEFAULT
加密策略外,要启用 AD-SUPPORT
子策略,请输入:
# update-crypto-policies --set DEFAULT:AD-SUPPORT
另外,若要在 AD 林中的 AD 域间升级信任以便支持强大的 AES 加密类型,请查看以下 Microsoft 文档 AD DS: Security: Kerberos "Unsupported etype" error when accessing a resource in a trusted domain。
(BZ#1851139)
根据新的 Microsoft LDAP 频道绑定和 LDAP 签名要求调整
有了最近的 Microsoft 更新,活动目录(AD)将标记不使用 LDAP 通道绑定和 LDAP 签名的默认的 Windows 设置的客户端。因此,使用系统安全服务守护进程(SSSD)直接或间接与 AD 集成的 RHEL 系统,在使用通用安全服务应用程序接口(GSSAPI)的简单认证和安全层(SASL)操作成功后,可能会在 AD 中触发错误事件 ID。
要防止这些通知,请将客户端应用程序配置为使用 Simple 和 Protected GSSAPI Negotiation 机制(GSS-SPNEGO)SASL 机制而不是 GSSAPI。要配置 SSSD,将 ldap_sasl_mech
选项设定为 GSS-SPNEGO
。
另外,如果在 AD 端强制实施通道绑定,请通过以下方式配置任何使用带有 SSL/TLS 的 SASL 的系统:
-
安装 RHEL 8.3 及更新版本提供的
cyrus-sasl
、openldap
和krb5-libs
软件包的最新版本。 -
在
/etc/openldap/ldap.conf
文件中,通过将SASL_CBINDING
选项设置为tls-endpoint
来指定正确的频道绑定类型。
如需更多信息,请参阅 Microsoft 安全顾问 ADV190023 | LDAP Channel Binding 和 LDAP Signing 在 RHEL 和 AD 集成中的影响。
SSSD、adcli 和 realmd 现在支持弃用的 RC4 密码套件(带有新的系统范围加密子策略)
这个更新引进了新的 AD-SUPPORT
加密子策略,为以下工具启用了 Rivest Cipher 4(RC4)密码套件:
- 系统安全性服务守护进程(SSSD)
-
adcli
-
realmd
作为管理员,在以下情况下, 当 Active Directory(AD) 没有配置为使用高级加密标准(AES)时,您可以激活新的 AD-SUPPORT
子策略:
- SSSD 用于直接连接到 AD 的 RHEL 系统。
-
adcli
用于加入 AD 域或更新主机属性,例如主机密钥。 -
realmd
用于连接 AD 域。
如果适用以下条件之一,红帽建议启用新的子策略:
- AD 中的用户或服务帐户具有 RC4 加密密钥且缺少 AES 加密密钥。
- 各个活跃目录域之间的信任链接具有 RC4 加密密钥,且缺少 AES 加密密钥。
除了 DEFAULT
加密策略外,要启用 AD-SUPPORT
子策略,请输入:
# update-crypto-policies --set DEFAULT:AD-SUPPORT
authselect
有一个新的 minimal
配置集
authselect
程序有一个新的 minimal
配置集。您可以使用这个配置集直接从系统文件中提供本地用户和组群,而不必使用其它验证供应商。因此,可以安全地删除 SSSD
、winbind
和 fprintd
,并可在需要最小安装的系统中使用这个配置集保存磁盘和内存空间。
(BZ#1654018)
SSSD 现在在轮转密码时更新 Samba 的 secret.tdb
文件
现在,在 RHEL 中提供了 sssd.conf
文件中的 ad_update_samba_machine_account_password
选项。在使用 Samba 时轮转机器的域密码时,您可以使用它设置 SSSD 来自动更新 Samba 的 secrets.tdb
文件。
但是,如果 SELinux 处于 enforcing 模式,SSSD 无法更新 secrets.tdb
文件。因此,Samba 无法访问新密码。要临时解决这个问题,将 SELinux 设置为 permissive 模式。
SSSD 现在默认强制使用 AD GPOs
SSSD 选项 ad_gpo_access_control
的默认设置现在是 enforcing
。在 RHEL 8 中,SSSD 默认根据活动目录组策略对象(GPO)强制实施访问控制规则。
红帽建议确保在从 RHEL 7 升级到 RHEL 8 前,在 Active Directory 中正确配置 GPO。如果您不想强制执行 GPO,请将 /etc/sssd/sssd.conf
文件中的 ad_gpo_access_control
选项的值改为 permissive
。
(JIRA:RHELPLAN-51289)
目录服务器现在支持 the pwdReset
操作 属性
此增强为目录服务器增加了对 pwdReset
操作属性的支持。当管理员更改用户的密码时,目录服务器在用户的条目中将 pwdReset
设为 true
。因此,应用可以使用此属性来识别管理员是否重置了用户的密码。
请注意,pwdReset
是一个操作属性,因此用户无法编辑它。
目录服务器现在在 RESULT
条目中记录工作和操作时间
有了这个更新,目录服务器现在在 '/var/log/dirsrv/slapd-<instance_name>/access 文件的 RESULT 的条目
中记录两个额外的时间值:
-
wtime
值指示操作从工作队列移到工作线程所需的时间。 -
optime
值显示在工作线程启动操作后实际操作完成所花的时间。
新值提供有关 Directory 服务器如何处理负载和进程操作的附加信息。
详情请查看 Red Hat Directory Server Configuration、命令和文件参考中的访问日志参考部分。
5.1.14. Desktop
单应用程序会话现在可用
您现在可以在单一应用程序会话中启动 GNOME,也称 kiosk 模式。在这个会话中,GNOME 只显示一个您配置的应用程序的完整屏幕窗口。
启用单一应用程序会话:
安装
gnome-session-kiosk-session
软件包:# yum install gnome-session-kiosk-session
创建并编辑将打开单应用程序会话的用户的
$HOME/.local/bin/redhat-kiosk
文件。在该文件中输入您要启动的应用程序的可执行名称。
例如,启动 文本编辑器 应用程序:
#!/bin/sh gedit &
使文件可执行:
$ chmod +x $HOME/.local/bin/redhat-kiosk
- 在 GNOME 登录屏幕中,从 cogwheel 菜单中选择 Kiosk 会话,并作为单一应用程序用户登录。
(BZ#1739556)
tigervnc 被 rebase 到版本 1.10.1
tigervnc
套件已 rebase 到版本 1.10.1。该更新包含大量修复及改进。最值得注意的是:
-
tigervnc 现在只支持使用
systemd
服务管理器启动虚拟网络计算(VNC)服务器。 -
剪贴板现在支持原生 viewer、
WinVNC
和 Xvnc/libvnc.so 中的完整 Unicode。 - 现在,原生客户端在验证服务器证书时将尊重系统信任存储。
- Java Web 服务器已被删除。
-
现在可将
x0vncserver
配置为只允许本地连接。 -
x0vncserver
在只共享部分显示时会收到修复。 -
Polling 现在在
WinVNC
中时默认。 - 改进了与 VMware 的 VNC 服务器的兼容性。
- 改进了与 macOS 中一些输入法的兼容性。
- 改进了 JPEG 工件的自动"修复"。
5.1.15. 图形基础结构
支持新图形卡
现在完全支持以下图形卡:
AMD Navi 14 家族,包括以下模型:
- Radeon RX 5300
- Radeon RX 5300 XT
- Radeon RX 5500
- Radeon RX 5500 XT
AMD Renoir APU 家族,包括以下模型:
- Ryzen 3 4300U
- Ryzen 5 4500U、4600U 和 4600H
- Ryzen 7 4700U、4800U 和 4800H
AMD Dali APU 家族,包括以下模型:
- Athlon Silver 3050U
- Athlon Gold 3150U
- Ryzen 3 3250U
另外,以下图形驱动程序已被更新:
-
Matrox
mgag200
驱动
(JIRA:RHELPLAN-55009)
使用 Nvidia Volta 和 Turing 进行硬件加速
nouveau
图形驱动程序现在支持使用 Nvidia Volta 和 Turing GPU 家族的硬件加速。因此,使用 3D 图形的桌面和应用程序现在可以在 GPU 上有效显示。另外,这可以为其他任务释放 CPU,并改进整个系统的响应。
(JIRA:RHELPLAN-57564)
减少 XWayland 的显示测试
XWayland 显示后端现在启用 XPresent 扩展。使用 XPresent,应用程序可以有效地更新其窗口内容,从而减少显示瓶颈。
这个功能显著改进了全屏 OpenGL 应用程序的用户界面,如 3D 编辑器。
(JIRA:RHELPLAN-57567)
现在支持 Intel Tiger Lake GPU
在这个版本中,增加了对 Intel Tiger Lake 系列 GPU 的支持。这包括带有以下 CPU 型号的 Intel UHD 图形和 Intel Xe GPU:https://ark.intel.com/content/www/us/en/ark/products/codename/88759/tiger-lake.html。
您不再需要设置 i915.alpha_support=1
或 i915.force_probe=*
内核选项来启用 Tiger Lake GPU 支持。
此增强已作为 RHSA-2021:0558 异步公告的一部分发布。
(BZ#1882620)
5.1.16. Web 控制台
从 web 控制台会话中设置权限
在这个版本中,web 控制台提供了一个在管理访问和用户会话内部限制访问之间进行切换的选项。您可以在 web 控制台会话中点击 Administration access 或 Limited access 指示器来在模式间切换。
(JIRA:RHELPLAN-42395)
日志搜索改进
在这个版本中,Web 控制台引入了一个搜索框,支持用户在日志间搜索的一些新方法。搜索框支持日志消息中的正则表达式搜索,指定服务或使用特定日志字段搜索条目。
概述页面显示更详细的 Insights 报告
在这个版本中,当机器连接到 Red Hat Insights 时,Web 控制台的 Overview 页面中的 Health 卡会显示更多有关点击次数及其优先级的详细信息。
(JIRA:RHELPLAN-42396)
5.1.17. Red Hat Enterprise Linux 系统角色
Terminal log 角色添加到 RHEL 系统角色中
在这个版本中,rhel-system-roles
软件包附带的 RHEL 系统角色添加了一个新的 Terminal log (TLOG)角色。用户现在可以使用 tlog
角色通过 Ansible 来设置和配置会话记录。
目前,tlog
角色支持以下任务:
-
配置
tlog
以将数据记录到systemd
日志中 - 通过 SSSD 为显式用户和组启用会话记录
RHEL Logging 系统角色现在可用于 Ansible
使用日志记录系统角色,您可以在本地和远程主机上部署各种日志记录配置。您可以将 RHEL 主机配置为服务器,以从多个客户端系统中收集日志。
rhel-system-roles-sap
完全支持
以前作为技术预览提供 rhel-system-roles-sap
软件包现已获得全面支持。它为 SAP 提供 Red Hat Enterprise Linux (RHEL)系统角色,可用于自动化 RHEL 系统的配置来运行 SAP 工作负载。这些角色通过自动应用基于相关 SAP 备注中最佳实践的优化设置,大大减少了将系统配置为运行 SAP 工作负载的时间。访问只限制为 RHEL for SAP Solutions。如果需要帮助,请联络红帽客户支持团队。
完全支持 rhel-system-roles-sap
软件包中的以下新角色:
-
sap-preconfigure
-
sap-netweaver-preconfigure
-
sap-hana-preconfigure
如需更多信息,请参阅 SAP 的 Red Hat Enterprise Linux 系统角色。
(BZ#1660832)
现在,Ansible 提供了 metrics
RHEL 系统角色。
使用 metrics
RHEL 系统角色,您可以为本地和远程主机配置:
-
通过
pcp
应用程序的性能分析服务 -
使用
grafana
服务器可视化这些数据 -
使用
redis
数据源查询这些数据,而无需手动配置这些服务。
rhel-system-roles-sap
已升级
rhel-system-roles-sap
软件包已升级到上游版本 2.0.0,它提供多个程序错误修复和增强。主要变更包括:
- 改进主机名配置和检查
-
改进
uuidd
状态检测和处理 -
添加对
--check(-c)
选项的支持 -
将
nofile
限制从 32800 增加到 65536 -
在
sap_preconfigure_packages
* 中添加nfs-utils
文件 -
禁用
firewalld
。在这个版本中,只在安装了才会禁用firewalld
。 -
为 RHEL 8.0 和 RHEL 8.1 添加
setup
软件包的最低所需版本。 -
改进
tmpfiles.d/sap.conf
文件处理 - 支持单步执行或检查 SAP 备注
-
添加所需
compat-sap-c++
软件包 - 改进最小软件包安装处理
- 应用 RHEL 系统角色后,检测是否需要重启
-
支持设置任意 SElinux 状态。默认状态为
"disabled"
- 如果多个行具有相同的 IP 地址,则不会再失败
-
如果多个行包含
sap_ip
,则不再修改/etc/hosts
- 在 RHEL 7.7 上支持 HANA
-
支持在
ppc64le
平台上为 SAP HANA 所需的 IBM 服务和 Power 的生产力工具添加存储库
storage
RHEL 系统角色现在支持文件系统管理
在这个版本中,管理员可以使用 storage
RHEL 系统角色来:
-
调整
ext4
文件的大小 - 重新定义 LVM 文件大小
- 使用默认参数在块设备上创建交换分区(如果不存在),或者修改交换分区(如果已存在)。
(BZ#1959289)
5.1.18. 虚拟化
现在,将虚拟机迁移到不兼容 TSC 设置的主机会失败
在以前的版本中,将虚拟机迁移到带有不兼容时间戳计数器(TSC)设置的主机会在过程后期失败。在这个版本中,尝试这样的迁移会在迁移过程开始前产生一个错误。
(JIRA:RHELPLAN-45950)
对第二代 AMD EPYC 处理器的虚拟化支持
在这个版本中。RHEL 8 的虚拟化增加了对第二代 AMD EPYC 处理器的支持,也称 EPYC Rome。因此,在 RHEL 8 中托管的虚拟机现在可以使用 EPYC-Rome
CPU 模型,并使用处理器提供的新功能。
(JIRA:RHELPLAN-45959)
新命令: virsh iothreadset
这个版本引进了 virsh iothreadset
命令,可用于配置动态 IOThread 轮询。这样就可以为 I/O 高负载设置虚拟机,从而减少 IOThread 消耗的 CPU 消耗。具体选项请查看 virsh man page。
(JIRA:RHELPLAN-45958)
目前 KVM 在第 10 代 Intel 核心处理器中支持 UMIP
有了这个更新,KVM 现在支持在第 10 代 Intel Core 处理器(也称为 Ice Lake Server)上运行的主机的用户模式指令预防(UMIP)功能。UMIP 功能会发布一个常规保护意外,当 Current Privilege Level(CPL)大于 0,特定指令,如 sgdt
、sidt
、sldt
、smsw
和 str
是否会执行。因此,UMIP 通过防止未授权应用访问某些系统范围的设置来确保系统安全性,这些设置可用于发起特权升级攻击。
(JIRA:RHELPLAN-45957)
libvirt
库现在支持 Memory Bandwidth Allocation
libvirt
现在支持内存带宽分配(MBA)。使用 MBA,您可以使用 <cputune>
部分中的 <memorytune>
元素在 vCPU 线程中分配主机内存带宽的部分。
MBA 是 Intel Xeon v4 处理器(也称为 Broadwell 服务器)中现有缓存 QoS 强制(CQE)功能的扩展。对于与 CPU 关联的任务,MBA 使用的机制与 CQE 中使用的相同。
(JIRA:RHELPLAN-45956)
RHEL 6 虚拟机现在支持 Q35 机器类型
在 RHEL 8 上托管的使用 RHEL 6 作为客户机操作系统的虚拟机(VM),现在可以使用 Q35,这是一个更加现代的基于 PCI Express 的机器类型。这为虚拟设备的特性和性能提供了各种改进,并确保更广泛的现代设备与 RHEL 6 虚拟机兼容。
(JIRA:RHELPLAN-45952)
所有日志记录的 QEMU 事件现在都有一个时间戳。因此,用户可以使用保存在 /var/log/libvirt/qemu/
目录中的日志更轻松地对虚拟机进行故障排除。
QEMU 日志现在包含 spice-server 事件的时间戳
在这个版本中,'spice-server' 事件日志添加了时间戳。因此,所有记录的 QEMU 事件现在都有一个时间戳。因此,用户可以使用保存在 /var/log/libvirt/qemu/
目录中的日志更轻松地对虚拟机进行故障排除。
(JIRA:RHELPLAN-45945)
现在支持 bochs-display
设备
RHEL 8.3 及之后的版本引入了 Bochs 显示设备,其比当前使用的 stdvga
设备更安全。请注意,与 bochs-display
兼容的所有虚拟机(VM)都将默认使用它。这主要包括使用 UEFI 接口的虚拟机。
(JIRA:RHELPLAN-45939)
为虚拟机优化 MDS 保护
有了这个更新,RHEL 8 主机可以通知其虚拟机(VM)它们是否容易受到 Microarchitectural Data Sampling (MDS)的攻击。不易受攻击的虚拟机不使用 MDS 来提高性能。
(JIRA:RHELPLAN-45937)
现在支持在 RBD 中创建 QCOW2 磁盘镜像
在这个版本中,可以在 RADOS Block Device(RBD)存储中创建 QCOW2 磁盘镜像。因此,虚拟机可以使用 QCOW2 镜像来使用 RBD 服务器进行存储后端。
但请注意,在 RBD 存储中 QCOW2 磁盘镜像的写入性能目前低于预期。
(JIRA:RHELPLAN-45936)
最大支持的 VFIO 设备增加到 64
在这个版本中,您可以将使用 VFIO 的 64 个 PCI 设备附加到 RHEL 8 主机上的单个虚拟机。RHEL 8.2 及之前的版本为 32。
(JIRA:RHELPLAN-45930)
现在 QEMU/KVM 支持discard
和 write-zeroes
命令
在这个版本中,QEMU/KVM 支持 virtio-blk
的 discard
和 write-zeroes
命令。因此,虚拟机可以使用 virtio-blk
设备丢弃 SSD 中未使用的扇区,并在空闲或者全部填充零扇区。这可用于提高 SSD 性能或确保驱动器安全清除。
(JIRA:RHELPLAN-45926)
RHEL 8 现在支持 IBM POWER 9 XIVE
这个版本引进了对 IBM POWER9 到 RHEL 8 的 External Interrupt Virtualization Engine(CRCE)功能的支持。因此,在 IBM POWER 9 系统中的 RHEL 8 管理程序中运行的虚拟机可以使用 XIVE,这会提高 I/O 密集型虚拟机的性能。
(JIRA:RHELPLAN-45922)
控制组 v2 虚拟机支持
在这个版本中,libvirt 套件支持控制组 v2。因此,在 RHEL 8 中托管的虚拟机可以利用控制组 v2 的资源控制功能。
(JIRA:RHELPLAN-45920)
现在 Windows 虚拟机支持半虚拟 IPI
有了这个更新,hv_ipi
标志已添加到支持的 Windows 虚拟机(VM)的管理程序亮点中。这允许通过超调用发送处理器间中断(IPI)。因此,在运行 Windows OS 的虚拟机上可以更快地执行 IPI。
(JIRA:RHELPLAN-45918)
现在可以使用启用磁盘缓存迁移虚拟机
在这个版本中,RHEL 8 KVM 管理程序与磁盘缓存实时迁移兼容。因此,现在可以在启用了磁盘缓存的情况下实时迁移虚拟机。
(JIRA:RHELPLAN-45916)
现在非特权会话中的虚拟机可以使用 macvtap 接口
现在,虚拟机(VM)可以使用之前由特权进程创建的 macvtap 接口。值得注意的是,这可让 libvirtd
非特权 user
会话启动的虚拟机使用 macvtap 界面。
为此,首先在特权环境中创建一个 macvtap 接口,并将它设为由将在非特权会话中运行 libvirtd
的用户所有。您可以使用 Web 控制台等管理应用程序或者以根用户身份使用命令行实用程序完成此操作,例如:
# ip link add link en2 name mymacvtap0 address 52:54:00:11:11:11 type macvtap mode bridge # chown myuser /dev/tap$(cat /sys/class/net/mymacvtap0/ifindex) # ip link set mymacvtap0 up
之后,修改 VM 的 <interface>
配置的 <target>
子元素来引用新创建的 macvtap 接口:
<interface type='ethernet'> <model type='virtio'/> <mac address='52:54:00:11:11:11'/> <target dev='mymacvtap0' managed='no'/> </interface>
使用这个配置时,如果 libvirtd
以用户 myuser
身份运行,VM 会在启动时使用现有的 macvtap 界面。
(JIRA:RHELPLAN-45915)
虚拟机现在可以使用 Intel 核心处理器 10 代的功能
Icelake-Server
和 Icelake-Client
CPU 模型名称现在可用于虚拟机(VM)。在有第 10 代 Intel Core 处理器的主机上,使用 Icelake-Server
或 Icelake-Client
作为虚拟机 XML 配置中的 CPU 类,,生成这些 CPU 的新功能,可向虚拟机公开。
(JIRA:RHELPLAN-45911)
QEMU 现在支持 LUKS 加密
在这个版本中,可以使用 Linux Unified Key Setup(LUKS)加密来创建虚拟磁盘。在创建存储卷时,您可以通过在虚拟机(VM)XML 配置中包含 <encryption>
字段来加密磁盘。您还可以通过在 XML 配置文件中的磁盘域定义中包含 <encryption>
字段,让 LUKS
加密的虚拟磁盘对虚拟机完全透明。
(JIRA:RHELPLAN-45910)
改进了 nbdkit
的日志
nbdkit
服务日志记录已被修改为减少冗长。因此,nbdkit
只记录潜在的重要信息,virt-v2v
转换过程中创建的日志会比较短且更容易解析。
(JIRA:RHELPLAN-45909)
提高了虚拟机 SELinux 安全标签和权限的一致性
在这个版本中,libvirt
服务可以记录和文件的 SELinux 安全标签和权限,并在修改文件后恢复标签。例如,使用 libguestfs
工具修改特定用户拥有的虚拟机(VM)磁盘镜像不再将镜像所有者更改为 root。
请注意,这个特性不适用于不支持扩展文件属性的文件系统,比如 NFS。
(JIRA:RHELPLAN-45908)
QEMU 现在在 XTS 密码中使用 gcrypt
程序库
在这个版本中,QEMU 模拟器已被修改为使用 gcrypt
库提供的 XTS 密码模式实现。这提高了主机存储使用 QEMU 的原生 luks
加密驱动程序的虚拟机的 I/O 性能。
(JIRA:RHELPLAN-45904)
Windows Virtio 驱动程序现在可以使用 Windows 更新来更新
在这个版本中,QEMU 启动时会默认启动一个新的标准 SMBIOS
字符串。SMBIOS
字段提供的参数可生成虚拟机上运行的虚拟硬件 ID。因此,Windows Update 可以识别虚拟硬件和 RHEL hypervisor 机器类型,并更新运行 Windows 10+、Windows Server 2016 和 Windows Server 2019+ 的虚拟机上的 Virtio 驱动程序。
(JIRA:RHELPLAN-45901)
新命令: virsh guestinfo
在 RHEL 8.3 中引进了 virsh guestinfo
命令。这样便可报告有关虚拟机(VM)的以下信息:
- 客户端操作系统和文件系统信息
- 活跃用户
- 使用的时区
运行 virsh guestinfo
前,请确定安装了 qemu-guest-agent 软件包。另外,VM XML 配置中必须启用 guest_agent
频道,如下所示:
<channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
(JIRA:RHELPLAN-45900)
KVM 支持用于 BFLOAT16
输入的 VNNI
有了这个更新,支持 BFLOAT16
输入(也称为 AVX512_BF16
指令)的 Vector Neural Network Instructions(VNNI)现在也被运行在第 3 代 Intel Xeon 可扩展处理器(也称为 Cooper Lake)上的主机的 KVM 所支持。因此,客户机软件现在可以使用虚拟机内的 AVX512_BF16
指令,方法是在虚拟 CPU 配置中启用它。
(JIRA:RHELPLAN-45899)
新命令: virsh pool-capabilities
RHEL 8.3 引进了 virsh pool-capabilities
命令选项。此命令显示主机上可用于创建存储池以及每个池中的存储卷的信息。这包括:
- 存储池类型
- 存储池源格式
- 目标存储卷格式类型
(JIRA:RHELPLAN-45884)
支持带有 Intel Xeon Platinum 9200 系列处理器的虚拟机中的 CPUID.1F
在这个版本中,在 RHEL 8 中托管的虚拟机可以使用多层的虚拟 CPU 拓扑进行配置,该拓扑使用 Extended Topology Enumeration leaf feature(CPUID.1F)。Intel Xeon Platinum 9200 系列处理器(以前称为 Cascade Lake)支持这个功能。现在,在使用 Intel Xeon Platinum 9200 系列处理器的主机上,可以创建一个带有主机物理 CPU 拓扑的 vCPU 拓扑。
(JIRA:RHELPLAN-37573, JIRA:RHELPLAN-45934)
虚拟机现在可以使用 Intel Xeon 可扩展处理器三代功能
Cooperlake
CPU 模型名称现在可用于虚拟机(VM)。使用 Cooperlake
作为虚拟机的 XML 配置中的 CPU 类型,使第三代 Intel Xeon 可扩展处理器的新功能可提供给虚拟机(如果主机使用此 CPU)。
(JIRA:RHELPLAN-37570)
KVM 现在支持 Intel Optane 持久性内存
在这个版本中,在 RHEL 8 中托管的虚拟机可从 Intel Optane 持久内存技术(之前称为 Intel Crystal Ridge)中受益。Intel Optane 持久内存存储设备提供数据中心级别的持久内存技术,这可以显著提高事务吞吐量。
(JIRA:RHELPLAN-14068)
虚拟机现在可以使用 Intel 处理器 Trace
在这个版本中,在 RHEL 8 中托管的虚拟机(VM)可以使用 Intel Processor Trace(PT)功能。当您的主机使用支持 Intel PT 的 CPU 时,您可以使用指定的 Intel 软件来收集有关虚拟机 CPU 性能的各种指标。请注意,这还需要在虚拟机 XML 配置中启用 intel-pt
功能。
(JIRA:RHELPLAN-7788)
DASD 设备现在可以分配给 IBM Z 中的虚拟机
直接访问的存储设备(DASD)提供很多特定的存储功能。使用 vfio-ccw
功能,您可以将 DASD 作为中介设备分配给 IBM Z 主机上的虚拟机(VM)。例如,这可以使虚拟机访问 z/OS 数据集,或者与 z/OS 机器共享分配的 DASD。
(JIRA:RHELPLAN-40234)
IBM Z 支持 IBM Secure Execution
当使用 IBM Z 硬件来运行 RHEL 8 主机时,您可以通过为虚拟机配置 IBM Secure Execution 来提高虚拟机(VM)的安全性。IBM Secure Execution(也称 Protected Virtualization)可防止主机系统访问虚拟机的状态和内存内容。
因此,即使主机被攻击,也无法用作攻击客户端操作系统的向量。另外,安全执行也可以用来防止不可信主机从虚拟机获取敏感信息。
(JIRA:RHELPLAN-14754)
5.1.19. 云环境中的 RHEL
cloud-utils-growpart
rebase 为 0.31
cloud-utils-growpart
软件包已更新至版本 0.31,它提供多个程序错误修复和增强。主要变更包括:
- 修复了阻止 GPT 磁盘增长过去 2TB 的错误。
-
当启动扇区和大小相同时,
growpart
操作不再会失败。 -
以前,在一些情况下使用
sgdisk
工具重新定义分区大小失败。这个问题现已解决。
5.1.20. 容器
skopeo
容器镜像现已正式发布
registry.redhat.io/rhel8/skopeo
容器镜像是 skopeo
软件包的容器化实施。skopeo
工具是一个命令行工具,可以对容器镜像和镜像存储库执行各种操作。此容器镜像允许您检查 registry 中的容器镜像,从 registry 中移除容器镜像,并将容器镜像从一个未经身份验证的容器 registry 复制到另一个。要拉取 registry.redhat.io/rhel8/skopeo
容器镜像,您需要有效的 Red Hat Enterprise Linux 订阅。
buildah
容器镜像现在可用
registry.redhat.io/rhel8/buildah
容器镜像是 buildah
软件包的容器化实施。buildah
工具可促进构建 OCI 容器镜像。此容器镜像允许您构建容器镜像,而无需在系统中安装 buildah
软件包。使用案例不包括在无根模式下作为非 root 用户运行此镜像。要拉取 registry.redhat.io/rhel8/buildah
容器镜像,您需要有效的 Red Hat Enterprise Linux 订阅。
podman v2.0 RESTful API 现已正式发布
新的基于 Podman 2.0 API 的 REST 会根据 varlink 库替换旧的远程 API。新的 API 可在根和无根环境中工作,并提供 docker 兼容层。
(JIRA:RHELPLAN-37517)
安装 Podman 不需要 container-selinux
在这个版本中,在容器构建过程中安装 container-selinux
软件包是可选的。因此,Podman 对其它软件包的依赖性更少。