SLB(Server Load Balance)의 패킷 흐름
SLB의 패킷 흐름은 L4 스위치가 클라이언트 요청을 처리하는 전체 과정을 보여줍니다. 이 글에서는 각 단계와 주요 구성 요소를 자세히 설명합니다.
1. 패킷 흐름 단계
1) Find Entry
- 역할: 클라이언트 요청 패킷이 L4 스위치에 도달하면, 먼저 엔트리(Entry)를 조회합니다.
- Entry란?
- 트래픽 처리 규칙으로, 클라이언트와 연결된 세션 정보를 저장하며, Session Persistence(세션 유지)를 위해 사용됩니다.
- Entry 조회 과정:
- 요청 패킷의 소스 IP, 목적지 IP, 프로토콜, 포트를 기준으로 기존에 생성된 Entry를 찾습니다.
- 기존 Entry가 없으면 새로 생성합니다(Make Entry).
2) LB Service (Priority 40)
-
VIP & VPort 확인:
- 요청 패킷의 목적지 IP(VIP, Virtual IP)와 포트(VPort)를 확인합니다.
- VIP와 VPort는 클라이언트가 접근할 수 있는 가상 서버를 의미합니다.
-
ACT Real Server로 연결:
- Health Check 결과를 기준으로, Active(활성화) 상태의 Real Server로 트래픽을 전달합니다.
- LB Method:
- 부하 분산 알고리즘에 따라 Real Server를 선택합니다(예: Round Robin, Least Connection 등).
3) LB Service (Priority 50)
-
대체 LB Service로 이동:
- Priority 40의 Real Server가 Inactive(비활성화) 상태일 경우, Priority 50의 LB Service로 이동합니다.
- 즉, 장애 발생 시 대체 서비스로 트래픽을 분산하는 구조입니다.
- 우선순위(Priority):
- Priority 값이 낮을수록 높은 우선순위를 가집니다.
- Priority 40 → Priority 50으로 넘어감.
-
LB Method 적용:
- Priority 50의 LB Service에서도 Health Check를 통해 Active 상태의 Real Server를 확인하고, 트래픽을 전달합니다.
4) Make Entry
- Session & Persistence 처리:
- 요청 패킷이 특정 Real Server로 전달된 이후, 클라이언트 세션 정보를 기반으로 Entry를 생성합니다.
- Entry는 Session Persistence(클라이언트가 동일한 서버에 연결되도록 보장)를 위해 사용됩니다.
5) Routing
- 트래픽 라우팅:
- 트래픽이 최종적으로 선택된 Real Server로 전달되며, 서버의 응답이 클라이언트에게 반환됩니다.
- Entry에 따라 트래픽은 지속적으로 같은 Real Server로 라우팅됩니다.
2. 주요 구성 요소 설명
1) LB Service
- L4 스위치의 핵심 모듈로, 클라이언트 요청을 부하 분산하여 Real Server로 전달합니다.
- 구성 요소:
- VIP & VPort: 클라이언트 요청의 목적지 IP와 포트를 의미.
- ACT Real Server: Health Check를 통해 활성화된 Real Server.
- LB Method: 부하 분산 알고리즘 (Round Robin, Weighted Least Connection 등).
2) Priority
- LB Service는 Priority 값에 따라 트래픽 처리 우선순위를 결정합니다.
- 작동 방식:
- Priority 값이 낮을수록 높은 우선순위를 가집니다.
- 우선순위가 높은 LB Service가 장애 상태(INACT)일 경우, 우선순위가 낮은 LB Service로 트래픽이 전달됩니다.
3) Entry
- L4 스위치가 클라이언트 요청을 처리하기 위해 생성하는 세션 정보.
- 역할:
- 클라이언트와 서버 간의 트래픽 처리 규칙을 저장.
- 동일한 클라이언트 요청이 항상 같은 Real Server로 라우팅되도록 보장(Session Persistence).
- 세션이 만료되면 Entry가 삭제됩니다.
4) Health Check
- Real Server의 상태를 확인하여 Active 또는 Inactive로 구분.
- Active 상태:
- Inactive 상태:
- 서버 장애로 인해 트래픽 전달 불가.
- 다른 LB Service로 트래픽 전환.
3. 전체 동작 흐름 요약
- Entry 조회:
- LB Service 처리 (Priority 40):
- 요청 패킷이 VIP와 VPort를 통해 LB Service로 전달.
- Health Check 결과에 따라 Active Real Server로 트래픽 분배.
- LB Service 전환 (Priority 50):
- Priority 40의 Real Server가 비활성화(INACT) 상태일 경우, 대체 LB Service로 트래픽 전달.
- Entry 생성 및 세션 유지:
- 트래픽 전달 후, 세션 정보 기반으로 Entry 생성.
- Routing:
- 트래픽이 최종적으로 선택된 Real Server로 전달.
4. 추가적으로 알아야 할 사항
-
LB Method:
- Round Robin, Least Connection, Source IP Hash 등 다양한 부하 분산 알고리즘이 사용됩니다.
-
Health Check:
- Health Check 실패 시, 서버를 INACTIVE 상태로 설정하여 트래픽이 전달되지 않도록 합니다.
-
Persistence:
- 클라이언트 세션이 유지되도록 보장하며, 동일한 요청은 항상 같은 Real Server로 전달됩니다.
추가로 궁금한 점이나 특정 세부 사항에 대해 더 알고 싶으시면 댓글로 남겨주세요! 😊