The linux virtual server

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.


The Linux Virtual Server (LVS) allows load balancing of networked services such as web and mail servers using Layer 4 Switching. It is extremely fast and allows such services to be scaled to service 10s or 100s of thousands of simultaneous connections

The LinuxVirtualServerProject(LVS) implements layer4switching in the LinuxKernel. This allows TCP and UDP sessions to be load balanced between multiple realservers. Thus it provides a way to scale Internet services beyond a single host. HTTP and HTTPS traffic for the WorldWideWeb is probably the most common use.

LVS itself runs on Linux, however it is able to load balance connections from endusers running any operating system to realservers running any operating system. As long as the connections use TCP or UDP, LVS can be used.

LVS is very high performance. It is able to handle upwards of 100,000 simultaneous connections. It is easily able to load balance a saturated 100Mbit ethernet link using inexpensive commodity hardware. It is also able to load balance saturated 1Gbit link and beyond using higher-end commodity hardware.

Virtual server is a highly scalable and highly available server built on a cluster of real servers. The users interact with the cluster system as if it were only a single high-performance virtual server. Consider the following figure.

The real servers and the load balancers may be interconnected by either high-speed LAN or by geographically dispersed WAN. The load balancers can dispatch requests to the different servers and make parallel services of the cluster to appear as a virtual service on a single IP address,. Scalability of the system is achieved by transparently adding or removing nodes in the cluster. High availability is provided by detecting node failures and reconfiguring the system appropriately.

1.1 Why virtual server?

With the explosive growth of the Internet and its increasingly important role in our lives, the traffic on the Internet is increasing dramatically, which has been growing at over 100% annual rate. The workload on the servers is increasing rapidly so that servers will be easily overloaded for a short time, especially for a popular web site. To overcome the overloading problem of the servers, there are two solutions. One is the single server solution, i.e. to upgrade the server to a higher performance server, but it will soon be overloaded when requests increases so that we have to upgrade it again, the upgrading process is complex and the cost is high. The other is the multiple server solution, i.e. to build a scalable network service system on a cluster of servers. When load increases, we can simply add a new server or more into cluster to meet the increasing requests, and commodity server is of highest performance/cost ratio. Therefore, it is more scalable and more cost-effective to build server cluster system for network services.

1.2 Where do we use LVS?

* For higher throughput. The cost of increasing throughput by adding real servers in an LVS increases linearly, whereas the cost of increased throughput by buying a larger single machine increases faster than linearly

* For redundancy. Individual machines can be switched out of the LVS, upgraded and brought back on line without interruption of service to the clients. Machines can move to a new site and brought on line one at a time while machines are removed from the old site, without interruption of service to the clients.

* For adaptability. If the throughput is expected to change gradually (as a business builds up), or quickly (for an event), the number of servers can be increased (and then decreased) transparently to the clients.

1.3 Goals

The basic goal of the Linux Virtual Server Project is to:

Build a high-performance and highly available server for Linux using clustering technology, which provides good scalability, reliability and serviceability.