章 8. Kernel

Red Hat Enterprise Linux 7.0 搭載了 kernel 版本 3.10,它提供了數項新功能,最顯著的新功能列在下方。

支援大型的 crashkernel

Red Hat Enterprise Linux 7.0 在搭載了大量記憶體(達 3TB)的系統上支援 kdump 當機傾印機制。

以超過 1 個 CPU 來啟動 Crashkernel

Red Hat Enterprise Linux 7.0 能允許以超過一個 CPU 來啟動 crashkernel。這項功能乃技術預覽。

Swap 記憶體壓縮

Red Hat Enterprise Linux 7.0 帶入了 swap 記憶體壓縮這項新功能。Swap 壓縮乃透過 zswap(一個用來進行 frontswap 的精簡後端)來進行的。利用 swap 記憶體壓縮技術,可確保有效減少 I/O 並提升效能。

能偵測 NUMA 的排程和記憶體配置

在 Red Hat Enterprise Linux 7.0 中,kernel 會重定位相同系統中,NUMA 節點之間的程序和記憶體,以改善使用了非統一記憶體存取(non-uniform memory access,NUMA)的系統上的效能。

APIC 虛擬化

進階可程式化插斷控制器(Advanced Programmable Interrupt Controller,APIC)暫存器的虛擬化支援,乃透過利用新處理器的硬體能力來提升虛擬機器監控程式(virtual machine monitor,VMM)插斷處理來達成的。

內建在 Kernel 中的 vmcp

在 Red Hat Enterprise Linux 7.0 上,vmcp kernel 模組內建於 kernel 中。這能確保 vmcp 裝置節點總是存在,並且使用者能夠在不先行載入 vmcp kernel 模組的情況下,便傳送 IBM z/VM hypervisor 控制程式指令。

硬體錯誤回報機制

目前,Linux 中的硬體錯誤回報機制可能會產生問題,這大部分是基於多種工具(mcelog 和 EDAC)向不同來源蒐集錯誤,並以不同的方式及工具(例如 mcelogedac-utilssyslog)回報錯誤事件所產生的。
硬體錯誤回報的問題能分為以下兩個部分:
  • 不同的錯誤資料蒐集機制收集了各種/重複的資料,
  • 和不同工具以不同位置和不同時間戳來回報了這些資料,使事件無法相互關聯。
Red Hat Enterprise Linux 7.0 中的新硬體事件回報機制(Hardware Event Reporting Mechanism,HERM)主要用來整合由各種來源蒐集的錯誤資料,並將錯誤事件回報至使用者空間上中,循序的時間軸和單獨的位置上。Red Hat Enterprise Linux 7.0 中的 HERM 提供了新的使用者空間 daemon rasdaemon,它會快取及處理所有來自於 kernel 追蹤基礎結構的穩定、可用和服務性(RAS)錯誤事件,並記錄它們。Red Hat Enterprise Linux 7.0 中的 HERM 亦提供了用來回報錯誤的工具,並且能偵測不同類型的錯誤,例如高載與疏鬆上的錯誤。

完整的 DynTick 支援

nohz_full 開機參數延伸了原始的 tickless kernel 功能,當使用各別 cpu 的 nr_running=1 設定時,tick 將能被停下。也就是說,CPU 的執行佇列上有個單獨的可執行任務。

將 kernel 模組列入黑名單

Red Hat Enterprise Linux 7.0 所搭載的 modprobe 工具程式能讓使用者在進行安裝時,將 kernel 模組納入黑名單中。若要全域停用模組的自動載入,請執行下列指令:
modprobe.blacklist=模組

動態式 kernel 修補

Red Hat Enterprise Linux 7.0 帶入了 kpatch 動態式 kernel 修補管理程式作為技術預覽。kpatch 能讓使用者管理一系列二進位 kernel 修補程式,它們能被使用來在無需重新開機的情況下,動態式修補 kernel。

Emulex ocrdma 驅動程式

Emulex ocrdma 驅動程式包含在 Red Hat Enterprise Linux 7.0 中作為技術預覽。驅動程式提供了透過特定 Emulex 控制卡進行遠端直接記憶體存取(remote direct memory access,RDMA)的機能。

dm-era 目標

Red Hat Enterprise Linux 7.0 帶入了 dm-era device-mapper 目標作為技術預覽。dm-era 會追蹤在使用者定義的時間週期(稱為「era」)內,被寫入的區塊有哪些。各個 era 目標事例皆會將目前的 era 作為依序遞增的 32 位元計數單位來維護。此目標能讓備份軟體追蹤哪些區塊在上次備份之後遭到變更。它亦能針對快取內容進行部分的無效判定,以在復原至廠商 snapshot 之後保有快取的一致性。dm-era 目標主要會被預期與 dm-cache 目標配對。