L4 Server Load Balancing Enjoy/etc2010. 10. 3. 10:29
SLB를 제공하는 가장 일반적인 장비는 L4 장비솔루션 으로써 Agent를 사용하지 않는 F5, 시
스코, 파운드리, 넷스케일러, 노텔, 라드웨어 ,A10Networks 등이 있으며 대부분 사람들은
L4 장비이며 Agent를 사용하는 Enpia(우리회사다 ^^V) Sseries1000 재품이 있다.
Agent를 이용하는 타사의 제품을 보지 못했다.
장비는 대부분 외산 제품이며 Agent를 이용하는 Enpia 의 제품은 국산이다.
일단 제목이 L4 Server Loadbalancing 이니 L4 장비로만 이야기 하겠다.
L4 장비는 서비스 서버 (Real Server)에 앞 단에 위치하게 되며, 서비스 서버들은 모두 사
설 IP 주소를 가지며 L4 장비에 연결이 된다.
외부 사용자들에게는 여러 대의 서비스 IP 주소 대신 마치 한대의 서버처럼 L4 장비의 VIP
만이 보이게 된다.
VIP로의 사용자 서비스 요청은 L4 장비가 최적의 서비스 서버를 선택하여 Redirect 됨으로
써 (NAT) 된다.
예를 들어 사용자가 www.enpia.net이란 웹 서비스에 연결하기 위한 과정을 예로 들면 다음
과 같다.
① 사용자가 Browser에 www.enpia.net 이라고 입력을 하면, PC에 설정된 Local DNS 서버로
DNS Query를 한다. Local DNS 서버는 enpia.net을 관리하는 DNS 서버 (Authoritative DNS
서버)에 DNS Query 요청을 하여 L4의 VIP 주소를 획득한다.
② Local DNS 서버는 사용자 PC에게 www.enpia.net Domain에 해당하는 L4의 VIP를 전송한
다.
③ 사용자의 Local DNS 서버로부터 넘겨 받은 L4의 VIP로 http 요청을 전송한다.
④ 사용자로부터 http 요청을 받은 L4 장비는 최적의 서비스 서버를 선택하여 사용자의 요
청을 전송한다.
L4로 부터 http 요청을 받은 서비스 서버는 http 응답을 처리하여 그 결과를 다시 L4 장비
에게 전송한다.
⑤ 서비스 서버로 부터 http 결과를 받은 L4 장비는 사용자 PC로 해당 결과를 전송함으로
써 요청 처리를
끝낸다.
Round Robin(순차방식)
사용자 요구를 차례대로 각 서버에 균등하게 분배하는 방식으로 서버 커넥션 수나 응답시간
에 상관없이 그룹내의 모든 서버를 동일하게 처리하여 일반적인 구성에 있어서 다른 알고리
즘에 비해서 가장 빠르다는 장점을 가진다.
Least Connection(최소접속방식)
오픈 커넥션이 가장 적은 서버로 사용자 요구를 연결하는 방식으로 모든 서버가 균등한 트
래픽을 유지하기 위해서 처리 속도가 빠른 서버가 더 많은 접속을 받게 된다. 최소접속 알
고리즘은 서버들의 성능이 비슷하게 구성되었을 경우에 가장 효과적인 트래픽 분산이 가능
하다.
Weighted Least Connections(가중치 최소접속방식)
이 알고리즘은 최소접속 알고리즘에 서버의 성능 가중치를 추가한 것으로, 요구가 동일한
경우 가중치가 높은 서버에서 더 많은 요구를 받게 설계되어 있다.
Fastest Response Time(응답시간방식)
가장 빨리 응답하는 서버에 이용자 요구를 연결하는 방법. 응답시간은 각 서버가 패킷 형태
의 요구를 송수신하는데 걸리는 시간을 측정한 것이다.
Adaptive(최소대기방식)
이 알고리즘은 Open또는 Pending커넥션을 적게 가지고 있는 서버로 네트웍 커넥션 방향을
지정한다. Pending 커넥션은 Full TCP Handshake를 완성하지 않은 것으로, 이것은 초당 클
라이언트 Thread의 수가 증가할 때 더욱 잘 수행된다.
Fixed(고정방식)
어떤 서버가 커넥션 요청을 받는지를 결정하기 위해 각 유입요청의 소스 IP어드레스를 사용
한다. 이 알고리즘은 여러종류의 어드레스로부터 많은 양의 요구가 있을 경우 더 잘 작동한
다. 이것은 동일한 게이트웨이를 통하여 들어오는 많은 요구보다 여러 종류의 혼합된 소스
IP 어드레스의 요구일 경우 더 잘 수행한다.
기타 Hashing, Min Misses, Random, URL-based, Cookie, SSL session ID 와 같은 방식의 알
고리즘이 있다. 또한 로드밸런싱정책은 장비의 Vender에 따라 지원하는 정책이 조금씩 달라
질 수 있다.
Network 구성상 L4 Switch는 서비스 서버의 앞 단에 위치하여 서비스 서버로 들어오고 나가
는 모든 Traffic을 처리하게 된다. 만약 L4 Switch에 장애가 발생할 경우 서비스 서버는 모
두 정상 동작을 하고 있더라도 전체적인 서비스가 중단되는 장애가 발생하게 된다.
이런 L4의 한계를 극복하기 위하여 보통 Active / Standby 형태로 L4 장비를 2개로 구성하
여 하나의 하나의 L4 Switch (Active)에 장애가 발생한 경우에 나머지 여분의 L4 Switch
(Standby)가 즉각 동작을 하도록 한다.
L4 Switch의 또 다른 한계는 서버의 증설이나 Network Traffic의 증가로 인하여 L4 Switch
를 추가하는 경우에 발생한다. 서비스 서버를 Load Balancing하기 위한 L4가 2대 이상일 경
우 이 L4 Switch를 Load Balancing 하기 위한 별도의 L4 Switch 가 필요하게 된다.
또한 서버로 통하는 Network Traffic의 양이 많아지게 되면 모든 Network Traffic을 L4
Switch가 처리해야 하므로 L4 Switch에 병목 현상이 발생하여 전체적으로 서비스의 속도가
저하된다.
L4의 한계를 극복하기 위하여 보통 Active / Standby 형태로 L4 장비를 2개로 구성하여 하
나의 L4 Switch (Active)에 장애가 발생한 경우에 나머지 여분의 L4 Switch (Standby)가 즉
각 동작을 하도록 한다.