10.2. 配置 OVS-DPDK 参数
您必须确定 network-environment.yaml 文件中设置的 OVS-DPDK 参数的最佳值,以优化 OVS-DPDK 的 OpenStack 网络。有关详细信息,请参阅 网络功能虚拟化规划和配置。
将 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。NeutronTunnelTypes: 'vxlan' NeutronNetworkType: 'vxlan'在
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: 2048 OvsDpdkSocketMemory: "3072,1024" OvsDpdkMemoryChannels: "4" OvsDpdkCoreList: "0,20,1,21" OvsPmdCoreList: "2,22,3,23" NovaLibvirtRxQueueSize: 1024 NovaLibvirtTxQueueSize: 1024注意要防止创建客户机期间失败,请在每个 NUMA 节点上至少分配一个具有同级线程的 CPU。在示例中,OvsPmdCoreList 参数的值代表来自 NUMA 0 的核心 2 和 22,以及来自 NUMA 1 的核心 3 和 23。
注意巨页由虚拟机消耗,以及使用
OvsDpdkSocketMemory参数的 OVS-DPDK。要计算虚拟机的巨页数量,请从 boot 参数值中减去OvsDpdkSocketMemory值。您还必须将hw:mem_page_size=1GB添加到与 DPDK 实例关联的类别中。注意OvsDPDKCoreList和OvsDpdkMemoryChannels是必需的,必须正确设置才能防止失败。为 SR-IOV 配置特定于角色的参数:
########################## # SR-IOV configuration # ########################## NeutronMechanismDrivers: ['openvswitch','sriovnicswitch'] NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter','NUMATopologyFilter'] NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"] 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"