|
Cisco LocalDirector (see Figure 1-1) is a network appliance with a secure, real-time, embedded operating system that intelligently load balances TCP/IP traffic across multiple servers. Delivering very fast performance by distributing client requests across a cluster of low-cost servers, LocalDirector dramatically reduces the cost of providing large-scale Internet services, and speeds user access to those applications.
LocalDirector serves as a transparent learning bridge to forward data packets between its interfaces. Because of its bridge capability, LocalDirector must not be installed on the network parallel to another bridge.
The load-balancing options of LocalDirector provide a flexible and adaptable method for directing TCP/IP traffic. You can configure LocalDirector to maximize the number of TCP/IP connections a server farm can manage. TCP/IP traffic is directed to different servers based on service, speed, quantity of connections, or client IP address. The real servers can be a collection of heterogeneous hardware platforms and operating systems.
Ideal for mission-critical applications, LocalDirector provides the capability to build a highly redundant and fault-tolerant server system. Servers are automatically and transparently placed in and out of service, providing fault tolerance for servers. LocalDirector itself is equipped with an optional hot-standby failover mechanism, building increased redundancy for the server system. Quick setup with no network address changes reduces system administration time.
LocalDirector has these features:
LocalDirector protects your network by only allowing specific traffic to pass between virtual and real servers, thus restricting both internal and external access to servers. LocalDirector security features include the following:
LocalDirector concepts covered in this section include the following:
The following are LocalDirector terms and definitions:
Virtual servers present a single address for a group of real servers and load-balance service requests between the real servers in a site. Real servers are actual host machines with unique IP addresses that provide TCP/IP services to the network. The virtual server IP address is published to the user community, but the real IP addresses can remain unpublished, allowing you to hide actual site implementation details and provide single points of contact for users.
Virtual server addresses can only be accessed from the client side of LocalDirector. Also, clients and the real servers bound to LocalDirector virtual servers cannot be located on the same side of the LocalDirector.
When you define virtual and real servers, you can specify the port traffic that will run on them. This provides the following benefits:
"Port-bound Servers" in Chapter 4, "Installing and Configuring LocalDirector" provides a configuration example.
This feature allows clients to get load balanced to different real servers according to their source IP address. This is accomplished by extending the concept of a virtual server to include a bind-id. The bind-id is used with the assign command to associate a client IP address with a specific instance of a virtual server.
There are many possible uses of this feature, including:
If a server is not responding to requests or responding with TCP RSTs, LocalDirector will fail the server. There are two cases when a real server will respond with a TCP RST:
Values set with the reassign and threshold commands are used to determine if a server is considered failed, and these commands can be used to adjust how quickly a server that is not accepting connections will be taken out of service. The default threshold value is 8, and the default reassign value is 3. Each real server can have different threshold and reassign values.
The reassign command controls how many times a packet from a requesting client is sent to a non-responding server before it is reassigned to another server. The default is three attempts. After the third packet receives no response or a TCP RST from the server, the fourth packet is sent to another server.
Each reassign process increments the reassign tally by one. When the tally reaches the threshold value, the server is considered failed. With a default threshold value of 8, the reassign process will happen eight times before the server is considered failed.
To increase how quickly servers are considered failed, reduce the threshold and reassign values. To keep servers that are refusing connections from being failed by the LocalDirector, increase the threshold and reassign values. (For example, a site receiving 400 connections per second may need to increase the threshold value to 30.)
The retry command determines how quickly a server is put in "testing" mode and given another packet after being failed by this process. The retry default is 60 seconds. On the sixty first second, a connection from a virtual server will be directed to the server to determine if it responds. If that connection receives a response, the server is no longer in the failed state, and it will be put back in-service with the reassign and threshold tallies reset to zero. To increase how quickly a server is given a packet after being failed by LocalDirector, reduce the value of the retry command.
When autounfail is on (it is by default), LocalDirector will bring the server back in-service as soon as it responds to an existing connection. This will bring a server back in service before waiting for the retry time to pass, and it will only work with servers that are responding with data.
Use the data command to limit the number of connections sent to a server that is not sending data. When a real machine reaches the number of unanswered connections set with the data command, the LocalDirector will check to see if other machines bound to the virtual server are also at 80 percent of their threshold capacity (DataIn value). If the other machines are close to reaching this value, then the LocalDirector assumes the site is busy and will not fail the machine.
The timeout command is used to set the number of minutes an idle connection to the server will be maintained. This will prevent incomplete connections from being counted toward LocalDirector load balancing.
When a real server is failed (it does not respond to a predetermined number of connections set by the threshold command), the following process is used to test the real server to see if it is ready to accept more connections:
Previously, a server brought into service under heavy network traffic would be bombarded with connections since it had zero connections. The effect of too many connections at once would disable servers or seriously decrease their performance.
An automatic slowstart algorithm is available to help bring new servers up to speed with the weighted or leastconns predictor options. The slowstart option can be set to roundrobin or none. The roundrobin slowstart option will load balance network connections until network traffic is stable. When the number of connections on all bound real servers is within 80 percent of the desired distribution, the predictor will switch to either weighted or leastconns, as specified in the configuration.
Slowstart is used when:
|