동적 로드 밸런싱(DLB)
동적 로드 밸런싱(DLB) 및 DLB 구성 방법에 대해 알아봅니다. 이 topc에는 ECMP 및 LAG에 대한 DLB를 구성하는 방법도 포함되어 있습니다.
동적 로드 밸런싱(DLB) 개요
로드 밸런싱은 네트워크 트래픽이 주어진 ECMP(Equal-cost 다중 경로) 라우팅 그룹 또는 LAG의 구성원 간에 가능한 한 균등하게 분산되도록 합니다. 일반적으로 로드 밸런싱은 정적 또는 동적으로 분류됩니다. 정적 로드 밸런싱(SLB)은 패킷 내용(예: 소스 IP, 대상 IP 등)만을 기반으로 해싱을 계산합니다. SLB의 가장 큰 장점은 주어진 흐름의 모든 패킷이 동일한 경로를 택하므로 패킷 순서가 보장된다는 것입니다. 그러나 SLB 메커니즘은 경로 또는 링크 부하를 고려하지 않기 때문에 네트워크에서 종종 다음과 같은 문제가 발생합니다.
-
링크 대역폭 활용률 미흡
-
단일 링크의 코끼리 흐름은 쥐 흐름을 완전히 떨어뜨립니다.
동적 로드 밸런싱(DLB)은 SLB를 기반으로 개선되었습니다.
ECMP의 경우 전역으로 DLB를 구성할 수 있는 반면, LAG의 경우 각 어그리게이션 이더넷 인터페이스(aex)에 대해 구성할 수 있습니다. 구성에 따라 선택한 ether-type(동적 로드 밸런싱)( IPv4, IPv6 및 MPLS)에 DLB를 적용할 수 있습니다. ether-type(동적 로드 밸런싱)을 구성하지 않으면 DLB가 모든 EtherTypes에 적용됩니다. 기본 모드가 없으므로 DLB 모드를 명시적으로 구성해야 합니다.
기능 탐색기를 사용하여 특정 기능에 대한 플랫폼 및 릴리스 지원을 확인하십시오.
-
DLB와 복원력 있는 해싱을 동시에 구성할 수 없습니다. 그렇지 않으면 커밋 오류가 발생합니다.
-
DLB는 유니캐스트 트래픽에만 적용됩니다.
-
LAG가 송신 ECMP 멤버 중 하나인 경우 DLB가 지원되지 않습니다.
-
DLB는 원격 LAG 멤버에 대해 지원되지 않습니다.
-
DLB는 Virtual Chassis 및 VCF에서 지원되지 않습니다.
-
LAG의 DLB와 HiGig-trunk는 동시에 지원되지 않습니다.
다음은 DLB의 중요한 동작입니다.
-
DLB는 수신 EtherTypes에만 적용됩니다.
-
DLB 관점에서 L2 및 L3 LAG 번들은 모두 동일한 것으로 간주됩니다.
-
비대칭 번들, 즉 멤버 용량이 다른 ECMP 링크에서 DLB를 사용하는 경우 링크 활용도가 최적이 아닙니다.
-
DLB를 사용하면 패킷당 새 링크가 추가되고 플로우 모드가 할당되어도 플로우 재할당이 발생하지 않습니다. 이는 플랩 이후 새로운 플로우 또는 플로우렛이 보이지 않으면 플랩을 겪은 후 활용된 링크가 활용되지 않을 수 있는 링크 플랩 시나리오에서 최적화되지 않은 사용을 초래할 수 있습니다.
혜택
-
DLB는 멤버 선택을 위해 패킷 콘텐츠와 함께 멤버 대역폭 사용률을 고려합니다. 그 결과, 실시간 링크 로드를 기반으로 링크 활용도를 높일 수 있습니다.
-
DLB는 코끼리 흐름에 의해 독차지된 링크가 쥐 흐름에 의해 사용되지 않도록 합니다. 따라서 DLB를 사용하여 SLB에서 발생하는 해시 충돌 드롭을 방지할 수 있습니다. 즉, DLB를 사용하면 링크가 분산되므로 충돌과 그에 따른 패킷 드롭을 피할 수 있습니다.
DLB 모드
다음 DLB 모드를 사용하여 트래픽 로드를 분산할 수 있습니다.
-
패킷당 모드
이 모드에서는 플로우의 각 패킷에 대해 DLB가 시작됩니다. 이 모드는 패킷이 항상 최고 품질의 멤버 포트에 할당되도록 합니다. 그러나 이 모드에서 DLB는 지연 시간 왜곡으로 인해 발생할 수 있는 패킷 재정렬 문제를 경험할 수 있습니다.
-
플로우렛 모드
플로우렛 모드는 본질적으로 단일 트래픽 플로우 내의 데이터 버스트인 "플로우렛"을 기반으로 링크를 할당합니다. 이는 TCP와 같은 상위 레이어 프로토콜이 종종 데이터 전송을 일시 중지했다가 다시 시작하여 이러한 버스트를 생성하기 때문에 발생합니다.
비활성 간격
각 플로우렛 사이의 일시 중지를 비활성 간격이라고 합니다. 이 설정을 구성할 수 있으며 새 플로우렛이 시작되면 시스템에 알려줍니다. 이를 통해 시스템은 한동안 비활성 상태였던 신규 및 기존 플로우 모두에 대해 로드 밸런싱을 시작할 수 있습니다.
패킷 재정렬 방지
이 방법의 주요 이점은 패킷 재정렬을 방지한다는 것입니다. 단일 플로우렛 내의 모든 패킷은 동일한 링크를 통해 전송됩니다. inactivity-interval 값을 최대 지연 시간보다 높게 설정하면 사용 가능한 모든 링크를 최대한 활용하면서 서로 다른 flowlet의 순서 변경을 방지할 수 있습니다.
-
할당된 플로우 모드
할당된 플로우 모드를 사용하여 일정 기간 동안 재조정을 선택적으로 비활성화하여 문제 소스를 격리할 수 있습니다. 실시간 DLB에는 이 모드를 사용할 수 없습니다. 할당된 플로우 모드는 포트 로드와 대기열 크기를 고려하지 않기 때문에 이 모드를 사용하여 선택될 송신 포트를 예측할 수 없습니다.
동적 로드 밸런싱 구성
이 주제는 플로우렛 모드에서 동적 로드 밸런싱(DLB)을 구성하는 방법을 설명합니다.
ECMP에 대한 DLB 구성(플로우렛 모드)
플로우렛 모드로 ECMP에 대한 동적 로드 밸런싱을 구성하려면(QFX5120-32C, QFX5120-48Y 및 QFX5220 스위치):
마찬가지로, 패킷당 또는 할당된 플로우 모드로 ECMP에 대한 DLB를 구성할 수 있습니다.
LAG에 대한 DLB 구성(플로우렛 모드)
시작하기 전에 라우터 인터페이스 집합을 어그리게이션 이더넷으로 구성하고 특정 어그리게이션 이더넷 그룹 식별자를 사용하여 어그리게이션 이더넷 번들을 생성합니다.
플로우렛 모드(QFX5120-32C 및 QFX5120-48Y)로 LAG에 대한 동적 로드 밸런싱을 구성하려면 다음을 수행합니다.
플로우렛 모드로 동적 로드 밸런싱을 활성화합니다.
[edit interfaces ae-x aggregated-ether-options] user@router# set dlb flowlet
(선택 사항) 링크 재할당을 위한 최소 비활성 간격(마이크로초) 값을 구성 inactivity-interval 합니다.
[edit interfaces ae-x aggregated-ether-options] user@router# set dlb flowlet inactivity-interval (micro seconds)
(선택 사항) 다음을 사용하여 동적 로드 밸런싱을 구성합니다:
ether-type[edit forwarding-options enhanced-hash-key] user@router# set lag-dlb ether-type mpls
(선택 사항) 명령을 사용하여
show forwarding-options enhanced-hash-keyLAG에서 동적 로드 밸런싱을 위해 구성된 옵션을 볼 수 있습니다.
마찬가지로, 패킷당 또는 할당된 플로우 모드로 LAG에 대한 DLB를 구성할 수 있습니다.
예: 동적 로드 밸런싱 구성
이 예는 동적 로드 밸런싱을 구성하는 방법을 보여줍니다.
요구 사항
이 예에서 사용되는 하드웨어 및 소프트웨어 구성 요소는 다음과 같습니다.
QFX5120-32C 또는 QFX5120-48Y 스위치 2개
모든 디바이스에서 Junos OS 릴리스 19.4R1 이상 실행
개요
동적 로드 밸런싱(DLB)은 SLB를 기반으로 개선되었습니다.
ECMP의 경우 전역적으로 DLB를 구성할 수 있지만 LAG의 경우 각 어그리게이션 이더넷 인터페이스에 대해 구성합니다. 구성에 따라 IPv4, IPv6, MPLS와 같은 선택한 EtherType에 DLB를 적용할 수 있습니다. EtherType을 구성하지 않으면 DLB가 모든 EtherType에 적용됩니다. 기본 모드가 없으므로 DLB 모드를 명시적으로 구성해야 합니다.
DLB와 복원력 있는 해싱을 동시에 구성할 수 없습니다. 그렇지 않으면 커밋 오류가 발생합니다.
위상수학
이 토폴로지에서는 R0과 R1이 모두 연결되어 있습니다.
이 예는 정적 구성을 보여줍니다. 동적 프로토콜로 구성을 추가할 수도 있습니다.
구성
- CLI 빠른 구성
- LAG에 대한 동적 로드 밸런싱 구성(QFX5120-32C 및 QFX5120-48Y)
- ECMP에 대한 동적 로드 밸런싱 구성(QFX5120-32C, QFX5120-48Y 및 QFX5220 스위치)
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 [edit] 명령을 복사하여 CLI에 붙여 넣습니다.
R0
set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.2/24 set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.2/24 set interfaces xe-0/0/54:0 unit 0 family inet address 10.10.10.2/24 set forwarding-options enhanced-hash-key ecmp-dlb per-packet set policy-options policy-statement loadbal then load-balance per-packet set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3 set routing-options static route 20.0.1.0/24 next-hop 10.1.1.3 set routing-options forwarding-table export loadbal
R1
set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.3/24 set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.3/24 set interfaces xe-0/0/52:0 unit 0 family inet address 20.0.0.2/16
LAG에 대한 동적 로드 밸런싱 구성(QFX5120-32C 및 QFX5120-48Y)
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준을 탐색해야 합니다. CLI 탐색에 대한 정보는 구성 모드에서 CLI 편집기 사용을 참조하십시오.
R0 라우터를 구성하려면:
각 라우터에 대한 적절한 인터페이스 이름, 주소 및 기타 매개 변수를 수정한 후 다른 라우터에 대해 이 절차를 반복합니다.
링크 어그리게이션 그룹(LAG)을 구성합니다.
[edit interfaces]user@R0# set interfaces xe-0/0/0 ether-options 802.3ad ae0 user@R0# set interfaces xe-0/0/10 ether-options 802.3ad ae0 user@R0# set interfaces ae0 aggregated-ether-options lacp active user@R0# set interfaces ae0 unit 0 family inet address 10.1.0.2/24 user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3LAG를 구성한 후 확인 섹션에서 LAG에 동적 로드 밸런싱 기능을 구성하기 전에 트래픽 부하 확인 섹션의 단계를 실행하여 DLB를 구성하기 전에 구성 또는 트래픽 부하를 확인합니다.
LAG에 대한 패킷당 모드로 동적 로드 밸런싱을 구성합니다.
[edit]user@R0# set interfaces ae0 aggregated-ether-options dlb per-packetDLB를 구성한 후 확인 섹션에서 LAG에 동적 로드 밸런싱 기능을 구성한 후 트래픽 부하 확인 섹션의 단계를 실행하여 DLB를 구성하기 전에 구성 또는 트래픽 부하를 확인합니다.
ECMP에 대한 동적 로드 밸런싱 구성(QFX5120-32C, QFX5120-48Y 및 QFX5220 스위치)
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준을 탐색해야 합니다. CLI 탐색에 대한 정보는 구성 모드에서 CLI 편집기 사용을 참조하십시오.
R0 라우터를 구성하려면:
각 라우터에 대한 적절한 인터페이스 이름, 주소 및 기타 매개 변수를 수정한 후 다른 라우터에 대해 이 절차를 반복합니다.
R0에서 R1로 연결되는 기가비트 이더넷 인터페이스 링크를 구성합니다.
[edit interfaces]user@R0# set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.2/24 user@R0# set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.2/24 user@R0# set interfaces xe-0/0/54:0 unit 0 family inet address 10.10.10.2/24고정 경로를 생성합니다.
[edit interfaces]user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3 user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.1.3로드 밸런싱 정책을 적용합니다. 동적 로드 밸런싱 기능을 사용하려면 여러 ECMP 다음 홉이 포워딩 테이블에 있어야 합니다.
[edit interfaces]user@R0# set policy-options policy-statement loadbal then load-balance per-packet user@R0# set routing-options forwarding-table export loadbalECMP에 대한 패킷당 모드로 동적 로드 밸런싱을 구성합니다.
[edit interfaces]user@R0# set forwarding-options enhanced-hash-key ecmp-dlb per-packetR1에서 기가비트 이더넷 인터페이스 링크를 구성합니다.
[edit interfaces]user@R2# set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.3/24 user@R2# set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.3/24 user@R2# set interfaces xe-0/0/52:0 unit 0 family inet address 20.0.0.2/16
확인
구성이 제대로 작동하고 있는지 확인합니다.
LAG에서 동적 로드 밸런싱 기능을 구성하기 전에 트래픽 부하 확인
목적
링크 어그리게이션 그룹에서 DLB 기능이 구성되기 전에 확인합니다.
행동
운영 모드에서 명령을 실행합니다 show interfaces interface-name | match pps .
user@R0>show interfaces xe-0/0/0 | match pps Input rate : 1240 bps (1 pps) Output rate : 1024616 bps (1000 pps) ## all traffic in one link. user@R0>show interfaces xe-0/0/10 | match pps Input rate : 616 bps (0 pps) Output rate : 1240 bps (1 pps)<< Output rate : 1240 bps (1 pps) ## no traffic
LAG에서 동적 로드 밸런싱 기능을 구성한 후 트래픽 로드 확인
목적
R0에서 수신된 패킷이 로드 밸런싱되는지 확인합니다.
행동
운영 모드에서 명령을 실행합니다 show interfaces interface-name .
user@R0>show interfaces xe-0/0/0 | match pps Input rate : 616 bps (0 pps) Output rate : 519096 bps (506 pps)<< Output rate : 519096 bps (506 pps) ## load equally shared user@R0>show interfaces xe-0/0/10 | match pps Input rate : 1232 bps (1 pps) Output rate : 512616 bps (500 pps)<< Output rate : 512616 bps (500 pps) ## load equally shared
의미
패킷당 모드의 동적 로드 밸런싱이 성공적으로 작동합니다. LAG에 동적 로드 밸런싱 기능을 적용한 후 로드는 네트워크에서 균등하게 공유됩니다.
확인
R0에서 구성이 제대로 작동하고 있는지 확인합니다.
R0에서 동적 로드 밸런싱 확인
목적
R0에서 수신된 패킷이 로드 밸런싱되는지 확인합니다.
행동
운영 모드에서 명령을 실행합니다 run show route forwarding-table destination destination-address .
user@R0>show route forwarding-table destination 20.0.1.0/24
inet.0: 178 destinations, 178 routes (178 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
20.0.1.0/24 *[Static/5] 1d 03:35:12
> to 10.1.0.3 via xe-0/0/0.0
to 10.1.1.3 via xe-0/0/10.0
user@R0>show route 20.0.1.0/24
inet.0: 178 destinations, 178 routes (178 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
20.0.1.0/24 *[Static/5] 1d 03:35:12
> to 10.1.0.3 via xe-0/0/0.0
to 10.1.1.3 via xe-0/0/10.0
의미
R0에서 수신된 패킷은 로드 밸런싱됩니다.
R1에서 로드 밸런싱 확인
목적
R1에서 구성이 제대로 작동하고 있는지 확인합니다.
행동
운영 모드에서 명령을 실행합니다 show route .
user@R1>show route 20.0.1.25
inet.0: 146 destinations, 146 routes (146 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
20.0.0.0/16 *[Direct/0] 1d 03:37:11
> via xe-0/0/52:0.0
의미
패킷당 모드의 동적 로드 밸런싱이 성공적으로 작동합니다. ECMP에 동적 로드 밸런싱 기능을 적용한 후 부하가 네트워크에서 균등하게 공유됩니다.
선택적 동적 로드 밸런싱(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가 플로우렛 모드에서 구성될 때 선택적으로 이 기능을 활성화할 수 있습니다.
위상수학
그림 2에 표시된 토폴로지에서 DLB는 기본적으로 비활성화되어 있습니다. 패킷당 모드의 Flow2에서 DLB를 선택적으로 활성화했습니다. 표 1 에는 표시된 두 개의 플로우에 대한 로드 밸런싱 구성과 플로우에 적용된 로드 밸런싱 결과가 요약되어 있습니다.
| 흐름 |
DLB가 활성화되었습니까? |
결과 |
|---|---|---|
| 플로우1 |
아니요 |
디바이스는 플로우별 모드인 기본 로드 밸런싱 구성을 사용합니다. 플로우는 단일 디바이스로 전달됩니다. |
| 플로우2 |
예 |
디바이스는 패킷당 모드인 DLB 구성을 사용합니다. 디바이스는 이 흐름을 패킷으로 분할합니다. DLB는 패킷 헤더의 RDMA opcode 및 해당 필터를 기반으로 하는 경로에 각 패킷을 할당합니다. |
DLB를 전역으로 비활성화하고 DLB를 선택적으로 활성화
DLB가 필요한 패킷이 거의 없는 경우, 글로벌 수준에서 DLB를 비활성화하고 플로우당 선택적으로 활성화할 수 있습니다.
DLB 전역 활성화 및 DLB 선택적 비활성화
대부분의 패킷이 DLB의 이점을 누릴 수 있는 경우, 모든 패킷에 대해 글로벌 수준에서 DLB를 활성화하고 패킷당 선택적으로 비활성화합니다.
예: 방화벽 필터 일치 조건으로 DLB를 선택적으로 활성화
선택적 DLB의 이점 중 하나는 방화벽 필터 일치 조건에 따라 로드 밸런싱을 사용자 지정할 수 있다는 것입니다. 이 예는 RDMA 대기열 쌍과 일치하는 방화벽 필터를 기반으로 DLB를 활성화하는 방법을 보여줍니다. 이 예에서는 패킷 순서 변경을 지원하는 네트워크 인터페이스 카드(NIC)에서 종료되는 플로우에 대해서만 패킷당 DLB를 활성화할 수 있습니다.
애플리케이션 트래픽 전송에 RoCEv2를 사용하는 네트워크에서 RDMA 연결은 송신 큐에서 트래픽을 보내고 수신 큐에서 트래픽을 수신합니다. 이러한 큐가 RDMA 연결을 형성합니다. 함께 송신 큐와 수신 큐를 큐 쌍이라고 합니다. 각 대기열 쌍에는 식별 가능한 접두사가 있습니다. 이 예에서는 대기열 쌍 접두사를 사용하여 DLB가 활성화되는 시기를 제어합니다.
이 예는 QFX5240-64QD 스위치에서 구성되었습니다.
DLB에 대한 송신 포트 링크 품질 메트릭 사용자 정의
개요
동적 로드 밸런싱(DLB)은 트래픽 플로우가 네트워크 전체에 균등하게 분산되도록 링크 품질을 기반으로 최적의 링크를 선택합니다. 사용자(네트워크 관리자)는 DLB가 최적의 링크를 선택하도록 DLB가 송신 포트의 품질 메트릭을 할당하는 방식을 사용자 정의할 수 있습니다.
DLB는 ECMP(Equal-Cost 다중 경로)의 일부인 각 송신 포트를 품질 대역에 할당합니다. 품질 밴드는 0에서 7까지 번호가 매겨지며, 0은 가장 낮은 품질이고 7은 최고 품질입니다. DLB는 각 포트에서 두 개의 메트릭을 추적하고 다음 메트릭을 사용하여 링크 품질을 계산합니다.
-
포트 로드 메트릭: 각 ECMP 링크를 통해 최근에 전송된 트래픽의 양(바이트 단위)입니다.
-
포트 대기열 메트릭: 셀 수로 측정된 전송을 위해 각 ECMP 링크에 대기열에 추가된 트래픽 양.
멤버 포트 로드 및 대기열 크기를 기반으로 DLB는 품질 밴드 중 하나를 멤버 포트에 할당합니다. 포트-품질 대역 매핑은 즉각적인 포트 로드 및 대기열 크기 메트릭에 따라 변경됩니다.
기본적으로 DLB는 링크 품질을 평가할 때 포트 로드 메트릭과 포트 대기열 메트릭에 균등하게 가중치를 부여합니다. 포트 대기열보다 포트 부하에 더 많은 링크 품질을 기반으로 하거나 그 반대의 경우도 가능하도록 DLB를 구성할 수 있습니다. 계층 수준에서 문을 rate-weightage 사용하여 DLB가 포트 로드에 부여하는 가중치를 구성합니다 [edit forwarding-options enhanced-hash-key ecmp-dlb egress-quantization] . DLB는 포트 대기열에 나머지 가중치 비율을 할당합니다. 예를 들어, 값을 80으로 구성 rate-weightage 하면 DLB는 링크 품질을 평가할 때 포트 로드에 80%의 가중치를 부여하고 포트 대기열에 20%의 가중치를 부여합니다.
또한 상한 및 하한 품질 대역을 결정하는 포트 로드 임계값을 구성할 수 있습니다. 임계값은 및 max 옵션을 사용하여 구성하는 총 포트 로드의 백분율입니다.min DLB는 포트 로드가 이 최소값 이하로 떨어지는 송신 포트를 최고 품질 대역(7)에 할당합니다. 최대 임계값보다 큰 포트 로드는 가장 낮은 품질 대역(0)에 속합니다. DLB는 품질 대역 1에서 6까지 나머지 포트 로드량을 나눕니다.
예를 들어, 최소값을 10으로 구성하고 최대값을 70으로 구성하는 경우, DLB는 전체 포트 로드의 10%(%) 미만을 차지하는 포트 로드가 있는 모든 송신 포트를 품질 대역 7에 할당합니다. DLB는 포트 로드가 전체 포트 로드의 70% 이상을 차지하는 모든 송신 포트를 품질 대역 0에 할당합니다. 그런 다음 DLB는 전체 포트 로드의 10%에서 70%를 차지하는 포트 로드가 있는 송신 포트를 품질 대역 1에서 6까지 할당합니다.
기능 탐색기를 사용하여 특정 기능에 대한 플랫폼 및 릴리스 지원을 확인하십시오.
혜택
-
포트의 로드 크기와 대기열을 기반으로 최적화된 로드 밸런싱.
-
네트워크 요구 사항에 맞는 링크 품질 매개 변수.
-
실시간 메트릭을 기반으로 품질 대역에 대한 유연한 포트 할당.
구성
송신 포트 품질 메트릭을 구성합니다.
DLB 플로우렛 모드에서 플로우셋 테이블 크기 구성
개요
동적 로드 밸런싱(DLB)은 트래픽 흐름이 균등하게 분산되도록 링크 품질을 기반으로 최적의 송신 링크를 선택하는 로드 밸런싱 기법입니다. 사용자(네트워크 관리자)는 플로우렛 모드에서 DLB를 구성할 수 있습니다.
플로우렛 모드에서 DLB는 최적 링크 품질을 기반으로 DLB가 선택한 마지막으로 본 타임스탬프와 송신 인터페이스를 기록하여 플로우를 추적합니다. DLB는 각 ECMP 그룹에 할당된 플로우셋 테이블에 이 정보를 기록합니다. DLB 알고리즘은 마지막으로 표시된 타임스탬프가 비활성 타이머를 초과할 때까지 특정 링크에서 지정된 흐름을 유지합니다. 특정 플로우에 대해 비활성 타이머가 만료되면 DLB는 해당 링크가 여전히 해당 플로우에 최적인지 여부를 다시 확인합니다. 링크가 더 이상 최적이 아닌 경우, DLB는 새 송신 링크를 선택하고 플로우 세트 테이블을 새 링크와 플로우의 마지막으로 알려진 타임스탬프로 업데이트합니다. 링크가 계속해서 최적이 유지되면 플로우셋 테이블은 동일한 송신 링크를 계속 사용합니다.
사용자(네트워크 관리자)는 플로우 세트 테이블 크기를 늘려 ECMP 그룹 간 플로우 세트 테이블 항목의 배포를 변경할 수 있습니다. ECMP 그룹의 플로우셋 테이블에 더 많은 항목이 있을수록 ECMP 그룹이 수용할 수 있는 플로우도 더 많습니다. 많은 수의 흐름을 처리해야 하는 AI-ML 데이터 센터와 같은 환경에서는 DLB가 더 큰 흐름 집합 테이블 크기를 사용하는 것이 특히 유용합니다. 각 ECMP 그룹이 많은 수의 흐름을 수용할 수 있는 경우 DLB는 ECMP 멤버 링크 전반에 걸쳐 더 나은 흐름 분배를 달성합니다.
플로우셋 테이블은 총 32,768개의 항목을 보유하며, 이러한 항목은 DLB ECMP 그룹 간에 균등하게 나뉩니다. 각 ECMP 그룹에 대한 플로우셋 테이블 크기의 범위는 256에서 32,768까지입니다. 다음 공식을 사용하여 ECMP 그룹의 수를 계산합니다.
32,768/(flowset size) = Number of ECMP groups
기본적으로 플로우 세트 크기는 256개 항목이므로 기본적으로 128개의 ECMP 그룹이 있습니다.
기능 탐색기를 사용하여 특정 기능에 대한 플랫폼 및 릴리스 지원을 확인하십시오.
혜택
-
송신 링크를 통한 부하 분산을 개선합니다.
-
DLB가 각 흐름에 대해 수행해야 하는 계산 수를 최소화하기 위해 흐름을 그룹화합니다.
-
효율성을 극대화하기 위해 플로우셋 테이블 항목 할당을 사용자 정의합니다.
-
플로우렛 모드의 효율성을 높입니다.
구성
플로우셋 테이블 크기를 구성할 때 다음 사항에 유의하십시오.
-
플로우 세트 크기를 변경하면 ECMP DLB 그룹의 규모도 변경됩니다. 플로우셋 테이블 크기를 256보다 크게 할당하면 DLB 지원 ECMP 그룹의 수가 줄어듭니다.
-
이 구성을 커밋하면 구성 변경 중에 트래픽이 감소할 수 있습니다.
-
LAG(Link Aggregation Group)가 ECMP의 송신 멤버 중 하나인 경우 DLB가 지원되지 않습니다.
-
언더레이 패브릭만 DLB를 지원합니다.
-
속도가 50Gbps 미만인 QFX5240 스위치 포트는 DLB를 지원하지 않습니다.
반응형 경로 재조정
개요
동적 로드 밸런싱(DLB)은 AI-ML 데이터센터 패브릭에 내재된 대규모 데이터 플로우(엘리펀트 플로우라고도 함)를 처리하는 데 중요한 도구입니다. 반응형 경로 재조정 은 기존 DLB 기능의 개선입니다.
DLB의 플로우렛 모드에서 네트워크 관리자는 비활성 간격을 구성합니다. 트래픽은 플로우가 비활성 타이머보다 더 오래 일시 중지될 때까지 할당된 발신(송신) 인터페이스를 사용합니다. 발신 링크 품질이 점진적으로 저하되는 경우, 플로우 내의 일시 중지는 구성된 비활성 타이머를 초과하지 않을 수 있습니다. 이 경우 클래식 플로우렛 모드는 트래픽을 다른 링크에 재할당하지 않으므로 트래픽이 더 나은 품질의 링크를 활용할 수 없습니다. 반응형 경로 재조정은 플로우렛 모드가 활성화된 경우에도 사용자가 트래픽을 더 나은 품질의 링크로 이동할 수 있도록 하여 이러한 제한을 해결합니다.
디바이스는 링크를 통해 흐르는 트래픽을 기반으로 각 ECMP(Equal-Cost 다중 경로) 송신 멤버 링크에 품질 대역을 할당합니다. 품질 대역은 포트 로드 및 대기열 버퍼에 따라 다릅니다. 포트 로드는 전송된 송신 바이트 수입니다. 대기열 버퍼는 송신 포트에서 전송되기를 기다리는 바이트 수입니다. ECMP를 통해 흐르는 트래픽 패턴을 기반으로 이러한 속성을 사용자 지정할 수 있습니다.
기능 탐색기를 사용하여 특정 기능에 대한 플랫폼 및 릴리스 지원을 확인하십시오.
혜택
-
링크 저하를 위한 확장 가능한 솔루션
-
대용량 데이터 플로우를 위한 최적의 대역폭 사용
-
긴 수명의 플로우로 인한 로드 밸런싱 비효율성 방지
구성
구성 개요
품질 밴드는 0에서 7까지 번호가 매겨지며, 0은 가장 낮은 품질이고 7은 최고 품질입니다. DLB는 멤버 포트 로드 및 대기열 크기를 기반으로 멤버 포트에 품질 대역 값을 할당합니다. 포트-품질 대역 매핑은 즉각적인 포트 로드와 대기열 크기에 따라 변경됩니다.
다음 조건이 모두 충족되면 반응형 경로 재조정은 플로우를 더 높은 품질의 멤버 링크로 재할당합니다.
-
품질 대역이 현재 멤버의 품질 밴드에 구성된 재할당 품질 델타 값을 더한 값보다 크거나 같은 더 나은 품질의 멤버 링크를 사용할 수 있습니다. 품질 델타는 두 품질 대역 간의 차이입니다. 문을 사용하여 품질 델타 값을 구성합니다.
quality-delta -
시스템이 생성하는 패킷 임의 값은 재할당 확률 임계값보다 낮습니다. 문을 사용하여 확률 임계값을 구성합니다.
prob-threshold
이 기능을 사용할 때 다음 사항에 유의하십시오.
-
반응형 경로 재조정은 전역 구성이며 시스템의 모든 ECMP DLB 구성에 적용됩니다.
-
반응형 경로 재조정 외에 송신 양자화를 구성하여 플로우 재할당을 제어할 수 있습니다.
-
패킷 재정렬은 흐름이 한 포트에서 다른 포트로 이동할 때 발생할 수 있습니다. 반응형 경로 재조정을 구성하면 플로우가 새 링크에 재할당될 때 일시적인 순서 잘못된 문제가 발생할 수 있습니다.
위상수학
이 토폴로지에서 디바이스에는 3개의 수신 포트와 2개의 송신 포트가 있습니다. 수신 스트림 중 2개는 레이어 2(L2) 트래픽이고 다른 하나는 레이어 3(L3) 트래픽입니다. 그림은 트래픽을 각 송신 포트로 전달하는 테이블 항목을 보여줍니다. 모든 수신 및 송신 포트의 속도는 동일합니다.
이 토폴로지에서 반응형 경로 재조정은 다음과 같이 작동합니다.
2의 품질 델타가 구성됩니다.
L2 스트림 1(
mac 0x123)은 10%의 속도로 수신 포트 et-0/0/0에 들어갑니다. et-0/0/10을 통해 종료됩니다. et-0/0/10의 송신 링크 사용률은 10%이고 품질 대역 값은 6입니다.L3 스트림은 50%의 속도로 포트 et-0/0/1에 들어갑니다. et-0/0/11을 통해 종료하고 ECMP 멤버 목록에서 최적의 링크를 선택합니다. et-0/0/11의 송신 링크 사용률은 품질 대역 값이 5인 경우 50%입니다.
L2 스트림 2(
mac 0x223)는 40%의 속도로 포트 et-0/0/2에 들어갑니다. 또한 et-0/0/11을 통해 종료됩니다. 이로 인해 et-0/0/11 링크 품질 대역 값이 4로 더욱 저하됩니다. 이제 두 ECMP 멤버 링크의 품질 대역 값의 차이는 2입니다.포트 et-0/0/10과 et-0/0/11에 대한 품질 대역 값의 차이가 구성된 품질 델타 2보다 크거나 같기 때문에 반응형 경로 밸런싱 알고리즘이 이제 작동할 수 있습니다. 알고리즘은 L3 스트림을 et-0/0/11에서 더 나은 품질의 멤버 링크(이 경우는 et-0/0/10)로 이동합니다.
L3 증기가 et-0/0/10으로 이동한 후 et-0/0/10 링크 사용률은 60%로 증가하고 품질 대역 값은 5로 감소합니다. L2 스트림 2는 et-0/0/11을 통해 계속 종료됩니다. et-0/0/11 링크 사용률은 품질 대역 값이 5로 증가하면서 40%로 유지됩니다.
반응형 경로 재조정 구성
변경 내역 표
기능 지원은 사용 중인 플랫폼과 릴리스에 따라 결정됩니다. 기능 탐색기를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.