Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

10.2. OVS-DPDK パラメーターの設定

重要

OVS-DPDK 用の OpenStack を最適化するには、network-environment.yaml ファイルに設定する OVS-DPDK パラメーターの最適な値を判断する必要があります。詳しくは、「ワークフローを使用した DPDK パラメーターの算出」を参照してください。

  1. 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
  2. parameter_defaults セクションで、トンネルの種別およびネットワークの種別を vxlan に設定します。

    NeutronTunnelTypes: 'vxlan'
    NeutronNetworkType: 'vxlan'
  3. parameters_defaults セクションで、ブリッジマッピングを設定します。

    # The OVS logical->physical bridge mappings to use.
    NeutronBridgeMappings:
      - dpdk-mgmt:br-link0
  4. 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 ノードで少なくとも 1 CPU を (シブリングスレッドと共に) 割り当てます。上記の例では、OvsPmdCoreList パラメーターの値は NUMA 0 からのコア 2 および 22 ならびに NUMA 1 からのコア 3 および 23 です。

    注記

    ヒュージページは、仮想マシンにより消費されます。また、OvsDpdkSocketMemory パラメーターを使用すると OVS-DPDK により消費されます。仮想マシンが利用可能なヒュージページ数を計算するには、ブートパラメーターの値から OvsDpdkSocketMemory の値を減算します。DPDK インスタンスに関連付けるフレーバーに hw:mem_page_size=1GB を追加する必要もあります。

    注記

    OvsDPDKCoreList および OvsDpdkMemoryChannels はこの手順に必須の設定なので、エラーを防ぐために正しく設定する必要があります。

  5. 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"