Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

선택적 동적 로드 밸런싱(DLB)

선택적 DLB 개요

선택적 DLB를 사용하면 더 이상 디바이스를 통과하는 모든 트래픽에 대해 DLB와 SLB 중에서 선택할 필요가 없습니다. 글로벌 수준에서 선호하는 DLB 모드를 구성하고, 기본 유형의 로드 밸런싱을 구성한 다음, 특정 종류의 트래픽에 대해 DLB를 선택적으로 활성화 또는 비활성화할 수 있습니다.

선택적 DLB는 엘리펀트 플로우라고도 하는 매우 큰 데이터 플로우가 전체 데이터 플로우에 비해 너무 작은 링크를 발견할 때도 유용합니다. 이 시나리오에서 선택적 DLB는 데이터센터 패브릭에서 링크의 사용 가능한 대역폭의 최적 사용을 계산할 수 있습니다. 엘리펀트 플로우에 대해 패킷당 선택적 DLB를 활성화하면 알고리즘이 패킷을 최고 품질의 링크에 먼저 전달합니다. 링크 품질이 변경되면 알고리즘은 후속 패킷을 다음으로 우수한 품질의 링크로 보냅니다.

기능 탐색기를 사용하여 특정 기능에 대한 플랫폼 및 릴리스 지원을 확인하십시오.

이점

  • 대규모 데이터 플로우의 네트워크 처리를 개선합니다.

  • 동일한 트래픽 스트림에서 패킷별 및 플로우별 로드 로드 밸런싱을 사용하여 성능을 개선합니다.

  • 방화벽 필터 일치 조건에 따라 로드 밸런싱을 사용자 지정합니다.

AI-ML 데이터센터의 선택적 DLB

AI-ML 워크로드에서 대부분의 애플리케이션 트래픽은 전송을 위해 RoCEv2(Remote Direct Memory 액세스 over Converged Ethernet version 2)를 사용합니다. 동적 로드 밸런싱(DLB)은 RoCEv2 네트워크에서 효율적인 로드 밸런싱을 달성하고 혼잡을 방지하는 데 이상적입니다. 그러나 정적 로드 밸런싱(SLB)은 일부 트래픽 유형에 더 효과적일 수 있습니다. 선택적 DLB는 이 문제를 해결합니다.

플로우당 또는 패킷당 두 가지 방법으로 로드 밸런싱을 활성화할 수 있습니다. 플로우당 로드 밸런싱은 한 번에 가장 많은 수의 패킷을 처리하기 때문에 가장 널리 사용되었습니다. 디바이스는 동일한 5-튜플 패킷 헤더를 가진 패킷을 단일 플로우로 분류합니다. 디바이스는 플로우의 모든 패킷에 동일한 로드 밸런싱 처리를 제공합니다. 플로우 기반 로드 밸런싱은 트래픽이 모든 링크를 상당히 균등하게 활용하기 때문에 일반 TCP 및 UDP 트래픽에 적합합니다. 그러나 패킷당 로드 밸런싱은 일부 패킷의 순서를 변경할 수 있으며, 이는 성능에 영향을 미칠 수 있습니다.

많은 AI 클러스터는 잘못된 패킷을 처리할 수 있는 스마트 네트워크 인터페이스 카드(SmartNIC)를 통해 애플리케이션을 네트워크에 연결합니다. 성능을 개선하려면 네트워크에서 패킷당 DLB를 사용하도록 설정합니다. 그런 다음 순서가 잘못된 패킷을 처리할 수 있는 엔드포인트 서버에 대해서만 DLB를 사용하도록 설정합니다. 디바이스는 이러한 패킷의 BTH+ 헤더에 있는 RDMA 작동 코드(opcode)를 실시간으로 확인합니다. 방화벽 필터 일치 조건을 사용하여 이러한 opcode에 따라 DLB를 선택적으로 활성화 또는 비활성화할 수 있습니다. 다른 플로우는 SLB라고도 하는 기본 해시 기반 로드 밸런싱을 계속 사용합니다.

구성

구성 개요

기본적으로 DLB를 비활성화하고 특정 흐름에서 DLB를 선택적으로 활성화하거나, 전역적으로 DLB를 활성화하고 DLB를 선택적으로 비활성화하는 두 가지 방법으로 DLB를 선택적으로 활성화할 수 있습니다. 두 경우 모두 먼저 패킷당 모드에서 DLB를 구성해야 합니다. 패킷당은 DLB가 활성화된 모든 곳에서 사용되는 DLB 모드입니다. 동일한 디바이스에서 동시에 플로우별 및 패킷당 모드로 DLB를 구성할 수 없습니다.

이 기능은 플로우렛 모드와 호환됩니다. DLB가 플로우렛 모드에서 구성될 때 선택적으로 이 기능을 활성화할 수 있습니다.

토폴로지

그림 1에 표시된 토폴로지에서 DLB는 기본적으로 비활성화되어 있습니다. 패킷당 모드의 Flow2에서 DLB를 선택적으로 활성화했습니다. 표 1 에는 표시된 두 개의 플로우에 대한 로드 밸런싱 구성과 플로우에 적용된 로드 밸런싱 결과가 요약되어 있습니다.

그림 1: 플로우당 및 패킷당 로드 밸런싱 Per-Flow and Per-Packet Load Balancing
표 1: 플로우 동작

흐름

