8.3. フレーバーのメタデータ

フレーバーを作成する際に、--property オプションを使用してフレーバーのメタデータを指定します。フレーバーのメタデータは 追加スペック とも呼ばれます。フレーバーのメタデータで指定するインスタンス用ハードウェアのサポートおよびクォータは、インスタンスの配置、インスタンスの制限、およびパフォーマンスに影響を及ぼします。

インスタンスによるリソースの使用

以下の表に示す属性キーを使用して、インスタンスによる CPU、メモリー、およびディスク I/O の使用に制限を設定します。

表8.3 リソースの使用を制限するためのフレーバーメタデータ

キー説明

quota:cpu_shares

ドメイン内の CPU 時間の配分に使用する重みを指定します。デフォルトは OS が提供するデフォルト値です。Compute スケジューラーは、この属性の設定と同じドメイン内にある他のインスタンスの設定を比較して、相対的な重み付けを行います。たとえば、設定が quota:cpu_shares=2048 のインスタンスには、設定が quota:cpu_shares=1024 のインスタンスの 2 倍の CPU 時間が割り当てられます。

quota:cpu_period

cpu_quota を適用する期間を指定します (マイクロ秒単位)。この cpu_period の期間、各仮想 CPU は cpu_quota を超えるランタイムを使用することはできません。1000 - 1000000 の範囲で値を設定します。無効にするには 0 に設定します。

quota:cpu_quota

cpu_period における仮想 CPU の最大許容帯域幅を指定します (マイクロ秒単位)。

  • 1000 - 18446744073709551 の範囲で値を設定します。
  • 無効にするには 0 に設定します。
  • 帯域幅に制限を設けない場合は、負の値に設定します。

cpu_quota および cpu_period を使用して、全仮想 CPU が同じ速度で実行されるようにすることができます。たとえば、以下のフレーバーを使用して、物理 CPU の処理能力の最大 50% しか消費できないインスタンスを起動することができます。

$ openstack flavor set cpu_limits_flavor \
  --property quota:cpu_quota=10000 \
  --property quota:cpu_period=20000

インスタンスディスクのチューニング

以下の表に示す属性キーを使用して、インスタンスのディスクのパフォーマンスをチューニングします。

注記

Compute サービスは、以下の QoS 設定を、Compute サービスがプロビジョニングしたストレージ (一時ストレージなど) に適用します。Block Storage (cinder) ボリュームのパフォーマンスを調整するには、ボリューム種別の Quality-of-Service (QOS) の値も設定する必要があります。詳細は、Storage GuideUse Quality-of-Service Specificationsを参照してください。

表8.4 ディスクチューニング用のフレーバーメタデータ

キー説明

quota:disk_read_bytes_sec

インスタンスが利用可能な最大ディスク読み取りを指定します (バイト毎秒単位)。

quota:disk_read_iops_sec

インスタンスが利用可能な最大ディスク読み取りを指定します (IOPS 単位)。

quota:disk_write_bytes_sec

インスタンスが利用可能な最大ディスク書き込みを指定します (バイト毎秒単位)。

quota:disk_write_iops_sec

インスタンスが利用可能な最大ディスク書き込みを指定します (IOPS 単位)。

quota:disk_total_bytes_sec

インスタンスが利用可能な最大 I/O 操作を指定します (バイト毎秒単位)。

quota:disk_total_iops_sec

インスタンスが利用可能な最大 I/O 操作を指定します (IOPS 単位)。

インスタンスのネットワークトラフィックの帯域幅

以下の表に示す属性キーを使用して、VIF I/O オプションの設定により、インスタンスのネットワークトラフィックの帯域幅上限を設定します。

注記

quota :vif_* 属性は非推奨になりました。この属性の代わりに、Networking (neutron) サービスの Quality of Service (QoS) ポリシーを使用する必要があります。QoS ポリシーについての詳細は、ネットワークガイドQuality of Service (QoS) ポリシーの設定 を参照してください。quota:vif_* プロパティーは、NeutronOVSFirewallDriveriptables_hybrid に設定されている ML2/OVS メカニズムドライバーを使用する場合にのみサポートされます。

表8.5 帯域幅を制限するためのフレーバーメタデータ

キー説明

quota:vif_inbound_average

