Zeus ZXTM LB Management
Many of today's most challenging load balancing issues involve recognizing and understanding the nature of individual application requests and responses. ZXTM Load Balancer can read and understand requests, and then direct appropriately.
Resilient Load Balancing
ZXTM Load Balancer allows you to create a fully fault-tolerant cluster of server machines by protecting against failures of back-end server nodes and front-end load balancer units. Providing that sufficient balancer and server machines are functioning, the cluster will continue to operate without failure.
If a server goes down, you need to know that your web sites will keep running. ZXTM Load Balancer can seamlessly handle server failure, redirecting traffic to a different, healthy machine without your customers ever knowing. What's more, because ZXTM Load Balancer can be deployed in fault-tolerant pairs, if a balancer machine is unavailable, another machine will automatically handle the traffic until the problem is fixed.
How can ZXTM Load Balancer ease the administration of my cluster?
ZXTM Load Balancer has a comprehensive and intuitive graphical user interface, allowing the management of multiple load balancers and clusters of servers. It is very easy to add or remove machines from the load- balanced cluster, balance new services, or to modify the content inspection rules.
The user interface provides comprehensive monitoring and diagnostics tools, allowing you to detect and diagnose a wide range of problems with any component of your load-balanced cluster.
How does ZXTM Load Balancer compare with a hardware load balancing solution?
ZXTM Load Balancer is a pure software application. It is built on top of the same high-performance core architecture as the award-winning Zeus Web Server and Zeus Extensible Traffic Manager.
As a result of its application awareness, ZXTM Load Balancer is best deployed close to the servers it is managing. If you need to make sophisticated internet traffic management decisions, and need to closely monitor the health of the services you are hosting, ZXTM Load Balancer is optimally suited for this environment.
ZXTM Load Balancer offers far more than a traditional load balancing solution. Its traffic management capabilities bring much more flexibility and fine-grained application layer control than is possible with most pure- hardware load balancing solutions. Because ZXTM Load Balancer supports a range of platforms and operating systems and runs on standard hardware, its performance can easily and cost-effectively be grown as required.
What configurations of ZXTM Load Balancer are possible?
The basic architecture of a load-balanced server farm consists of one or more front-end ZXTM Load Balancer machines, a number of back-end server machines. The ZXTM Load Balancers can be administered from either unit.
The front-end machines should be able to route traffic from the Internet to the back-end machines, and back from the back-ends to the Internet.
ZXTM Load Balancer is available in single and resilient cluster configurations. Clustered configurations offer the benefits of increased capacity and fault-tolerance to front-end failures.
Does ZXTM Load Balancer introduce a single point of failure?
A single front-end ZXTM Load Balancer can introduce a single point of failure to a load-balanced cluster. The ZXTM Load Balancer software is designed to operate in a robust manner, but should the hardware or operating system fail for whatever reason, your load-balanced cluster would be unavailable. The solution is to run a fault-tolerant cluster of front-end machines. The machines monitor each other, and can take over from each other if the other should fail.
This is achieved by floating traffic IP addresses. The load balancers receive traffic on these IP addresses, and each load balancer in a fault-tolerant pair monitors its partner. If one machine were to fail, the other balancer machine takes over its traffic IP address.
This fail-over behavior is completely transparent; any clients that subsequently use the cluster get no indication that a machine has failed and fail-over has occurred. When the first balancer recovers, it regains its traffic IP address and the second balancer relinquishes it.
What are the benefits of a high-availability cluster?
Studies have shown that service downtime, even for relatively brief periods, cause major losses of revenue, staff hours, and customer confidence. It is therefore no longer acceptable to be running mission-critical or revenue-generating services without some kind of redundancy built-in.
By deploying a fault-tolerant pair of ZXTM Load Balancers, and ensuring that there is sufficient redundancy in your server farm, you can protect yourself against hardware or software failures in your load balanced cluster.
How does ZXTM Load Balancer protect back-end services?
ZXTM Load Balancer provides fail-over management of back-end services. If you had four back-end servers and one was to fail, ZXTM Load Balancer will automatically direct all network traffic to the remaining three servers.
How does ZXTM Load Balancer identify a back-end failure?
ZXTM Load Balancer identifies a back-end failure when either:
- It cannot connect to the back-end
- The back-end unexpectedly closes the connection
- The back-end fails to respond to the connection
These conditions can be provoked by a number of circumstances:
- The back-end machine has completely failed due to a hardware or operating system fault
- The back-end machine has intentionally been shut down for maintenance reasons
- One of the services running on the back-end machine has stopped or failed
- The back-end machine is excessively loaded and cannot respond to requests within an acceptable time
If any of these conditions occur repeatedly, the ZXTM Load Balancer will mark the back-end machine as 'dead' and raise an appropriate alert to the system administrator. It will stop sending traffic to the back-end.
In time, the ZXTM Load Balancer will begin to speculatively send traffic to the failed back-end. If the back-end does not respond, the ZXTM Load Balancer will resend the traffic to another, known good back-end server. If the back-end does respond, the ZXTM Load Balancer will mark the back-end machine as 'alive' and will gradually increase the number of connections it sends the that machine until it is fully reintroduced back into the cluster.
Consequently, none of the back-end machines introduce a single point of failure in your load-balanced cluster.
Why do load balancers need to be able to inspect requests?
Perhaps you have a variety of web servers with different capabilities: Windows servers dedicated to hosting ASP pages; powerful servers for hosting Java applications; servers tuned for high-speed serving of static content; or perhaps you need to implement quality-of-service standards and want to reserve several of your web servers for the exclusive use of premium, paid-for visitors to your web site.
ZXTM Load Balancer can be configured with rules that identify the roles of back-end server nodes. ZXTM Load Balancer can then inspect incoming application requests and forward them to the most appropriate back-end server node.
How does ZXTM Load Balancer manage persistent sessions?
Many complex applications maintain a large amount of information about each user. For example, an e-commerce application may have to store the details of the items that each user has in their shopping basket, as well as their payment status.
Such applications often store their state locally, and hence do not run well in a clustered environment. Sharing and updating the state across all the application servers in the cluster may be difficult or even impossible. To deal with this problem, the front-end load balancer must ensure that all requests in the same user's 'session' are routed to the same back-end application server.
ZXTM Load Balancer can achieve this in a variety of ways. The simplest and most transparent way is to employ ZXTM Load Balancer's 'Session Affinity', which allows individual URL mappings to be specified as 'sticky'. All requests that match a particular criteria can be directed to the same cluster of machines, and sessions are automatically honored.
How can I remove back-ends from the cluster without disrupting sessions?
Session persistence is a powerful tool, until you need to remove or shut down a back-end server machine. Once the machine is unavailable, all the existing sessions to that machine will fail.
ZXTM Load Balancer also allows you to indicate that a back-end machine should stop receiving new connections; this is referred to as 'draining connections' from the back-end. When ZXTM Load Balancer is draining a machine, it stops sending new connections to that machine. However, it will forward established session connections to the machine so that the session is not disrupted.
ZXTM Load Balancer indicates how long each back-end has been idle for. This helps you judge whether or not all existing sessions have timed out, and hence when it is safe to remove the back-end from the cluster.
How can ZXTM Load Balancer protect back-end servers nodes from becoming overloaded?
ZXTM Load Balancer (ZXTM LB) is continually monitoring the performance of each of the server nodes in your cluster. If a node is becoming slower to respond, perhaps because it has received some complex requests, ZXTM LB will send it fewer requests until it has a chance to recover.
How does ZXTM Load Balancer choose to which server it sends requests?
Simple load balancing techniques like round-robin or weighted round-robin balancing fail to extract the maximum possible performance from a cluster of machines, particularly when the machines have different capabilities, or if different requests can generate different loads.
ZXTM Load Balancer strives to provide the best possible degree of responsiveness from your server cluster by dynamically measuring the response time and number of connections for each server machine, and making request forwarding decisions based on this.
In addition, ZXTM Load Balancer inspects every incoming HTTP request and makes further request forwarding decisions using several advanced dynamic algorithms. These algorithms seek to preserve HTTP sessions between a client and the back-end server, and to optimize the use of the back-end server caches to effectively distribute the content of the web sites across all the servers in parallel. This brings extreme efficiency in content delivery, giving visitors better performance and IT managers better utilisation of their hardware.
How does ZXTM Load Balancer enhance the responsiveness of web caches and web servers?
ZXTM Load Balancer provides maximum speed gains for large web sites by not only spreading the workload across the back-end servers, but by arranging for the re-use of the local cache of individual back-end server nodes, using a cache affinity algorithm.
This ensures that wherever possible, requests for the same resource are directed to the same back-end server. That back-end server is likely to have that resource in its local cache, so it is likely that it can deliver the resource more quickly than other servers in the cluster.
This feature has the useful side-effect that the entire cache for a web site is effectively spread across the entire cluster. The size of the effective cache is the sum of the cache sizes of all the servers in the cluster. Without this feature, the effective cache size would be the average cache size of the machines in the cluster.
Does ZXTM Load Balancer support HTTP Keep-Alives?
ZXTM Load Balancer fully understands the HTTP protocol, and is able to split apart and reassemble HTTP Keep-Alive connections on the fly.
An HTTP Keep-Alive connection is a persistent connection that can be reused multiple times for different requests. Using Keep-Alive connections increases performance by reducing the setup time for each request, and reduces the resource usage by reducing the number of ephemeral ports that are required.
The ZXTM Load Balancer maintains Keep-Alive connections to the back-end servers. Even if the load balanced cluster were to be accessed by a client that could not handle Keep-Alive connections, the ZXTM Load Balancer would send the requests down an existing or new Keep-Alive connection to a back-end server, thus optimizing the network usage of the request.
The ZXTM Load Balancer can even create Keep-Alive connections to the client when the back-end web server is not able to. If the back-end web server provides sufficient auxiliary information, the ZXTM Load Balancer will honour a client's request for a Keep-Alive connection even if the web server were to terminate the connection.