글 수 367
LVS(Linux Virtual Server) 란?
리눅스 가상 서버는 한개의 클러스터에 여러개의 리얼 서버로 구성되고, 리눅스 운영 체제 상에서 동작하는 로드 밸러스 서버를 포함하는 고가용 서버이다. 클러스터의 아키텍쳐는 사용자가 결정 할 수 있다. 사용자는 단지 한개의 가상 서버만 사용하면 된다.
LVSP는 2000년 초기에 인터넷 사용자들이 급속히 늘어나면서 부각이 된 프로젝트의 하나이다. 지금에 웹서버의 시장은 Unix, Linux, Windows NT 등의 OS를 사용하고 있다. 하지만 이런 OS 마다 특징이 있다. 서버 시장에서 비중이 제일 큰 Unix는 그 설치비용이 어마어마하다. 따라서 중소기업들이나 개인들은 꿈도 꾸지 못할 액수에 서버이다. 이어서 나오는 Linux는 그 성능이 최근에 들어 와서 부각을 나타나는 OS 이다. MICROSOFT도 자사에 MAIL서버를 linux 서버로 하다가 발견이 되어서 큰 망신을 당하기도 한 적도 있다. 리눅스는 성능 면에서나 비용 면에서도 탁월하다고 할 수 있다.
LVSP는 인터넷 사용자들이 늘어나고 그로 인해 서버에 트래픽이 많이 발생하게 되었다. 보통 이런 문제점이 발견이 된다면 가장 쉽게 생각할 것이 서버 업그레이드 일거다 하지만 유저가 계속 늘어 나는 서버라면 언제까지 업그레이드 할 것인가 하는 것도 무시 못 하는 현실이 될 것이다. LVSP는 이런 트래픽을 줄여 보자는 차원에서 나온 프로젝트이다.
<장점>
- 저렴한 가격에 안정적이고 높은 성능 제공
; 리얼 서버 200 대를 알테온 L4 장비로 구성한다면 약 1억원 정도의 비용이 들지만 LVS로 구성한다면 SPOF 요소를 제거하기 위해서 프라이머리 서버와 백업 서버로 클러스터링을 하더라도 약 500만원이면 충분하다.
- 여러 가지 health check로 장애를 최소화 한다.
; 웹 서버의 응답이 "200 OK" 가 아니면 서비스 장애라고 판단하여 리얼 서버를 가상 서버의 목록에서 제거할 수 있다.
- 알림 기능이 뛰어나다.
; 약간의 프로그래밍만 하면 관련 내용을 메일, 문자 메세지, 메신저, 소리로 알려줄 수 있다.
- DoS 공격을 막을 수 있다.
; 알테온 L4로 구성된 웹 서비스에 단순 새로고침(F5) 공격을 할 경우 리얼 서버에 부하가 걸리지만, LVS는 리얼 서버에 이를 전달하지 않고 단지 가상 서버의 메모리에 128 바이트 세션 값만 저장되기 때문에 이론상 시스템 메모리 용량이 1G인 경우 약 7백만 세션을 처리할 수 있다. 물론 커널의sync_recv 타임 아웃 값도 조정해야 한다.
리눅스 가상 서버는 한개의 클러스터에 여러개의 리얼 서버로 구성되고, 리눅스 운영 체제 상에서 동작하는 로드 밸러스 서버를 포함하는 고가용 서버이다. 클러스터의 아키텍쳐는 사용자가 결정 할 수 있다. 사용자는 단지 한개의 가상 서버만 사용하면 된다.
LVSP는 2000년 초기에 인터넷 사용자들이 급속히 늘어나면서 부각이 된 프로젝트의 하나이다. 지금에 웹서버의 시장은 Unix, Linux, Windows NT 등의 OS를 사용하고 있다. 하지만 이런 OS 마다 특징이 있다. 서버 시장에서 비중이 제일 큰 Unix는 그 설치비용이 어마어마하다. 따라서 중소기업들이나 개인들은 꿈도 꾸지 못할 액수에 서버이다. 이어서 나오는 Linux는 그 성능이 최근에 들어 와서 부각을 나타나는 OS 이다. MICROSOFT도 자사에 MAIL서버를 linux 서버로 하다가 발견이 되어서 큰 망신을 당하기도 한 적도 있다. 리눅스는 성능 면에서나 비용 면에서도 탁월하다고 할 수 있다.
LVSP는 인터넷 사용자들이 늘어나고 그로 인해 서버에 트래픽이 많이 발생하게 되었다. 보통 이런 문제점이 발견이 된다면 가장 쉽게 생각할 것이 서버 업그레이드 일거다 하지만 유저가 계속 늘어 나는 서버라면 언제까지 업그레이드 할 것인가 하는 것도 무시 못 하는 현실이 될 것이다. LVSP는 이런 트래픽을 줄여 보자는 차원에서 나온 프로젝트이다.
<장점>
- 저렴한 가격에 안정적이고 높은 성능 제공
; 리얼 서버 200 대를 알테온 L4 장비로 구성한다면 약 1억원 정도의 비용이 들지만 LVS로 구성한다면 SPOF 요소를 제거하기 위해서 프라이머리 서버와 백업 서버로 클러스터링을 하더라도 약 500만원이면 충분하다.
- 여러 가지 health check로 장애를 최소화 한다.
; 웹 서버의 응답이 "200 OK" 가 아니면 서비스 장애라고 판단하여 리얼 서버를 가상 서버의 목록에서 제거할 수 있다.
- 알림 기능이 뛰어나다.
; 약간의 프로그래밍만 하면 관련 내용을 메일, 문자 메세지, 메신저, 소리로 알려줄 수 있다.
- DoS 공격을 막을 수 있다.
; 알테온 L4로 구성된 웹 서비스에 단순 새로고침(F5) 공격을 할 경우 리얼 서버에 부하가 걸리지만, LVS는 리얼 서버에 이를 전달하지 않고 단지 가상 서버의 메모리에 128 바이트 세션 값만 저장되기 때문에 이론상 시스템 메모리 용량이 1G인 경우 약 7백만 세션을 처리할 수 있다. 물론 커널의sync_recv 타임 아웃 값도 조정해야 한다.
<가상서버 구성 방식>
- NAT (네트웍 주소 변환)
- 다이렉트 라우팅
- IP 터널링
저는 다이렉트 라우팅 방식을 구현해 보았는데 이상없이 잘 작동을 하더군요. L4 장비가 없어서 DNS 로드 밸런싱 하고 있는 서비스에 적용하면 좋을 것 같습니다.
<설치 프로그램>
- 리눅스 커널 소스 (2.4.23 이상 권장)
- Netfilter module (커널 2.4.23 이상부터는 포함됨)
- ipvs-1.0.10 커널 패치 (커널 2.4.23 이상부터는 필요없음)
- ipvsadm-1.21-10
- mon-0.99.2
필수 펄 모듈: CPAN, Expect, Mon, Time::HiRes, Convert::BER, IO, Period
필수 유틸리티: fping
< LVS로 구현된 사이트>
- linux.com
- sourceforge.net
- www.real.com
..
<참고 사이트>
http://www.linuxvirtualserver.org/
http://ilinuxbay.com/contentChannel/article.php?scol_serial=2284&aca_idx=7