8.2. OVS TC-flower ハードウェアオフロード用の PCI パススルーデバイスの設定
OVS TC-flower ハードウェアオフロード環境用に Red Hat OpenStack Platform をデプロイする場合は、カスタム環境ファイルでコンピュートノードの PCI パススルーデバイスを設定する必要があります。
前提条件
- PCI カードが搭載されている 1 台以上の物理サーバーへのアクセス。
-
アンダークラウドホストへのアクセスと
stack
ユーザーの認証情報。
手順
PCI カードが搭載されている物理サーバー上で、次のいずれかのコマンドを使用します。
オーバークラウドがデプロイされている場合:
$ lspci -nn -s <pci_device_address>
出力例
3b:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [<vendor_id>: <product_id>] (rev 02)
オーバークラウドがデプロイされていない場合:
$ openstack baremetal introspection data save <baremetal_node_name> | jq '.inventory.interfaces[] | .name, .vendor, .product'
- ComputeOvsHwOffload ノード上の PCI パススルーデバイスのベンダー ID と製品 ID をメモします。これらの ID は後の手順で必要になります。
-
アンダークラウドに
stack
ユーザーとしてログインします。 stackrc
ファイルを取得します。$ source ~/stackrc
カスタム環境 YAML ファイル (例:
ovshwol-overrides.yaml
) を作成します。次の内容をファイルに追加して、コンピュートノードの PCI パススルーデバイスを設定します。parameter_defaults: NeutronOVSFirewallDriver: iptables_hybrid ComputeOvsHwOffloadParameters: IsolCpusList: 2-9,21-29,11-19,31-39 KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=128 intel_iommu=on iommu=pt" OvsHwOffload: true TunedProfileName: "cpu-partitioning" NeutronBridgeMappings: - tenant:br-tenant NovaPCIPassthrough: - vendor_id: <vendor-id> product_id: <product-id> address: <address> physical_network: "tenant" - vendor_id: <vendor-id> product_id: <product-id> address: <address> physical_network: "null" NovaReservedHostMemory: 4096 NovaComputeCpuDedicatedSet: 1-9,21-29,11-19,31-39 ...
注記Mellanox スマート NIC を使用している場合は、
ComputeOvsHwOffloadParameters
パラメーターの下にDerivePciWhitelistEnabled: true
を追加します。OVS ハードウェアオフロードを使用する場合、コンピュートサービス (nova) スケジューラーは、インスタンス生成の SR-IOV パススルーと同様に動作します。-
<vendor_id>
を PCI デバイスのベンダー ID に置き換えます。 -
<product_id>
を PCI デバイスの製品 ID に置き換えます。 -
<NIC_address>
を PCI デバイスのアドレスに置き換えます。 -
<physical_network>
を、PCI デバイスが配置されている物理ネットワークの名前に置き換えます。 -
VLAN の場合には、
physical_network
パラメーターをデプロイメント後に neutron で作成するネットワークの名前に設定します。この値は、NeutronBridgeMappings
にも設定する必要があります。 VXLAN の場合には、
physical_network
パラメーターをnull
に設定します。注記NIC のデバイス名は変更される可能性があるため、PCI パススルーを設定する場合は
devname
パラメーターを使用しないでください。PF で Networking サービス (neutron) ポートを作成するには、NovaPCIPassthrough
にvendor_id
、product_id
、および PCI デバイスアドレスを指定し、--vnic-type direct-physical
オプションでポートを作成します。Virtual Function (VF) に Networking サービスのポートを作成するには、NovaPCIPassthrough
でvendor_id
とproduct_id
を指定し、--vnic-type direct
オプションを使用してポートを作成します。vendor_id
およびproduct_id
パラメーターの値は、Physical Function (PF) コンテキストと VF コンテキストの間で異なる場合があります。
-
カスタム環境ファイルで、
PciPassthroughFilter
とNUMATopologyFilter
がNovaSchedulerEnabledFilters
パラメーターのフィルターリストに含まれていることを確認します。コンピュートサービス (nova) は、このパラメーターを使用してノードをフィルタリングします。parameter_defaults: ... NovaSchedulerEnabledFilters: - AvailabilityZoneFilter - ComputeFilter - ComputeCapabilitiesFilter - ImagePropertiesFilter - ServerGroupAntiAffinityFilter - ServerGroupAffinityFilter - PciPassthroughFilter - NUMATopologyFilter - AggregateInstanceExtraSpecsFilter
注記オプション: Mellanox ConnectX5 NIC を使用する RHOSP 17.1 での OVS ハードウェアオフロードに関する問題のトラブルシューティングと設定方法の詳細は、ハードウェアオフロードのトラブルシューティング を参照してください。
- 作成したカスタム環境ファイルのパスとファイル名をメモします。このファイルは、後でオーバークラウドをデプロイするときに使用します。
次のステップ
関連情報
-
インスタンス作成のためのコンピュートサービスの設定 における
NovaPCIPassthrough
の設定に関するガイドライン