インストールガイド
RHEL for Real Time のインストール手順およびインストール後の手順
Maxim Svistunov
Marie Doleželová
Radek Bíba
David Ryan
Cheryn Tan
Lana Brindley
Alison Young
概要
前書き
第1章 Red Hat Enterprise Linux for Real Time を使用してレイテンシーを最適化する理由。

図1.1 標準のカーネルシステムの調整でリアルタイムを使用する利点。
第2章 ダウンロード
Red Hat Enterprise Linux for Real Time をインストールする唯一の前提条件は、最新の Red Hat Enterprise Linux 7 を AMD64 または Intel 64 システムにインストールすることです。
次のセクションでは、Red Hat Enterprise Linux 8 for Real Time をインストールする方法を説明します。Red Hat Enterprise Linux for Real Time を含む ISO イメージは、カスタマーポータル からダウンロードできます。この ISO イメージを使用することで、Red Hat Enterprise Linux for Real Time が構成するすべての RPM パッケージを取得できます。ただし、これは起動可能な ISO イメージではないため、起動可能な USB または CD メディアを作成することはできません。
2.1. yum を使用した Red Hat Enterprise Linux for Real Time のインストール
- Red Hat Enterprise Linux for Real Time リポジトリーを有効にします。
~]#
subscription-manager repos --enable rhel-7-server-rt-rpms
- Red Hat Enterprise Linux for Real Time パッケージグループをインストールします。
~]#
yum groupinstall RT
このグループは、複数のパッケージをインストールします。- kernel-rt Red Hat Enterprise Linux for Real Time カーネルパッケージです。
- rt-setup Red Hat Enterprise Linux for Real Time に必要な基本環境を設定します。
- rt-tests には、RT 機能をテストするプログラムが含まれています。
- rteval Red Hat Enterprise Linux for Real Time のシステム適合性を評価します。
- rteval-common は、rteval に共通のファイルを提供します。
- rteval-loads は rteval ロードのソースコードを提供します。
また、tuna は Red Hat Enterprise Linux for Real Time のワークロードの調整に役立つツールを含むパッケージで、コマンドラインまたは GUI から CPU の分離およびスレッドアフィニティー操作を大幅に自動化します。このパッケージは、ベースの Red Hat Enterprise Linux 7 リポジトリーで利用できます。tuna の使用についての情報は、3章Red Hat Enterprise Linux for Real Time カーネルチューニング を参照してください。
rpm -ql
コマンドを使用して、インストールの場所を確認し、コンポーネントが正常にインストールされていることを確認することができます。
~]# rpm -ql rt-setup
/etc/security/limits.d/realtime.conf
/etc/sysconfig/rt-setup
/etc/systemd/system/rt-setup.service
/etc/udev/rules.d/99-rhel-rt.rules
/usr/bin/rt-setup
/usr/bin/rt-setup-kdump
/usr/bin/slub_cpu_partial_off
/usr/sbin/kernel-is-rt
2.2. ディスクレスブートを使用した Red Hat Enterprise Linux for Real Time のインストール
- PXE 経由で起動する基本的なディスクレスシステムを設定する場合、次のようなパッケージのインストールが必要になります。
~]#
yum install tftp-server xinetd dhcp syslinux dracut-network
重要
- NFS サービスおよび DHCP サービスが正しく設定され、起動されていることを確認します。
- system-config-firewall によって事前定義されているファイアウォールルールは tftp トラフィックをブロックし、クライアントが起動しないようにできます。サーバーのファイアウォールルールを調整する必要があります。
- tftp サービスを有効にして、ネットワーク経由で PXE ブートを許可します。これを行うには、
/etc/xinetd.d/tftp
ファイルを編集してDisabled
パラメーターをNo
に設定します。 /var/lib/tftpboot/
の tftp root ディレクトリーに/usr/share/syslinux/pxelinux.0
をコピーします。~]#
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
- tftp ルート ディレクトリーに
pxelinux.cfg
ディレクトリーを作成します。~]#
mkdir -p /var/lib/tftpboot/pxelinux.cfg/
- tftp トラフィックを許可するファイアウォールルールを設定します。テキストエディターを使用して、
/etc/hosts.allow
に以下の行を追加します。tftpd: .hostname.com
.hostname.com は、インストールが実行されるターゲットクライアントのドメイン名に置き換えます。ファイアウォールルールの詳細は、hosts_access
の man ページを参照してください。 - tftp サーバー上で SELinux コンテキストを復元します。PXE ブートの tftp プロトコルで必要なファイルを指定するには、以下のコマンドを実行します。
~]#
restorecon -R /var/lib/tftpboot
- DHCP サーバーで PXE ブートを有効にするには、
/etc/dhcp/dhcpd.conf
に以下の設定を追加します。allow booting; allow bootp; class "pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; next-server server-ip; filename "pxelinux.0"; }
server-ip を、tftp サービスと DHCP サービスが置かれているホストマシンの IP アドレスに置き換えます。 - エクスポートしたファイルシステムのルートディレクトリー (ネットワーク上のディスクレスクライアントが使用) は、NFS 経由で共有されます。以下の形式で
/etc/exports
ファイルに root ディレクトリーを追加して、root ディレクトリーをエクスポートするように NFS サービスを設定します。/exported/root/directory hostname.com(rw,sync,no_root_squash)
設定例は、/export/root/directory ディレクトリーを、read-write
パーミッションのある hostname.com ネットワーク上の全ホストにエクスポートします。sync
オプションでは、NFS サーバーが、以前の要求で発生した変更がディスクに書き込まれるまで、要求に応答ないようにします。no_root_squash
オプションを使用すると、NFS サーバーが root 権限でクライアントに接続できるようになります。 - ディスクレスクライアントに完全に対応できるようにするには、root ディレクトリーには Red Hat Enterprise Linux for Real Time の完全なインストールが含まれている必要があります。これは、rsync から実行中のシステムと同期できます。以下を実行します。
~]#
rsync -a -e ssh --exclude='/proc/*' --exclude='/sys/*'
hostname.com:/ /exported/root/directoryhostname.com を、rsync を介して同期する実行中のシステムのホスト名に置き換えます。/exported/root/directory を、エクスポートしたファイルシステムへのパスに置き換えます。 - 以下の設定を、エクスポートしたファイルシステムの
/etc/fstab
ファイルに追加します。none /tmp tmpfs defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0
- ディスクレスクライアントが使用するカーネル (
vmlinuz-rt-kernel-version
) を選択し、tftpboot ディレクトリーにコピーします。~]#
cp /boot/vmlinuz-rt-kernel-version /var/lib/tftpboot/
- ネットワークサポートで
initramfs
ディスクイメージ (例:initramfs-rt-kernel-version.img
) を作成します。~]#
dracut -a "network nfs"
initramfs-rt-kernel-version.img rt-kernel-version initramfs
ディスクイメージを tftpboot ディレクトリーにコピーします。~]#
cp initramfs-rt-kernel-version.img /var/lib/tftpboot/
/var/lib/tftpboot
内のinitramfs
ディスクイメージと Realtime カーネルを使用するように、デフォルトのブート設定を編集します。この設定により、ディスクレスクライアントは、エクスポートしたファイルシステム (/exported/root/directory
) を読み取り/書き込みとしてマウントするように指示します。これを行うには、以下を使用して/var/lib/tftpboot/pxelinux.cfg/default
を設定します。default realtime label realtime kernel vmlinuz-rt-kernel-version append initrd=initramfs-rt-kernel-version.img root=nfs:server-ip:/exported/root/directory rw
server-ip を、エクスポートした NFS ルートパーティションが存在するホストマシンの IP アドレスに置き換えます。
重要
/etc/selinux/config
ファイルに SELINUX=disabled
を追加するか、クライアントの起動時にカーネルコマンドラインで selinux=0
を追加します。
2.3. 利用可能な RPM パッケージ
No
は、RPM が Red Hat Enterprise Linux 7 で同等に実行されることを示しています。
No
は、使用方法が任意であることを示します。
表2.1 基本的な Red Hat Enterprise Linux for Real Time カーネルパッケージ
RPM パッケージ名 | 詳細 | Red Hat Enterprise Linux for Real Time 固有かどうか。 | 必須かどうか |
---|---|---|---|
kernel-rt | 低レイテンシーおよびプリエンプション機能 | はい | はい |
kernel-rt-doc | Red Hat Enterprise Linux for Real Time ドキュメント | はい | 推奨 |
表2.2 Red Hat Enterprise Linux for Real Time Development およびテストパッケージ
RPM パッケージ名 | 詳細 |
---|---|
kernel-rt-devel | カーネル開発用のヘッダーおよびライブラリー |
kernel-rt-trace | トレース関数を含む Red Hat Enterprise Linux for Real Time カーネル |
kernel-rt-trace-devel | トレースカーネル開発に使用するヘッダーおよびライブラリー |
kernel-rt-debug | デバッグ関数を含む Red Hat Enterprise Linux for Real Time カーネル (低速) |
kernel-rt-debug-devel | デバッグカーネル開発に使用するヘッダーおよびライブラリー |
rt-tests | システムレイテンシーを測定し、優先度が継承されているミューテックスを適切に機能させるためのユーティリティー |
Red Hat Enterprise Linux for Real Time - Debug RPMs
リポジトリーから見つかり、ダウンロードできます。
表2.3 Red Hat Enterprise Linux for Real Time デバッグパッケージ
RPM パッケージ名 | 詳細 |
---|---|
kernel-rt-debuginfo | oprofile や systemtap などのプロファイリングおよびデバッグが使用するシンボル |
kernel-rt-trace-debuginfo | プロファイリングおよび追跡用シンボル |
kernel-rt-debug-debuginfo | プロファイリングおよび追跡用シンボル |
kernel-rt-debuginfo-common | 他の debuginfo パッケージ間で共有される一般的な debuginfo ファイル |
重要
2.4. インストール後の手順
インストール済みのカーネル (standard と Real Time の両方) は起動できます。起動中に GRUB メニューで必要なカーネルを手動で選択する方法もあります。このセクションに示されるように、デフォルトのカーネルを希望するカーネルに設定することもできます。
- Real Time カーネルがデフォルトのカーネルであることを確認するには、次のコマンドを root として実行します。
~]#
grubby --default-kernel
/boot/vmlinuz-3.10.0-327.18.2.rt56.223.el7_2.x86_64上記の例の rt の指定は、デフォルトのカーネルがリアルタイムカーネルであることを示しています。 - 現在システムが実行中のカーネルを表示するには、以下のコマンドを使用します。
~]$
uname -a
Linux rt-server.example.com 3.10.0-327.18.2.rt56.223.el7_2.x86_64 …
- インストールされたリアルタイムカーネルを一覧表示します。
~]#
ls /boot/vmlinuz*rt*
/boot/vmlinuz-3.10.0-327.18.2.rt56.223.el7_2.x86_64 - root で以下のコマンドを実行して、デフォルトのカーネルを一覧表示された Real Time カーネルに設定します。
~]#
grubby --set-default realtime-kernel
realtime-kernel を、Real Time カーネルバージョンに置き換えます。以下に例を示します。~]#
grubby --set-default /boot/vmlinuz-3.10.0-327.18.2.rt56.223.el7_2.x86_64
Red Hat Enterprise Linux for Real Time は、標準の Red Hat Enterprise Linux 7 カーネルとは大きく異なります。そのため、サードパーティーのカーネルモジュールは Red Hat Enterprise Linux for Real Time と互換性がありません。
- EMC Powerpath
- Nvidia グラフィックス
- Qlogic の高度なストレージアダプター設定ユーティリティー
syscall
インターフェイスは、Red hat Enterprise Linux for Real Time と互換性があります。
Red Hat Enterprise Linux 7 のインストール時に標準カーネルに対して、kexec/kdump
を有効化していない場合は、これを有効化してクラッシュダンプ情報を得られるように Red Hat Enterprise Linux for Real Time を設定できます。カーネルクラッシュ情報を取得するようにシステムを設定する方法は、Red Hat Enterprise Linux for Real Time Tuning Guide を参照してください。
第3章 Red Hat Enterprise Linux for Real Time カーネルチューニング
Red Hat Enterprise Linux for Real Time カーネルで提供される主な診断機能は Tuna です。Tuna は、コマンドラインツールとグラフィカルインターフェースの両方を提供します。これは、スレッドの属性 (スケジュールポリシー、スケジューラーの優先度、プロセッサーアフィニティー)、および割り込み (プロセッサーアフィニティー) を変更するのに使用できます。このツールは、実行中のシステムでの使用を目的として設計されており、直ちに変更が行われます。これにより、アプリケーション固有の測定ツールは、変更の直後にシステムパフォーマンスを確認および分析できます。
Red Hat Enterprise Linux for Real Time カーネルは、遅延をテストおよび報告する複数の診断ツールを提供します。
latency tracer
は、プリエンプション不可能なカーネルコードパスを特定するために使用されるピーク検出です。これは、非決定論的なパフォーマンスの結果がカーネルまたはユーザー空間コンポーネントに有害であるかどうかを特定する際に役立ちます。お客様のデプロイメントでは、このツールは遅延がカーネルまたはアプリケーションにあるかを区別するのに役立ちます。
ftrace
ユーティリティーは、ユーザー空間外で発生するレイテンシーおよびパフォーマンスの問題を分析し、デバッグするために使用されます。ユーティリティーをさまざまな方法で使用できるようにするさまざまなオプションがあります。これは、コンテキストスイッチを追跡したり、優先順位の高いタスクでウェイクアップにかかる時間を測定したり、割り込みが無効になっている時間を測定したり、特定の期間中に実行されるカーネル関数の一覧を表示するのに使用できます。
第4章 詳細情報
4.1. バグの報告
バグレポートを作成する前に、以下の手順に従って、問題発生場所を診断します。これにより、問題解決に大きくサポートします。
- 最新バージョンの Red Hat Enterprise Linux 7 カーネルがあることを確認してから、GRUB メニューから起動します。問題を標準カーネルで再現してみてください。問題が解決しない場合は、Red Hat Enterprise Linux 7 にバグを報告してください。
- 標準カーネルの使用時に問題が発生しなかった場合は、Red Hat Enterprise Linux for Real Time 固有の機能拡張 Red Hat がベースライン (3.10.0) カーネルに適用したバグにより、バグにより変更が加えられる可能性があります。
バグが Red Hat Enterprise Linux for Real Time に固有であると判断した場合は、以下の手順に従ってバグレポートを入力します。
- Bugzilla アカウントがまだない場合には作成します。
- Enter A New Bug Report をクリックします。必要な場合はログインします。
Red Hat
分類を選択します。Red Hat Enterprise Linux 7
製品を選択します。- カーネルの問題である場合は、コンポーネントとして
kernel-rt
を入力します。それ以外の場合は、rteval
などの影響を受けるユーザー空間コンポーネントの名前を入力します。 - 問題を詳細に説明して、バグ情報の入力を継続します。問題の説明を入力する際には、標準の Red Hat Enterprise Linux 7 カーネルで問題を再現できるかどうかの詳細情報が含まれるようにします。
付録A 改訂履歴
改訂履歴 | |||
---|---|---|---|
改訂 1-11 | Tue Aug 6 2019 | Jaroslav Klech | |
| |||
改訂 1-10 | Thu Oct 18 2018 | Jaroslav Klech | |
| |||
改訂 1-9 | Tue Mar 20 2018 | Marie Doleželová | |
| |||
改訂 1-8 | Wed Jul 26 2017 | Jana Heves | |
| |||
改訂 1-5 | Sat Jun 24 2017 | Marie Doleželová | |
| |||
改訂 1-3 | Mon Nov 3 2016 | Maxim Svistunov | |
| |||
改訂 1-2 | Fri Nov 06 2015 | Tomáš Čapek | |
| |||
改訂 1-1 | Thu Feb 19 2015 | Radek Bíba | |
|