« ZurückWeiter »
METHOD AND SYSTEM TO CLEAR
COUNTERS USED FOR STATISTICAL
TRACKING FOR GLOBAL SERVER LOAD
CROSS-REFERENCE TO RELATED
The present application is a continuation-in-part of U.S. application Ser. No. 10/211,822, entitled "STATISTICAL 10 TRACKING FOR GLOBAL SERVER LOAD BALANCING," filed Aug. 1,2002, assigned to the same assignee as the present application, and which is incorporated herein by reference its entirety.
BACKGROUND OF THE INVENTION
1. Field of the Invention
This disclosure relates generally to load balancing among servers. More particularly but not exclusively, the present 20 disclosure relates to clearing counters that have been used in connection with tracking data associated with operation of load balancing systems that provide the address of a server expected to serve the client with a high performance in a given application. 25
2. Description of the Related Art
Under the TCP/IP protocol, when a client provides a symbolic name ("URL") to request access to an application program or another type of resource, the host name portion of the URL needs to be resolved into an IP address of a server for 30 that application program or resource. For example, the URL (e.g., http colon double slash www dot foundrynet dotcom slash index dot htm) includes a host name portion www.foundrynet.com that needs to be resolved into an IP address. The host name portion is first provided by the client to a local 35 name resolver, which then queries a local DNS server to obtain a corresponding IP address. If a corresponding IP address is not locally cached at the time of the query, or if the "time-to-live" (TTL) of a corresponding IP address cached locally has expired, the DNS server then acts as a resolver and 40 dispatches a recursive query to another DNS server. This process is repeated until an authoritative DNS server for the domain (e.g., foundrynet.com, in this example) is reached. The authoritative DNS server returns one or more IP addresses, each corresponding to an address at which a server 45 hosting the application ("host server") under the host name can be reached. These IP addresses are propagated back via the local DNS server to the original resolver. The application at the client then uses one of the IP addresses to establish a TCP connection with the corresponding host server. Each 50 DNS server caches the list of IP addresses received from the authoritative DNS for responding to future queries regarding the same host name, until the TTL of the IP addresses expires.
To provide some load sharing among the host servers, many authoritative DNS servers use a simple round-robin 55 algorithm to rotate the IP addresses in a list of responsive IP addresses, so as to distribute equally the requests for access among the host servers.
The conventional method described above for resolving a host name to its IP addresses has several shortcomings. First, 60 the authoritative DNS server does not detect a server that is down. Consequently, the authoritative DNS server continues to return a disabled host server's IP address until an external agent updates the authoritative DNS server's resource records. Second, when providing its list of IP addresses, the 65 authoritative DNS server does not take into consideration the host servers' locations relative to the client. The geographical
distance between the server and a client is a factor affecting the response time for the client's access to the host server. For example, traffic conditions being equal, a client from Japan could receive better response time from a host server in Japan than from a host server in New York. Further, the conventional DNS algorithm allows invalid IP addresses (e.g., that corresponding to a downed server) to persist in a local DNS server until the TTL for the invalid IP address expires.
One technique to address these shortcomings is a global server load balancing system provided by Foundry Networks, Inc. of San Jose, Calif. As one example, Foundry provides the Serverlron product to add intelligence to authoritative DNS servers by serving as a proxy to these servers. The Serverlron has a global server load balancing (GSLB) feature that intelligently uses health-checks and other methods to assess the availability and responsiveness of the host sites in the DNS reply. When necessary, the Serverlron exchanges the IP address at the top of the address list returned by the authoritative DNS with another IP address selected from the list, based on a set of performance metrics indicative of which particular host server may provide the optimum access. Thus, the GSLB feature ensures that a client always receives a DNS reply for a host site that is available and is the best choice among the available hosts. Example embodiments for global server load balancing are disclosed in U.S. application Ser. No. 09/670,487, entitled "GLOBAL SERVER LOAD BALANCING," filed Sep. 26,2000, assigned to the same assignee as the present application, and which is incorporated herein by reference its entirety.
While this GSLB technique provides improvements in server load balancing, it would be beneficial to be able to provide GSLB operation-related data for purposes of deployment planning, trouble-shooting, maintenance, and the like, for instance.
BRIEF SUMMARY OF THE INVENTION
One aspect of the present invention provides a method for a load balancing system. The method includes determining if at least one counter in the load balancing system has data therein that is indicative of selection of an address as an optimum address. If it is determined that the at least one counter has the data therein, the method clears the at least one counter without interruption of service in the load balancing system.
BRIEF DESCRIPTION OF THE SEVERAL
VIEWS OF THE DRAWINGS
FIG. 1 illustrates a global server load-balancing configuration with which one embodiment of the invention may be implemented.
FIG. 2A illustrates in a flowchart one embodiment of a method for tracking data related to global server load balancing.
FIG. 2B illustrates in a flowchart one embodiment of a method for clearing counters that have tracked data in accordance with the method of FIG. 2A.
FIG. 3 is a block diagram showing the functional modules of a GSLB switch and a site switch relevant to tracking data associated with the global server load balancing operation, including counter(s) that can be cleared in accordance with one embodiment of the invention.
Embodiments of techniques to clear counters or other data repositories used for statistical tracking associated with load
balancing among servers are described herein. In the following description, numerous specific details are given to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the 5 specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
Reference throughout this specification to "one embodi- 10 ment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" in various places 15 throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
As an overview, one embodiment of the invention provides 20 a method to track load-balancing operation-related data, such as data associated with a system configured for GSLB that orders IP addresses into a list based on a set of performance metrics. Such operation-related data can include, but not be limited to, inbound source IP addresses (e.g., the address of 25 the originator of a DNS request), the requested host and zone, an identification and count of the selected "best" IP addresses, the selection metric used to decide on a particular best IP address, a count of the number of times a particular metric was used as a deciding factor in selection of the best IP 30 addresses, percentage selection of one IP address withrespect to other candidates for the domain name, and others.
As an example, one of the performance metrics may be a health check associated with querying, either periodically or on demand, host servers and relevant applications hosted on 35 the host servers to determine the "health" (e.g., whether or not it is available). If, for illustrative purposes, the tracking data shows that out of 100 DNS queries, the health check metric was used as the deciding factor 95 times, then this situation may indicate that several servers may be "down," since it 40 suggests that at least some of the servers are failing the health check. System maintenance personnel may then be dispatched to repair the downed servers, or to configure or install new servers that can assist in balancing the load.
In one embodiment, such load-balancing operation-related 45 data can be provided and logged to a server, such as a system log (or "syslog") server. Alternatively or in addition to the syslog server, one or more counters or other type of data repository can be used to keep track of the counts and other tracked data. The tracking feature can be enabled/disabled as 50 needed, such as disabling the feature when reporting or troubleshooting is not required.
However, even if this GSLB operation-related data is gathered, there are situations where storage locations of this data need to be cleared, so that new data can be stored and/or new 55 parameters can be calculated. Typically, this data-clearing operation would have to involve reloading of the system (e.g., reinstallation of a GSLB switch). In many situations, system reloading is not feasible or practical, since doing so would require temporarily disabling active connections or otherwise 60 generating system downtime.
According to one embodiment of the invention, the counters are used in connection with at least some of the metrics, such as a least response metric that favors an IP address that has been selected the least number of times when 65 compared to other candidates—the counter(s) keep a count of instances when an IP address is selected. One embodiment of
the invention provides the ability to clear such counters in certain situations, such as to prevent a particular IP address from being flooded with traffic after it comes back online— clearing the counters for the zone in this situation can prevent this undesirable consequence, since all IP addresses for that zone would be considered equal by the least response metric.
Moreover, clearing counters can be performed by one embodiment of the invention without having to reload the GSLB switch, thereby avoiding the risk of communication disruption or other service interruption. Counters may be cleared on a per-zone basis or globally for all zones configured for GSLB. Other uses of the counter-clearing feature include, but are not limited to, testing a GSLB implementation, analyzing the effectiveness of each GSLB metric by adjusting the metric order, performing an initial system start (such as a "cold start" when the system has just come online and DNS requests have not yet been served), and others.
FIG. 1 illustrates one example global server load-balancing configuration with which an embodiment of the invention may be used. As shown in FIG. 1, a GSLB switch 12 is connected to an Internet 14 and acts as a proxy to an authoritative Domain Name System (DNS) server 16 for the domain "foundrynet.com" (for example). That is, while the actual DNS service is provided by DNS server 16, the IP address known to the rest of the Internet 14 for the authoritative DNS server of the domain "foundrynet.com" is a virtual IP (VIP) address configured on GSLB switch 12. Of course, DNS server 16 can also act simultaneously as an authoritative DNS for other domains. GSLB switch 12 communicates, via Internet 14, with site switches 18A and 18B at site 20, site switches 22A and 22B at site 24, and any other similarly configured site switches. Site switch 18A, 18B, 22A and 22B are shown, for example, connected to routers 19 and 21 respectively and to servers 26A, . . ., 261, . . . 26N. Some or all of servers 26A, . .., 261,..., 26Nmay host application server programs (e.g., http and ftp). These host servers are reached through site switches 18A, 18B, 22A and 22B using one or more virtual IP addresses configured at the site switches, which act as proxies to the host servers. A suitable switch for implementing either GSLB switch 12 or any of site switches 18A, 18B, 22A and 22B is the "Serverlron" product available from Foundry Networks, Inc. of San Jose, Calif.
FIG. 1 also shows a client program 28 connected to Internet 14, and communicates with local DNS server 30. When a browser on client program 28 requests a web page, for example, using a Universal Resource Locator (URL), such as http colon double slash www dot foundrynet dotcom slash index dot htm, a query is sent to a local DNS server 30 to resolve the symbolic host name www dot foundrynet dotcom to an IP address of a host server. The client program 28 receives from DNS server 30 a list of IP addresses corresponding to the resolved host name. This list of IP addresses is either retrieved from local DNS server 30's cache, if the TTL of the responsive IP addresses in the cache has not expired, or obtained from GSLB switch 12, as a result of a recursive query. Unlike the prior art, however, this list of IP addresses is ordered by GSLB switch 12 based on performance metrics as described in further detail in U.S. application Ser. No. 09/670,487 referenced above; in U.S. application Ser. No. 10/206,580, entitled "GLOBAL SERVER LOAD BALANCING," filed Jul. 25, 2002, with inventors Sunanda L. Kommula et al. (disclosing embodiments of a connection-load metric for GSLB); in U.S. application Ser. No. 10/305,823, entitled "DISTRIBUTED HEALTH CHECK FOR GLOBAL SERVER LOAD BALANCING," filed Nov. 27, 2002, with inventor Prajakta S. Joshi et al. (disclosing embodiments for distributing health check tasks