10.2. OVS-DPDK パラメーターの設定
OVS-DPDK 用の OpenStack ネットワークを最適化するには、network-environment.yaml
ファイルに設定する OVS-DPDK パラメーターの最適な値を判断する必要があります。詳しくは、「 ワークフローを使用した DPDK パラメーターの算出」を 参照してください。
resource_registry
セクションに OVS-DPDK 用のカスタムリソースを追加します。resource_registry: # Specify the relative/absolute path to the config files you want to use for override the default. OS::TripleO::ComputeOvsDpdkSriov::Net::SoftwareConfig: nic-configs/computeovsdpdksriov.yaml OS::TripleO::Controller::Net::SoftwareConfig: nic-configs/controller.yaml
parameter_defaults
セクションで、トンネルの種別をvxlan
に、ネットワーク種別をvxlan,vlan
に設定します。NeutronTunnelTypes: 'vxlan' NeutronNetworkType: 'vxlan,vlan'
parameters_defaults
セクションで、ブリッジマッピングを設定します。# The OVS logical->physical bridge mappings to use. NeutronBridgeMappings: - dpdk-mgmt:br-link0
parameter_defaults
セクションで、ComputeOvsDpdkSriov
ロール向けにロール固有のパラメーターを設定します。########################## # OVS DPDK configuration # ########################## ComputeOvsDpdkSriovParameters: KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=32 iommu=pt intel_iommu=on isolcpus=2-19,22-39" TunedProfileName: "cpu-partitioning" IsolCpusList: "2-19,22-39" NovaVcpuPinSet: ['4-19,24-39'] NovaReservedHostMemory: 4096 OvsDpdkSocketMemory: "3072,1024" OvsDpdkMemoryChannels: "4" OvsDpdkCoreList: "0,20,1,21" OvsPmdCoreList: "2,22,3,23" NovaComputeCpuSharedSet: [0,20,1,21] NovaLibvirtRxQueueSize: 1024 NovaLibvirtTxQueueSize: 1024
注記ゲストインスタンス作成の失敗を避けるために、DPDK PMD 用の DPDK NIC の有無にかかわらず、各 NUMA ノード上で少なくとも 1 つの CPU を (シブリングスレッドと共に) 割り当てる必要があります。これは、
OvsPmdCoreList
パラメーターで示され、NUMA 1 からコア 2 および 22 を持ち、NUMA 2 からコア 3 および 23 になります。注記本手順に示したとおり、これらのヒュージページは仮想マシンと、
OvsDpdkSocketMemory
パラメーターを使用する OVS-DPDK によって消費されます。仮想マシンで利用可能なヒュージページの数は、ブート
パラメーターからOvsDpdkSocketMemory
を引いた値です。DPDK インスタンスに関連付けるフレーバーに
hw:mem_page_size=1GB
も追加する必要があります。注記OvsDPDKCoreList
とOvsDpdkMemoryChannels
は、本手順では必須の設定です。適切な値を設定せずに DPDK をデプロイする場合、デプロイメントが失敗したり、不安定になる可能性があります。SR-IOV 向けにロール固有のパラメーターを設定します。
NovaPCIPassthrough: - devname: "p7p3" trusted: "true" physical_network: "sriov-1" - devname: "p7p4" trusted: "true" physical_network: "sriov-2"