(非推奨) インスタンスに送付されるトラフィックに要求される平均ビットレートを指定します (kbps 単位)。

quota:vif_inbound_burst

(非推奨) ピークの速度でバースト処理することができる受信トラフィックの最大量を指定します (KB 単位)。

quota:vif_inbound_peak

(非推奨) インスタンスが受信することのできるトラフィックの最大レートを指定します (kbps 単位)。

quota:vif_outbound_average

(非推奨) インスタンスから送信されるトラフィックに要求される平均ビットレートを指定します (kbps 単位)。

quota:vif_outbound_burst

(非推奨) ピークの速度でバースト処理することができる送信トラフィックの最大量を指定します (KB 単位)。

quota:vif_outbound_peak

(非推奨) インスタンスが送信することのできるトラフィックの最大レートを指定します (kbps 単位)。

ハードウェアビデオ RAM

以下の表に示す属性キーを使用して、ビデオデバイスに使用するインスタンス RAM の上限を設定します。

表8.6 ビデオデバイス用のフレーバーメタデータ

キー説明

hw_video:ram_max_mb

ビデオデバイスに使用する最大 RAM を指定します (MB 単位)。hw_video_ram イメージ属性で使用します。hw_video_ramhw_video:ram_max_mb 以下でなければなりません。

ウォッチドッグの動作

以下の表に示す属性キーを使用して、インスタンスで仮想ハードウェアのウォッチドッグデバイスを有効にします。

表8.7 ウォッチドッグの動作を設定するためのフレーバーメタデータ

キー説明

hw:watchdog_action

仮想ハードウェアのウォッチドッグデバイスを有効にするかどうかを指定し、その動作を設定します。インスタンスがハングアップまたはエラーが発生した場合に、ウォッチドッグデバイスは設定されたアクションを実行します。ウォッチドッグは i6300esb デバイスを使用し、PCI Intel 6300ESB をエミュレートします。hw:watchdog_action が指定されていない場合には、ウォッチドッグは無効になります。

以下の有効な値のいずれかに設定します。

  • disabled: (デフォルト) デバイスは接続されません。
  • reset: インスタンスを強制的にリセットします。
  • poweroff: インスタンスを強制的にシャットダウンします。
  • pause: インスタンスを一時停止します。
  • none: ウォッチドッグを有効にしますが、インスタンスがハングアップまたはエラーが発生しても何も実行しません。 

    注記

    特定のイメージの属性を使用して設定するウォッチドッグの動作は、フレーバーを使用して設定する動作よりも優先されます。

乱数ジェネレーター (RNG)

以下の表に示す属性キーを使用して、インスタンスで RNG デバイスを有効にします。

表8.8 RNG 用のフレーバーメタデータ

キー説明

hw_rng:allowed

イメージ属性によりインスタンスに追加された RNG デバイスを無効にするには、False に設定します。

デフォルト: True

hw_rng:rate_bytes

期間中、インスタンスがホストのエントロピーから読み取ることのできる最大バイト数を指定します。

hw_rng:rate_period

読み取り期間を指定します (ミリ秒単位)。

仮想パフォーマンス監視ユニット (vPMU)

以下の表に示す属性キーを使用して、インスタンスの仮想 PMU を有効にします。

表8.9 仮想 PMU 用のフレーバーメタデータ

キー説明

hw:pmu

インスタンスの仮想 PMU を有効にするには、True に設定します。

perf 等のツールは、インスタンスの仮想 PMU を使用して、インスタンスのパフォーマンスをプロファイリングおよびモニタリングするためのより正確な情報を提供します。リアルタイム負荷のケースでは、仮想 PMU のエミュレーションにより、望ましくないレイテンシーが付加される場合があります。テレメトリーの提供が不要な場合は、hw:pmu=False に設定します。

インスタンスの CPU トポロジー

以下の表に示す属性キーを使用して、インスタンス内のプロセッサーのトポロジーを定義します。

表8.10 CPU トポロジー用のフレーバーメタデータ

キー説明

hw:cpu_sockets

インスタンスの推奨ソケット数を指定します。

デフォルト: 要求される仮想 CPU の数

hw:cpu_cores

インスタンスの 1 ソケットあたりの推奨コア数を指定します。

デフォルト: 1

hw:cpu_threads

インスタンスの 1 コアあたりの推奨スレッド数を指定します。

