第 8 章 内核
Red Hat Enterprise Linux 7.0 采用 kernel 版本 3.10,该版本提供大量新功能,主要列举如下。
支持大的 crashkernel 大小
Red Hat Enterprise Linux 7.0 支持在有大内存(最大为 3TB)的系统中使用 kdump 崩溃转储机制。
在一个以上 CPU 中使用 crashkernel
Red Hat Enterprise Linux 7.0 启用在一个以上 CPU 中引导 crashnernel 的功能。这个功能作为技术预览支持。
Swap 内存压缩
Red Hat Enterprise Linux 7.0 引进了一个新功能,即 swap 内存压缩。Swap 压缩由 zswap 执行,这是一个用于 frontswap 的精简后端。采用 swap 内存压缩技术可保证显著减少 I/O 并提高性能。
采用 NUMA 的调度和内存分配
在 Red Hat Enterprise Linux 7.0 中,内核会在同一系统的不同 NUMA 节点间自动重置进程和内存以提高没有统一内存访问(NUMA)系统的性能.
APIC 虚拟化
通过利用新处理器的硬件功能支持高级程序中断控制器(APIC)注册的虚拟化以便提高虚拟机监视器(VMM)中断处理能力。
vmcp
内嵌在内核中
在 Red Hat Enterprise Linux 7.0 中,
vmcp
内核模块内嵌在内核中。这可保证 vmcp 设备节点总会出现,同时用户可在不首先载入 vmcp
内核模块的情况下发送 IBM z/VM hypervisor 控制程序命令。
硬件错误报告机制
目前,Linux 的硬件报错机制还不完善,多数是由各种工具(mcelog 和 EDAC)造成,这些工具从不同源采用不同方法以及不同工具(比如:mcelog, edac-utils 和 syslog)收集出错信息,报告出错事件。
硬件报错问题可分为两个方面:
- 收集各种数据,有时是重复数据的不同错误数据收集机制,
- 以及在不同位置使用不同时间戳报告这些数据的不同工具,使其与事件关联变得困难。
Red Hat Enterprise Linux 7.0 中的新硬件事件报告机制,也称 HERM 的目标是统一来自不同源的出错数据集合,并采用连续时间线和单一位置向用户控件报告出错事件。Red Hat Enterprise Linux 7.0 中的 HERM 引进了新的用户空间守护进程
rasdaemon
,它可捕获并处理所有来自内核追踪架构的可依赖性、可用性及可服务性(RAS)出错事件,并记录它们。Red Hat Enterprise Linux 7.0 中的 HERM 还提供报告那些错误的工具,并可探测不同类型的错误,比如 burst 和 sparse 错误。
全面 DynTick 支持
nohz_full
引导参数将最初的无缝内核功能延伸到额外的情况,比如可以停止 tick 的时候,可以使用 per-cpu nr_running=1
设置的时候。即在 CPU 的运行队列中只有一个可运行的任务。
将内核模块列入黑名单
Red Hat Enterprise Linux 7.0 提供 modprobe 程序可让用户在安装时将内核模块放入黑名单。要禁用自动载入一个模块,请运行以下命令:
modprobe.blacklist=module
动态内核补丁
Red Hat Enterprise Linux 7.0 引进了 kpatch,一个动态内核补丁管理程序作为技术预览。用户可使用 kpatch 管理二进制补丁集合,它可在不重启的情况下动态为内核打补丁。
Emulex ocrdma 驱动程序
Emulex
ocrdma
驱动程序在 Red Hat Enterprise Linux 7.0 中是作为技术预览提供。该驱动程序为具体的 Emulex 适配器提供远程直接内存访问(RDMA)功能。
dm-era 目标
Red Hat Enterprise Linux 7.0 引进了 dm-era 设备映射器目标作为技术预览。dm-era 可跟踪在用户定义的时间段(即“era”)内写入的块。每个 era 目标事务可将当前 era 单调地增加到 32 位计数器。这个目标允许备份软件追踪自上次备份后有变化的块。它还允许在返回经销商快照后部分失效的缓存内容恢复缓存一致性。dm-era 目标主要与 dm-cache 目标配对。