7.5. カスタム特性とリソースクラスの宣言
管理者は、以下のいずれかの方法を使用して、Red Hat OpenStack Platform (RHOSP)オーバークラウドノードでどのカスタム物理機能と消費可能なリソースが利用可能であるかを宣言できます。
-
YAML ファイルでリソースのカスタムインベントリーを定義することにより、
provider.yaml
- 特定のノードロールに適用されるリソースのカスタムインベントリーを定義する方法。
CUSTOM_DIESEL_BACKUP_POWER
、CUSTOM_FIPS_COMPLIANT
、CUSTOM_HPC_OPTIMIZED
などのカスタム特性を定義することで、物理ホスト機能の可用性を宣言できます。CUSTOM_DISK_IOPS
や CUSTOM_POWER_WATTS
などのリソースクラスを定義することで、消費可能なリソースの可用性を宣言することもできます。
7.5.1. YAML ファイルでのカスタム特性とリソースクラスの宣言
管理者は、YAML ファイル provider.yaml
でリソースのカスタムインベントリーを定義することにより、Red Hat OpenStack Platform (RHOSP) オーバークラウドノードでどのカスタム物理機能と消費可能なリソースが利用可能であるかを宣言できます。
CUSTOM_DIESEL_BACKUP_POWER
、CUSTOM_FIPS_COMPLIANT
、CUSTOM_HPC_OPTIMIZED
などのカスタム特性を定義することで、物理ホスト機能の可用性を宣言できます。CUSTOM_DISK_IOPS
や CUSTOM_POWER_WATTS
などのリソースクラスを定義することで、消費可能なリソースの可用性を宣言することもできます。
フレーバーメタデータを使用して、カスタムリソースとカスタム特性を要求できます。詳細は、インスタンスのベアメタルリソースクラス と インスタンスのリソース特性 を参照してください。
手順
-
/home/stack/templates/
にprovider.yaml
という名前のファイルを作成します。 リソースプロバイダーを設定するには、
provider.yaml
ファイルに次の設定を追加します。meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid>
meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid>
Copy to Clipboard Copied! -
<node_uuid>
をノードの UUID に置き換えます (例:'5213b75d-9260-42a6-b236-f39b0fd10561')
。あるいは、name
プロパティーを使用してリソースプロバイダーを指定することもできます (name: 'EXAMPLE_RESOURCE_PROVIDER')
。
-
リソースプロバイダー用に使用可能なカスタムリソースクラスを設定するには、次の設定を
provider.yaml
ファイルに追加します。meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid> inventories: additional: - CUSTOM_EXAMPLE_RESOURCE_CLASS: total: <total_available> reserved: <reserved> min_unit: <min_unit> max_unit: <max_unit> step_size: <step_size> allocation_ratio: <allocation_ratio>
meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid> inventories: additional: - CUSTOM_EXAMPLE_RESOURCE_CLASS: total: <total_available> reserved: <reserved> min_unit: <min_unit> max_unit: <max_unit> step_size: <step_size> allocation_ratio: <allocation_ratio>
Copy to Clipboard Copied! -
CUSTOM_EXAMPLE_RESOURCE_CLASS
をリソースクラスの名前に置き換えます。カスタムリソースクラスは接頭辞 CUSTOM_ で始まり、A から Z までの文字、0 から 9 までの数字、およびアンダースコア "_" だけを使用する必要があります。 -
<total_available>
は、このリソースプロバイダーで使用可能なCUSTOM_EXAMPLE_RESOURCE_CLASS
の数に置き換えます。 -
<
;reserved>
; は、このリソースプロバイダー用に予約されているCUSTOM_EXAMPLE_RESOURCE_CLASS
の数に置き換えます。 -
<min_unit>
は、単一インスタンスが消費できるリソースの最小単位に置き換えます。 -
<max_unit>
は、単一インスタンスが消費できるリソースの最大単位に置き換えます。 -
<
;step_size>
は、消費量のインクリメント数に置き換えます。 -
&
lt;allocation_ratio&
gt; をリソースの割り当て比率を設定する値に置き換えます。過剰割り当てを防ぐには1.0
に設定します。リソースの可用性を物理ハードウェアより多くするには、1.0
より大きい値に設定します。
-
リソースプロバイダー用に使用可能な特性を設定するには、
provider.yaml
ファイルに次の設定を追加します。meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid> inventories: additional: ... traits: additional: - 'CUSTOM_EXAMPLE_TRAIT'
meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid> inventories: additional: ... traits: additional: - 'CUSTOM_EXAMPLE_TRAIT'
Copy to Clipboard Copied! CUSTOM_EXAMPLE_TRAIT
を特性の名前に置き換えます。カスタムの特性は接頭辞 CUSTOM_ で始まり、A から Z までの文字、0 から 9 までの数字、およびアンダースコア "_" だけを使用する必要があります。provider.yaml
ファイルの例次の例では、リソースプロバイダーの 1 つのカスタムリソースクラスと 1 つのカスタム特性を宣言します。
meta: schema_version: 1.0 providers: - identification: uuid: $COMPUTE_NODE inventories: additional: CUSTOM_LLC: # Describing LLC on this Compute node total: 22 reserved: 2 min_unit: 1 max_unit: 11 step_size: 1 allocation_ratio: 1.0 traits: additional: # This Compute node enables support for P-state control - CUSTOM_P_STATE_ENABLED
meta: schema_version: 1.0 providers: - identification: uuid: $COMPUTE_NODE inventories: additional: CUSTOM_LLC: # Describing LLC on this Compute node total: 22
1 reserved: 2
2 min_unit: 1
3 max_unit: 11
4 step_size: 1
5 allocation_ratio: 1.0
6 traits: additional: # This Compute node enables support for P-state control - CUSTOM_P_STATE_ENABLED
Copy to Clipboard Copied!
-
provider.yaml
ファイルを保存して閉じます。 provider.yaml
ファイルを他の環境ファイルとともにスタックに追加し、オーバークラウドをデプロイします。openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/provider.yaml
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/provider.yaml
Copy to Clipboard Copied!
7.5.2. ロールのカスタム特性とリソースクラスの宣言
ロールのカスタム特性とリソースクラスを宣言するには、role ファイルで CustomProviderInventories
パラメーターを設定する必要があります。
手順
Controller ロールおよび Compute ロール、およびオーバークラウドに必要なその他のロールを含む、
roles_data_custom_traits.yaml
という名前の新しいロールデータファイルを生成します。openstack overcloud roles \ generate -o /home/stack/templates/roles_data_roles_data_custom_traits.yaml \ Compute:Compute Controller
(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_roles_data_custom_traits.yaml \ Compute:Compute Controller
Copy to Clipboard Copied! 以下の設定例を使用して、リソースプロバイダーで利用可能なカスタムリソースクラスおよび特性を設定します。
次の例では、ComputeGpu ロールのカスタムリソースクラスとカスタム特性を宣言します。
########################## # GPU configuration # ########################## ComputeGpuParameters: NovaVGPUTypesDeviceAddressesMapping: {'nvidia-319': ['0000:82:00.0'], 'nvidia-320': ['0000:04:00.0']} CustomProviderInventories: - name: computegpu-0.localdomain_pci_0000_04_00_0 traits: - CUSTOM_NVIDIA_12 - name: computegpu-0.localdomain_pci_0000_82_00_0 traits: - CUSTOM_NVIDIA_11 - name: computegpu-1.localdomain_pci_0000_04_00_0 traits: - CUSTOM_NVIDIA_12 - name: computegpu-1.localdomain_pci_0000_82_00_0 traits: - CUSTOM_NVIDIA_11 - uuid: $COMPUTE_NODE inventories: CUSTOM_EXAMPLE_RESOURCE_CLASS: total: 100 reserved: 0 min_unit: 1 max_unit: 10 step_size: 1 allocation_ratio: 1.0 CUSTOM_ANOTHER_EXAMPLE_RESOURCE_CLASS: total: 100 traits: # This Compute node enables support for P-state and C-state control - CUSTOM_P_STATE_ENABLED - CUSTOM_C_STATE_ENABLED
########################## # GPU configuration # ########################## ComputeGpuParameters: NovaVGPUTypesDeviceAddressesMapping: {'nvidia-319': ['0000:82:00.0'], 'nvidia-320': ['0000:04:00.0']} CustomProviderInventories: - name: computegpu-0.localdomain_pci_0000_04_00_0 traits: - CUSTOM_NVIDIA_12 - name: computegpu-0.localdomain_pci_0000_82_00_0 traits: - CUSTOM_NVIDIA_11 - name: computegpu-1.localdomain_pci_0000_04_00_0 traits: - CUSTOM_NVIDIA_12 - name: computegpu-1.localdomain_pci_0000_82_00_0 traits: - CUSTOM_NVIDIA_11 - uuid: $COMPUTE_NODE inventories: CUSTOM_EXAMPLE_RESOURCE_CLASS: total: 100
1 reserved: 0
2 min_unit: 1
3 max_unit: 10
4 step_size: 1
5 allocation_ratio: 1.0
6 CUSTOM_ANOTHER_EXAMPLE_RESOURCE_CLASS: total: 100 traits: # This Compute node enables support for P-state and C-state control - CUSTOM_P_STATE_ENABLED - CUSTOM_C_STATE_ENABLED
Copy to Clipboard Copied! -
CUSTOM_EXAMPLE_RESOURCE_CLASS
をリソースクラスの名前に置き換えます。カスタムリソースクラスは接頭辞 CUSTOM_ で始まり、A から Z までの文字、0 から 9 までの数字、およびアンダースコア "_" だけを使用する必要があります。 -
<1>
total
は、このリソースプロバイダーで使用可能なCUSTOM_EXAMPLE_RESOURCE_CLASS
の数です。 -
<2> は、このリソースプロバイダー用に予約されている
CUSTOM_EXAMPLE_RESOURCE_CLASS
の数です。 -
<3>
min_unit
は、単一インスタンスが消費できるリソースの最小単位です。 -
<4>
max_unit
は、単一インスタンスが消費できるリソースの最大単位です。 -
<5>
step_size
は消費量の増分数です。 -
<6>
allocation_ratio
は、リソースの過剰割り当てを設定します。allocation_ratio
を 1.0 に設定すると、過剰割り当ては許可されません。ただし、allocation_ration
が 1.0 より大きい場合、使用可能なリソースの合計は物理的に存在するリソースよりも多くなります。
-
- ロールファイルを保存して閉じます。
その他の環境ファイルと共にロールファイルをスタックに追加して、オーバークラウドをデプロイします。
openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/roles_data_roles_data_custom_traits.yaml
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/roles_data_roles_data_custom_traits.yaml
Copy to Clipboard Copied!