본문 바로가기

비공개 :(

서버 부하분산 구축 환경

물리 구성
1) Two-Arm (In-Line)
네트워크에 부하분산 장비를 끼워 넣는 패턴
네트워크에 클라이언트용과 서버용이 두 개의 팔을 펼친 듯한 모양으로 접속
- Client와 서버 사이의 통신 경로에 부하분산 장비를 배치하기 때문에 통신 제어 쉬움.
매우 알기 쉬운 구조
구성이 간단해 문제 발생 시 장애 대처가 쉽고 관리도 쉬움
모든 트래픽이 부하분산 장비를 경유하기 때문에 트래픽이 급격히 증가 시 대응 어려움
부하분산 장비를 거치는 구성이 될 수 밖에 없어 유연성도 떨어짐.

2) One-Arm
네트워크에 부하분산 장비를 더하는 구성
스위치와 부하분산 장비 사이는 다수 물리 접속을 하나의 논리적 접속으로 합쳐 연결
- IEEE802.1Q 는 하나의 링크에 복수 VLAN이 공존하도록 하는 기능.
부하분산 장비와 스위치 간은 링크 애플리케이션과 IEEE802.1Q 둘 다 사용
서버 네트워크의 트래픽만 부하분산 장비가 처리하도록 구성 è 부하 경감.
대역폭 부족 시 물리 링크 확장 è 확장의 용이성
트래픽과 부하분산하지 않는 트래픽을 완전히 분리할 수 있어 유연한 세그먼트구성 가능.
모든 통신이 부하분산 장비를 경유한다는 보장이 없어 통신 제어 어려움
하나의 접속에 대해 복수 네트워크가 공존하기 때문에 물리 접속과 논리 접속이 동일하게 되지 않아 구성이 복잡
트래픽 흐름 파악하지 못할 경우 장애 대처 어려움

논리구성
1) Bridge 구성
- L2 스위치처럼 사용하는 구성
클라이언트와 서버에 다리를 놓아 동일한 네트워크로 만드는 것이 가능
- Transparent 사용
- L2 스위치처럼 부하분산 장비를 다루기 때문에 IP주소를 설계하지 않고도 L4장비 배치
네트워크 변경이 어려운 환경에서도 쉽게 부하분산 기술을 도입할 수 있음
-  운영에 영향을 주지 않고도 서버 가용성과 운영성을 높일 수 있음.

2) 라우팅 구성
- L3 스위치처럼 구성하는 방식
클라이언트와 서버를 별도 네트워크로 구성해 라우팅
클라이언트가 서버의 실제 IP주소로 접속했을 때 부하분산 처리(NAT)를 하지 않고 가상 서버에 접속했을 때만 부하분산 처리를 함.
새롭게 서버 측 IP 서브넷을 설정해야 하므로서버의 IP 서브넷을 늘릴 때마다 상위 장비를 포함한 L3설계 필요.

3) NAT 구성
부하분산 장비를 라우터처럼 사용하는 구성
클라이언트와 서버를 별도 네트워크로 구성하여 서버 IP주소를 클라이언트 IP 주소로 NAT
- NAT 구성은 부하분산 장비를 라우터처럼 취급
서버 네트워크를 클라이언트로 NAT 하므로 서버 네트워크 의식할 필요없이 통신 가능

