Terms

Load Balancing (LB): The process of controlling the distribution of inbound IP traffic to multiple servers to enhance the performance and to minimize the effects of a single server failure. This is typically used decrease service downtime by allowing multiple servers to handle service requests. The load balancer is used to determine which server is available to receive the traffic (and which one should receive the traffic based on pre-determined server metrics).

LB Cluster: The Planet utilizes a highly available load balancer cluster solution. Each node in the cluster is aware of the other nodes. The individual nodes monitor the health of all other nodes in the cluster. If one node falters, others are able to handle assigned services accordingly.

Virtual Service: In order for the LB to handle services for a given protocol for a customer, it is configured with a Virtual Service. That Virtual Service represents the customer’s requested protocol on the assigned IP address. When a customer is assigned a LB IP address, and wants to LB web services (HTTP), a virtual service is configured for that IP and protocol and assigned to the customer.

Farm/Pool: A server farm or server pool is made up of a customer’s servers. If a customer wants to LB web services (HTTP), the customer will configure the LB to balance the traffic across a number of servers. Those servers make up the server farm (aka server pool).

Node/Server: A node is a given server in a load balanced server farm.

Health Check: The LB is capable of monitoring the nodes in a server farm. If a customer has the LB configured to balance web services (HTTP), the LB can be configured to monitor the health of the HTTP services on each server. Each time the LB checks, it is performing a “health check” of that server. If the health check fails, the server can be automatically taken out of the active server farm.

Load Balancing Method:
Round Robin - Assign requests in turn to each node.
Weighted Round Robin - Assign requests in turn to each node, according to their weights.
Perceptive - The best algorithm to use for real traffic: predict the most appropriate node using a combination of historical and current data.
Least Connections - Assign each request to the node with the fewest connections.
Fastest Response Time - Assign each request to the node with the fastest response time.
Random node - Choose a random node for each request.

Session Persistence:
No persistence - Individually load balance each request.
IP-based persistence - Send all requests from the same source address to the same node.
SSL Session ID persistence - Use the SSL Session ID to identify sessions.



FAQ

Do I have to use specific servers for the load balancing feature?
What IP addresses can I load balance?
What services/protocols can I load balance?
Can I load balance my database?
Can I make configuration changes to my load balancer options?
Do I have to have load balancer experience to setup this service?
If I'm load balancing multiple servers, how do i keep the data on my servers the same?
Will my log files show the end user's IP address or the load balancer's IP address?
If traffic is split between two or more servers, how do I get meaningful logs?
Is the load balancer itself highly available?
What is a typical load balance configuration?
Why would I want to setup a load balanced solution?
Can I load balance across more than two servers?
Can I load balance more than the default number of services/protocols?
Which type of load balancing method should I use?
Why would I need session persistence?
What content can I load balance?

Do I have to use specific servers for the load balancing feature?
No. You can use any server in The Planet/Server Matrix datacenters. You do not have to rent specific servers to utilize the LB feature.

What IP addresses can I load balance?
You can load balance across any IP’s assigned to you by The Planet/Server Matrix. You cannot load balance IP’s outside of The Planet's datacenters. You can load balance servers in different The Planet or Server Matrix datacenters.

What services/protocols can I load balance?
You can load balance any of the following protocols:
HTTP
HTTPS
FTP
POP3
SMTP
IMAPv4
DNS
Telnet
LDAP

Can I load balance my database?
No. The load balancing solution can not be used to keep databases in sync. There are other alternatives available for accomplishing this – MySQL's database replication feature, Microsoft's clustering ability, Oracle's hot standby capability, etc. The support staff is available to assist setting up some of the various options if necessary (fees may be incurred in configuring these options for you).

Can I make configuration changes to my load balancer options?
Yes. From Orbit, you can change many of the options that make up your load balancer solution. You may change the servers/IP addresses referenced by the LB, the services/protocols that are load balanced, the front-end or back-end ports, the health check parameters, and load balancing method and several other options. Help is available inside Orbit to configure all of these settings.

Do I have to have load balancer experience to setup this service?
No. Any knowledge you have of load balancing is obviously helpful, but we hope we have made the Orbit interface simple enough that you can configure load balancing even if you've never done it before. And of course, help files inside Orbit and our support staff are available to you as needed.

