6.6. OVS 하드웨어 오프로드 구성 요소

Mellanox 스마트 NIC를 사용하여 OVS HW Offload의 구성 요소를 구성하고 문제 해결하기 위한 참조입니다.

Nova

NUMATopologyFilterDerivePciWhitelistEnabled 매개변수와 함께 NovaPCIPassthrough 필터를 사용하도록 구성합니다. OVS HW Offload를 활성화하면 Nova 스케줄러는 인스턴스 생성에 대한 SR-IOV 패스스루와 유사하게 작동합니다.

Neutron

OVS HW 오프로드를 활성화하는 경우 devlink cli 도구를 사용하여 NIC e-switch 모드를 switchdev 로 설정합니다. Switchdev 모드에서는 VF에 매핑되는 NIC에 표현자 포트를 설정합니다.

절차

  1. switchdev-enabled NIC에서 포트를 할당하려면 binding-profile 값이 있는 neutron 포트를 생성하고 포트 보안을 비활성화합니다.

    $ openstack port create --network private --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port1 --disable-port-security

인스턴스를 만들 때 이 포트 정보를 전달합니다. 대표 포트를 인스턴스 VF 인터페이스와 연결하고 일회성 OVS 데이터 경로 처리를 위해 정수 포트를 OVS 브리지 br-int에 연결합니다. 물리적 "패치 패널" 프론트엔드의 소프트웨어 버전과 같은 VF 포트 표현자. 새 인스턴스 생성에 대한 자세한 내용은 다음을 참조하십시오. SR-IOV용 인스턴스 배포

OVS

하드웨어 오프로드가 구성된 환경에서 전송된 첫 번째 패킷은 OVS 커널 경로를 통과하며, 이 패킷은 인스턴스 트래픽에 대해 들어오고 나가는 트래픽에 대한 ml2 OVS 규칙을 설정합니다. 트래픽 스트림의 흐름이 설정되면 OVS는 트래픽 제어(TC) Flower 유틸리티를 사용하여 이러한 흐름을 NIC 하드웨어에 푸시합니다.

절차

  1. director를 사용하여 OVS에 다음 설정을 적용합니다.

    $ sudo ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
  2. 를 다시 시작하여 HW 오프로드를 활성화합니다.

TC(Traffic Control) 하위 시스템

hw-offload 플래그를 활성화하면 OVS는 TC 데이터 경로를 사용합니다. TC Flower는 하드웨어에 데이터 경로 흐름을 쓰는 iproute2 유틸리티입니다. 그러면 이중화를 위해 하드웨어 및 소프트웨어 데이터 경로에 흐름이 프로그래밍됩니다.

절차

  1. 다음 구성을 적용합니다. 명시적으로 구성하지 않는 경우 기본 옵션입니다.

    $ sudo ovs-vsctl set Open_vSwitch . other_config:tc-policy=none
  2. OVS를 다시 시작합니다.

NIC PF 및 VF 드라이버

Mlx5_core는 Mellanox ConnectX-5 NIC의 PF 및 VF 드라이버입니다. mlx5_core 드라이버는 다음 작업을 수행합니다.

  • 하드웨어에 라우팅 테이블을 만듭니다.
  • 네트워크 흐름 관리를 관리합니다.
  • 이더넷 스위치 장치 드라이버 모델인 switchdev 를 구성합니다.
  • 블록 장치를 생성합니다.

절차

  • 다음 devlink 명령을 사용하여 PCI 장치의 모드를 쿼리합니다.

    $ sudo devlink dev eswitch set pci/0000:03:00.0 mode switchdev
    $ sudo devlink dev eswitch show pci/0000:03:00.0
    pci/0000:03:00.0: mode switchdev inline-mode none encap enable

NIC 펌웨어

NIC 펌웨어는 다음 작업을 수행합니다.

  • 라우팅 테이블 및 규칙을 유지 관리합니다.
  • 테이블의 파이프라인을 수정합니다.
  • 하드웨어 리소스를 관리합니다.
  • VF 생성.

펌웨어는 최적의 성능을 위해 드라이버와 함께 작동합니다.

NIC 펌웨어가 비발성이며 재부팅 후에도 유지되지만 런타임 시 설정을 수정할 수 있습니다.

절차

  • 인터페이스 및 표현자 포트에 다음 구성을 적용하여 TC Flower가 포트 수준에서 흐름 프로그래밍을 푸시하는지 확인합니다.

     $ sudo ethtool -K enp3s0f0 hw-tc-offload on
참고

펌웨어를 최신 상태로 유지합니다.Yum 또는 dnf 업데이트가 펌웨어 업데이트를 완료하지 못할 수 있습니다. 자세한 내용은 벤더 설명서를 참조하십시오.