デフォルト: 1

hw:cpu_max_sockets

イメージ属性を使用してユーザーがインスタンスに選択できる最大ソケット数を指定します。

例: hw:cpu_max_sockets=2

hw:cpu_max_cores

イメージ属性を使用してユーザーがインスタンスに選択できる、1 ソケットあたりの最大コア数を指定します。

hw:cpu_max_threads

イメージ属性を使用してユーザーがインスタンスに選択できる、1 コアあたりの最大スレッド数を指定します。

シリアルポート

以下の表に示す属性キーを使用して、1 インスタンスあたりのシリアルポートの数を設定します。

表8.11 シリアルポート用のフレーバーメタデータ

キー説明

hw:serial_port_count

1 インスタンスあたりの最大シリアルポート数

CPU ピニングポリシー

デフォルトでは、インスタンスの仮想 CPU (vCPU) は 1 コア 1 スレッドのソケットです。属性を使用して、インスタンスの仮想 CPU をホストの物理 CPU コア (pCPU) に固定するフレーバーを作成することができます。1 つまたは複数のコアがスレッドシブリングを持つ同時マルチスレッド (SMT) アーキテクチャーで、ハードウェア CPU スレッドの動作を設定することもできます。

以下の表に示す属性キーを使用して、インスタンスの CPU ピニングポリシーを定義します。

表8.12 CPU ピニング用のフレーバーメタデータ

キー説明

hw:cpu_policy

使用する CPU ポリシーを指定します。以下の有効な値のいずれかに設定します。

  • shared: (デフォルト) インスタンスの仮想 CPU は、ホストの物理 CPU 全体で共有されます。
  • dedicated: インスタンスの仮想 CPU をホストの物理 CPU のセットに固定します。これにより、インスタンスが固定される CPU のトポロジーに一致するインスタンス CPU のトポロジーが作成されます。このオプションの場合、必然的にオーバーコミット比は 1.0 になります。

hw:cpu_thread_policy

設定が hw:cpu_policy=dedicated の場合に使用する CPU スレッドポリシーを指定します。以下の有効な値のいずれかに設定します。

  • prefer: (デフォルト) ホストは SMT アーキテクチャーを持つ場合と持たない場合があります。SMT アーキテクチャーが存在する場合、Compute スケジューラーはスレッドシブリングを優先します。
  • isolate: ホストは SMT アーキテクチャーを持たないか、あるいは SMT 以外のアーキテクチャーをエミュレートする必要があります。このポリシーにより、Compute スケジューラーは HW_CPU_HYPERTHREADING 特性が設定されていないホストを要求して、SMT を持たないホストにインスタンスを配置するようになります。以下の属性を使用して、この特性を明示的に要求することもできます。

    --property trait:HW_CPU_HYPERTHREADING=forbidden

    ホストが SMT アーキテクチャーを持たない場合、Compute サービスはそれぞれの仮想 CPU を想定どおりに異なるコアに配置します。ホストが SMT アーキテクチャーを持つ場合は、動作は [workarounds]/disable_fallback_pcpu_query パラメーターの設定により決定されます。

    • True: SMT アーキテクチャーを持つホストは使用されず、スケジューリングに失敗します。
    • False: Compute サービスはそれぞれの仮想 CPU を異なる物理コアに配置します。Compute サービスは、別のインスタンスからの仮想 CPU を同じコア上に配置しません。したがって、使用される各コアのスレッドシブリングは、1 つを除きすべて使用できなくなります。
  • require: ホストは SMT アーキテクチャーを持つ必要があります。このポリシーにより、Compute スケジューラーは HW_CPU_HYPERTHREADING 特性が設定されたホストを要求して、SMT を持つホストにインスタンスを配置するようになります。以下の属性を使用して、この特性を明示的に要求することもできます。

    --property trait:HW_CPU_HYPERTHREADING=required

    Compute サービスは、それぞれの仮想 CPU をスレッドシブリングに割り当てます。ホストが SMT アーキテクチャーを持たない場合、そのホストは使用されません。ホストは SMT アーキテクチャーを持つが、スレッドシブリングが使用されていないコアが十分にない場合、スケジューリングに失敗します。

インスタンス PCI NUMA アフィニティーポリシー

