Method and apparatus for load balancing within a computer system
First Claim
Patent Images
1. 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, andwriting a new entry to the identifier look-up table;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
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.
61 Citations
25 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. 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.
-
-
22. 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.
-
-
23. 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. - View Dependent Claims (24, 25)
-
Specification