Load Balancing
Contents
What is Load Balancing
Load Balancer and Back-End
Layer-2 Load Balancing
Layer-4 Load Balancing
Layer-7 Load Balancing
Persistence
DNS Load Balancing
Database Load Balancing
Load-Balancing Clusters
More Software Solutions
What is Load Balancing?
Load balancing is a computer networking methodology to distribute workload across multiple resources to achieve
optimal resource utilization
maximize throughput
minimize response time
avoid overload
Load Balancer and Back-End
A Load Balancer (Front-End Server) is usually used Receives computed outputs from several BackEnd Servers In Multitier architecture, terminology of designs may include
Stovepipes
Bowties
Load Balancer and Back-End
Redirects traffic according to algorithm/availability/traffic but stays as a mediator between the and the back-end servers
Server Health Checking through Ping/T Connect/HTTP Get Header/HTTP Get Content Custom checks can be designed too
Layer-2 Load Balancing ● ●
Bonding Bond two or more links into a single, higherbandwidth logical link ●
NIC Teaming
●
Link Aggregation Control Protocol (LA)
Layer 4 Load Balancer/Router
MultiLayer Switch
Modern load balancing routers can use rules
least load
fastest response times
balancing requests out
Practically a NAT with port and transaction awareness
if one machine is not up, the router will not send traffic to it
IPVS in the Linux Virtual Server (LVS)
Layer-7 Load Balancing
Reverse Proxy Parse requests in application layer and distribute requests to servers based on different types of request contents LoadBalancing.org recommends HAProxy for open-source
Citrix netscaler and F5 are also said to dominate this market
Also KTVS
Layer-7 Load Switching
Persistence
When a is directed to one server
The is kept redirected to that server
Source IP Persistence
Not good for multiple access behind one IP
Cookie Based
Good for HTTP but there are famous vendors that also do RDP Cookies (HAProxy)
DNS Load Balancing
Using the Zone File
When the Server is down...
Its DNS will not respond
Quickest DNS responder will be the closest
@ in a 192.0.2.1 one.example.org A 192.0.2.1 two.example.org A 203.0.113.2 www.example.org NS one.example.org www.example.org NS two.example.org
Database Load Balancing
Oracle RAC
MySQL Cluster
or through middle-ware like MySQL Load Balancing Proxy
Load-Balancing Clusters
Usually a group of computers connected in a LAN to make a ”Virtual Server” More cost-effective than single computers with similar performance Some software used is
MPI Library Beowulf, distcc, and MPICH. Linux Virtual Server, Linux-HA
More Software Solutions
Apache web server's mod_proxy_balancer extension
Varnish (HTTP Accelerator/Reverse Proxy)
Pound (Reverse Proxy/Load Balancer)
Gearman (application framework designed to distribute appropriate computer tasks to multiple computers) Redundant Firewalls with OpenBSD F5 uses FreeBSD, RedHat Cluster, Linux-HA, Ultra Monkey, Linux Virtual Server