Load balancing using distributed forwarding agents with application based feedback for different virtual machines
First Claim
1. A method of selecting a server to handle a connection, comprising:
- receiving at a service manager at a first network node a connection request intercepted by a particular one of a plurality of forwarding agents that are each configured to intercept a subset of the connection requests associated with a network address and operative to receive instructions from the service manager, at least one of the plurality of forwarding agents being located at a second network node different than the first network node, the plurality of forwarding agents being configured to intercept collectively all connection requests associated with the network address by each being configured to intercept a subset of said connection requests, such that the task of intercepting and processing said connection requests is distributed among them, the connection request having been forwarded from the particular one of the plurality of forwarding agents to the service manager;
selecting at the service manager a preferred server from among a group of available servers, the preferred server being the server that is to service the connection request;
sending instructions from the service manager to the particular one of the plurality of forwarding agents, the instructions including the preferred server that is to service the connection request so that the connection request may be forwarded from the particular one of the plurality of forwarding agents to the preferred server, the instructions operable to allow the particular one of the forwarding agents to forward further requests associated with the connection request without further intervention by the service manager;
whereby connection requests associated with the network address may be processed in a distributed manner, without requiring that all connection requests associated with the network address be processed by a single appliance forwarding agent located at a single node through which all such connection requests must pass.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method are described for selecting a server to handle a connection. The method includes receiving at a service manager a connection request intercepted by a network device having a forwarding agent that is operative to receive instructions from a service manager, the connection request having been forwarded from the forwarding agent on the network device to the service manager. A preferred server is selected at the service manager from among a group of available servers. The preferred server is the server that is to service the connection request. Instructions are sent from the service manager to the forwarding agent. The instructions include the preferred server that is to service the connection request so that the connection request may be forwarded from the network device to the preferred server.
188 Citations
29 Claims
-
1. A method of selecting a server to handle a connection, comprising:
-
receiving at a service manager at a first network node a connection request intercepted by a particular one of a plurality of forwarding agents that are each configured to intercept a subset of the connection requests associated with a network address and operative to receive instructions from the service manager, at least one of the plurality of forwarding agents being located at a second network node different than the first network node, the plurality of forwarding agents being configured to intercept collectively all connection requests associated with the network address by each being configured to intercept a subset of said connection requests, such that the task of intercepting and processing said connection requests is distributed among them, the connection request having been forwarded from the particular one of the plurality of forwarding agents to the service manager; selecting at the service manager a preferred server from among a group of available servers, the preferred server being the server that is to service the connection request; sending instructions from the service manager to the particular one of the plurality of forwarding agents, the instructions including the preferred server that is to service the connection request so that the connection request may be forwarded from the particular one of the plurality of forwarding agents to the preferred server, the instructions operable to allow the particular one of the forwarding agents to forward further requests associated with the connection request without further intervention by the service manager; whereby connection requests associated with the network address may be processed in a distributed manner, without requiring that all connection requests associated with the network address be processed by a single appliance forwarding agent located at a single node through which all such connection requests must pass. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of selecting a server to handle a connection from among a group of available servers including:
-
receiving at a first network node a message that includes a plurality of weights, each of the plurality of weights indicating a capacity of an individual server in the group of available servers to process connections corresponding to a plurality of virtual IP addresses; determining a preferred server from among the group of available servers for handling an incoming connection based on the plurality of weights; and directing a a particular one of a plurality of forwarding agents upon initiation of the connection to forward packets for the connection to the preferred server; forwarding packets from the particular one of the plurality of forwarding agents to the preferred server without further intervention external to the particular one of the plurality of forwarding agents; wherein the plurality of forwarding agents are configured to intercept collectively all connection requests associated with at least one virtual IP address of the plurality of virtual IP addresses by each being configured to intercept a subset of said connection requests, such that the task of intercepting and processing said connection requests is distributed among them. - View Dependent Claims (23, 24, 25)
-
-
26. A service manager that selects a server to handle a connection from among a group of available servers including:
-
a first communications interface configured to receive at a first network node and process messages that include a plurality of weights, the plurality of weights indicating the capacity of an individual server in the group of available servers to process connections corresponding to a plurality of virtual IP addresses; a database that is configured to store the weights from the messages; a processor that is configured to select a preferred server from among the group of available servers for handling an incoming connection based on the stored weights; and a second communications interface configured to communicate the preferred server to a forwarding agent, the forwarding agent operable to forward packets to the preferred server without further intervention by the service manager; wherein the forwarding agent comprises one of a plurality of forwarding agents, at least one of which is located at a second network node different than the first network node, the plurality of forwarding agents being configured to intercept collectively all connection requests associated with at least one virtual IP address of the plurality of virtual IP addresses by each being configured to intercept a subset of said connection requests, such that the task of intercepting and processing said connection requests is distributed among them. - View Dependent Claims (27)
-
-
28. A computer program product for selecting a server to handle a connection embodied in a computer readable medium comprising computer instructions for:
-
receiving a connection request at a forwarding agent that is configured to intercept a subset of the connection requests associated with a network address and operative to receive instructions from a service manager located at a first network node; forwarding the connection request from the forwarding agent to the service manager; selecting at the service manager a preferred server from among a group of available servers, the preferred server being the server that is to service the connection request; sending instructions from the service manager to the forwarding agent, the instructions including the preferred server that is to service the connection request; and forwarding the connection request from the forwarding agent to the preferred server; forwarding further requests associated with the connection request from the forwarding agent to the preferred server without further intervention by the service manager; wherein the forwarding agent comprises one of a plurality of forwarding agents, at least one of which is located at a second network node different than the first network node, the plurality of forwarding agents being configured to intercept collectively all connection requests associated with the network address by each being configured to intercept a subset of said connection requests, such that the task of intercepting and processing said connection requests is distributed among them.
-
-
29. A computer program product for selecting a server to handle a connection from among a group of available servers embodied in a computer readable medium comprising computer instructions for:
-
receiving at a first network node messages that include a plurality of weights, the plurality of weights indicating a capacity of each individual server in the group of available servers to process connections corresponding to a plurality of virtual IP addresses; storing the weights from the messages; selecting a preferred server from among the group of available servers for handling an incoming connection based on the stored weights; and communicating the preferred server to a forwarding agent; forwarding packets from the forwarding agent to the preferred server without further intervention external to the forwarding agent; wherein the forwarding agent comprises one of a plurality of forwarding agents, at least one of which is located at a second network node different than the first network node, the plurality of forwarding agents being configured to intercept collectively all connection requests associated with at least one virtual IP address of the plurality of virtual IP addresses by each being configured to intercept a subset of said connection requests, such that the task of intercepting and processing said connection requests is distributed among them.
-
Specification