第13章 リアルタイムコンピュートの設定
クラウド管理者は、コンピュートノードに、低レイテンシーのポリシーを順守しリアルタイム処理を実行するためのインスタンスが必要となる場合があります。リアルタイムコンピュートノードには、リアルタイム対応のカーネル、特定の仮想化モジュール、および最適化されたデプロイメントパラメーターが設定され、リアルタイム処理の要求に対応してレイテンシーを最小限に抑えます。
リアルタイムコンピュートを有効にするプロセスは、以下のステップで設定されます。
- コンピュートノードの BIOS 設定の定義
- real-time カーネルおよび Real-Time KVM (RT-KVM) カーネルモジュールを持つ real-time のイメージのビルド
-
コンピュートノードへの
ComputeRealTime
ロールの割り当て
NFV 負荷用リアルタイムコンピュートのデプロイメントのユースケース例については、ネットワーク機能仮想化 (NFV) のプランニングおよび設定ガイドの 例: OVS-DPDK および SR-IOV ならびに VXLAN トンネリングの設定 セクションを参照してください。
リアルタイムコンピュートノードは、Red Hat Enterprise Linux バージョン 7.5 以降でのみサポートされます。
13.1. リアルタイム処理用コンピュートノードの準備
オーバークラウドにリアルタイムコンピュートをデプロイするには、Red Hat Enterprise Linux Real-Time KVM (RT-KVM) を有効にし、リアルタイムをサポートするように BIOS を設定し、リアルタイムのオーバークラウドイメージをビルドする必要があります。
前提条件
- RT-KVM コンピュートノードには、Red Hat 認定済みサーバーを使用する必要があります。詳しくは、Red Hat Enterprise Linux for Real Time 7 用認定サーバー を参照してください。
-
rhel-8-for-x86_64-nfv-rpms
リポジトリーにアクセスするには、別途 Red Hat OpenStack Platform for Real Time に対するサブスクリプションが必要です。アンダークラウド用のリポジトリーおよびサブスクリプションの管理に関する詳細は、Director Installation and Usageの Registering the undercloud and attaching subscriptions を参照してください。
手順
real-time のオーバークラウドイメージをビルドするには、RT-KVM 用の
rhel-8-for-x86_64-nfv-rpms
リポジトリーを有効にする必要があります。リポジトリーからインストールされるパッケージを確認するには、以下のコマンドを入力します。$ dnf repo-pkgs rhel-8-for-x86_64-nfv-rpms list Loaded plugins: product-id, search-disabled-repos, subscription-manager Available Packages kernel-rt.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-debug.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-debug-devel.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-debug-kvm.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-devel.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-doc.noarch 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-kvm.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms [ output omitted…]
リアルタイムコンピュートノード用のオーバークラウドイメージをビルドするには、アンダークラウドに
libguestfs-tools
パッケージをインストールして、virt-customize
ツールを取得します。(undercloud)$ sudo dnf install libguestfs-tools
重要アンダークラウドに
libguestfs-tools
パッケージをインストールする場合は、アンダークラウドのtripleo_iscsid
サービスとのポートの競合を避けるためにiscsid.socket
を無効にします。$ sudo systemctl disable --now iscsid.socket
イメージを抽出します。
(undercloud)$ tar -xf /usr/share/rhosp-director-images/overcloud-full.tar (undercloud)$ tar -xf /usr/share/rhosp-director-images/ironic-python-agent.tar
デフォルトのイメージをコピーします。
(undercloud)$ cp overcloud-full.qcow2 overcloud-realtime-compute.qcow2
イメージを登録して、必要なサブスクリプションを設定します。
(undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 --run-command 'subscription-manager register --username=<username> --password=<password>' [ 0.0] Examining the guest ... [ 10.0] Setting a random seed [ 10.0] Running: subscription-manager register --username=<username> --password=<password> [ 24.0] Finishing off
username
およびpassword
の値を、ご自分の Red Hat カスタマーアカウント情報に置き換えてください。リアルタイムのオーバークラウドイメージのビルドに関する一般的な情報は、ナレッジベースのアーティクル Modifying the Red Hat Enterprise Linux OpenStack Platform Overcloud Image with virt-customize を参照してください。
以下の例に示すように、Red Hat OpenStack Platform for Real Time サブスクリプションの SKU を探します。SKU は、同じアカウントおよび認証情報を使用してすでに Red Hat サブスクリプションマネージャーに登録済みのシステムに置かれている場合があります。
$ sudo subscription-manager list
Red Hat OpenStack Platform for Real Time サブスクリプションをイメージにアタッチします。
(undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 --run-command 'subscription-manager attach --pool [subscription-pool]'
イメージ上で
rt
を設定するためのスクリプトを作成します。(undercloud)$ cat rt.sh #!/bin/bash set -eux subscription-manager repos --enable=[REPO_ID] dnf -v -y --setopt=protected_packages= erase kernel.$(uname -m) dnf -v -y install kernel-rt kernel-rt-kvm tuned-profiles-nfv-host # END OF SCRIPT
リアルタイムイメージを設定するスクリプトを実行します。
(undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 -v --run rt.sh 2>&1 | tee virt-customize.log
SELinux の再ラベル付けをします。
(undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 --selinux-relabel
vmlinuz
およびinitrd
を抽出します。以下に例を示します。(undercloud)$ mkdir image (undercloud)$ guestmount -a overcloud-realtime-compute.qcow2 -i --ro image (undercloud)$ cp image/boot/vmlinuz-4.18.0-80.7.1.rt9.153.el8_0.x86_64 ./overcloud-realtime-compute.vmlinuz (undercloud)$ cp image/boot/initramfs-4.18.0-80.7.1.rt9.153.el8_0.x86_64.img ./overcloud-realtime-compute.initrd (undercloud)$ guestunmount image
注記vmlinuz
およびinitramfs
のファイル名に含まれるソフトウェアバージョンは、カーネルバージョンによって異なります。イメージをアップロードします。
(undercloud)$ openstack overcloud image upload \ --update-existing --os-image-name overcloud-realtime-compute.qcow2
これで、選択したコンピュートノード上の
ComputeRealTime
コンポーザブルロールで使用することのできる real-time イメージの準備ができました。リアルタイムコンピュートノードのレイテンシーを短縮するには、コンピュートノードの BIOS 設定を変更する必要があります。コンピュートノードの BIOS 設定で、以下のコンポーネントの全オプションを無効にする必要があります。
- 電源管理
- ハイパースレッディング
- CPU のスリープ状態
論理プロセッサー
これらの設定に関する説明と、無効化の影響については、Red Hat Enterprise Linux for Real Time チューニングガイドの BIOS パラメーターの設定 を参照してください。BIOS 設定の変更方法に関する詳しい情報は、ハードウェアの製造会社のドキュメントを参照してください。