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 Back- End 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 user and the back-end servers
Server Health Checking through Ping/TCP 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, higher- bandwidth logical link
● NIC Teaming ● Link Aggregation Control Protocol (LACP)
Layer 4 Load Balancer/Router
MultiLayer Switch
Practically a NAT with port and transaction awareness Modern load balancing routers can use rules
least load fastest response times balancing requests out 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 KTCPVS
Layer-7 Load Switching
Persistence
When a user is directed to one server The user 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