RHEL 9 for Real Time のインストール
Red Hat Enterprise Linux 9 への Linux リアルタイムカーネルのインストール
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバック
当社のドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
特定の文章に関するコメントの送信
- Multi-page HTML 形式でドキュメントを表示し、ページが完全にロードされてから右上隅に Feedback ボタンが表示されていることを確認します。
- カーソルを使用して、コメントを追加するテキスト部分を強調表示します。
- 強調表示されたテキストの近くに表示される Add Feedback ボタンをクリックします。
- フィードバックを追加し、Submit をクリックします。
Bugzilla からのフィードバック送信 (アカウントが必要)
- Bugzilla の Web サイトにログインします。
- Version メニューから正しいバージョンを選択します。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- Submit Bug をクリックします。
第1章 RHEL for Real Time のインストール
多くの業界や組織には、非常に高いパフォーマンスのコンピューティング機能が必要で、特に金融業界や通信業界では、小さく予測可能なレイテンシーが必要になる場合があります。レイテンシー (応答時間) はイベントとシステム応答間の時間として定義され、通常マイクロ秒 (μs) で測定されます。
Linux 環境で実行されているほとんどのアプリケーションでは、基本的なパフォーマンスチューニングにより、レイテンシーを十分に改善できます。Red Hat は、レイテンシーを低く保つだけでなく、予測可能な機能も必要とする業界向けに、この内容を提供するドロップインのカーネル置き換えを開発しました。RHEL for Real Time は RHEL 9 の一部として提供され、RHEL 9 とのシームレスな統合を提供します。RHEL for Real Time により、組織内のレイテンシーを測定、設定、記録することができます。
RHEL for Real Time をインストールする前に、ベースプラットフォームが適切にチューニングされ、システム BIOS パラメーターが調整されていることを確認します。これらのタスクの実行に失敗すると、RHEL Real Time デプロイメントから一貫したパフォーマンスを得ることができなくなる可能性があります。
1.1. RHEL for Real Time でのレイテンシーの最適化
RHEL for Real Time は、非常に高い決定要件があるアプリケーション用に、適切にチューニングされたシステムでの使用を目的に設計されています。カーネルシステムのチューニングにより、決定論の改善が大きくなります。
たとえば、多くのワークロードで、システムを徹底してチューニングすることで、約 90% ほど一貫性が向上します。このため、RHEL for Real Time を使用する前に、まず標準的な RHEL のシステムチューニングを実行して、目的が満たされているかどうかを確認することが推奨されます。
システムのチューニングが重要なのは、リアルタイムカーネルを使用する場合でも標準カーネルの場合でも同じです。RHEL 9 リリースの一部として提供される標準カーネルを実行する未チューニングのシステムに、リアルタイムカーネルをインストールしても、目立った利点はありません。標準カーネルをチューニングすることで、達成可能なレイテンシー改善の 90% が得られます。リアルタイムカーネルは、最も要求の厳しいワークロードで必要とされる、レイテンシー改善の最後の 10% を提供します。
リアルタイムカーネルシステムをチューニングする前に、ベースプラットフォームが適切にチューニングされ、システムの BIOS パラメーターの調整が行われていることを確認してください。これらのタスクの実行に失敗すると、RHEL Real Time デプロイメントから一貫したパフォーマンスを得ることができなくなる可能性があります。
リアルタイムカーネルの目的は、一貫性のある、低レイテンシーの、決定論に基づく予測可能な応答時間を提供することです。リアルタイムカーネルに関連する、追加のカーネルオーバーヘッドがあります。これは主に、個別にスケジュール設定されたスレッドでハードウェア割り込みを処理するためです。ワークロードのオーバーヘッドが増大すると、全体的なスループットが低下します。スループットの低下は 0% から 30% までの範囲ですが、正確な量はワークロードに大きく依存します。
カーネル遅延の要件がミリ秒 (ms) オーダーの般的なワークロードの場合は、標準の RHEL 9 カーネルで十分です。ただし、ワークロードに、割り込み処理やマイクロ秒 (μs) 範囲のプロセススケジューリングなどのコアカーネル機能に対する厳格な低遅延の決定論要件がある場合は、リアルタイムカーネルが最適です。

