6.4. OVS 하드웨어 오프로드 구성

OVS 하드웨어 오프로드 구성 절차는 SR-IOV 구성과 동일한 여러 단계를 공유합니다.

절차

  1. 컴퓨팅 역할을 기반으로 OVS 하드웨어 오프로드에 대한 오버클라우드 역할을 생성합니다.

    openstack overcloud roles generate -o roles_data.yaml Controller Compute:ComputeOvsHwOffload
  2. 선택 사항: ComputeOvsHwOffload 역할에 대해 HostnameFormatDefault: '%stackname%-compute-%index%' 이름을 변경합니다.
  3. OvsHwOffload 매개 변수를 역할별 매개 변수에서 true 로 추가합니다.
  4. iptables/hybrid 방화벽 드라이버 구현을 사용하도록 neutron을 구성하려면 다음 행을 포함합니다. NeutronOVSFirewallDriver: iptables_hybrid. NeutronOVSFirewallDriver 에 대한 자세한 내용은 Advanced Overcloud Customization Guide의 Open vSwitch Firewall 사용을 참조하십시오.
  5. 사용자 환경과 일치하도록 physical_network 매개 변수를 구성합니다.

    • VLAN의 경우 배포 후 neutron에서 생성한 네트워크 이름으로 physical_network 매개 변수를 설정합니다. 이 값은 NeutronBridgeMappings 에도 있어야 합니다.
    • VXLAN의 경우 physical_network 매개 변수를 null 로 설정합니다.

      예제:

      parameter_defaults:
        NeutronOVSFirewallDriver: iptables_hybrid
        ComputeSriovParameters:
          IsolCpusList: 2-9,21-29,11-19,31-39
          KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=128 intel_iommu=on iommu=pt"
          OvsHwOffload: true
          TunedProfileName: "cpu-partitioning"
          NeutronBridgeMappings:
            - tenant:br-tenant
          NovaPCIPassthrough:
            - vendor_id: <vendor-id>
              product_id: <product-id>
              address: <address>
              physical_network: "tenant"
            - vendor_id: <vendor-id>
              product_id: <product-id>
              address: <address>
              physical_network: "null"
          NovaReservedHostMemory: 4096
          NovaComputeCpuDedicatedSet: 1-9,21-29,11-19,31-39
    • <vendor-id> 를 물리적 NIC의 벤더 ID로 바꿉니다.
    • <product-id> 를 NIC VF의 제품 ID로 바꿉니다.
    • <address> 를 물리적 NIC의 주소로 바꿉니다.

      NovaPCIPassthrough 구성 방법에 대한 자세한 내용은 NovaPCIPassthrough 구성을 위한 지침을 참조하십시오 .

  6. 기본 필터 목록에 NUMATopologyFilter 가 포함되어 있는지 확인합니다.

      NovaSchedulerDefaultFilters: [\'AvailabilityZoneFilter',\'ComputeFilter',\'ComputeCapabilitiesFilter',\'ImagePropertiesFilter',\'ServerGroupAntiAffinityFilter',\'ServerGroupAffinityFilter',\'PciPassthroughFilter',\'NUMATopologyFilter']
  7. compute-sriov.yaml 구성 파일에서 하드웨어 오프로드를 위해 하나 이상의 네트워크 인터페이스를 구성합니다.

      - type: ovs_bridge
        name: br-tenant
        mtu: 9000
        members:
        - type: sriov_pf
          name: p7p1
          numvfs: 5
          mtu: 9000
          primary: true
          promisc: true
          use_dhcp: false
          link_mode: switchdev
    참고
    • Open vSwitch 하드웨어 오프로드를 구성할 때 NeutronSriovNumVFs 매개 변수를 사용하지 마십시오. 가상 함수의 수는 o s-net-config에서 사용하는 네트워크 구성 파일에서 numvf s 매개 변수를 사용하여 지정합니다. Red Hat은 업데이트 또는 재배포 중에 numvfs 설정 수정을 지원하지 않습니다.
    • 드라이버 제한으로 인해 VXLAN과 같은 터널 엔드포인트가 트래픽을 전달하지 못하므로 Mellanox 네트워크 인터페이스를 nic -config 인터페이스 유형 ovs-vlan 으로 구성하지 마십시오.
  8. 오버클라우드 배포 명령에 ovs-hw-offload.yaml 파일을 포함합니다.

    TEMPLATES_HOME=”/usr/share/openstack-tripleo-heat-templates”
    CUSTOM_TEMPLATES=”/home/stack/templates”
    
    openstack overcloud deploy --templates \
      -r ${CUSTOM_TEMPLATES}/roles_data.yaml \
      -e ${TEMPLATES_HOME}/environments/ovs-hw-offload.yaml \
      -e ${CUSTOM_TEMPLATES}/network-environment.yaml \
      -e ${CUSTOM_TEMPLATES}/neutron-ovs.yaml

6.4.1. OVS 하드웨어 오프로드 확인

  1. PCI 장치가 switchdev 모드에 있는지 확인합니다.

    # devlink dev eswitch show pci/0000:03:00.0
    pci/0000:03:00.0: mode switchdev inline-mode none encap enable
  2. OVS에서 오프로드가 활성화되었는지 확인합니다.

    # ovs-vsctl get Open_vSwitch . other_config:hw-offload
    “true”