Distributed server cluster for controlling network traffic
First Claim
1. A method of operating a server computer for controlling data traffic of a computer network, the method comprising:
- receiving network data traffic through a network interface that permits communication between the server computer and other computers;
communicating with a plurality of server computers that are all members of a first subnet of network addresses over which network data is sent and received, through a front layer of servers, wherein the communication includes state sharing information with a dynamic reconfiguration protocol that permits reassignment of network addresses among the front layer servers and specifies state information sharing and load information sharing among the front layer servers;
communicating with a plurality of network computers that are members of a second subnet of network addresses to send anal receive network data traffic;
determining if the data traffic is associated with a previous network communication session of an original server computer of the first subnet, prior to a network address reassignment for the original server computer;
responding to data traffic not associated with the previous network communications session of an original server computer by processing the data traffic; and
responding to data traffic that is associated with the previous network communication session with an original server computer by checking a record of network address assignments and identifying the original server computer associated with the previous network communications session and forwarding the data traffic to the identified original server computer.
9 Assignments
0 Petitions
Accused Products
Abstract
A scalable, distributed, highly available, load balancing server system having multiple machines is provided that functions as a front server layer between a network (such as the Internet) and a back-end server layer having multiple machines functioning as Web file servers, FTP servers, or other application servers. The front layer machines comprise a server cluster that performs fail-over and dynamic load balancing for both server layers. The operation of the servers on both layers is monitored, and when a server failure at either layer is detected, the system automatically shifts network traffic from the failed machine to one or more operational machines, reconfiguring front-layer servers as needed without interrupting operation of the server system. The server system automatically accommodates additional machines in the server cluster, without service interruption. The system operates with a dynamic reconfiguration protocol that permits reassignment of network addresses to the front layer machines. The front layer machines perform their operations without breaking network communications between clients and servers, and without rebooting of computers.
-
Citations
27 Claims
-
1. A method of operating a server computer for controlling data traffic of a computer network, the method comprising:
-
receiving network data traffic through a network interface that permits communication between the server computer and other computers;
communicating with a plurality of server computers that are all members of a first subnet of network addresses over which network data is sent and received, through a front layer of servers, wherein the communication includes state sharing information with a dynamic reconfiguration protocol that permits reassignment of network addresses among the front layer servers and specifies state information sharing and load information sharing among the front layer servers;
communicating with a plurality of network computers that are members of a second subnet of network addresses to send anal receive network data traffic;
determining if the data traffic is associated with a previous network communication session of an original server computer of the first subnet, prior to a network address reassignment for the original server computer;
responding to data traffic not associated with the previous network communications session of an original server computer by processing the data traffic; and
responding to data traffic that is associated with the previous network communication session with an original server computer by checking a record of network address assignments and identifying the original server computer associated with the previous network communications session and forwarding the data traffic to the identified original server computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
receiving data traffic for a pool of virtual network addresses serviced by the server computers of the first subnet;
determining that the received data traffic includes a data packet intended for a port connection at a different server computer of the first subnet; and
identifying a computer port assignment of the different server computer in the first subnet for which the data traffic is intended and performing an address translation function to route the data packet to the different server computer.
-
-
4. A method as defined in claim 3, wherein determining a port connection of the received data traffic comprises determining that the data packet relates to a port connection that is not in a list of port connections, and wherein identifying a port assignment comprises receiving a synchronization message update containing port assignment information that permits identification of the different server computer to which the port is assigned.
-
5. A method as defined in claim 1, further including:
-
receiving cluster configuration information for operation of the server computer and adapting operation accordingly; and
communicating the cluster configuration information to the other server computers of the first subnet such that the other server computers adapt their operation accordingly.
-
-
6. A method as defined in claim 1, further comprising:
-
receiving data traffic comprising a request for a data file;
sending a data packet with the request information to a computer of the second subnet;
storing header information for the data request;
receiving data packets of the requested data file from the second subnet computer and forwarding the data packets to the requesting computer;
maintaining state data on the client communications session, including the number of data packets sent to the requesting computer;
detecting a failure of the second subnet computer and in response identifying a replacement second subnet computer from which the requested data is available; and
sending a request for the requested data to the replacement second subnet computer, such that the request is for data beginning subsequent to the data packets already forwarded to the requesting computer.
-
-
7. A method as defined in claim 1, further including operating as an authoritative node of the first subnet to ensure symmetric routing of network data traffic to and from the first subnet.
-
8. A method as defined in claim 7, wherein operating to ensure symmetric traffic routing comprises:
-
receiving a data request from a responding server computer of the first subnet, wherein the data request was initially received at the responding server computer, which determined the authoritative node for responding to the data request;
identifying a server computer in the first subnet that will handle the data traffic associated with the data request and forwarding the data request to the Identified server computer for handling;
receiving a reply message from a server computer of the first subnet that is operating as a default reply node to a second subnet computer that is responding to the data request; and
forwarding the reply message to a server computer of the first subnet that will ensure symmetric routing of the data request and reply message with respect to the server computers of the first subnet.
-
-
9. A method as defined in claim 8, further comprising forwarding assignment information to the server computer of the first subnet that was operating as the default reply node for the data request, wherein the assignment information includes forwarding information that the default reply node can use to directly forward response messages from the second subnet computer to the first subnet computer that will ensure symmetric routing.
-
10. A method as defined in claim 1, wherein the computers of the second subnet comprise application servers.
-
11. A method as defined in claim 1, wherein the network over which data traffic is received comprises the Internet.
-
12. A method as defined in claim 11, wherein the network data traffic includes requests for data files.
-
13. A method as defined in claim 12, wherein the data files comprise Web pages.
-
14. A method as defined in claim 1, further including:
-
configuring an operating system of the server computer such that all network addresses in a pool of addresses assigned to the original server computers of the first subnet are assigned to the server computer;
generating a gratuitous address resolution protocol (ARP) message in response to an address reassignment of the server computer and communicating the ARP message to the other server computers of the first subnet; and
blocking a sending of an ARP acknowledgment message to the other server computers of the first subnet for any received gratuitous ARP message, thereby inhibiting reboot operation of the respective server computers and ensuring that each server computer is unaware of any duplicate assignment of network address numbers.
-
-
15. A program product for use in a computer that executes program steps recorded in a computer-readable media to perform a method of operating the computer for controlling data traffic of a computer network the:
- program product comprising;
a recordable media;
computer-readable instructions recorded on the recordable media, comprising instructions executable by the computer to perform a method comprising;
receiving network data traffic through a network interface that permits communication between the server computer and other computers;
communicating with a plurality of server computers that are all members of a first subnet of network addresses over which network data is sent and received, through a front layer of servers, wherein the communication includes state sharing information with a dynamic configuration protocol that permits reassignment of network addresses among the front layer servers and specifies state information sharing and load information sharing among the front layer servers;
communicating with a plurality of network computers that are members of a second subnet of network addresses to send and receive network data traffic;
determining if the data traffic is associated with a previous network communication session of an original server computer of the first subnet, prior to a network address reassignment for the original server computer;
responding to data traffic not associated with the previous network communications session of an original server computer by processing the data traffic; and
responding to data traffic that is associated with the previous network communication session with an original server computer by checking a record of network address assignments and identifying the original server computer associated with the previous network communications session and forwarding the data traffic to the identified original server computer. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27)
receiving network data traffic;
determining if the data traffic is associated with a previous network communication session of an original server computer of the first subnet, prior to a network address reassignment for the original server computer;
responding to data traffic not associated with a previous network communications session of an original server computer by processing the data traffic; and
responding to data traffic that is associated with a previous network communication session with an original server computer by checking a record of network address assignments and Identifying the original server computer associated with the previous network communications session and forwarding the data traffic to the identified original server computer.
- program product comprising;
-
18. A program product as defined in claim 15, wherein communicating with server computers of the first subnet further includes performing a network address translation comprising:
-
receiving data traffic for a pool of virtual network addresses serviced by the server computers of the first subnet;
determining that the received data traffic includes a data packet intended for a port connection at a different server computer of the first subnet; and
identifying a computer port assignment of the different server computer in the first subnet for which the data traffic is intended and performing an address translation function to route the data packet to the different server computer.
-
-
19. A program product as defined in claim 18, wherein determining a port connection of the received data traffic comprises determining that the data packet relates to a port connection that is not in a list of port connections, and wherein identifying a port assignment comprises receiving a synchronization message update containing port assignment information that permits identification of the different server computer to which the port is assigned.
-
20. A program product as defined in claim 15, wherein the performed method further comprises:
-
receiving data traffic comprising a request for a data file;
sending a data packet with the request information to a computer of the second subnet;
storing header information for the data request;
receiving data packets of the requested data file from the second subnet computer and forwarding the data packets to the requesting computer;
maintaining state data on the client communications session, including the number of data packets sent to the requesting computer;
detecting a failure of the second subnet computer and in response identifying a replacement second subnet computer from which the requested data is available; and
sending a request for the requested data to the replacement second subnet computer, such that the request is for data beginning subsequent to the data packets already forwarded to the requesting computer.
-
-
21. A program product as defined in claim 15, wherein the performed method further includes:
-
configuring an operating system of the server computer such that all network addresses in a pool of addresses assigned to the server computers of the first subnet are assigned to the server computer;
generating a gratuitous address resolution protocol (ARP) message in response to an address reassignment of the server computer and communicating the ARP message to the other server computers of the first subnet;
blocking the sending of an ARP acknowledgment message to the other server computers of the first subnet for any received gratuitous ARP message, thereby inhibiting reboot operation of the respective server computers and ensuring that each server computer is unaware of any duplicate assignment of network address numbers.
-
-
22. A program product as defined in claim 15, wherein the performed method further includes operating as an authoritative node of the first subnet to ensure symmetric routing of network data traffic to and from the first subnet.
-
23. A program product as defined in claim 22, wherein operating to ensure symmetric traffic routing comprises:
-
receiving a data request from a responding server computer of the first subnet, wherein the data request was initially received at the responding server computer, which determined the authoritative node for responding to the data request;
identifying a server computer in the first subnet that will handle the data traffic associated with the data request and forwarding the data request to the identified server computer for handling;
receiving a reply message from a server computer of the first subnet that is operating as a default reply node to a second subnet computer that is responding to the data request; and
forwarding the reply message to a server computer of the first subnet that will ensure symmetric routing of the data request and reply message with respect to the server computers of the first subnet.
-
-
24. A program product as defined in claim 23, wherein the performed method further comprises forwarding assignment information to the server computer of the first subnet that was operating as the default reply node for the data request, wherein the assignment information includes forwarding information that the default reply node can use to directly forward response messages from the second subnet computer to the first subnet computer that Will ensure symmetric routing.
-
25. A program product as defined in claim 15, wherein the computers of the second subnet comprise application servers.
-
27. A program product as defined in claim 15, wherein the performed method further includes:
-
receiving cluster configuration information for operation of the server computer and adapting operation accordingly; and
communicating the cluster configuration information to the other server computers of the first subnet such that the other server computers adapt their operation accordingly.
-
-
26. A network server computer comprising:
-
a network interface that permits communication between the server computer and other computers;
a distributed server application executed by the server computer that thereby permits the server computer to communicate with a plurality of server computers that are all members of a first subnet of network addresses over which network data is sent and received, through a front layer of servers, wherein the communication includes state sharing information with a dynamic reconfiguration protocol that permits reassignment of network addresses among the front layer servers and specifies state information sharing and load information sharing among the front layer servers, and permits the server computer to communicate with a plurality of network computers that are members of a second subnet of network addresses to send and receive network data traffic and determine if the data traffic is associated with a previous network communication session of an original server computer of the first subnet, prior to a network address reassignment for the original server computer;
respond to data traffic not associated with the previous network communications session of an original server computer by processing the data traffic; and
respond to data traffic that is associated with the previous network communication session with an original server computer by checking a record of network address assignments and identifying the original server computer associated with the previous network communications session and forwarding the data traffic to the identified original server computer.
-
Specification