{{위키데이터 속성 추적}}
{{소프트웨어 정보
| name                   = 리눅스 버추얼 서버
| title                  = 
| logo                   = Lvslogo.png
| logo caption           = LVS 공식 로고
| logo_size              = 200px
| logo_alt               = LVS 공식 로고
| screenshot             = 
| caption                = 
| screenshot_size        = 
| screenshot_alt         = 
| collapsible            = 
| author                 = Wensong Zhang
| developer              = et al.
| released               = {{시작 날짜와 나이|1998|05}}
| discontinued           = 
| latest release version = 
| latest release date    = <!-- {{시작 날짜와 나이|YYYY|MM|DD|df=yes/no}} -->
| latest preview version = 
| latest preview date    = <!-- {{시작 날짜와 나이|YYYY|MM|DD|df=yes/no}} -->
| frequently updated     = 
| status                 = 개발 중
| programming language   = [[C (프로그래밍 언어)|C]]
| operating system       = [[리눅스]]
| platform               = 
| size                   = 
| genre                  = [[부하분산]]
| license                = [[GNU 일반 공중 사용 허가서]]
| website                = {{URL|http://www.LinuxVirtualServer.org}}
}}

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

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

== 개요 ==
[[파일:Wikimedia Server Architecture (simplified).svg|섬네일|300px|위키미디어에 사용되는 LVS]]

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

=== 스케줄러 ===
LVS는 여러 밸런싱 스케줄러를 구현하며, 관련 소스 파일과 함께 아래에 나열한다:<ref>{{웹 인용
 | url = http://www.linuxvirtualserver.org/docs/scheduling.html
 | title = Job Scheduling Algorithms in Linux Virtual Server
 | date = 2011-02-08 | accessdate = 2013-11-24
 | publisher = linuxvirtualserver.org
}}</ref>

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

== 용어 ==
공통적으로 사용되는 용어는 다음을 포함한다:<ref name="Bob">{{웹 인용
 | url = http://bobcares.com/blog/linux-virtual-server-load-balance-your-networked-services/
 | title = Linux Virtual Server: Load Balance Your Networked Services
 | year = 2008 | accessdate = 2013-11-24
 | publisher = bobcares.com
}}</ref>
* LVS director
* Real servers
* Client computers
* VIP (Virtual IP address)
* RIP (Real IP address)
* DIP (Directors IP address)
* CIP (Client IP address)

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

<syntaxhighlight lang="bash">
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
</syntaxhighlight>

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

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

<syntaxhighlight lang="text">
# 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
</syntaxhighlight>

== 같이 보기 ==
* [[넷필터]], [[nftables]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}
* [http://kb.linuxvirtualserver.org/wiki/Main_Page Linux Virtual Server Configuration Wiki]
* [http://publib-b.boulder.ibm.com/Redbooks.nsf/9445fa5b416f6e32852569ae006bb65f/e8417f0abc3cadaf85256d40004f31b8?OpenDocument&Highlight=0,SG247034 IBM eServer BladeCenter, Linux, and Open Source: Blueprint for e-business on demand] {{웨이백|url=http://publib-b.boulder.ibm.com/Redbooks.nsf/9445fa5b416f6e32852569ae006bb65f/e8417f0abc3cadaf85256d40004f31b8?OpenDocument&Highlight=0,SG247034 |date=20220811174534 }} (includes LVS as a component)

{{리눅스 커널}}

[[분류:자유 네트워크 소프트웨어]]
[[분류:병렬 컴퓨팅]]