9.4. PCI パススルーのコントロールプレーンの更新
クラウドユーザーが PCI デバイスが接続されたインスタンスを作成できるようにするには、まずコントロールプレーンを設定します。alias フィールドに、パススルーする正しい製品 ID、ベンダー ID、デバイスタイプを設定します。
前提条件
-
PCI パススルーを設定できるノードを定義する
OpenStackDataPlaneNodeSetCR を選択した。OpenStackDataPlaneNodeSetCR 作成の詳細は、Red Hat OpenStack Services on OpenShift のデプロイ ガイドの 事前プロビジョニングされたノードを使用した OpenStackDataPlaneNodeSet CR の作成 を参照してください。 PCIPassthroughFilterおよびNUMATopologyFilterフィルターが有効になっている。これらのフィルターはデフォルトで有効になっています。OpenStackControlPlaneCR をチェックすることで、変更されたかどうかを確認できます。oc exec nova-scheduler-0 -- grep "enabled_filters" /etc/nova/nova.conf.d/ -R
手順
-
ワークステーションで
OpenStackControlPlaneカスタムリソース (CR) ファイルopenstack_control_plane.yamlを開きます。 novaテンプレートにcustomServiceConfigフィールドを追加して、コンピュートノード上の PCI デバイスの PCI エイリアスを指定します。apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane spec: nova: apiOverride: route: {} template: secret: osp-secret apiServiceTemplate: replicas: 3 customServiceConfig: | [pci] alias = {"name":"a1", "product_id":"<prod_id>", "vendor_id": "<vendor_id>", "device_type": "<device_type>"}-
<prod_id>を PCI デバイスの製品 ID (例:1572) に置き換えます。 -
<vendor_id>を PCI デバイスのベンダー ID (例:8086) に置き換えます。 <device_type>を PCI デバイスのタイプ (例:type-PF) に置き換えます。注記PCI デバイスがインストールされているシステムで
lspci -nnコマンドを使用すると、製品 ID とベンダー ID を確認できます。device_typeフィールドの設定の詳細は、PCI パススルーデバイス種別フィールド を参照してください。
-
オプション: PCI パススルーデバイスのデフォルトの NUMA アフィニティーポリシーを設定するには、設定に
numa_policyを追加します。[pci] alias = {"name":"a1", "product_id":"<prod_id>", "vendor_id": "<vendor_id>", "device_type": "<device_type>", "numa_policy": "<pci_numa_policy>"}-
<prod_id>を PCI デバイスの製品 ID (例:1572) に置き換えます。 -
<vendor_id>を PCI デバイスのベンダー ID (例:8086) に置き換えます。 -
<device_type>を PCI デバイスのタイプ (例:type-PF) に置き換えます。 -
<pci_numa_policy>をrequired、socket、preferred、またはlegacyの値に置き換えます。詳細は、Nova PCI パススルーを設定するためのガイドライン を参照してください。
-
コントロールプレーンを更新します。
oc apply -f openstack_control_plane.yaml -n openstackRHOCP が
OpenStackControlPlaneCR に関連するリソースを作成するまで待機します。次のコマンドを実行して、ステータスを確認します。$ oc get openstackcontrolplane -n openstack出力例:
NAME STATUS MESSAGE openstack-control-plane Unknown Setup startedステータスが "Setup complete" であれば、
OpenStackControlPlaneリソースが作成されています。ヒントデプロイの進行状況を追跡するには、
getコマンドの末尾に-wオプションを追加します。オプション: 各セルの openstack namespace 内の Pod を確認して、コントロールプレーンがデプロイされていることを確認します。
$ oc get pods -n openstackすべての Pod が完了または実行中の状態であれば、コントロールプレーンがデプロイされています。