4) DSR (Direct Server Return)
논리 구성 상에서 동작하는 특수한 통신 형태의 하나
- DSR은 One-Arm 구성을 사용하는 것이 일반적
- DSR은 클라이언트에게 보내는 응답 패킷을 부하분산 장비를 경유하지 않고 직접 클라이언트에게 보내는 방식
- DSR에선 부하분산 장비가 클라이언트 리퀘스트만 처리하면 되기 때문에 부하가 많이 감소
- L4 스위칭의 간단한 처리 밖에 안되지만 HTTP와 같이 사이즈 비대칭 트래픽을 부하분산할 때 유효
수백 대 서버 규모를 부하분산하는 대규모 사이트에서 사용하고 있는 방식
- DSR 부하분산 처리는 목적지 MAC 주소만 변환
처리 방법
(1) 부하분산 장비의 가상 서버가 클라이언트 리퀘스트를 받음
(2) 리퀘스트의 목적지 IP주소는 가상 서버 IP주소를 그대로 사용
(3) 목적지 MAC 주소만 서버 MAC주소를 변환해서 서버에 전송
(4) 루프백 인터페이스에 가상 서버 IP주소가 설정되어 있기 때문에 서버가 패킷을 접수
(5) 루프백 인터페이스는 어디까지나 서버 안에 존재하는 논리 인터페이스
(6) 서버 밖의 처리에 대해서는 전혀 관여하지 않음.
(7) 서버가 기본 게이트웨이인 L3 스위치 또는 라우터로 응답 전송
(8) 부하분산 장비로는 전송하지 않음
- DSR은 부하분산 장비의 부하를 줄일 수 있는 매우 편리한 기능
모든 부하분산 트래픽이 부하분산 장비를 경유하지 않기에 모든 트래픽을 제어하기 힘듬
애플리케이션 계층 트래픽을 제어하는 L7 스위칭을 사용할 수 없음.

이중화 구성
1) Two-Arm 구성
클라이언트 측과 서버 측의 스위치를 사각형으로 배치해 장애 시 이중화 경로를 확보해두는 구성이 일반적
부하분산 장비 및 인접한 액티브 경로에 장애 발생 시 경로 전체를 격리하고 스탠바이 장비를 액티브 장비로 전환.
부하분산 장비 장애
(1) 스탠바이 장비가 장애를 감지해 액티브 장비로 승격하고 패킷 처리를 시작
인접 경로 장애
(1) 케이블이 단절되거나 접속하고 있는 포트가 다운되어 인접 경로에 장애 발생 시 스탠바이 장비에 장애를 알리고 스탠바이 장비가 액티브 장비로 승격해 패킷을 처리
클라이언트 인접장비 장애
(1) VRRP / HSRP / FHRP 로 구성된 가상 라우터 장애 발생 시 부하분산 장비는 인접 경로를 잃게 됨.
(2) 인접 경로 장애 발생한 경우와 동일
서버 측 인접 장비 장애
(1) L2스위치 장애 발생 시 부하분산 장비가 인접 경로를 잃게 됨
(2) 인접 경로에 장애가 발생한 경우와 동일한 처리가 이루어짐

2) One-Arm 구성
부하분산 장비에 접속하는 Core 스위치가 클라이언트와 서버 양쪽 스위치를 겸함.
부하분산 장비 간 논리적 접속 가능
- One-Arm 구성은 코어 스위치가 다양한 역할을 수행
링크 어그리게이션으로 이중화하고 있어 경로를 바꾸지 않음
부하분산 장비 장애
(1) One Arm 구성에서 부하분산 장비 장애 발생 시 스탠바이 장비가 장애를 감지해 액티브 장비로 승격하고 패킷 처리를 시작
인접 경로 장애
(1) One-Arm 구성에서 접속하고 있는 케이블이 단절되거나 포트가 다운되어 인접 경로에 장애 발생해도 각 장비의 경로는 전혀 바뀌지 않음
(2) 인접 경로는 링크 어그리게이션으로 논리적으로 묶여 있어 물리 링크가 단절되어도 곧바로 별도 물리 링크로 동작
코어 스위치(L3스위치장애
(1) 장애 발생 시모든 인접 경로를 잃고 감시 패킷도 송수신할 수 없음
(2) 스탠바이 장비는 감시 패킷을 수신할 수 없게 되므로 자기 자신을 액티브 장비로 승격
(3) 스패닝 트리 모드도 영향을 받음
서버 스위치(L2스위치장애
(1) L2스위치 장애 발생 시 서버에 한해서만 경로 변경
(2) L2스위치 장애 발생 시 통신 두절 시간은 NIC Teaming에 영향을 받음.