第16章 カーネル
RHEL 9 と RHEL 10 の間でカーネルとブートローダーに加えられた、最も顕著な変更点を説明します。
16.1. カーネルの主な変更点 リンクのコピーリンクがクリップボードにコピーされました!
RHEL 9 と RHEL 10 の間でカーネルに加えられた最も顕著な変更点を説明します。
- カスタムスケジューラーを作成するための
sched_ext scheduler RHEL 10 では、
sched_extを使用して、Extended Berkeley Packet Filter (eBPF) でカスタムのプロセススケジューリングコードを実行時に作成できます。sched_extスケジューラーを使用すると、標準のカーネルスケジューラーを独自のスケジューリングロジックに置き換えて、プロセスの優先度設定、リソースの割り当て、および実行動作を制御できます。Red Hat はカスタムスケジューラーのサポートを提供していません。
- CFS が EEVDF スケジューラーに置き換えられる
Completely Fair Scheduler (CFS) は、新しいスケジューラーである Enhanced Earliest Deadline First (EEVDF) に置き換えられました。これには次の変更が含まれます。
-
sched_min_granularityがsched_base_sliceになりました。使用される単位は同じです。sched_base_sliceは、タスクの実行を延期できる最小時間を定義します。 -
sched_wakeup_granularityは、CPU 上のすべてのタスクのベースライン優先度 (CPU の割合) を設定します。sched_wakeup_granularityは EEVDF では使用されないため、削除されました。
CFS と EEVDF は、ほとんどの場合、ワークロードの面で同等の結果を提供します。ただし、各タスク選択のロジックが異なるため、パフォーマンスに若干の差が生じる可能性があります。
-
- 64 ビット x86 での LUKS 暗号化 kdump のサポート
Red Hat Enterprise Linux 10 では、LUKS 暗号化ブロックデバイスを使用するシステムにおいて、パスフレーズを手動で入力することなく、kdump 機能がクラッシュダンプを自動的に実行できるようになりました。以前は、ルートファイルシステムまたは kdump ターゲットデバイスが LUKS 暗号化を使用している場合、管理者がコンソールでパスフレーズを入力するか、暗号化されていない別の kdump ターゲットを設定しない限り、クラッシュカーネルから暗号化されたデバイスにアクセスできませんでした。
Red Hat Enterprise Linux 10 では、実行中のカーネルが kexec を使用して kdump カーネルをロードする際に、LUKS ボリューム鍵を kdump カーネルに渡すことができます。kdump ユーティリティーの更新と合わせて、この変更により以下のことが可能になります。
- LUKS 暗号化システムでの無人クラッシュダンプ (ヘッドレス環境およびリモートデプロイメントを含む)
- サポートされている環境で、同じ LUKS 暗号化デバイスをルートファイルシステムと kdump ターゲットの両方として使用すること
- 暗号化されたインストール環境と暗号化されていないインストール環境の間で、より一貫性のある動作を実現すること
この機能を使用するには、この変更が組み込まれた Red Hat Enterprise Linux 10 カーネルをシステムで実行していること、kdump が設定され有効になっていること、および kdump のターゲットデバイスがクラッシュカーネル環境からアクセス可能であることを確認してください。設定の詳細とサポートされているシナリオについては、Red Hat Enterprise Linux 10 の kdump ドキュメント を参照してください。
- カーネルのライブパッチによってのみ修正された CVE の特定
kpatch ツールでは、実行中のカーネルに適用されたライブパッチによって修正されている脆弱性のリストをレポートできます。このレポートは、ディスク上のカーネルパッケージによってではなく、ライブパッチによってのみ修正された CVE に焦点を当てたものです。そのため、外部のアドバイザリーやスキャナーによると、
unameが報告するカーネルバージョンが脆弱であるように見える場合でも、セキュリティーおよびコンプライアンスチームはシステムが保護されていることを検証できます。この変更は、厳格な稼働時間要件に依存する環境、特に新しいカーネルへの再起動が遅延したり、複数のシステム間で調整されたりする環境では、特に重要です。Red Hat Enterprise Linux 10 では、ライブパッチで対応済みの CVE が明らかです。そのため、カーネルのライブパッチのステータスを、セキュリティーレポート、リスク評価、および自動スキャンワークフローに容易に統合できます。
RHEL 9 から Red Hat Enterprise Linux 10 へのアップグレードを計画する際には、既存の脆弱性管理およびコンプライアンスプロセスで、この kpatch レポートをどのように活用できるかを検討してください。カーネルパッケージのバージョンにまだ修正が含まれていなくても、現在実行中のカーネルに適用されたライブパッチによってのみ修正された CVE があることを認識できるように、内部のドキュメント、ダッシュボード、またはスキャナーの設定を更新する必要がある可能性があります。
- ライブカーネルパッチビルドツール (
klp-build) およびカーネルモジュールの変更 カーネルライブパッチビルドツール (
klp-build) が、Red Hat Enterprise Linux 10 で利用可能になりました。これは、入力されたカーネルパッチからライブパッチを生成するために使用されます。この変更の一環として、カーネルビルドシステムが、カーネルモジュールをビルドする際に、追加のobjtool処理を使用するようになりました。これらの変更により、カーネルモジュールがゼロ以外のセクションロードアドレスを持つことができるようになりました (たとえば、
.textおよび関連セクションのsh_addr値がゼロ以外になります)。これは、以前の Red Hat Enterprise Linux リリースとは異なります。以前のリリースでは、多くのツールが、カーネルモジュールセクションがアドレス 0 から始まることを前提としていました。この変更の影響を受ける可能性があるのは、カーネルモジュールの ELF メタデータを直接解析するデバッグツールやトレースツール (
elfutilsやSystemTapに基づくツールなど) のうち、以前のゼロベースのセクションアドレスレイアウトに依存しているものです。予想外の障害や誤ったシンボル解決を避けるために、以下を実行してください。-
Red Hat Enterprise Linux 10 では、ゼロ以外のセクションアドレスを持つカーネルモジュールをサポートするバージョンの
elfutils、SystemTap、および関連ツールを使用してください。 - カーネルモジュール ELF ファイルを検査する自社開発ツールまたはサードパーティー製ツールを使用している場合は、セクションアドレスがゼロ以外の場合も正しく処理できるようにツールを更新してください。
ライブパッチ適用ワークフローやカーネルモジュールを処理するカスタムツールに依存している場合は、以前のバージョンの Red Hat Enterprise Linux から実稼働システムをアップグレードする前に、Red Hat Enterprise Linux 10 でシナリオをテストしてください。
-
Red Hat Enterprise Linux 10 では、ゼロ以外のセクションアドレスを持つカーネルモジュールをサポートするバージョンの
perfツールがアップストリームの Linux 6.17 と同期されましたRed Hat Enterprise Linux 10.2 では、ユーザー空間の
perfツールが、アップストリームの Linux 6.17 のperfコードベースと同期されました。この変更は、Red Hat Enterprise Linux システムで、パフォーマンス分析、プロファイリング、およびハードウェアイベントサンプリングにperfを使用するシステム管理者と開発者に影響します。このリベースにより、最新の Intel アンコア PMU、新しい IBM Z CPU-MF カウンター、および Fujitsu Monaka などのベンダー固有のプラットフォームを含む、複数のハードウェアプラットフォームにわたる新規および更新された Performance Monitoring Unit (PMU) イベントがサポートされるようになります。そのため、
perfで利用可能な一連のイベント、メトリクス、およびレポートオプションは、以前の Red Hat Enterprise Linux のメジャーバージョンとは異なる場合があります。これらの変更により、既存の
perfワークフローの一部に調整が必要になる可能性があります。- 以前の Red Hat Enterprise Linux のメジャーバージョンで使用していたイベント名、イベントエイリアス、およびメトリクスは、名前が変更されたり、非推奨になったり、置き換えられたりする可能性があります。
-
特定のコマンドラインオプションやイベント名を指定して
perfを呼び出すスクリプト、自動化ツール、およびドキュメントは、新しいアップストリームの動作に合わせて更新する必要がある可能性があります。 -
Red Hat Enterprise Linux 10.2 で収集した
perf.dataファイルは、以前の Red Hat Enterprise Linux メジャーバージョンの古いperfと完全には互換性がない可能性があります。
Red Hat Enterprise Linux 10.2 にアップグレードする前に、非実稼働環境で
perfベースのツールとスクリプトを確認し、テストしてください。アップグレード後、perf listコマンドとperf helpコマンドを使用して、利用可能なイベントとメトリクスを確認し、古いイベント名や動作に依存する自動化を更新してください。perfツールがアップストリームの 6.18 にリベースされましたRed Hat Enterprise Linux 10.2 では、
perfユーザー空間ツールが、アップストリームの Linux 6.18 バージョンにリベースされました。このリベースにより、Red Hat Enterprise Linux のパフォーマンスモニタリングスタックが、より新しいハードウェアサポートおよびアップストリームの動作と整合したものになります。Red Hat Enterprise Linux 10.2 にアップグレードする際は、以下の変更点にご注意ください。
- サポート対象の Intel システムで、新規および更新された Performance Monitoring Unit (PMU) イベントが利用可能になりました。Intel Core Ultra (WCL-U) プラットフォームでは、コアおよびアンコアの追加イベントも利用できるようになりました。
-
一部のイベント名、メトリクスグループ、および計算式が、アップストリームのプラクティスに合わせて変更されました。
perf stat -M <metric-name>などのスクリプト呼び出しを使用したり、perfJSON メトリクスを解析したりする場合は、想定されるメトリクスとエイリアスがまだ存在することを確認する必要があります。 -
perf statやperf reportなどのコマンドの出力が、書式、列名、デフォルトのソートキーなどの点で、若干異なる可能性があります。場合によっては、perfの出力を解析するツールを更新する必要があります。
perfに依存するパフォーマンス重視の環境や CI ジョブをアップグレードする前に、Red Hat Enterprise Linux 10.2 上で既存のワークフローをkernel-6.12.0-177.el10ビルドを使用してテストし、主要な測定値のベースラインを再設定してください。イベントやメトリクスの定義が更新されたことにより、結果の出力方法に影響が及ぶ可能性があるためです。perfがlibbpfに静的にリンクするようになりましたRed Hat Enterprise Linux 10 では、
perfプロファイリングツールは、libbpfランタイムパッケージのlibbpf共有ライブラリーを使用する代わりに、カーネルソースツリーに含まれるlibbpfライブラリーに静的にリンクするようになりました。この変更により、次の利点が得られます。
-
perfが、対応するカーネルビルドとともにテストされたバージョンのlibbpfを常に使用するようになります。 -
perfに必要なlibbpfの API および ABI の変更を、対応するlibbpfパッケージの更新不要で、単一のカーネル更新で提供できます。 -
カーネルのソース RPM が再ビルドされると、
perfも対応する in-tree のlibbpfコードを使用して再ビルドされます。
ほとんどのユーザーにとって、この変更は透過的に行われ、手動での操作は必要ありません。既存の
perfワークフローとコマンドラインオプションは、これまでどおり引き続き動作します。ただし、たとえばトラブルシューティングや、特定の
libbpfパッケージバージョンでの動作を検証する目的などで、perfバイナリーがシステムのlibbpf共有ライブラリーに動的リンクする仕組みに依存していた場合、今後はlibbpfランタイムパッケージを更新するだけでは perf のlibbpfに関する動作を変更できなくなります。このような場合は、目的のlibbpfバージョンが組み込まれたカーネルビルドに含まれるperfツールを使用する必要があります。-
- BPF サブシステムが Linux カーネル 6.17 にリベースされました
Red Hat Enterprise Linux 10 では、Berkeley Packet Filter (BPF) サブシステムが、アップストリームの Linux カーネル 6.17 レベルにリベースされました。今回のアップデートにより、新しい BPF 機能、ベリファイアー、およびパフォーマンスの改善が追加されました。これにより、以前の Red Hat Enterprise Linux メジャーバージョンからアップグレードした後、既存の BPF プログラムやツールの動作が変わる可能性があります。
6.17 への BPF のリベースにより、以前の Red Hat Enterprise Linux リリースと比較して、以下が導入されています。
- オブザーバビリティーおよびネットワークユースケース向けの新しい BPF 命令とヘルパー関数。
- ポインター演算、境界チェック、マップアクセスに対する、より厳密なベリファイアーによるチェック。
- ネットワーク、トレース、およびオブザーバビリティーツールで使用される BPF マップ、プログラムタイプ、およびアタッチポイントの更新。
Red Hat Enterprise Linux 10 にアップグレードすると、以下のことが起きる可能性があります。
- 以前はロードされていた一部の BPF プログラムが、より厳格な安全チェックやレジスター状態追跡のために、更新された検証ツールによって拒否される可能性があります。
- 以前のベリファイアーの動作やカーネル内部構造に依存する BPF ベースのツールを更新する必要がある可能性があります。
アップグレードを行う前に、既存の BPF プログラムとワークフローを非実稼働環境の Red Hat Enterprise Linux 10 システムでテストしてください。また、Red Hat Enterprise Linux 10 のツールチェーンとカーネルヘッダーに合わせて BPF ユーザー空間コンポーネントを再ビルドしてください。
- Venice プラットフォーム向け AMD CCP ドライバーのサポートの変更
AMD Venice ベースのシステムでは、Red Hat Enterprise Linux 10.2 の AMD Cryptographic Co-processor (CCP) ドライバーが更新され、追加の Venice PCI デバイス ID を認識するようになりました。その結果、これらのシステムの CCP ハードウェアが、カーネルによって正しく検出され、初期化されるようになりました。
この変更は、Venice プラットフォーム上で暗号化アクセラレーションに CCP エンジンを使用する環境 (たとえば、IPsec や
dm-cryptワークロード) に、次のような影響を与える可能性があります。- これまで Venice ハードウェア上で CCP ベースのアクセラレーションが認識されていなかったシステムでも、Red Hat Enterprise Linux 10.2 へのアップグレード後にその使用が開始される可能性があります。これにより、暗号化ワークロードのパフォーマンス特性が変化する場合があります。
- 監視ツールや容量計画ツールによって報告される CPU 使用率のプロファイルが変わる可能性があります。暗号化処理の一部が CCP デバイスにオフロードされるようになったためです。
特定のパフォーマンス基準、ハードウェアオフロード動作、または FIPS 準拠の暗号化設定に依存している場合は、Venice ベースのシステムを Red Hat Enterprise Linux 10.2 にアップグレードした後、ワークロードのパフォーマンスとセキュリティーポリシーを見直して検証してください。
- Wildcat Lake プラットフォームでの Intel In-Memory Analytics Accelerator のサポート
Intel Wildcat Lake プラットフォームをベースとしたシステムでは、Red Hat Enterprise Linux 10 は、Intel In-Memory Analytics Accelerator (IAA) デバイスの PCI デバイス ID を認識するようになりました。以前は、これらの IAA デバイスは正しく検出されず、オペレーティングシステムで使用できない場合がありました。
その結果、IAA ハードウェアを搭載したサポート対象の Wildcat Lake システムで Red Hat Enterprise Linux 10 を実行すると、圧縮や分析オフロードなどのサポートされているワークロード向けに、カーネルがアクセラレーターデバイスを検出して公開できるようになりました。
Wildcat Lake システムで Red Hat Enterprise Linux 10 にアップグレードした後、このアクセラレーターを使用するには、以下を実行してください。
- システムファームウェアと BIOS がベンダー推奨バージョンに更新されていること、およびファームウェア設定でアクセラレーター機能が有効になっていることを確認します。
- Wildcat Lake プラットフォームに、Intel IAA をサポートしている Red Hat Enterprise Linux 10 カーネルおよび関連パッケージをインストールします。
- ハードウェアベンダーのドキュメントおよび Red Hat Enterprise Linux のハードウェア有効化に関するドキュメントに従って、ご自身の環境でアクセラレーターの使用を設定および検証します。
- Intel DMR CPU 向け Intel QuickAssist Technology (QAT) ドライバーの更新
Red Hat Enterprise Linux 10.2 では、Intel QuickAssist Technology (QAT) カーネルドライバーが、アップストリームの 6.18 をベースとしたバージョンに更新されました。この更新により、最新の Intel DMR ファミリーの CPU で QAT アクセラレーションが可能になります。また、この更新には、サポートされているすべての QAT デバイスに適用されるバグ修正が含まれています。
これらの変更により、記載されているプロセッサーを搭載したシステムで、ハードウェアアクセラレーションによる暗号化およびデータ圧縮のパフォーマンスが向上する可能性があります。このドライバーには複数の機能修正が含まれています。そのため、既存のプラットフォームにおける QAT の動作が、以前の Red Hat Enterprise Linux 10 のマイナーリリースと比較して変わる可能性があります。
Intel QAT を使用しているシステムで Red Hat Enterprise Linux 10.2 へのアップグレードを計画する場合は、以下を実行してください。
- アップグレード後、カーネルが QAT デバイスを認識し、QAT ベースのワークロードが正常に完了することを確認します。
- QAT アクセラレーションに依存する、パフォーマンスが重要な暗号化および圧縮ワークロードを再評価します。
- QAT デバイスやドライバー情報を報告する監視ツールやトラブルシューティングツールを確認します。識別子とバージョン情報は、以前の Red Hat Enterprise Linux 10 リリースと異なる可能性があるためです。
tpm2-toolsおよび関連する TPM 2.0 コンポーネントが更新されましたRed Hat Enterprise Linux 10 では、Trusted Platform Module (TPM) 2.0 ツールが、最新のハードウェア要件とセキュリティープラクティスに合わせて進化を続けています。Lenovo の 64 ビット x86 プラットフォームで RHEL 9 から RHEL 10 へのアップグレードを計画する際は、
tpm2-toolsパッケージおよび関連する TPM ベースのワークフローへの依存関係を確認してください。自社の環境で、セキュアブートの測定、シールされた鍵の保管、アテステーション、またはプラットフォームの完全性チェックのために TPM 2.0 を利用している場合は、自動化、スクリプト、および運用手順が、RHEL 10 に含まれる TPM ツールと引き続き互換性を保っていることを検証してください。特に、大規模なロールアウトの前には、コマンドラインオプション、出力形式、プロビジョニングパイプラインやコンプライアンスパイプラインとの統合などの動作を検証してください。これにより、TPM を基盤とする信頼を、プラットフォームの完全性およびコンプライアンス戦略の重要な要素とみなしている環境で、想定外のリグレッションが発生するリスクが軽減されます。