8.3. フレーバーのメタデータ
フレーバーを作成する際に、--property
オプションを使用してフレーバーのメタデータを指定します。フレーバーのメタデータは 追加スペック とも呼ばれます。フレーバーのメタデータで指定するインスタンス用ハードウェアのサポートおよびクォータは、インスタンスの配置、インスタンスの制限、およびパフォーマンスに影響を及ぼします。
インスタンスによるリソースの使用
以下の表に示す属性キーを使用して、インスタンスによる CPU、メモリー、およびディスク I/O の使用に制限を設定します。
キー | 説明 |
---|---|
|
ドメイン内の CPU 時間の配分に使用する重みを指定します。デフォルトは OS が提供するデフォルト値です。Compute スケジューラーは、この属性の設定と同じドメイン内にある他のインスタンスの設定を比較して、相対的な重み付けを行います。たとえば、設定が |
|
|
|
各
$ 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 GuideのUse Quality-of-Service Specificationsを参照してください。
キー | 説明 |
---|---|
| インスタンスが利用可能な最大ディスク読み取りを指定します (バイト毎秒単位)。 |
| インスタンスが利用可能な最大ディスク読み取りを指定します (IOPS 単位)。 |
| インスタンスが利用可能な最大ディスク書き込みを指定します (バイト毎秒単位)。 |
| インスタンスが利用可能な最大ディスク書き込みを指定します (IOPS 単位)。 |
| インスタンスが利用可能な最大 I/O 操作を指定します (バイト毎秒単位)。 |
| インスタンスが利用可能な最大 I/O 操作を指定します (IOPS 単位)。 |
インスタンスのネットワークトラフィックの帯域幅
以下の表に示す属性キーを使用して、VIF I/O オプションの設定により、インスタンスのネットワークトラフィックの帯域幅上限を設定します。
quota :vif_*
属性は非推奨になりました。この属性の代わりに、Networking (neutron) サービスの Quality of Service (QoS) ポリシーを使用する必要があります。QoS ポリシーについての詳細は、Networking Guide の Configuring Quality of Service (QoS) policies を参照してください。quota:vif_*
プロパティーは、NeutronOVSFirewallDriver
が iptables_hybrid
に設定されている ML2/OVS メカニズムドライバーを使用する場合にのみサポートされます。
キー | 説明 |
---|---|
| (非推奨) インスタンスに送付されるトラフィックに要求される平均ビットレートを指定します (kbps 単位)。 |
| (非推奨) ピークの速度でバースト処理することができる受信トラフィックの最大量を指定します (KB 単位)。 |
| (非推奨) インスタンスが受信することのできるトラフィックの最大レートを指定します (kbps 単位)。 |
| (非推奨) インスタンスから送信されるトラフィックに要求される平均ビットレートを指定します (kbps 単位)。 |
| (非推奨) ピークの速度でバースト処理することができる送信トラフィックの最大量を指定します (KB 単位)。 |
| (非推奨) インスタンスが送信することのできるトラフィックの最大レートを指定します (kbps 単位)。 |
ハードウェアビデオ RAM
以下の表に示す属性キーを使用して、ビデオデバイスに使用するインスタンス RAM の上限を設定します。
キー | 説明 |
---|---|
|
ビデオデバイスに使用する最大 RAM を指定します (MB 単位)。 |
ウォッチドッグの動作
以下の表に示す属性キーを使用して、インスタンスで仮想ハードウェアのウォッチドッグデバイスを有効にします。
キー | 説明 |
---|---|
|
仮想ハードウェアのウォッチドッグデバイスを有効にするかどうかを指定し、その動作を設定します。インスタンスがハングアップまたはエラーが発生した場合に、ウォッチドッグデバイスは設定されたアクションを実行します。ウォッチドッグは i6300esb デバイスを使用し、PCI Intel 6300ESB をエミュレートします。 以下の有効な値のいずれかに設定します。
|
乱数ジェネレーター
以下の表に示す属性キーを使用して、インスタンスで乱数ジェネレーターデバイスを有効にします。
キー | 説明 |
---|---|
|
イメージ属性によりインスタンスに追加された乱数ジェネレーターデバイスを有効にするには、 |
| 期間中、インスタンスがホストのエントロピーから読み取ることのできる最大バイト数を指定します。 |
| 読み取り期間を指定します (ミリ秒単位)。 |
仮想パフォーマンス監視ユニット (vPMU)
以下の表に示す属性キーを使用して、インスタンスの仮想 PMU を有効にします。
キー | 説明 |
---|---|
|
インスタンスの仮想 PMU を有効にするには、
|
インスタンスの CPU トポロジー
以下の表に示す属性キーを使用して、インスタンス内のプロセッサーのトポロジーを定義します。
キー | 説明 |
---|---|
| インスタンスの推奨ソケット数を指定します。 デフォルト: 要求される仮想 CPU の数 |
| インスタンスの 1 ソケットあたりの推奨コア数を指定します。
デフォルト: |
| インスタンスの 1 コアあたりの推奨スレッド数を指定します。
デフォルト: |
| イメージ属性を使用してユーザーがインスタンスに選択できる最大ソケット数を指定します。
例: |
| イメージ属性を使用してユーザーがインスタンスに選択できる、1 ソケットあたりの最大コア数を指定します。 |
| イメージ属性を使用してユーザーがインスタンスに選択できる、1 コアあたりの最大スレッド数を指定します。 |
シリアルポート
以下の表に示す属性キーを使用して、1 インスタンスあたりのシリアルポートの数を設定します。
キー | 説明 |
---|---|
| 1 インスタンスあたりの最大シリアルポート数 |
CPU ピニングポリシー
デフォルトでは、インスタンスの仮想 CPU (vCPU) は 1 コア 1 スレッドのソケットです。属性を使用して、インスタンスの仮想 CPU をホストの物理 CPU コア (pCPU) に固定するフレーバーを作成することができます。1 つまたは複数のコアがスレッドシブリングを持つ同時マルチスレッド (SMT) アーキテクチャーで、ハードウェア CPU スレッドの動作を設定することもできます。
以下の表に示す属性キーを使用して、インスタンスの CPU ピニングポリシーを定義します。
キー | 説明 |
---|---|
| 使用する CPU ポリシーを指定します。以下の有効な値のいずれかに設定します。
|
|
設定が
|
インスタンス PCI NUMA アフィニティーポリシー
以下の表に示す属性キーを使用して、PCI パススルーデバイスおよび SR-IOV インターフェイスの NUMA アフィニティーポリシーを指定するフレーバーを作成します。
キー | 説明 |
---|---|
| PCI パススルーデバイスおよび SR-IOV インターフェイスの 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 トポロジーを定義します。
キー | 説明 |
---|---|
| インスタンスの仮想 CPU スレッドの実行先として制限するホスト NUMA ノードの数を指定します。指定しない場合は、利用可能な任意の数のホスト NUMA ノード上で仮想 CPU スレッドを実行することができます。 |
| インスタンスの NUMA ノード N にマッピングするインスタンスの仮想 CPU のコンマ区切りリスト。このキーを指定しない場合、仮想 CPU は利用可能な NUMA ノード間で均等に配分されます。 N は 0 から始まります。*.N 値を使用する場合には注意が必要です。NUMA ノードが少なくとも 2 つある場合に限り使用してください。
この属性は |
| インスタンスの NUMA ノード N にマッピングするインスタンスのメモリー容量 (MB 単位)。このキーを指定しない場合、メモリーは利用可能な NUMA ノード間で均等に配分されます。 N は 0 から始まります。*.N 値を使用する場合には注意が必要です。NUMA ノードが少なくとも 2 つある場合に限り使用してください。
この属性は |
hw:numa_cpus.N
で指定する仮想 CPU の総数または hw:numa_mem.N
で指定するメモリー容量が、それぞれ利用可能な CPU の数またはメモリー容量よりも大きい場合、Compute サービスは例外を発生させます。
インスタンスメモリーの暗号化
以下の表に示す属性キーを使用して、インスタンスのメモリーの暗号化を有効にします。
キー | 説明 |
---|---|
|
インスタンスのメモリーの暗号化を要求するには、 |
CPU リアルタイムポリシー
以下の表に示す属性キーを使用して、インスタンス内のプロセッサーのリアルタイムポリシーを定義します。
- インスタンスのほとんどの仮想 CPU は、リアルタイムポリシーを設定して実行することができますが、非リアルタイムのゲストプロセスとエミュレーターのオーバーヘッドプロセスの両方に使用するために、少なくとも 1 つの仮想 CPU を非リアルタイムと識別する必要があります。
- この追加スペックを使用するには、ピニングされた CPU を有効にする必要があります。
キー | 説明 |
---|---|
|
リアルタイムポリシーをインスタンスの仮想 CPU に割り当てるフレーバーを作成するには、
デフォルト: |
| リアルタイムポリシーを割り当てない仮想 CPU を指定します。マスクする値の前にキャレット記号 (^) を追加する必要があります。仮想 CPU 0 および 1 を除くすべての仮想 CPU にリアルタイムポリシーを設定する場合の例を以下に示します。 $ openstack flavor set <flavor> \ --property hw:cpu_realtime="yes" \ --property hw:cpu_realtime_mask=^0-1 注記
|
エミュレータースレッドポリシー
物理 CPU をインスタンスに割り当てて、エミュレータースレッドに使用することができます。エミュレータースレッドとは、インスタンスと直接関係しないエミュレータープロセスを指します。リアルタイム負荷には、専用のエミュレータースレッド用物理 CPU が必要です。エミュレータースレッドポリシーを使用するには、以下の属性を設定してピニングされた CPU を有効にする必要があります。
--property hw:cpu_policy=dedicated
以下の表に示す属性キーを使用して、インスタンスのエミュレータースレッドポリシーを定義します。
キー | 説明 |
---|---|
| インスタンスに使用するエミュレータースレッドポリシーを指定します。以下の有効な値のいずれかに設定します。
|
インスタンスのメモリーページサイズ
以下の表に示す属性キーを使用して、明示的なメモリーページサイズでインスタンスを作成します。
キー | 説明 |
---|---|
|
インスタンスをサポートするのに使用するラージページのサイズを指定します。このオプションを使用すると、
|
PCI パススルー
以下の表に示す属性キーを使用して、グラフィックカードやネットワークデバイス等の物理 PCI デバイスをインスタンスにアタッチします。PCI パススルーの使用に関する詳細は、Configuring PCI passthrough を参照してください。
キー | 説明 |
---|---|
| 以下の形式を使用して、インスタンスに割り当てる PCI デバイスを指定します。 <alias>:<count>
|
ハイパーバイザーの署名
以下の表に示す属性キーを使用して、ハイパーバイザーの署名をインスタンスからは非表示にします。
キー | 説明 |
---|---|
|
ハイパーバイザーの署名をインスタンスからは非表示にするには、 |
インスタンスのリソース特性
各リソースプロバイダーには特性のセットがあります。特性は、ストレージディスクの種別や 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 を参照してください。
以下の表に示す属性キーを使用して、インスタンスのリソース特性を定義します。
キー | 説明 |
---|---|
| コンピュートノードの特性を指定します。特性を、以下の有効な値のいずれかに設定します。
以下に例を示します。 $ openstack flavor set --property trait:HW_CPU_X86_AVX512BW=required avx512-flavor |
インスタンスのベアメタルリソースクラス
以下の表に示す属性キーを使用して、インスタンスのベアメタルリソースクラスを要求します。
キー | 説明 |
---|---|
| この属性を使用して、値をオーバーライドする標準のベアメタルリソースクラスを指定するか、インスタンスが要求するカスタムのベアメタルリソースクラスを指定します。
オーバーライドすることができる標準のリソースクラスは
カスタムリソースクラスの名前は、
たとえば、 $ 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 |