第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 UsageRegistering the undercloud and attaching subscriptions を参照してください。

手順

  1. 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…]
  2. リアルタイムコンピュートノード用のオーバークラウドイメージをビルドするには、アンダークラウドに libguestfs-tools パッケージをインストールして、virt-customize ツールを取得します。

    (undercloud)$ sudo dnf install libguestfs-tools
    重要

    アンダークラウドに libguestfs-tools パッケージをインストールする場合は、アンダークラウドの tripleo_iscsid サービスとのポートの競合を避けるために iscsid.socket を無効にします。

    $ sudo systemctl disable --now iscsid.socket
  3. イメージを抽出します。

    (undercloud)$ tar -xf /usr/share/rhosp-director-images/overcloud-full.tar
    (undercloud)$ tar -xf /usr/share/rhosp-director-images/ironic-python-agent.tar
  4. デフォルトのイメージをコピーします。

    (undercloud)$ cp overcloud-full.qcow2 overcloud-realtime-compute.qcow2
  5. イメージを登録して、必要なサブスクリプションを設定します。

    (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 を参照してください。

  6. 以下の例に示すように、Red Hat OpenStack Platform for Real Time サブスクリプションの SKU を探します。SKU は、同じアカウントおよび認証情報を使用してすでに Red Hat サブスクリプションマネージャーに登録済みのシステムに置かれている場合があります。

    $ sudo subscription-manager list
  7. Red Hat OpenStack Platform for Real Time サブスクリプションをイメージにアタッチします。

    (undercloud)$  virt-customize -a overcloud-realtime-compute.qcow2 --run-command 'subscription-manager attach --pool [subscription-pool]'
  8. イメージ上で 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
  9. リアルタイムイメージを設定するスクリプトを実行します。

    (undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 -v --run rt.sh 2>&1 | tee virt-customize.log
  10. SELinux の再ラベル付けをします。

    (undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 --selinux-relabel
  11. 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 のファイル名に含まれるソフトウェアバージョンは、カーネルバージョンによって異なります。

  12. イメージをアップロードします。

    (undercloud)$ openstack overcloud image upload \
     --update-existing --os-image-name
     overcloud-realtime-compute.qcow2

    これで、選択したコンピュートノード上の ComputeRealTime コンポーザブルロールで使用することのできる real-time イメージの準備ができました。

  13. リアルタイムコンピュートノードのレイテンシーを短縮するには、コンピュートノードの BIOS 設定を変更する必要があります。コンピュートノードの BIOS 設定で、以下のコンポーネントの全オプションを無効にする必要があります。

    • 電源管理
    • ハイパースレッディング
    • CPU のスリープ状態
    • 論理プロセッサー

      これらの設定に関する説明と、無効化の影響については、Red Hat Enterprise Linux for Real Time チューニングガイドの BIOS パラメーターの設定 を参照してください。BIOS 設定の変更方法に関する詳しい情報は、ハードウェアの製造会社のドキュメントを参照してください。