What is GSLB?Global Server Load Balancing
GSLB is a method of distributing traffic amongst servers potentially dispersed across multiple geographies. The servers can be located either on premise in a company’s own datacenter, or hosted in a cloud (public cloud or private cloud). GSLB functionality is often provided on dedicated network equipment or integrated in an ADC as an additional feature, but sometimes it’s built into DNS appliances.
GSLB can be configured via two main methods:
a) GSLB based on Application Delivery Controller (ADC): traditional load-balancers and ADCs see all traffic from the client to the servers hosting the application, they are in-line, thus have a real-time view of the application availability and performance from a network standpoint. When using multiple ADCs on different datacenters to serve the same application, the ADCs can set up specific communication for exchanging statistics on the servers hosting the application. GSLB can be enabled on such clustered-ADC infrastructures as soon as the DNS zone containing the application FQDN is managed by the ADC service. Standard distribution scenarios are based on round robin and availability. Some topology mapping can also been introduced in order to direct specific client subnets to a preferred datacenter. In more advanced scenarios, the redirect of the client traffic can be performed based on the delay calculated by the network during the first step of the communication with the ADC, or a specific monitoring protocol can be established towards the client (e.g. ICMP).
b) Global DNS Load Balancing: The DNS is used to fulfill load balancing. The response to DNS requests is dependent on the geographic IP location of the client. So a user request for an URL (eg https://www.efficientip.com) would be sent to a GSLB DNS Server which would check the visitor’s IP address. The GSLB DNS Server would then identify the server closest to the location or the one that has the minimum response time, adjust the DNS reply, and the traffic flow between the client and the website conducted accordingly.
Active-Passive Scheme For Disaster Recovery
Most companies deploy server resources at multiple locations, primarily for enabling disaster recovery. “Active‑passive” is the most common scheme used. The active location is used to serve the data, which is duplicated on “passive” or “recovery” sites. If the active site fails, the standby locations come into play. The active‑passive scheme removes the requirement to synchronize data across sites in real time. Instead, a simpler batch method using less expensive out‑of‑band connections can be used to distribute active site changes to the passive sites.
In the above scenario, the role of the global server load balancer would be to simply detect the failure at the active site and divert requests to the passive sites automatically. This could be seen as an automation of a manual process of changing the IP address in the DNS configuration for an FQDN. However, the real benefits of GSLB come into play when companies maintain multiple active sites serving the same content, so synchronizing the sites in real time becomes important.
Key Benefits of GSLB
Ensure multi-site resiliency and disaster recovery (DRP)
To cope with server or network outages, GSLB helps improve website reliability and availability. Automatic cross-datacenter failover is sometimes provided.
Increase datacenter scalability and agility
Add, upgrade and deprovision servers or datacenters transparently
Improve user experience
Route clients to the nearest datacenter. Network latency is minimized by delivering content from a server which is closer to the requesting user. The response time and hence user experience is dependent largely on where the GSLB server is located.
Meet regulatory and security requirements
Enable network architects to service a global user base in a manner that complies with government regulations for highly-regulated industries such as telecommunications, defense and healthcare.
Global Server Load Balancers Compared to Traditional Load Balancers
While a normal load balancer (or ADC) distributes traffic across servers located in a specific datacenter, a global server load balancer is capable of directing traffic across several datacenters.
The other important difference is that load balancers are “in-line” with the traffic, meaning that all traffic between the client and the applications goes through the load balancer.
By comparison, GSLBs are only involved for setting up the route. Once the connection has been established, all traffic goes directly between the client and the application. The flow is therefore as follows:
- The user requests the DNS services hosted by the GSLB to get the IP address of the server hosting the application
- The GSLB DNS server gives the IP address to direct the user to the datacenter according to GSLB distribution algorithm selected
- The user connects to the IP address communicated by the GSLB’s DNS service
- The application server is answering directly to the user
GSLB solutions can be used to complement load balancers, and become particularly interesting for businesses working across multiple sites.
Load Balancing Algorithms
As for load balancing, there are multiple Global Server Load Balancing algorithms for application traffic routing.
- Round-robin (with or without weight)
- Server response time based on health check
- Application response time – latency
- Priority based
Some advanced algorithms may be used when GSLB is linked to an ADC:
- Server load (eg CPU)
- Server link bandwidth
- Least connexions
- Packet rate
Application Health Checking
For Global Server Load Balancing, websites and services are hosted on different servers at different geo-locations, so users are ideally routed to an online server. Autonomous DNS GSLB servers perform health checks to determine the status of a server. In specific circumstances the GSLB may provide an incorrect answer for a specific user because of a WAN routing failure at the user location.
The health check is based on network protocols like ICMP, UDP, TCP or HTTPS, but can also integrate more advanced checking status using API calls, RPC or SNMP. When associated with an ADC, information could be shared using a specific proprietary protocol to obtain information on the health of the application such as the number of servers online in a pool, the number of active sessions or users connected.