以下の表に示す属性キーを使用して、PCI パススルーデバイスおよび SR-IOV インターフェイスの NUMA アフィニティーポリシーを指定するフレーバーを作成します。

表8.13 PCI NUMA アフィニティーポリシー用のフレーバーメタデータ

キー説明

hw:pci_numa_affinity_policy

PCI パススルーデバイスおよび SR-IOV インターフェイスの NUMA アフィニティーポリシーを指定します。以下の有効な値のいずれかに設定します。

  • required: インスタンスの NUMA ノードの少なくとも 1 つが PCI デバイスとのアフィニティーを持つ場合に限り、Compute サービスは PCI デバイスを要求するインスタンスを作成します。このオプションは、最高のパフォーマンスを提供します。
  • preferred: Compute サービスは、NUMA アフィニティーに基づきベストエフォートで PCI デバイスの選択を試みます。これができない場合には、Compute サービスは PCI デバイスとのアフィニティーを持たない NUMA ノード上でインスタンスをスケジュールします。
  • legacy: (デフォルト) 以下のどちらかのケースで、Compute サービスは PCI デバイスを要求するインスタンスを作成します。

    • PCI デバイスが少なくとも 1 つの NUMA ノードとのアフィニティーを持つ。
    • PCI デバイスが NUMA アフィニティーに関する情報を提供しない。

インスタンスの NUMA トポロジー

属性を使用して、インスタンスの仮想 CPU スレッドのホスト NUMA 配置、ならびにホスト NUMA ノードからのインスタンスの仮想 CPU およびメモリーの割り当てを定義するフレーバーを作成することができます。

メモリーおよび仮想 CPU の割り当てがコンピュートホスト内の NUMA ノードのサイズよりも大きいフレーバーの場合、インスタンスの NUMA トポロジーを定義するとインスタンス OS のパフォーマンスが向上します。

Compute スケジューラーは、これらの属性を使用してインスタンスに適したホストを決定します。たとえば、クラウドユーザーは以下のフレーバーを使用してインスタンスを起動します。

$ openstack flavor set numa_top_flavor \
  --property hw:numa_nodes=2 \
  --property hw:numa_cpus.0=0,1,2,3,4,5 \
  --property hw:numa_cpus.1=6,7 \
  --property hw:numa_mem.0=3072 \
  --property hw:numa_mem.1=1024

Compute スケジューラーは、2 つの NUMA ノード (1 つは 3 GB の RAM を持ち 6 つの CPU を実行できるノード、もう 1 つは 1 GB の RAM を持ち 2 つの CPU を実行できるノード) を持つホストを探します。4 GB の RAM を持ち 8 つの CPU を実行できる 1 つの NUMA ノードを持つホストの場合、Compute スケジューラーは有効な一致とは見なしません。

注記

フレーバーで定義された NUMA トポロジーは、イメージで定義された NUMA トポロジーでオーバーライドされることはありません。イメージの NUMA トポロジーがフレーバーの NUMA トポロジーと競合する場合、Compute サービスは ImageNUMATopologyForbidden エラーを報告します。

注意

この機能を使用して、インスタンスを特定のホスト CPU または NUMA ノードに制限することはできません。包括的なテストおよびパフォーマンス計測が完了した後にのみ、この機能を使用してください。代わりに hw:pci_numa_affinity_policy プロパティーを使用することができます。

以下の表に示す属性キーを使用して、インスタンスの NUMA トポロジーを定義します。

表8.14 NUMA トポロジー用のフレーバーメタデータ

キー説明

hw:numa_nodes

インスタンスの仮想 CPU スレッドの実行先として制限するホスト NUMA ノードの数を指定します。指定しない場合は、利用可能な任意の数のホスト NUMA ノード上で仮想 CPU スレッドを実行することができます。

hw:numa_cpus.N

インスタンスの NUMA ノード N にマッピングするインスタンスの仮想 CPU のコンマ区切りリスト。このキーを指定しない場合、仮想 CPU は利用可能な NUMA ノード間で均等に配分されます。

N は 0 から始まります。*.N 値を使用する場合には注意が必要です。NUMA ノードが少なくとも 2 つある場合に限り使用してください。

この属性は hw:numa_nodes を設定している場合にのみ有効で、インスタンスの NUMA ノードに CPU および RAM が対称的に割り当てられていない場合 (一部の NFV 負荷で重要) にのみ必要です。

