Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

8.2. コンピュートノードでのヒュージページの設定

インスタンスがヒュージページを要求できるようにコンピュートノードを設定します。

手順

  1. インスタンスではないプロセス用に各 NUMA ノードで確保するヒュージページのメモリー量を設定します。

    parameter_defaults:
      NovaReservedHugePages: ["node:0,size:2048,count:64","node:1,size:1GB,count:1"]

    各属性についての説明は以下のとおりです。

    属性

    説明

    size

    割り当てるヒュージページのサイズ。有効な値は 2048 (2 MB 用) および 1 GB です。

    count

    NUMA ノードごとに OVS が使用するヒュージページの数。たとえば、Open vSwitch が 4096 のソケットメモリーを使用する場合、この属性を 2 に設定します。

  2. (オプション) インスタンスが 1 GB のヒュージページを割り当てるのを許可するには、CPU 機能フラグ cpu_model_extra_flags を設定して「pdpe1gb」を指定します。

    parameter_defaults:
       ComputeExtraConfig:
         nova::compute::libvirt::libvirt_cpu_mode: 'custom'
         nova::compute::libvirt::libvirt_cpu_model: 'Haswell-noTSX'
         nova::compute::libvirt::libvirt_cpu_model_extra_flags: 'vmx, pdpe1gb'
    注記
    • インスタンスが 2 MB のヒュージページしか要求しない場合、CPU 機能フラグを設定する必要はありません。
    • ホストが 1 GB ヒュージページの割り当てをサポートする場合に限り、インスタンスに 1 GB のヒュージページを割り当てることができます。
    • cpu_modehost-model または custom に設定されている場合に限り、cpu_model_extra_flagspdpe1gb に設定する必要があります。
    • ホストが pdpe1gb をサポートし、cpu_modehost-passthrough が使用される場合、cpu_model_extra_flagspdpe1gb を設定する必要はありません。pdpe1gb フラグは Opteron_G4 および Opteron_G5 CPU モデルにのみ含まれ、QEMU がサポートする Intel CPU モデルには含まれません。
    • Microarchitectural Data Sampling (MDS) 等の CPU ハードウェアの問題を軽減するには、他の CPU フラグを設定しなければならない場合があります。詳しくは、「RHOS Mitigation for MDS ("Microarchitectural Data Sampling") Security Flaws」を参照してください。
  3. Meltdown に対する保護の適用後にパフォーマンスが失われないようにするには、CPU 機能フラグ cpu_model_extra_flags を設定して「+pcid」を指定します。

    parameter_defaults:
       ComputeExtraConfig:
         nova::compute::libvirt::libvirt_cpu_mode: 'custom'
         nova::compute::libvirt::libvirt_cpu_model: 'Haswell-noTSX'
         nova::compute::libvirt::libvirt_cpu_model_extra_flags: 'vmx, pdpe1gb, +pcid'
  4. 各 Compute 環境ファイルの NovaSchedulerDefaultFilters パラメーターにまだ NUMATopologyFilter がなければ、このフィルターを追加します。
  5. デプロイコマンドに環境ファイルを追加してオーバークラウドをデプロイし、このヒュージページの設定を適用します。

    (undercloud) $ openstack overcloud deploy --templates \
      -e [your environment files]
      -e /home/stack/templates/<compute_environment_file>.yaml

8.2.1. インスタンスへのヒュージページの割り当て

インスタンスがヒュージページを使用することを指定するには、hw:mem_page_size 追加仕様キーを使用してフレーバーを作成します。

前提条件

手順

  1. ヒュージページを要求するインスタンス用のフレーバーを作成します。

    $ openstack flavor create --ram <size-mb> --disk <size-gb> --vcpus <no_reserved_vcpus> huge_pages
  2. ヒュージページのフレーバーを設定します。

    $ openstack flavor set huge_pages --property hw:mem_page_size=1GB

    有効な hw:mem_page_size の値は以下のとおりです。

    • large: ホストでサポートされる最大のページサイズを選択します。x86_64 システムでは 2 MB または 1 GB です。
    • small: (デフォルト) ホストでサポートされる最小のページサイズを選択します。X86_64 システムでは、4 kB (通常のページ) です。
    • any: libvirt ドライバーで決定される、利用可能な最大のヒュージページサイズを選択します。
    • <pagesize>: (文字列) ワークロードに具体的な要件がある場合、ページサイズを明示的に設定します。整数値のページサイズを、kB またはその他の標準単位で指定します。たとえば、4kB、2MB、2048、1GB と設定します。
  3. 新しいフレーバーを使用してインスタンスを作成します。

    $ openstack server create --flavor huge_pages --image <image> huge_pages_instance

検証

スケジューラーは、インスタンスのメモリーをサポートするのに十分なサイズの空きヒュージページを持つホストを特定します。スケジューラーが十分なページを持つホストおよび NUMA ノードを検出できない場合、リクエストは失敗して NoValidHost エラーが報告されます。