Linux Virtual Server
   HOME

TheInfoList



OR:

Linux Virtual Server (LVS) is load balancing software for
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
–based operating systems. LVS is a
free and open-source Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
project started by Wensong Zhang in May 1998, subject to the requirements of the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(GPL), version 2. The mission of the project is to build a high-performance and highly available server for Linux using clustering technology, which provides good scalability, reliability and serviceability.


Overview

The major work of the LVS project is now to develop advanced IP load balancing software (IPVS), application-level load balancing software (KTCPVS), and cluster management components. * IPVS: an advanced IP load balancing software implemented inside the
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
. The IP Virtual Server code is merged into versions 2.4.x and newer of the Linux kernel mainline. * KTCPVS: implements application-level load balancing inside the Linux kernel, still under development. LVS can be used for building highly scalable and highly available network services, such as web, email, media and
VoIP Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
services, and integrating scalable network services into large-scale reliable
e-commerce E-commerce (electronic commerce) refers to commercial activities including the electronic buying or selling products and services which are conducted on online platforms or over the Internet. E-commerce draws on technologies such as mobile co ...
or
e-government E-government (known for electronic government) involves utilizing technology devices, such as computers and the Internet, for faster means of delivering public services to citizens and other persons in a country or region. E-government offer ...
applications. LVS-based solutions already have been deployed in many real applications throughout the world, including
Wikipedia Wikipedia is a free content, free Online content, online encyclopedia that is written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and the wiki software MediaWiki. Founded by Jimmy Wales and La ...
. The LVS components depend upon the Linux Netfilter framework, and its source code is available in the net/netfilter/ipvs subdirectory within the
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
source. LVS is able to handle UDP, TCP layer-4 protocols as well as FTP passive connection by inspecting layer-7 packets. It provides a hierarchy of counters in the /proc directory. The userland utility program used to configure LVS is called ipvsadm, which requires
superuser In computing, the superuser is a special user account used for system administration. Depending on the operating system (OS), the actual name of this account might be root, administrator, admin or supervisor. In some cases, the actual name of the ...
privileges to run.


Schedulers

LVS implements several balancing schedulers, listed below with the relevant source files: * 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) * Maglev hashing (ip_vs_mh.c)


Glossary

Commonly used terms include the following: * ''LVS director'': load balancer that receives all incoming client requests for services and directs them to a specific "real server" to handle the request * ''Real servers'': nodes that make up an LVS cluster which are used to provide services on the behalf of the cluster * ''Client computers'': computers requesting services from the virtual server * ''VIP (Virtual IP address)'': the IP address used by the director to provide services to client computers * ''RIP (Real IP address)'': the IP address used to connect to the cluster nodes * ''DIP (Directors IP address)'': the IP address used by the director to connect to network of real IP addresses * ''CIP (Client IP address)'': the IP address assigned to a client computer, that it uses as the source IP address for requests being sent to the cluster


Examples

Setting up a virtual
HTTP HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
server with two real servers: 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 The first command assigns TCP port 80 on
IP address An Internet Protocol address (IP address) is a numerical label such as that is assigned to a device connected to a computer network that uses the Internet Protocol for communication. IP addresses serve two main functions: network interface i ...
192.168.0.1 to the virtual server. The chosen scheduling algorithm for load balancing is round-robin (-s rr). The second and third commands are adding IP addresses of real servers to the LVS setup. The forwarded network packets shall be masked (-m). Querying the status of the above configured LVS setup: # 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


See also

* IP Virtual Server * Netfilter and
nftables nftables is a subsystem of the Linux kernel providing filtering and classification of network packets/datagrams/frames. It has been available since Linux kernel 3.13 released on 19 January 2014. nftables replaces the legacy iptables component of ...
*
Network scheduler A network scheduler, also called packet scheduler, queueing discipline (qdisc) or queueing algorithm, is an arbiter on a node in a packet switching communication network. It manages the sequence of network packets in the transmit and receive ...


References


External links

*
Linux Virtual Server Configuration Wiki

IBM eServer BladeCenter, Linux, and Open Source: Blueprint for e-business on demand
(includes LVS as a component) {{Linux kernel High-availability cluster computing Free network-related software Internet software for Linux Linux-only free software Parallel computing