Computer/System

LVS (Linux Virtual Server)

수지밝은미소 2007. 5. 21. 10:01

http://www.linuxvirtualserver.org

 

http://wiki.kldp.org/Translations/html/Virtual_Server-KLDP/index.htm

 

1. What?

버츄얼 서버란, 하나의 클러스터(실서버들이 모인) 상에서 구축된 고확장성, 고가용성 서버이다.

 

2. Why?

인터넷 사용자의 증가로 인한 인터넷 트래픽이 기하 급수적으로 증가,

이를 받아들일 만한 비용대비 효율적이며 확장성있는 서버가 필요하다.

 

이러한 서버들의 클러스터를 구성하는 방법은 2가지

 

1) DNS based load balancing cluster

가장 간단한 방법. DNS server가 하나의 DNS-여러개의 IP로 분산 매핑.

round-robin manner, TTL of name resolving

 

2) Dispatcher(load-balancer) based load balancing cluster

dispatcher 할 수 있는 일: 한 클러스터 내의 서버들 사이에 로드를 분산한다.

 -> 따라서 서버들의 병렬 서비스는 single IP address상에 virtual IP address로 나타난다.

장점: DNS 기반의 로드밸런싱에 비해 커넥션 당으로 잘게 나누어서 스케쥴링할 수 있다. -> 더 나은 로드밸런싱.

 

로드밸런싱은 application-level이나 IP-level에서 이루어진다.

ap 레벨 로드밸런싱 예) Reserver-proxy나 pWeb:확장성있는 웹서버를 구성. 클러스터에 있는 다른 웹서버로 요청을 forward. 결과를 클라이언트에 reply. -> 새로운 네트웍 부하(overhead) 5개 서버 이상 늘어나면 부담이 증가.

 

=> the overhead of IP load balancing is small and the maxim number of server nodes can reach 25 or up to 100.

** 따라서 IP load balancing을 선호.

-----------------------------------------------------------------------------------

 

3. How

<3가지 IP load balancing 방법은?>

 http://www.linuxvirtualserver.org/how.html

 

1) Virtual Server via NAT (Network Address Translation)

장점: 필요한 것이 별로 없다. - 로드밸런서를 위한 IP만 있으면 설정 가능.

단점: 확장성 제한 - 로드밸런서는 전체 시스템의 bottleneck일 수 있다.

       (대부분 요청에 비해 응답 패킷이 훨 크다..)

 

 

 

 

 

2) Virtual Server via IP Tunneling

; 로드 밸런서는 다른 실 서버들에 대한 요청만을 스케쥴하고, 실서버가 요청자에게 직접 응답한다.

따라서 로드밸런서는 대량의 요청을 소화할 수 있다. (보통 100개 이상이라도 ok.)

 

버츄얼 프록시 서버 구축에 아주 좋음.

제한점: 모든 서버가 IP tunneling(IP encapsulation)이 가능해야 한다.

 

 

 

** 3) Virtual Server via Direct Routing

*  클라이언트->서버 쪽은 direct routing을 통하고, 반대 방향은 분리된 네트웍 라우터를 따를 수 있다.

장점: 2)에 비해 tunneling overhead가 없다.

단점: 로드 밸런서와 실 서버의 인터페이스가 같은 물리적 세그먼트에 있어야 한다.

 

 

 

 

 

 

 

 

** LVS의 구현