DLB가 활성화되었습니까?

결과

플로우1

아니요

디바이스는 플로우별 모드인 기본 로드 밸런싱 구성을 사용합니다. 플로우는 단일 디바이스로 전달됩니다.

플로우2

디바이스는 패킷당 모드인 DLB 구성을 사용합니다. 디바이스는 이 흐름을 패킷으로 분할합니다. DLB는 패킷 헤더의 RDMA opcode 및 해당 필터를 기반으로 하는 경로에 각 패킷을 할당합니다.

DLB를 전역으로 비활성화하고 DLB를 선택적으로 활성화

DLB가 필요한 패킷이 거의 없는 경우, 글로벌 수준에서 DLB를 비활성화하고 플로우당 선택적으로 활성화할 수 있습니다.

  1. 패킷당 DLB 모드를 활성화합니다. 플로우에서 DLB가 활성화될 때마다 DLB는 이 모드를 사용하여 트래픽을 전달합니다.
  2. 모든 이더넷 유형에 대해 DLB를 꺼서 전체적으로 비활성화합니다. 기본적으로 모든 패킷은 해시 기반 로드 밸런싱(SLB)을 받게 됩니다.
  3. BTH+ 헤더 내의 특정 RDMA opcode와 일치하도록 방화벽 필터를 구성합니다.

    이 예는 10을 rdma-opcode 기준으로 일치합니다.

  4. 해당 방화벽 필터 내에서 패킷당 DLB를 활성화하여 BTH+ 헤더에서 선택한 RDMA opcode가 있는 패킷에만 DLB를 적용합니다.
  5. 다른 패킷은 기본 로드 밸런싱 방법인 SLB를 얻습니다.

DLB 전역 활성화 및 DLB 선택적 비활성화

대부분의 패킷이 DLB의 이점을 누릴 수 있는 경우, 모든 패킷에 대해 글로벌 수준에서 DLB를 활성화하고 패킷당 선택적으로 비활성화합니다.

  1. 모든 플로우에 대해 패킷당 모드에서 글로벌 수준에서 DLB를 구성합니다.
  2. BTH+ 헤더 내의 특정 RDMA opcode와 일치하도록 방화벽 필터를 구성합니다.

    이 예는 10을 rdma-opcode 기준으로 일치합니다.

  3. BTH+ 헤더에서 선택한 RDMA opcode가 있는 패킷에 대해 해당 방화벽 필터 내에서 패킷당 DLB를 비활성화합니다.
  4. 다른 패킷은 기본 로드 밸런싱 방법인 DLB를 얻습니다.
  5. 다음 명령을 사용하여 DLB가 예상대로 활성화되었는지 확인합니다.

예: 방화벽 필터 일치 조건으로 DLB를 선택적으로 활성화

선택적 DLB의 이점 중 하나는 방화벽 필터 일치 조건에 따라 로드 밸런싱을 사용자 지정할 수 있다는 것입니다. 이 예는 RDMA 대기열 쌍과 일치하는 방화벽 필터를 기반으로 DLB를 활성화하는 방법을 보여줍니다. 이 예에서는 패킷 순서 변경을 지원하는 네트워크 인터페이스 카드(NIC)에서 종료되는 플로우에 대해서만 패킷당 DLB를 활성화할 수 있습니다.

애플리케이션 트래픽 전송에 RoCEv2를 사용하는 네트워크에서 RDMA 연결은 송신 큐에서 트래픽을 보내고 수신 큐에서 트래픽을 수신합니다. 이러한 큐가 RDMA 연결을 형성합니다. 함께 송신 큐와 수신 큐를 큐 쌍이라고 합니다. 각 대기열 쌍에는 식별 가능한 접두사가 있습니다. 이 예에서는 대기열 쌍 접두사를 사용하여 DLB가 활성화되는 시기를 제어합니다.

이 예는 QFX5240-64QD 스위치에서 구성되었습니다.

  1. 특정 RDMA 대상 대기열 쌍으로 향하는 패킷을 일치시키기 위해 방화벽에 사용자 정의 필드를 생성합니다. 패킷의 순서를 변경할 수 있는 NIC에서 종료되는 것을 알고 있는 대기열 쌍을 선택합니다.
    저희는 방화벽 필터 sDLB라는 이름을 붙였습니다. 이 용어 QP-match 는 다음과 같은 특성을 가진 대상 대기열 쌍이 있는 수신 패킷과 일치합니다.
  2. 방화벽 필터를 구성하여 필터와 일치하는 대기열 쌍에서 패킷당 DLB를 활성화합니다.
    대기열 쌍이 일치하지 않으면 디바이스는 해당 패킷에 대해 기본 로드 밸런싱 유형의 SLB를 사용합니다.
  3. 일치할 때마다 증가하는 카운터를 구성합니다.
    카운터 QP-match-count 는 DLB로 로드 밸런싱된 패킷 수를 추적합니다. 문제 해결 시 이 정보를 사용할 수 있습니다.
  4. 관련 인터페이스에서 방화벽 필터를 활성화합니다.
  5. 디바이스를 통해 들어오는 패킷에서 방화벽 필터 용어가 일치하는지 확인합니다.
    카운터는 QP-match-count 방화벽 필터가 DLB를 통한 로드 밸런싱을 위해 리디렉션한 바이트 및 패킷 수를 보여줍니다.