Linux.conf.au 2003 | Abstracts

Dynamic Feedback in LVS

Jeremy Kerr

BiographyBioPaperPaper AudioAudio

With the popularity of the Internet increasing, the demands on network servers (particularly HTTP servers) have grown to the point where a single node is not sufficient to process all incoming requests for popular services.

Two possible upgrade pathways exist - scaling up and scaling out. Scaling up involves upgrading a single computer (by way of adding more processors or memory), while scaling out involves adding other computers to run in parallel. While scaling up seems the simpler option, there are disadvantages involved:

  • Scaling up does not return a linear performance improvement
  • A single server must be taken offline for upgrades
  • No fault tolerance is present with a single server

The advent of load balanced servers has allowed the implementation of clusters of independent servers acting as a single Internet presence, with the load shared between them. This allows larger amounts of requests to be served, as well as reduced downtime and greater upgrade flexibility, while keeping costs down. Scaling out has been shown to provide a linear performance response.

There are many load-balancing solutions available, in both hardware and software implementations. The Linux Virtual Server (LVS) Project is an extension to the linux kernel, providing a software load-balancing solution for IP-based services. The goal of the LVS Project is to `Produce a high-performance and highly available server for Linux based on clustering, which provides a good scalability, reliability and serviceability.'

When requests are received by the load balancer, a decision must be made to find a server to allocate the request to; ideally, each server will be equally loaded. To achieve this, a dynamic feedback system is being developed to report the load of each server to the load balancer, so that real-time load data can be used in the allocation decisions. The system being developed is based around the Network Element Control Protocol (NECP) - a daemon is run on each server node to report the current load (a configurable metric) to a daemon running on the load balancer, which processes the load data and updates the decision tables appropriately.

By testing this in an experimental load-balancing situation, the advantage of implementing a dynamic feedback system in a load-balanced server cluster can be measured; these results will be presented at the conference.


The original Tux penguin is copyright by Larry Ewing.
Linux is a trademark of Linus Torvalds.
© 2002 Linux Australia.