hw:numa_mem.N

インスタンスの NUMA ノード N にマッピングするインスタンスのメモリー容量 (MB 単位)。このキーを指定しない場合、メモリーは利用可能な NUMA ノード間で均等に配分されます。

N は 0 から始まります。*.N 値を使用する場合には注意が必要です。NUMA ノードが少なくとも 2 つある場合に限り使用してください。

この属性は hw:numa_nodes を設定している場合にのみ有効で、インスタンスの NUMA ノードに CPU および RAM が対称的に割り当てられていない場合 (一部の NFV 負荷で重要) にのみ必要です。

警告

hw:numa_cpus.N で指定する仮想 CPU の総数または hw:numa_mem.N で指定するメモリー容量が、それぞれ利用可能な CPU の数またはメモリー容量よりも大きい場合、Compute サービスは例外を発生させます。

インスタンスメモリーの暗号化

以下の表に示す属性キーを使用して、インスタンスのメモリーの暗号化を有効にします。

表8.15 メモリー暗号化用のフレーバーメタデータ

キー説明

hw:mem_encryption

インスタンスのメモリーの暗号化を要求するには、True に設定します。詳しくは、Configuring AMD SEV Compute nodes to provide memory encryption for instances を参照してください。

CPU リアルタイムポリシー

以下の表に示す属性キーを使用して、インスタンス内のプロセッサーのリアルタイムポリシーを定義します。

注記
  • インスタンスのほとんどの仮想 CPU は、リアルタイムポリシーを設定して実行することができますが、非リアルタイムのゲストプロセスとエミュレーターのオーバーヘッドプロセスの両方に使用するために、少なくとも 1 つの仮想 CPU を非リアルタイムと識別する必要があります。
  • この追加スペックを使用するには、ピニングされた CPU を有効にする必要があります。

表8.16 CPU リアルタイムポリシー用のフレーバーメタデータ

キー説明

hw:cpu_realtime

リアルタイムポリシーをインスタンスの仮想 CPU に割り当てるフレーバーを作成するには、yes に設定します。

デフォルト: no

hw:cpu_realtime_mask

リアルタイムポリシーを割り当てない仮想 CPU を指定します。マスクする値の前にキャレット記号 (^) を追加する必要があります。仮想 CPU 0 および 1 を除くすべての仮想 CPU にリアルタイムポリシーを設定する場合の例を以下に示します。

$ openstack flavor set <flavor> \
 --property hw:cpu_realtime="yes" \
 --property hw:cpu_realtime_mask=^0-1
注記

hw_cpu_realtime_mask 属性がイメージで設定されている場合、フレーバーで設定した hw:cpu_realtime_mask 属性よりも優先されます。

エミュレータースレッドポリシー

物理 CPU をインスタンスに割り当てて、エミュレータースレッドに使用することができます。エミュレータースレッドとは、インスタンスと直接関係しないエミュレータープロセスを指します。リアルタイム負荷には、専用のエミュレータースレッド用物理 CPU が必要です。エミュレータースレッドポリシーを使用するには、以下の属性を設定してピニングされた CPU を有効にする必要があります。

--property hw:cpu_policy=dedicated

以下の表に示す属性キーを使用して、インスタンスのエミュレータースレッドポリシーを定義します。

表8.17 エミュレータースレッドポリシー用のフレーバーメタデータ

キー説明

hw:emulator_threads_policy

インスタンスに使用するエミュレータースレッドポリシーを指定します。以下の有効な値のいずれかに設定します。

  • share: エミュレータースレッドは、NovaComputeCpuSharedSet heat パラメーターで定義される物理 CPU 全体で共有されます。NovaComputeCpuSharedSet が設定されていない場合、エミュレータースレッドはインスタンスに関連付けられたピニングされた CPU 全体で共有されます。
  • isolate: エミュレータースレッド用に、インスタンスごとに専用の物理 CPU をさらに確保します。このポリシーは過度にリソースを消費するので、使用には注意が必要です。
  • unset: (デフォルト) エミュレータースレッドポリシーは有効ではなく、エミュレータースレッドはインスタンスに関連付けられたピニングされた CPU 全体で共有されます。

インスタンスのメモリーページサイズ

