12.2. 配置 OVS-DPDK 参数
您必须确定您在 network-environment.yaml 文件中设置的 OVS-DPDK 参数的最佳值,以便为 OVS-DPDK 优化 OpenStack 网络。如需了解更多详细信息,请参阅使用工作流处理 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" NovaComputeCpuDedicatedSet: ['4-19,24-39'] NovaReservedHostMemory: 4096 OvsDpdkSocketMemory: "3072,1024" OvsDpdkMemoryChannels: "4" OvsPmdCoreList: "2,22,3,23" NovaComputeCpuSharedSet: [0,20,1,21] NovaLibvirtRxQueueSize: 1024 NovaLibvirtTxQueueSize: 1024
注意要防止客户机创建过程中故障,在每个 NUMA 节点上至少分配一个带有同级线程的 CPU。在示例中,
OvsPmdCoreList
参数的值代表来自 NUMA 0 的核心 2 和 22,以及来自 NUMA 1 的内核 3 和 23。注意这些巨页由虚拟机消耗,由 OVS-DPDK 使用
OvsDpdkSocketMemory
参数,如此过程所示。可用于虚拟机的巨页数量是引导参数
,减去OvsDpdkSocketMemory
。您还必须将
hw:mem_page_size=1GB
添加到与 DPDK 实例关联的类别。注意OvsDpdkMemoryChannels
是这个流程的必要设置。对于最佳操作,请确保使用适当的参数和值部署 DPDK。为 SR-IOV 配置特定于角色的参数:
NovaPCIPassthrough: - vendor_id: "8086" product_id: "1528" address: "0000:06:00.0" trusted: "true" physical_network: "sriov-1" - vendor_id: "8086" product_id: "1528" address: "0000:06:00.1" trusted: "true" physical_network: "sriov-2"