개발 공부

(Network) Dynamic LoadBalancing Algorithm 본문

windows

(Network) Dynamic LoadBalancing Algorithm

아이셩짱셩 2025. 7. 24. 10:30
728x90

✅ Dynamic Load Balancing: 개요

SET에서 Dynamic 모드는 Hyper-V Port + Address Hashing을 혼합하여 사용합니다.
이 두 가지를 조합하여 부하 분산 효율과 안정성을 동시에 추구하죠.


🧠 어떻게 작동하나요?

1. 기본 분배 단위는 “흐름(Flow)”

  • 하나의 흐름 = 동일한 5-tuple (Source IP, Destination IP, Source Port, Destination Port, Protocol)
  • 각 흐름은 하나의 물리 NIC에 할당됨 (flow-to-NIC mapping)
  • 여러 세션/흐름은 NIC들 간에 자동 분산

예:

세션 1 (10.0.0.1:1000 → 10.0.0.10:443) → NIC1  
세션 2 (10.0.0.1:1001 → 10.0.0.11:443) → NIC2  
세션 3 (10.0.0.1:1002 → 10.0.0.12:443) → NIC1  
...

 

2. Flowlet-aware 방식 (간접적으로 작동)

  • 실제 구현은 흐름을 TCP idle 구간 단위로 나누어 부하 분산을 결정할 수도 있음
  • 이 덕분에 하나의 vNIC에서 나가는 트래픽도 여러 NIC으로 분산 가능

3. 수신 방향은 Hyper-V Port 기준

  • Tx (전송): Dynamic 알고리즘에 따라 흐름 기반으로 분산
  • Rx (수신): vPort(vNIC) → 물리 NIC 1:1 고정 (즉, 수신은 아직 Hyper-V Port 방식)

✔ 그래서 동기화되지 않은 부하 분산일 수 있지만, 전체적으로는 더 나은 분산 성능 제공

 


📊 그림으로 보면:

            ┌──────────────┐
vNIC-A ────►│ Flow 1 (NIC1)│
            │ Flow 2 (NIC2)│
            │ Flow 3 (NIC1)│
            └──────────────┘
  • 하나의 vNIC도 여러 물리 NIC으로 나갈 수 있음
  • 하지만 들어오는 트래픽은 특정 NIC로만 수신됨 (SET의 제한)

✅ Dynamic의 장점

항목설명
트래픽 균형 세션/흐름 단위로 정교하게 분산됨
적응성 새로운 흐름에 따라 실시간 재분배
세션 안정성 흐름 단위라 세션이 중간에 분리되지 않음
MAC 위치 변화 최소화 vNIC 전체를 다른 NIC로 옮기지 않음
 

❗ 제한사항

  • Rx 방향은 여전히 Hyper-V Port 방식이므로 NIC failover 상황엔 수신 경로가 바뀌면서 MAC 이동 발생 가능
  • 세션 수가 적거나 단일 플로우만 쏠리는 경우 Dynamic의 이점은 작아질 수 있음

✨ 결론

  • Dynamic은 기존 Hyper-V Port가 가진 “vNIC = NIC” 제한을 넘어서,
  • 트래픽을 흐름 기반으로 동적으로 분산해 NIC 사용률을 최적화하고
  • 파워온/오프 시 MAC 이동의 부작용을 줄이는 데도 유리합니다.
728x90
Comments