Sie sind auf Seite 1von 5

Load Balancing

What is load balancing?


Load balancing is the technology which spreads the load of work between two or
more servers. It would usually be software based, but can also be hardware based.
How does it work?
The load balancing listens to the port where all external traffic is coming in. It then
calculates the traffic, and routes it off accordingly.
 
Load balancing should be used on Mission critical applications with high demand /
usage. Below we have listed different scenarios where we use load balancing.
Popular Websites.
Large Internet Real Chat.
High Bandwidth File Transfer Protocol Sites.
DNS Servers.
NNTP Servers.
Hardware and software load balancers can come with a variety of special features:
Asymmetric load: To account for some servers being faster then others a ratio can
be manually assigned to cause some backend servers to get a greater share of the
workload than others.
Priority activation: When the number of available servers drops below a certain
number, or load gets too high, standby servers can be brought online.
SSL Offload and Acceleration: SSL applications can be a heavy burden on the
resources of a Web Server, The CPU and the end users especially may see a slow
response (or at the very least the servers are spending a lot of cycles doing things
they weren't designed to do). If this occurs a load balancer capable of handling SSL
Offloading in specialized hardware may be used to resolve the issue. When Load
Balancers are taking the SSL connections, the burden on the Web Servers is reduced
and performance will not degrade for the end users.
Distributed Denial of Service (DDoS) attack protection: load balancers can provide
features such as SYN cookies and delayed-binding (the back-end servers don't see
the client until it finishes its TCP handshake) to mitigate SYN flood attacks and
generally offload work from the servers to a more efficient platform.
HTTP compression: reduces amount of data to be transferred for HTTP objects by
utilizing gzip compression available in all modern web browsers
TCP offload: different vendors use different terms for this, but the idea is that
normally each HTTP request from each client is a different TCP connection. This
feature utilizes HTTP/1.1 to consolidate multiple HTTP requests from multiple
clients into a single TCP socket to the back-end servers.
TCP buffering: the load balancer can buffer responses from the server and spoon-
feed the data out to slow clients, allowing the server to move on to other tasks.
HTTP caching: static content is stored by the load balancer so that some requests can
be handled without contacting the web servers.

Content Filtering: some load balancers can arbitrarily modify traffic on the way
through.
HTTP security: some load balancers can hide HTTP error pages, remove server
identification headers from HTTP responses, and encrypt cookies so end users can't
manipulate them.
Priority queuing: also known as rate shaping, the ability to give different priority to
different traffic.
Content aware switching: most load balancers can send requests to different servers
based on the URL being requested.
Client authentication: authenticate users against a variety of authentication sources
before allowing them access to a website.
Spam filtering: at least one load balancer allows the use of an IP reputation database
to refuse mail from known spammers even before sending the messages to other
spam filters being load balanced.
Programmatic traffic manipulation: at least one load balancer allows the use of a
scripting language to allow custom load balancing methods, arbitrary traffic
manipulations, and more.
Firewall: Direct connections to backend servers are prevented, for security reasons.

FUCTIONS OF LOAD BALANCER

A load balancer performs the following functions:

1) Intercepts network-based traffic (such as web traffic)


destined for the site.
2) Splits the traffic into individual requests and decides which
servers receive individual requests.

3) Maintains a watch on the available servers, ensuring that


they are responding to traffic. If they are not, they are
taken out of rotation.

4) Provides redundancy by employing more than one unit in a


fail-over scenario.

5) Offers content-aware distribution, by doing things such as


reading URLs, intercepting cookies and XML parsing.

Opensource load balancing Software


Linux

Virtual Server
The Linux Virtual server Project is a project to cluster many real servers together into a highly
available, high-performance virtual server. The LVS load balancer handles connections from
clients and passes them on the the real servers (so-called Layer 4 switching) and can virtualize
almost any TCP or UDP service, like HTTP, HTTPS, NNTP, FTP, DNS, ssh, POP3, IMAP4,
SMTP, etc. It is fully transparent to the client accessing the virtual service.
Homepage: http://www.LinuxVirtualServer.org/

