Method and apparatus for load balancing within a computer system
AssigneeCisco Technology, Inc.
InventorsDarran Potter, Andrew Clymer
Life of this patent
Estimating the term…
Abstract
A method and apparatus for load balancing within a computer system makes use of client MAC addresses, reduced modulo N, to direct client requests to a particular server within a server farm. The method is particularly applicable to load balancing applied to AAA servers. In the preferred embodiments, the method can handle failovers and fail-back with few or no aborted authentications.
Claims25
A method of load-balancing within a computer system, comprising:
- (a) receiving a message representative of a request for computer resources from a supplicant, said message including a unique supplicant identifier;
- (b) extracting the supplicant identifier from said message;
- associating the supplicant with one of a plurality of available resources in dependence upon the supplicant identifier;
- storing said association on a load balancing server that is coupled to and logically interposed between the supplicant and the available resources;
- on receipt of a further message including message information from said supplicant, using said association to direct said message information, as originally received, toward said one resource;
- and
- recording supplicant identifiers as messages are received, and storing each said respective identifier in an identifier look-up table against the respective resource with which it has been associated;
- and
- maintaining a function look-up table, the table storing an identifier of each available resource for each possible output of a mapping function based on the supplicant identifier, and in which,
- if no entry currently exists in the identifier look-up table on receipt of a message from a supplicant, making the association in dependence upon the function look-up table, and
- writing a new entry to the identifier look-up table;
- wherein the method is performed by one or more computing devices.
A computer readable volatile or non-volatile medium storing a sequence of instructions which, when executed on a processor, cause said processor to carry out the steps of:
- (a) receiving a message representative of a request for computer resources from a supplicant, said message including a unique supplicant identifier;
- (b) extracting the supplicant identifier from the message;
- (c) associating the supplicant with one of a plurality of available resources in dependence upon a function of the supplicant identifier;
- (d) recording supplicant identifiers as messages are received, and storing each said respective identifier in an identifier look-up table against the respective resource with which it has been associated;
- (e) storing said association on a load balancing server that is coupled to and logically interposed between the supplicant and the available resources;
- (f) on receipt of a further message including message information from said supplicant, using said association to direct said message, as originally received, information toward said one resource;
- (g) maintaining a function look-up table, the function look-up table storing an identifier of each available resource for with each possible output of a mapping function based on the supplicant identifier, and in which, if no entry currently exists in the identifier look-up table on receipt of a message from a supplicant, making the association in dependence upon the function look-up table, and writing a new entry to the identifier look-up table.
An apparatus for load-balancing within a computer system, said apparatus comprising:
- one or more processors;
- (a) means for receiving a message representative of a request for computer resources from a supplicant, said message including a unique supplicant identifier;
- (b) means for extracting the supplicant identifier from the message;
- (c) means for associating the supplicant with one of a plurality of available resources in dependence upon a function of the supplicant identifier;
- (d) means for recording supplicant identifiers as messages are received, and storing each said respective identifier in an identifier look-up table against the respective resource with which it has been associated;
- (e) means for storing said association on a load balancing server that is coupled to and logically interposed between the supplicant and the available resources;
- (f) means for using said association, on receipt of a further message including message information from said supplicant, to direct said message information, as originally received, toward said one resource;
- and
- (g) means for maintaining a function look-up table, the function look-up table storing an identifier of each available resource for each possible output of a mapping function based on the supplicant identifier, and in which,
- if no entry currently exists in the identifier look-up table on receipt of a message from a supplicant, making the association in dependence upon the function look-up table, and
- writing a new entry to the identifier look-up table.
An apparatus for load-balancing within a computer system, said apparatus comprising:
- (a) a network interface for receiving a message representative of a request for computer resources from a supplicant, said message including a unique supplicant identifier;
- (b) a processor carrying a stored sequence of instructions which, when executed, cause said processor to carry out the steps of:
- (i) extracting the supplicant identifier from the message;
- (ii) associating the supplicant with one of a plurality of available resources in dependence upon a function of the supplicant identifier;
- (iii) recording supplicant identifiers as messages are received, and storing each said respective identifier in an identifier look-up table against the respective resource with which it has been associated
- (iv) storing said association on a load balancing server that is coupled to and logically interposed between the supplicant and the available resources;
- (v) maintaining a function look-up table, the table storing an identifier of each available resource for each possible output of a mapping function based on the supplicant identifier, and in which,
- if no entry currently exists in the identifier look-up table on receipt of a message from a supplicant, making the association in dependence upon the function look-up table, and
- writing a new entry to the identifier look-up table;
- and
- (c) a switching system for switching which, on receipt of a further message including message information from said supplicant, uses said association to direct said message information, as originally received, toward said one resource.
Dependencies are inferred from the claim text.