리눅스 버추얼 서버

리눅스 버추얼 서버(Linux Virtual Server, LVS)는 리눅스 커널 기반 운영 체제를 위한 부하분산 소프트웨어이다.

LVS는 1998년 5월 원쑹장이 시작한, GNU 일반 공중 사용 허가서(GPL) 버전 2의 요건을 따르는 자유-오픈 소스 소프트웨어 프로젝트이다. 이 프로젝트의 임무는 클러스터링 기술을 사용하여 리눅스를 위한 고성능, 고가용성 서버를 구축함으로써 양호한 확장성, 신뢰성, 서비스를 제공하는 것이다.

개요 

LVS 프로젝트의 주요 작업은 현재 고급 IP 부하분산 소프트웨어(PVS), 애플리케이션 레벨 부하 분산 소프트웨어(KTCPVS), 클러스터 관리 컴포넌트를 개발하는 것이다.

스케줄러 
LVS는 여러 밸런싱 스케줄러를 구현하며, 관련 소스 파일과 함께 아래에 나열한다:

 Round-robin (ip_vs_rr.c)
 Weighted round-robin (ip_vs_wrr.c)
 Least-connection (ip_vs_lc.c)
 Weighted least-connection (ip_vs_wlc.c)
 Locality-based least-connection (ip_vs_lblc.c)
 Locality-based least-connection with replication (ip_vs_lblcr.c)
 Destination hashing (ip_vs_dh.c)
 Source hashing (ip_vs_sh.c)
 Shortest expected delay (ip_vs_sed.c)
 Never queue (ip_vs_nq.c)

용어 
공통적으로 사용되는 용어는 다음을 포함한다:
 LVS director
 Real servers
 Client computers
 VIP (Virtual IP address)
 RIP (Real IP address)
 DIP (Directors IP address)
 CIP (Client IP address)

예 
2개의 실제 서버가 있는 가상 HTTP 서버를 구축하기:

ipvsadm -A -t 192.168.0.1:80 -s rr
ipvsadm -a -t 192.168.0.1:80 -r 172.16.0.1:80 -m
ipvsadm -a -t 192.168.0.1:80 -r 172.16.0.2:80 -m

IP 주소 192.168.0.1를 가상 서버에 TCP 포트 80으로 할당한다. 부하분산을 위해 선택된 스케줄링 알고리즘은 라운드 로빈(-s rr)이다. 두 번째와 세 번째 명령은 실제 서버의 IP 주소들은 LVS 설정에 추가하는 것이다. 포워드된 네트워크 패킷도 마스킹된다.(-m).

위에서 구성된 LVS 설정의 상태를 조회하기:

# ipvsadm -L -n
IP Virtual Server version 1.0.8 (size=65536)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.1:80 rr
  -> 172.16.0.2:80                Masq    1      3          1
  -> 172.16.0.1:80                Masq    1      4          0

같이 보기 
 넷필터, nftables

각주

외부 링크 
 
 Linux Virtual Server Configuration Wiki
 IBM eServer BladeCenter, Linux, and Open Source: Blueprint for e-business on demand  (includes LVS as a component)

자유 네트워크 소프트웨어
병렬 컴퓨팅