インストールガイド

Red Hat Enterprise Linux for Real Time 7

RHEL for Real Time のインストール手順およびインストール後の手順

Jaroslav Klech

Red Hat Customer Content Services

Maxim Svistunov

Red Hat Customer Content Services

Marie Doleželová

Red Hat Customer Content Services

Radek Bíba

Red Hat Customer Content Services

David Ryan

Red Hat Customer Content Services

Cheryn Tan

Red Hat Customer Content Services

Lana Brindley

Red Hat Customer Content Services

Alison Young

Red Hat Customer Content Services

概要

本ガイドでは、Red Hat Enterprise Linux for Real Time をインストールする方法を説明します。

前書き

本書には、Red Hat Enterprise Linux for Real Time に関する基本的なインストールおよびチューニング情報が記載されています。
多くの業界や組織には、非常に高いパフォーマンスコンピューティングが必要で、特に業界や通信業界で低かつ予測可能なレイテンシーが必要になる場合があります。レイテンシー (応答時間) は、イベントとシステム応答間の時間として定義され、通常マイクロ秒(μ)で測定されます。
Linux 環境で実行されているほとんどのアプリケーションでは、基本的なパフォーマンスチューニングにより、レイテンシーを十分に改善できます。レイテンシーが低くなるだけでなく、予測可能な機能も必要とする業界では、Red Hat は、これを提供する「ドロップイン」カーネル置き換えを開発しました。Red Hat Enterprise Linux for Real Time は、Red Hat Enterprise Linux 7 の一部として配布されており、Red Hat Enterprise Linux 7 とのシームレスな統合を提供します。Red Hat Enterprise Linux for Real Time は、組織内のレイテンシーを測定、設定、記録する機会を提供します。

第1章 Red Hat Enterprise Linux for Real Time を使用してレイテンシーを最適化する理由。

Red Hat Enterprise Linux for Real Time カーネルのパフォーマンス上の利点の評価を検討するユーザーは、チューニングの重要性と、期待されるパフォーマンスの確立方法の両方を理解することが重要です。
Red Hat Enterprise Linux for Real Time は、非常に高い決定論要件を持つアプリケーション向けに、適切にチューニングされたシステムでの使用を目的としています。カーネルシステムのチューニングにより、決定論の改善が大きくなります。たとえば、多くのワークロードでシステム全体のチューニングにより、約 90 % 程度で結果の一貫性が向上します。これは、Red Hat Enterprise Linux for Real Time を使用する前に、通常の Red Hat Enterprise Linux の推奨システムチューニングを実行して、目的を満たしているかどうかを確認することが推奨されます。
システムのチューニングは、標準のカーネルと同様にリアルタイムカーネルを使用する場合と同様に重要です。実際、標準のカーネルを実行している調整されていないシステムを単に使用して、Red Hat Enterprise Linux 7 リリースの一部として提供されているストックカーネルの代用としてリアルタイムカーネルを使用している場合は、メリットには気が付かないでしょう。標準チューニングにより、レイテンシーの 90 % になります。リアルタイムカーネルは、最も要求の厳しいワークロードで必要とされるレイテンシーの最終 10% を提供します。
正しいパフォーマンスの期待を確立することは、リアルタイムカーネルがpanacea ではないことを意味します。その目的は、予測可能な応答時間を提供する、低レイテンシーの決定性に一貫性があります。リアルタイムーネルに関連する追加のカーネルオーバーヘッドがあります。これは主に、個別にスケジュール設定されたスレッドでハードウェア割り込みを処理するためです。ワークロードのオーバーヘッドが増大すると、全体的なスループットが低下します。正確な量はワークロードに大きく依存します。これは 0% から 30% までとなります。ただし、これは、決定論のコストです。
カーネルレイテンシー要件がミリ秒 (ms) の範囲にある一般的なワークロードでは、標準の Red Hat Enterprise Linux 7 カーネルで十分です。ワークロードにマイクロ秒 (μs) 範囲での割り込み処理やプロセススケジューリングなどのコアカーネル機能に対する低レイテンシーの決定要件が厳格な場合は、リアルタイムカーネルがユーザー向けになります。
標準のカーネルシステムチューニングにおけるリアルタイムの利点

図1.1 標準のカーネルシステムの調整でリアルタイムを使用する利点。

