9.6. One Time Use デバイスの設定
Compute サービス (nova) では、デバイスを One Time Use (OTU) としてマークし、単一インスタンスの 1 回限りの使用のために予約することがサポートされています。
前提条件
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。 -
One Time Use PCI デバイスとして設定するノードを定義する
OpenStackDataPlaneNodeSetCR を選択した。OpenStackDataPlaneNodeSetCR 作成の詳細は、Red Hat OpenStack Services on OpenShift のデプロイ ガイドの 事前プロビジョニングされたノードを使用した OpenStackDataPlaneNodeSet CR の作成 を参照してください。 - Placement サービスで PCI デバイストラッキングを設定した。詳細は、Placement サービスで PCI デバイストラッキングを有効にする を参照してください。
手順
-
nova-extra-config.yamlという名前のConfigMapカスタムリソース (CR) を作成または更新します。 one_time_useタグを追加して、OTU デバイスとしてタグ付けするデバイスのdevice_specを追加または編集します。以下は、このタグが追加された
device_specの例です。apiVersion: v1 kind: ConfigMap metadata: name: nova-extra-config namespace: openstack data: 32-nova-pci-alias.conf: | [pci] alias = {"name":"a1", "product_id":"1572", "vendor_id": "8086", "device_type": "type-PF", "numa_policy": "preferred"} device_spec = {"vendor_id":"8086", "product_id":"1572", "address": "0000:06:", "one_time_use": true}注記device_spec設定オプションは複数回定義することができ、Red Hat OpenStack Services on OpenShift (RHOSO) はこれらの定義をそれぞれ 1 つのdevice_spec値リストにマージします。つまり、device_spec値は、後続のdevice_spec定義で上書きできません。デバイスを OTU デバイスとして設定する場合、device_specを定義した元の設定ファイルでone_time_useタグを定義する必要があります。たとえば、PCI パススルー用の OpenStackDataPlaneNodeSet CR の作成 では、クラウドユーザーによる PCI デバイスが割り当てられたインスタンスの作成を可能にする方法が定義されています。通常、この段階でタグが
device_specに追加されます。ConfigMap オブジェクトの作成の詳細は、ノード の config map の作成と使用 を参照してください。
-
nova-extra-config.yamlファイルを保存します。 新しい
OpenStackDataPlaneDeploymentCR を作成して、データプレーンノード上のサービスを設定し、データプレーンをデプロイします。CR を、ワークステーション上のcompute_otu_devices_deploy.yamlという名前のファイルに保存します。apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-otu-devicescompute_otu_devices_deploy.yamlで、デプロイするすべてのOpenStackDataPlaneNodeSetCR を含めるようにnodeSetsを指定します。前提条件として選択したOpenStackDataPlaneNodeSetCR が含まれていることを確認してください。このOpenStackDataPlaneNodeSetCR は、OTU デバイスとして設定するノードを定義します。警告ノードセット内のノードのサブセットは再設定できません。そうする必要がある場合は、ノードセットをスケールダウンし、以前に削除したノードから新しいノードセットを作成する必要があります。
警告デプロイメントに複数のノードセットがある場合、ノードセットと
DataPlaneServicesがどのように設定されているかにより、nova-extra-config.yamlConfigMap への変更が複数のノードセットに直接影響する可能性があります。ノードセットがnova-extra-configConfigMap を使用しているために再設定の影響を受けるかを確認するには、次の手順を実行します。-
ノードセットのサービスリストを確認し、
novaを指すDataPlaneServiceの名前を見つけます。DataPlaneServiceのedpmServiceTypeフィールドの値がnovaに設定されていることを確認します。 -
DataPlaneServiceのdataSourcesリストにnova-extra-configという名前のconfigMapRefが含まれている場合、このノードセットはこのConfigMapを使用し、その結果このConfigMapに加えた設定変更の影響を受けます。影響を受けるノードセットの一部を再設定しない場合は、これらのノードセットの別のConfigMapを指す新しいDataPlaneServiceを作成し、必要なノードセットでそのカスタムサービスを使用する必要があります。
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-otu-devices spec: nodeSets: - openstack-edpm - ... - <nodeSet_name>-
<nodeSet_name>は、データプレーンデプロイメントに含めるOpenStackDataPlaneNodeSetCR の名前に置き換えます。
-
ノードセットのサービスリストを確認し、
-
compute_otu_devices_deploy.yamlデプロイメントファイルを保存します。 データプレーンをデプロイします。
$ oc create -f compute_otu_devices_deploy.yamlデータプレーンがデプロイされていることを確認します。
$ oc get openstackdataplanenodeset NAME STATUS MESSAGE compute-otu-devices True Deployedopenstackclientのリモートシェルにアクセスし、デプロイされたコンピュートノードがコントロールプレーンに表示されることを確認します。$ oc rsh -n openstack openstackclient $ openstack hypervisor list