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 Virtual Server (LVS)

Layer-7 Load Balancing

 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)  (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