このグラフは、Red Hat Enterprise Linux 7 および Red Hat Enterprise Linux for Real Time カーネルを使用して、それぞれ数百万ものマシンを比較します。このグラフの青い点は、チューニングされた Red Hat Enterprise Linux 7 カーネルを実行しているマシンのシステムの応答時間 (マイクロ秒単位) を示しています。グラフの緑色のポイントは、チューニングされたリアルタイムカーネルを実行しているマシンのシステムの応答時間を表します。標準のカーネルとは対照的に、リアルタイムカーネルの応答時間は非常に一貫性が高いため、グラフ全体に散在するポイントとの差異性は高くなります。

第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 サブスクリプションをアタッチしていることを確認してください。次に、以下の手順に従います。
  1. Red Hat Enterprise Linux for Real Time リポジトリーを有効にします。
    ~]# subscription-manager repos --enable rhel-7-server-rt-rpms
  2. 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-loadsrteval ロードのソースコードを提供します。
    また、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 ブートクライアントによってマウントされた NFS ファイルシステムを使用して、リモートディスクレスシステムを設定する方法を説明します。Red Hat Enterprise Linux for Real Time の既存のインストールで、以下の手順を実行します。
  1. PXE 経由で起動する基本的なディスクレスシステムを設定する場合、次のようなパッケージのインストールが必要になります。
    ~]# yum install tftp-server xinetd dhcp syslinux dracut-network

    重要

    • NFS サービスおよび DHCP サービスが正しく設定され、起動されていることを確認します。
    • system-config-firewall によって事前定義されているファイアウォールルールは tftp トラフィックをブロックし、クライアントが起動しないようにできます。サーバーのファイアウォールルールを調整する必要があります。
  2. tftp サービスを有効にして、ネットワーク経由で PXE ブートを許可します。これを行うには、/etc/xinetd.d/tftp ファイルを編集して Disabled パラメーターを No に設定します。
  3. /var/lib/tftpboot/tftp root ディレクトリーに /usr/share/syslinux/pxelinux.0 をコピーします。
    ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
  4. tftp ルート ディレクトリーに pxelinux.cfg ディレクトリーを作成します。
    ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg/
  5. tftp トラフィックを許可するファイアウォールルールを設定します。テキストエディターを使用して、/etc/hosts.allow に以下の行を追加します。
    tftpd: .hostname.com
    .hostname.com は、インストールが実行されるターゲットクライアントのドメイン名に置き換えます。ファイアウォールルールの詳細は、hosts_access の man ページを参照してください。
  6. tftp サーバー上で SELinux コンテキストを復元します。PXE ブートの tftp プロトコルで必要なファイルを指定するには、以下のコマンドを実行します。
    ~]# restorecon -R /var/lib/tftpboot
  7. 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 アドレスに置き換えます。
  8. エクスポートしたファイルシステムのルートディレクトリー (ネットワーク上のディスクレスクライアントが使用) は、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 権限でクライアントに接続できるようになります。
  9. ディスクレスクライアントに完全に対応できるようにするには、root ディレクトリーには Red Hat Enterprise Linux for Real Time の完全なインストールが含まれている必要があります。これは、rsync から実行中のシステムと同期できます。以下を実行します。
    ~]# rsync -a -e ssh --exclude='/proc/*' --exclude='/sys/*' hostname.com:/ /exported/root/directory
    hostname.com を、rsync を介して同期する実行中のシステムのホスト名に置き換えます。/exported/root/directory を、エクスポートしたファイルシステムへのパスに置き換えます。
  10. 以下の設定を、エクスポートしたファイルシステムの /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
    
  11. ディスクレスクライアントが使用するカーネル (vmlinuz-rt-kernel-version) を選択し、tftpboot ディレクトリーにコピーします。
    ~]# cp /boot/vmlinuz-rt-kernel-version /var/lib/tftpboot/
  12. ネットワークサポートで initramfs ディスクイメージ (例: initramfs-rt-kernel-version.img) を作成します。
    ~]# dracut -a "network nfs" initramfs-rt-kernel-version.img rt-kernel-version
  13. initramfs ディスクイメージを tftpboot ディレクトリーにコピーします。
    ~]# cp initramfs-rt-kernel-version.img /var/lib/tftpboot/
  14. /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 アドレスに置き換えます。
これで、NFS 共有がディスクレスクライアントにエクスポートできるようになりました。これらのクライアントは、PXE を介して Red Hat Enterprise Linux for Real Time をネットワーク経由で起動できます。

重要

NFS を root ファイルシステムとして使用するディスクレスクライアントで SELinux を無効にする必要があります。/etc/selinux/config ファイルに SELINUX=disabled を追加するか、クライアントの起動時にカーネルコマンドラインで selinux=0 を追加します。
リモートディスクレスシステムの設定に関する詳細は、ストレージ管理ガイドを参照してください。