以下の表に示す属性キーを使用して、明示的なメモリーページサイズでインスタンスを作成します。

表8.18 メモリーページサイズ用のフレーバーメタデータ

キー説明

hw:mem_page_size

インスタンスをサポートするのに使用するラージページのサイズを指定します。このオプションを使用すると、hw:numa_nodes で特に指定しない限り、1 NUMA ノードの暗黙的な NUMA トポロジーが作成されます。以下の有効な値のいずれかに設定します。

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

PCI パススルー

以下の表に示す属性キーを使用して、グラフィックカードやネットワークデバイス等の物理 PCI デバイスをインスタンスにアタッチします。PCI パススルーの使用に関する詳細は、Configuring PCI passthrough を参照してください。

表8.19 PCI パススルー用のフレーバーメタデータ

キー説明

pci_passthrough:alias

以下の形式を使用して、インスタンスに割り当てる PCI デバイスを指定します。

<alias>:<count>
  • <alias> を、特定の PCI デバイスクラスに対応するエイリアスに置き換えます。
  • <count> を、インスタンスに割り当てる種別 <alias> の PCI デバイスの数に置き換えます。

ハイパーバイザーの署名

以下の表に示す属性キーを使用して、ハイパーバイザーの署名をインスタンスからは非表示にします。

表8.20 ハイパーバイザーの署名を非表示にするためのフレーバーメタデータ

キー説明

hide_hypervisor_id

ハイパーバイザーの署名をインスタンスからは非表示にするには、True に設定します。これにより、すべてのドライバーがインスタンスで読み込みおよび操作を行うことができます。

インスタンスのリソース特性

各リソースプロバイダーには特性のセットがあります。特性は、ストレージディスクの種別や Intel CPU 拡張命令セットなど、リソースプロバイダーの機能的な要素です。インスタンスは、これらの中から要求する特性を指定することができます。

指定することのできる特性は os-traits ライブラリーで定義されます。特性の例を以下に示します。

  • COMPUTE_TRUSTED_CERTS
  • COMPUTE_NET_ATTACH_INTERFACE_WITH_TAG
  • COMPUTE_IMAGE_TYPE_RAW
  • HW_CPU_X86_AVX
  • HW_CPU_X86_AVX512VL
  • HW_CPU_X86_AVX512CD

os-traits ライブラリーの使用方法の詳細は、Usage を参照してください。

以下の表に示す属性キーを使用して、インスタンスのリソース特性を定義します。

表8.21 リソース特性用のフレーバーメタデータ

キー説明

trait:<trait_name>

コンピュートノードの特性を指定します。特性を、以下の有効な値のいずれかに設定します。

  • required: インスタンスをホストするために選択したコンピュートノードになければいけない特性
  • forbidden: インスタンスをホストするために選択したコンピュートノードにあってはいけない特性

以下に例を示します。

$ openstack flavor set --property trait:HW_CPU_X86_AVX512BW=required avx512-flavor

インスタンスのベアメタルリソースクラス

以下の表に示す属性キーを使用して、インスタンスのベアメタルリソースクラスを要求します。

表8.22 ベアメタルリソースクラス用のフレーバーメタデータ

キー説明

resources:<resource_class_name>

この属性を使用して、値をオーバーライドする標準のベアメタルリソースクラスを指定するか、インスタンスが要求するカスタムのベアメタルリソースクラスを指定します。

オーバーライドすることができる標準のリソースクラスは VCPUMEMORY_MB、および DISK_GB です。Compute スケジューラーがインスタンスのスケジューリングにベアメタルフレーバー属性を使用するのを防ぐには、標準のリソースクラスの値を 0 に設定します。

カスタムリソースクラスの名前は、CUSTOM_ で始まる必要があります。Bare Metal サービスノードのリソースクラスに対応するカスタムリソースクラスの名前を指定するには、リソースクラスを大文字に変換し、すべての句読点をアンダースコアに置き換え、CUSTOM_ の接頭辞を追加します。

たとえば、--resource-class baremetal.SMALL のノードにインスタンスをスケジュールするには、以下のフレーバーを作成します。

$ openstack flavor set \
 --property resources:CUSTOM_BAREMETAL_SMALL=1 \
 --property resources:VCPU=0 --property resources:MEMORY_MB=0 \
 --property resources:DISK_GB=0 compute-small