10.2.2. 仮想 GPU 用コンピュートノードの指定
vGPU ワークロードのコンピュートノードを指定するには、新しいロールファイルを作成して vGPU ロールを設定し、GPU 対応のコンピュートノードのタグ付けに使用する GPU リソースクラスを使用してベアメタルノードを設定する必要があります。
以下の手順は、まだプロビジョニングされていない新しいオーバークラウドノードに適用されます。すでにプロビジョニングされている既存のオーバークラウドノードにリソースクラスを割り当てるには、スケールダウン手順を使用してノードのプロビジョニングを解除してから、スケールアップ手順を使用して新しいリソースクラスの割り当てでノードを再プロビジョニングする必要があります。詳細は、オーバークラウドノードのスケーリング を参照してください。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 stackrcファイルを取得します。[stack@director ~]$ source ~/stackrcController、Compute、ComputeGpuロールを含む、roles_data_gpu.yamlという名前の新しいロールデータファイルを、オーバークラウドに必要なその他のロールとともに生成します。(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_gpu.yaml \ Compute:ComputeGpu Compute Controllerroles_data_gpu.yamlを開き、以下のパラメーターおよびセクションを編集または追加します。Expand セクション/パラメーター 現在の値 新しい値 ロールのコメント
Role: ComputeRole: ComputeGpuロール名
ComputeComputeGpudescriptionBasic Compute Node roleGPU Compute Node roleHostnameFormatDefault-compute--computegpu-deprecated_nic_config_namecompute.yamlcompute-gpu.yaml-
オーバークラウド用の GPU 対応コンピュートノードをノード定義のテンプレート
node.jsonまたはnode.yamlに追加して、そのノードを登録します。詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのノードの登録 を参照してください。 ノードのハードウェアを検査します。
(undercloud)$ openstack overcloud node introspect --all-manageable \ --provide詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの ベアメタルノードハードウェアのインベントリーの作成 を参照してください。
GPU 負荷用に指定する各ベアメタルノードに、カスタムの GPU リソースクラスをタグ付けします。
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.GPU <node><node>をベアメタルノードの ID に置き換えてください。ノード定義ファイル
overcloud-baremetal-deploy.yamlにComputeGpuロールを追加し、予測ノード配置、リソースクラス、ネットワークトポロジー、またはノードに割り当てるその他の属性を定義します。- name: Controller count: 3 - name: Compute count: 3 - name: ComputeGpu count: 1 defaults: resource_class: baremetal.GPU network_config: template: /home/stack/templates/nic-config/myRoleTopology.j21 - 1
- 既存のネットワークトポロジーを再利用するか、ロール用の新しいカスタムネットワークインターフェイステンプレートを作成できます。詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの カスタムネットワークインターフェイステンプレート を参照してください。
network_configプロパティーを使用してネットワーク定義を定義しない場合、デフォルトのネットワーク定義が使用されます。ノード定義ファイルでノード属性を設定するために使用できるプロパティーの詳細は、ベアメタルノードのプロビジョニング属性 を参照してください。ノード定義ファイルの例は、ノード定義ファイルの例 を参照してください。
プロビジョニングコマンドを実行して、ロールの新しいノードをプロビジョニングします。
(undercloud)$ openstack overcloud node provision \ --stack <stack> \ [--network-config \] --output /home/stack/templates/overcloud-baremetal-deployed.yaml \ /home/stack/templates/overcloud-baremetal-deploy.yaml-
<stack>を、ベアメタルノードがプロビジョニングされるスタックの名前に置き換えます。指定しない場合、デフォルトはovercloudです。 -
--network-configオプションの引数を含めて、cli-overcloud-node-network-config.yamlAnsible Playbook にネットワーク定義を提供します。network_configプロパティーを使用してネットワーク定義を定義しない場合、デフォルトのネットワーク定義が使用されます。
-
別のターミナルでプロビジョニングの進捗をモニタリングします。プロビジョニングが成功すると、ノードの状態が
availableからactiveに変わります。(undercloud)$ watch openstack baremetal node list--network-configオプションを指定してプロビジョニングコマンドを実行しなかった場合は、network-environment.yamlファイルで<Role>NetworkConfigTemplateパラメーターを設定して、NIC テンプレートファイルを指すようにします。parameter_defaults: ComputeNetworkConfigTemplate: /home/stack/templates/nic-configs/compute.j2 ComputeGpuNetworkConfigTemplate: /home/stack/templates/nic-configs/<gpu_net_top>.j2 ControllerNetworkConfigTemplate: /home/stack/templates/nic-configs/controller.j2<gpu_net_top>をComputeGpuロールのネットワークトポロジーが含まれるファイルの名前に置き換えます。たとえば、デフォルトのネットワークトポロジーを使用する場合はcompute.yamlです。