2.3. 利用可能な RPM パッケージ

本セクションでは、Red Hat Enterprise Linux for Real Time のリポジトリーで利用可能な RPM パッケージの一覧を紹介します。
Red Hat Enterprise Linux for Real Time Specific 列は、RPM が標準の Red Hat Enterprise Linux 7 メンテナンスストリームと異なるか、または標準のカーネルには該当しないかを示します。この列の No は、RPM が Red Hat Enterprise Linux 7 で同等に実行されることを示しています。
Required 列は、Red Hat Enterprise Linux for Real Time の動作の修正にパッケージが必要であるかどうかを示します。この列の 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 ドキュメント はい 推奨
以下のパッケージには、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 システムレイテンシーを測定し、優先度が継承されているミューテックスを適切に機能させるためのユーティリティー
以下のパッケージセットは oprofilesystemtapcrash、およびカーネルの crashdump を分析するユーティリティーに提供されています。デバッグパッケージはシンボルテーブルで構成されており、非常に大きくなります。このため、他の Red Hat Enterprise Linux for Real Time パッケージとは別に提供されます。
これらのパッケージは、Red Hat Enterprise Linux for Real Time - Debug RPMs リポジトリーから見つかり、ダウンロードできます。

表2.3 Red Hat Enterprise Linux for Real Time デバッグパッケージ

RPM パッケージ名 詳細
kernel-rt-debuginfo oprofilesystemtap などのプロファイリングおよびデバッグが使用するシンボル
kernel-rt-trace-debuginfo プロファイリングおよび追跡用シンボル
kernel-rt-debug-debuginfo プロファイリングおよび追跡用シンボル
kernel-rt-debuginfo-common 他の debuginfo パッケージ間で共有される一般的な debuginfo ファイル

重要

Red Hat Enterprise Linux for Real Time を実行するために 表2.2「Red Hat Enterprise Linux for Real Time Development およびテストパッケージ」、および 表2.3「Red Hat Enterprise Linux for Real Time デバッグパッケージ」 のパッケージは必須ではありません。これらは診断ツールとしてのみ提供されるため、通常は必要ありません。-trace または -debug カーネルパッケージを使用するとパフォーマンスに悪影響を及ぼすため、リアルタイムカーネルの使用によるメリットが少なくなります。

2.4. インストール後の手順

起動するカーネルの選択

インストール済みのカーネル (standard と Real Time の両方) は起動できます。起動中に GRUB メニューで必要なカーネルを手動で選択する方法もあります。このセクションに示されるように、デフォルトのカーネルを希望するカーネルに設定することもできます。

Red Hat Enterprise Linux for Real Time カーネルがインストールされると、自動的にデフォルトのカーネルに設定され、次回の起動時に使用されます。
  • 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 …
ただし、7.1 から 7.2 などのマイナーアップデートを受け取ると、デフォルトのカーネルが自動的にリアルタイムカーネルから標準カーネルに戻る可能性があります。
デフォルトのカーネルを Real Time カーネルに再度設定するには、以下の手順に従います。
  1. インストールされたリアルタイムカーネルを一覧表示します。
    ~]# ls /boot/vmlinuz*rt*
    /boot/vmlinuz-3.10.0-327.18.2.rt56.223.el7_2.x86_64
  2. 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 と互換性がありません。

カーネルモジュールは、特別にビルドされたカーネルに固有のものです。リアルタイムカーネルは、標準のカーネルとは大きく異なるため、モジュールも大きく異なります。つまり、Red Hat Enterprise Linux 7 からサードパーティーのモジュールを取得して、そのモジュールを Red Hat Enterprise Linux for Real Time で使用することはできません。サードパーティーのモジュールを使用する必要がある場合は、-devel サブパッケージで利用可能な Red Hat Enterprise Linux for Real Time ヘッダーファイルで再コンパイルする必要があります。すべてのパッケージについての詳細は 表2.2「Red Hat Enterprise Linux for Real Time Development およびテストパッケージ」 を参照してください。
以下は、標準の Red Hat Enterprise Linux 7 に同梱されていて、現在 Red Hat Enterprise Linux for Real Time 用のカスタムビルドがないサードパーティーのドライバーの例です。
  • EMC Powerpath
  • Nvidia グラフィックス
  • Qlogic の高度なストレージアダプター設定ユーティリティー