BalanceNG
BalanceNG is a modern software IP load balancing solution. It is small, fast, and easy to use
and setup. It offers session persistence, different distribution methods (Round Robin, Random,
Weighted Random, Least Session, Least Bandwidth, Hash, Agent, and Randomized Agent) and
a customizable UDP health check agent in source code. It supports VRRP to set up high
availability configurations on multiple nodes. It supports SNMP, integrating the BALANCENG-
MIB with Net-SNMPD. It implements a very fast in-memory IP-to-location database, allowing
powerful location-based server load-balancing.
Homepage:http://www.inlab.de/balanceng/
HAproxy
HAproxy is a high-performance and highly-robust TCP and HTTP load balancer which provides
cookie-based persistence, content-based switching, advanced traffic regulation with surge
protection, automatic failover, run-time regex-based header control, Web-based reporting,
advanced logging to help trouble-shooting buggy applications and/or networks, and a few other
features. Its own event-driven state machine achieves 20,000 hits per second and surpasses
GigaEthernet on modern hardware, even with tens of thousands of simultaneous connections.
Homepage:http://haproxy.1wt.eu/

Pen
Pen is a load balancer for "simple" TCP-based protocols such as HTTP or SMTP. It allows
several servers to appear as one to the outside. It automatically detects servers that are down
and distributes clients among the available servers. This gives high availability and scalable
performance.
Homepage:http://siag.nu/pen/

Crossroads Load Balancer


Crossroads is a daemon running in user space, and features extensive configurability, polling of
back ends using wake up calls, status reporting, many algorithms to select the 'right' back end
for a request (and user-defined algorithms for very special cases), and much more. Crossroads
is service-independent: it is usable for any TCP service, such as HTTP(S), SSH, SMTP, and
database connections. In the case of HTTP balancing, Crossroads can provide session stickiness
for back end processes that need sessions, but aren't session-aware of other back ends.
Crossroads can be run as a stand-alone daemon or via inetd.
Homepage:http://crossroads.e-tunity.com/

balance
Balance is a simple but powerful generic TCP proxy with round-robin load balancing and
failover mechanisms. Its behavior can be controlled at runtime using a simple command line
syntax. Balance supports IPv6 on the listening side, which makes it a very useful tool for IPv6
migration of IPv4 only services and servers.
Homepage:http://www.inlab.de/balance.html

Distributor load balancer


Distributor is a software TCP load balancer. Like other load balancers, it accepts connections
and distributes them to an array of back end servers. It is compatible with any standard TCP
protocol (HTTP, LDAP, IMAP, etc.) and is also IPv6 compatible. It has many unique and
advanced features and a high-performance architecture.
Homepage:http://distributor.sourceforge.net/

Pure Load Balancer


Pure Load Balancer is a high-performance software load balancer for the HTTP and SMTP
protocols. It uses an asynchronous non-forking/non-blocking model, and provides fail-over
abilities. When a backend server goes down, it automatically removes it from the server pool,
and tries to bring it back to life later. Pure Load Balancer has full IPv6 support and works on
OpenBSD, NetBSD, FreeBSD and Linux.
Homepage:http://plb.sunsite.dk/

Load Balancer Project


The Load Balancer Project is a tool that allows you to balance requests using clusters of servers.
The goal is to achieve high availability load balancing with a simple configuration for the load
balancer and the network topology. It leaves the servers untouched so the configuration only
resides on the load balancer, and it allows you to manage any type of service via a plugin model
design and a transparent proxy feature.
Homepage:http://www.jmcresearch.com/projects/loadbalancer/

mod_athena
mod_athena is an Apache-based application load balancer for large systems. It allows the HTTP
server to act as a load balancer either internally to Apache's own mod_proxy (for reverse
proxying), or externally to machines querying it. Arbitrary statistics are sent to the engine via a
simple GET plus query-string interface, from which it will then make decisions based on chosen
algorithms.
Homepage:http://ath.sourceforge.net/

udpbalancer
Udpbalancer is a reverse proxy that sorts UDP requests from your clients to your servers. It
may operate in round-robin, volume balance, and load balance modes.
Homepage:http://dev.acts.hu/udpbalancer/

MultiLoad
MultiLoad is a load balancer that redirects HTTP requests to pre-defined servers/locations. It
gives the provider a way to balance the traffic and hides the real download location. It allows
you to manage different version of each download. It is also a load balancing server extension.
You can distribute files on some servers so that a downloaded file can be loaded form different
servers. These servers can have different priorities to control the active traffic.
Homepage:http://download.laukien.com