このグラフは、RHEL 9 と RHEL for Real Time カーネルを使用するマシン 100 万台のサンプルを比較したものです。
- このグラフの青い点は、チューニングされた RHEL 9 カーネルを実行しているマシンのシステム応答時間 (マイクロ秒単位) を表しています。
- グラフの緑色の点は、チューニングされたリアルタイムカーネルを実行しているマシンのシステムの応答時間を表しています。
このグラフからは、標準カーネルの応答時間が大きく変動しているのとは対照的に、リアルタイムカーネルの応答時間は一定であることが良く分かります。
1.2. yum を使用した RHEL for Real-Time のインストール
システムに RHEL 9 for Real Time をインストールするには、yum
パッケージマネージャーを使用します。
RHEL for Real Time が含まれる ISO イメージは、カスタマーポータル からダウンロードすることもできます。この ISO イメージを使用して、RHEL for Real Time に含まれるすべての RPM パッケージを取得できます。ただし、これは起動可能な ISO イメージではないため、これを使用して起動可能な USB または CD メディアを作成することはできません。
前提条件
AMD64 または Intel64 システムに最新バージョンの RHEL 9 がインストールされている。
注記RHEL for Real Time は、Red Hat Enterprise Linux の実行が認定されている AMD64 および Intel64 (x86_64 とも呼ばれます) サーバープラットフォームで実行されます。
- マシンが登録され、RHEL が RHEL for Real Time サブスクリプションに割り当てられている。
ベースプラットフォームが適切にチューニングされ、システム BIOS パラメーターが調整されている。
注記これらのタスクを実行しないと、RHEL for Real Time デプロイメントから一貫したパフォーマンスを得ることができなくなる可能性があります。
手順
RHEL for Real Time リポジトリーを有効にします。
# subscription-manager repos --enable rhel-9-for-x86_64-rt-rpms
RHEL for Real Time パッケージグループをインストールします。
# yum groupinstall RT
このグループにより、複数のパッケージがインストールされます。
-
kernel-rt
: RHEL for Real Time カーネルパッケージ -
kernel-rt-core
: コア RHEL for Real Time カーネルパッケージ -
kernel-rt-devel
: RHEL for Real Time カーネル開発パッケージ -
kernel-rt-modules
: RHEL for Real Time カーネルモジュールパッケージ -
kernel-rt-modules-extra
- RHEL for Real Time カーネル追加モジュールパッケージ -
rt-setup
- RHEL for Real Time で必要とする基本環境を設定するパッケージ -
rteval
- RHEL for Real Time のシステム適合性を評価するパッケージ -
rteval-loads
: rteval 負荷のソースコードを提供するパッケージ -
tuned-profiles-realtime
: リアルタイムを対象とした追加のTuneD
プロファイルを含むパッケージ
-
(オプション) さらに、
tuna
パッケージには、RHEL for Real Time ワークロードをチューニングするのに役立つツールが含まれており、コマンドラインまたは GUI からの CPU 分離とスレッドアフィニティー操作を大幅に自動化します。このパッケージは、ベースの RHEL 9 リポジトリーで入手できます。tuna の使用については、RHEL for Real Time Kernel Tuning Guideを参照してください。# yum install tuna
RHEL for Real Time カーネルがインストールされると、自動的にデフォルトのカーネルに設定され、次回の起動時に使用されます。
検証手順
インストールの場所を確認し、コンポーネントが正常にインストールされていることを確認します。
# rpm -ql realtime-setup /etc/security/limits.d/realtime.conf /etc/sysconfig/realtime-setup /etc/udev/rules.d/99-rhel-rt.rules /usr/bin/realtime-setup /usr/bin/rt-setup-kdump /usr/bin/slub_cpu_partial_off /usr/lib/.build-id /usr/lib/.build-id/a4 /usr/lib/.build-id/a4/da77908aa4c6f048939f3267f1c552c456d117 /usr/lib/systemd/system/rt-entsk.service /usr/lib/systemd/system/rt-setup.service /usr/sbin/kernel-is-rt /usr/sbin/rt-entsk
1.3. RHEL for Real Time リポジトリーで利用可能な RPM パッケージ
このセクションでは、RHEL for Real Time リポジトリーで使用可能な RPM パッケージの一覧を示します。
RHEL for Real Time 固有
列は、RPM が標準の RHEL 9 メンテナーンスストリームと異なるか、または標準のカーネルには該当しないかを示します。この列が いいえ
の場合、RPM が RHEL 9 で同等に機能することを意味します。
必須
列は、正しい Red Hat Enterprise Linux for Real Time の動作にパッケージが必要であるかどうかを示します。この列が いいえ
の場合、使用が任意であることを意味します。
表1.1 基本的な RHEL for Real Time カーネルパッケージ
RPM パッケージ名 | 説明 | RT 固有 | 必須 |
---|---|---|---|
| 低レイテンシーおよびプリエンプション機能 | はい | はい |
以下のパッケージには、RHEL for Real Time で使用するためのテストプログラムが含まれています。
表1.2 RHEL for Real Time カーネルテストパッケージ
RPM パッケージ名 | 説明 | RT 固有 | 必須 |
---|---|---|---|
| カーネル開発用のヘッダーおよびライブラリー | はい | いいえ |
| デバッグ機能がコンパイルされた RHEL for Real Time カーネル (低速) | はい | いいえ |
| デバッグカーネル開発に使用するヘッダーおよびライブラリー | はい | いいえ |
| システムレイテンシーを測定し、優先度継承ミューテックスを適切に機能させるためのユーティリティー | いいえ | いいえ |
以下のパッケージのセットは、カーネルクラッシュダンプを分析するための perf
ユーティリティー、trace-cmd
ユーティリティー、および crash
ユーティリティーで使用するために提供されています。デバッグパッケージはシンボルテーブルで設定されており、非常に大きくなります。このため、これらは他の RHEL for Real Time パッケージとは別に配信されます。
これらのパッケージは、RHEL for Real Time - Debug RPMs
リポジトリーにあり、ここからダウンロードが可能です。
表1.3 基本的な RHEL for Real Time デバッグパッケージ
RPM パッケージ名 | 説明 | RT 固有 | 必須 |
---|---|---|---|
|
| はい | いいえ |
| プロファイリングおよび追跡用のシンボル | はい | いいえ |
1.4. インストール後の手順
RHEL for Real Time をインストールした後、以下のことを確認してください。
- 最適な低レイテンシーの決定論を実現するには、RHEL for Real Time 固有のシステムチューニングを実行します。
- リアルタイムカーネルと標準カーネルのモジュール互換性について理解します。
-
kdump
を有効にするには、kexec/kdump
を有効にしてクラッシュダンプ情報を提供するように RHEL for Real Time を設定する必要があります。 - Real Time カーネルがデフォルトのカーネルであることを確認するには、以下のコマンドを実行します。
リアルタイムカーネルと標準カーネルのモジュール互換性
RHEL for Real Time は、標準の Red Hat Enterprise Linux 9 カーネルとは大きく異なります。結果として、サードパーティーのカーネルモジュールは RHEL for Real Time と互換性がありません。
カーネルモジュールは、特別にビルドされたカーネルに固有のものです。リアルタイムカーネルは、標準のカーネルとは大きく異なるため、モジュールも大きく異なります。
つまり、Red Hat Enterprise Linux 9 からサードパーティーのモジュールを取得して、そのモジュールを RHEL for Real Time で使用することはできません。サードパーティーのモジュールを使用する必要がある場合は、RHEL for Real Time の開発およびテストパッケージで利用可能な RHEL for Real Time ヘッダーファイルを使用して再コンパイルする必要があります。
以下は、標準の Red Hat Enterprise Linux 9 に同梱されていて、現在 RHEL for Real Time 用のカスタムビルドがないサードパーティーのドライバーの例です。
- EMC Powerpath
- NVidia graphics
- Qlogic の高度なストレージアダプター設定ユーティリティー
ユーザー空間の syscall
インターフェイスは、RHEL for Real Time と互換性があります。
第2章 RHEL for Real Time バグの報告
問題の原因となっているカーネル (RHEL for Real Time または標準カーネル) を特定すると、バグが修正される可能性が高くなります。このセクションでは、バグを診断して報告する方法を説明します。
2.1. RHEL for Real Time バグの診断
この手順では、バグレポートを提出する前に、問題が発生した場所を診断する方法を説明します。
前提条件:
- RHEL for Real Time カーネルの最新バージョンがインストールされている。
手順
- RHEL for Real Time カーネルの最新バージョンを使用していることを確認します。
-
GRUB
メニューを使用して、RHEL for Real Time カーネルを起動します。 - 問題が発生した場合は、RHEL for Real Time に対するバグを報告してください。
標準カーネルで問題を再現してみてください。
このトラブルシューティング手順は、問題のある場所を特定するのに役立つ場合があります。
標準カーネルで問題が発生しない場合、バグはおそらく、Red Hat がベースライン (4.18.0) カーネルに適用した RHEL for Real Time 固有の拡張機能に導入された変更の結果です。
2.2. Bugzilla でのバグレポートの送信
バグが Red Hat Enterprise Linux for Real Time に固有であると判断した場合は、このセクションの手順に従ってバグレポートを送信してください。
前提条件:
- Red Hat アカウントを持っている。
手順
- Bugzilla アカウントにログインします。
-
Enter A New Bug Report
をクリックします。 -
Red Hat classification
を選択します。 -
Red Hat Enterprise Linux
製品を選択します。 -
Component
を入力します。
たとえば、バグがカーネルの問題である場合は、kernel-rt
を使用します。あるいは、影響を受けるユーザースペースコンポーネントの名前を使用します (例:rteval
)。 RHEL for Real Time カーネルのバグの問題の詳細な説明を提供します。
問題の説明を入力するときに、標準の Red Hat Enterprise Linux 9 カーネルで問題を再現できたかどうかも記載することをお勧めします。