10.2. 配置 OVS-DPDK 参数
您必须确定 network-environment.yaml 文件中设置的 OVS-DPDK 参数的最佳值,以优化 OVS-DPDK 的 OpenStack 网络。详情请参阅使用 工作流 Deriving DPDK 参数。
将 OVS-DPDK 的自定义资源添加到
resource_registry下: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。注意这些大页面由虚拟机消耗,以及使用
OvsDpdkSocketMemory参数的 OVS-DPDK,如此流程所示。虚拟机的巨页数量是引导参数减去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"