If I'm load balancing multiple servers, how do I keep the data on my servers the same?
The load balancing solution does not sync data between servers. Depending on your architecture, there are many solutions available for doing this. One recommended method is to use a utility such as rsync to keep your data updated across multiple servers. Other options include mounting or mapping remote drives, creating custom scripts to copy files around, etc. The support staff is available to assist setting up some of the various options if necessary (fees may be incurred in configuring these options for you).

Will my log files show the end user's IP address or the load balancer's IP address?
By default load balancers generally only show "their" IP addresses in your server logs - not the end users' IP addresses. All of the requests to your servers would appear to come from the load balancer. For HTTP this is easily fixed for the purposes of logging. The load balancer will send an 'X-Cluster-Client-Ip' header, which you can then put into a LogFormat directive in apache. For example:

CODE
LogFormat "%{X-Cluster-Client-Ip}i %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" ZXTM


You then set the log format "nickname" to be Zeus in the virtualhost configuration on the nodes:

CODE
CustomLog /usr/local/www/vhosts/www.theplanet.com/logs/access_log ZXTM


This will cause the logs on the local nodes to reflect the end-users' IP addresses instead of the load balancer.

If traffic is split between two or more servers, how do I get meaningful logs?
The Planet/Server Matrix offers log file analysis for you. We store logs from the load balancer and analyze them for you using Urchin's Load Balancing option. Those log reports are then available to you via Orbit. Other options include writing your own utilities to combine log sources and then analyzing them, upgrading your Urchin license to include the ability to analyze multiple log sources, or utilizing other third party applications.

Is the load balancer itself highly available?
The load balancing solution is made up of an HA cluster for high availability. If one node fails, another node will pick up the services from the failed node and continue to route traffic appropriately. All nodes in the LB cluster are monitored very carefully by the NOC and engineering teams.

What is a typical load balance configuration?
One typical configuration is the example of load balancing a simple web site across two servers. You would first need to setup your two web servers with identical configurations and content. Both servers would be able to serve up your web site to users. You would then purchase the load balancing service. With that service, you would receive a new load balancing IP address. You would then point your www.domain.com DNS record to the load balanced IP. Lastly, you would setup the load balancing configuration from within Orbit to reference the IP addresses of each of your two servers. Customers would go to your web site at www.domain.com. That request would be directed at the load balancer. The load balancer would determine where to send that request based on settings you can configure (round robin, weighted, random, etc). The request would be forwarded to one of your servers. That server would respond back to the load balancer which would in turn send your request on to the end user. Please keep in mind that this is a very simplified explanation and there are many, many variations that can be employed to accomplish this.

Why would I want to setup a load balanced solution?
There are many reasons for wanting a load balanced solution in place. High availability, scalability and ease of maintenance are some of the most common. If you are load balancing across multiple servers and one of your servers fails, your service would still be available to your users because traffic would get routed to the other servers in your server farm. As traffic to your services increase, you can simply add more servers to your server farm. This would allow you to take on more traffic without setting up disparate systems for your customers to use. Also, if you have multiple servers in your farm, you can perform maintenance (upgrades, reboots, content changes, etc.,) without incurring downtime. You would simply remove one of your servers from the farm, perform your maintenance, put it back in the farm and repeat with the other servers. One of the advantages of this is that you can perform maintenance windows without incurring downtime. That means that you can be more flexible when scheduling your maintenance windows.

Can I load balance across more than two servers?
Yes. The default package enables you to load balance across two servers. You can upgrade your package to include as many servers as you would like. Please contact our sales team for more information.

Can I load balance more than the default number of services/protocols?
Yes. The default package enables you to load balance up to three services/protocols. You can upgrade your package to include as many services as you would like. Please contact our sales team for more information.

Which type of load balancing method should I use?
It really depends on your application and server hardware. The best metfshods to use are Perceptive and Fastest Response Time if you have servers that are similar in hardware specifications. If they are different hardware types then Weighed Round Robin might be a better solution because you can force the higher end server to take more requests.

Why would I need session persistence?
If you have any applications that require the end user to come back to the same server in order for data to be consistent then this option is helpful. Examples of these types of applications are shopping carts, cold fusion apps, PHP apps, and message forums.

What kind of servers and content can I load balance?
You can load balance any Server Matrix, Total Control, The Planet, or Insomnis365 servers as long as the content does not violate our AUP. MatrixExtreme (Unlimited Bandwidth) servers are also barred from being used as nodes behind the load balancer. For high-volume traffic sites, you should consider using a dedicated load balancer as it would give you better control and would better suit your needs.