ユーザー空間は、syscall インターフェイスは、Red hat Enterprise Linux for Real Time と互換性があります
Kdump の有効化

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 カーネルは、Red Hat Enterprise Linux 7 では利用できない多くのパフォーマンスチューニングパラメーターを提供します。最適な低レイテンシー決定を実現するには、Red Hat Enterprise Linux for Real Time 固有のシステムチューニングを実行する必要があります。
Tuna

Red Hat Enterprise Linux for Real Time カーネルで提供される主な診断機能は Tuna です。Tuna は、コマンドラインツールとグラフィカルインターフェースの両方を提供します。これは、スレッドの属性 (スケジュールポリシー、スケジューラーの優先度、プロセッサーアフィニティー)、および割り込み (プロセッサーアフィニティー) を変更するのに使用できます。このツールは、実行中のシステムでの使用を目的として設計されており、直ちに変更が行われます。これにより、アプリケーション固有の測定ツールは、変更の直後にシステムパフォーマンスを確認および分析できます。

診断ツール

Red Hat Enterprise Linux for Real Time カーネルは、遅延をテストおよび報告する複数の診断ツールを提供します。

latency tracer は、プリエンプション不可能なカーネルコードパスを特定するために使用されるピーク検出です。これは、非決定論的なパフォーマンスの結果がカーネルまたはユーザー空間コンポーネントに有害であるかどうかを特定する際に役立ちます。お客様のデプロイメントでは、このツールは遅延がカーネルまたはアプリケーションにあるかを区別するのに役立ちます。
この ftrace ユーティリティーは、ユーザー空間外で発生するレイテンシーおよびパフォーマンスの問題を分析し、デバッグするために使用されます。ユーティリティーをさまざまな方法で使用できるようにするさまざまなオプションがあります。これは、コンテキストスイッチを追跡したり、優先順位の高いタスクでウェイクアップにかかる時間を測定したり、割り込みが無効になっている時間を測定したり、特定の期間中に実行されるカーネル関数の一覧を表示するのに使用できます。

第4章 詳細情報

4.1. バグの報告

バグの診断

バグレポートを作成する前に、以下の手順に従って、問題発生場所を診断します。これにより、問題解決に大きくサポートします。

  1. 最新バージョンの Red Hat Enterprise Linux 7 カーネルがあることを確認してから、GRUB メニューから起動します。問題を標準カーネルで再現してみてください。問題が解決しない場合は、Red Hat Enterprise Linux 7 にバグを報告してください。
  2. 標準カーネルの使用時に問題が発生しなかった場合は、Red Hat Enterprise Linux for Real Time 固有の機能拡張 Red Hat がベースライン (3.10.0) カーネルに適用したバグにより、バグにより変更が加えられる可能性があります。
バグの報告

バグが Red Hat Enterprise Linux for Real Time に固有であると判断した場合は、以下の手順に従ってバグレポートを入力します。

  1. Bugzilla アカウントがまだない場合には作成します。
  2. Enter A New Bug Report をクリックします。必要な場合はログインします。
  3. Red Hat 分類を選択します。
  4. Red Hat Enterprise Linux 7 製品を選択します。
  5. カーネルの問題である場合は、コンポーネントとして kernel-rt を入力します。それ以外の場合は、rteval などの影響を受けるユーザー空間コンポーネントの名前を入力します。
  6. 問題を詳細に説明して、バグ情報の入力を継続します。問題の説明を入力する際には、標準の Red Hat Enterprise Linux 7 カーネルで問題を再現できるかどうかの詳細情報が含まれるようにします。

付録A 改訂履歴

改訂履歴
改訂 1-11Tue Aug 6 2019Jaroslav Klech
7.7 GA 公開用ドキュメントの準備
改訂 1-10Thu Oct 18 2018Jaroslav Klech
7.6 GA 公開用ドキュメントの準備
改訂 1-9Tue Mar 20 2018Marie Doleželová
7.5 GA 公開用ドキュメントの準備
改訂 1-8Wed Jul 26 2017Jana Heves
7.4 GA 公開用バージョン
改訂 1-5Sat Jun 24 2017Marie Doleželová
7.3 非同期再パブリッシュのバージョン。
改訂 1-3Mon Nov 3 2016Maxim Svistunov
7.3 GA リリースのバージョン
改訂 1-2Fri Nov 06 2015Tomáš Čapek
7.2 GA 公開用バージョン
改訂 1-1Thu Feb 19 2015Radek Bíba
7.1 GA 公開用バージョン

法律上の通知

Copyright © 2019 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License.If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original.If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent.Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission.We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.