US2013086414A1PendingUtilityA1

Systems and methods recovering from the failure of a server load balancer

42
Assignee: HAMMAM TARIKPriority: Jul 13, 2010Filed: Jul 13, 2010Published: Apr 4, 2013
Est. expiryJul 13, 2030(~4 yrs left)· nominal 20-yr term from priority
H04L 69/40H04L 67/1001G06F 11/2005
42
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The invention provides, in one aspect, a server load balancer (SLB) recovery method that replicates a primary SLB's connection data after the primary SLB experiences a failure, as opposed to before it experiences a failure as is currently done in the known hot stand-by recovery method. In some embodiments, this is made possible by (1) employing a replication agent on each target processing unit (e.g., each processing unit on which a server application runs) and (2) transmitting, from the primary SLB, connection data information (i.e., information comprising a session identifier) to the replication agent running on the target processing unit to which the session is mapped, which replication agent will store the data until it is required to transmit the data to a cold stand-by SLB.

Claims

exact text as granted — not AI-modified
1 . A cold stand-by method for recovering from a failure of a primary SLB, the cold stand-by method being performed by a stand-by SLB in an environment comprising a plurality of target processing units, including a first target processing unit and a second target processing unit, and a primary server load balancer (SLB) for balancing traffic across the plurality of target processing units, wherein connection data for mapping sessions to target processing units is stored in a data store accessible to the primary SLB, and the connection data comprises first information mapping a first session to the first target processing unit and second information mapping a second session to the second target processing unit, the method comprising:
 replicating, by the stand-by SLB, at least a portion of the connection data such that the replicated connection data is accessible to the stand-by SLB, the replicated connection data comprising at least the first information, wherein the replicating step occurs in response to a detection of the failure of the primary SLB; and   after replicating the connection data,   (a) receiving, at the stand-by SLB, traffic corresponding to the first session;   (b) accessing, by the stand-by SLB, the replicated connection data to determine the target processing unit to which the first session is mapped; and   (c) forwarding, by the stand-by SLB, the traffic to the determined target processing unit.   
     
     
         2 . The method of  claim 1 , further comprising:
 receiving, at the stand-by SLB, traffic corresponding to a third session;   accessing the replicated connection data to determine whether the accessed data comprises information mapping the third session to any of the plurality of target processing units; and   in response to determining that the accessed data does not comprise information mapping the third session to any of the plurality of target processing units:   (a) selecting a particular target processing unit;   (b) updating the replicated connection data so that the replicated connection data will comprise information mapping the third session with the selected target processing unit; and   (c) transmitting to a replication agent running on the selected target processing unit a connection data update message comprising a session identifier identifying the third session.   
     
     
         3 . The method of  claim 1 , wherein the step of replicating the connection data comprises:
 receiving, at the stand-by SLB, a first replication message transmitted from the first target processing unit, wherein the first replication message contains a session identifier identifying the first session; and   in response to receiving the first replication message, storing information that maps the first session with the first target processing unit.   
     
     
         4 . The method of  claim 1 , further comprising:
 transmitting, in response to the failure of the primary SLB, a connection data synchronization message to each of the first and second target processing units,   
       wherein
 each of the first and second target processing units is configured to transmit one or more replication messages to the stand-by SLB in response to receiving the connection data synchronization message. 
 
     
     
         5 . The method of  claim 1 , wherein
 the first information consists of a first record comprising a first field storing a session identifier identifying the first session and a second field storing a target processing unit identifier identifying the first target processing unit, and   the second information consists of a second record comprising a second field storing a session identifier identifying the second session and a second field storing a target processing unit identifier identifying the second target processing unit.   
     
     
         6 . The method of  claim 1 , wherein the step of receiving, at the stand-by SLB, traffic corresponding to the first session consists of receiving, at the stand-by SLB a network packet comprising information identifying the first session, wherein
 the network packet is an Internet Protocol (IP) packet that contains an IP header and a payload, wherein the payload contains a transport layer segment having a transport layer header and payload, and   data from the IP header and transport layer header identifies the network packet as corresponding to the first session.   
     
     
         7 . The method of  claim 1 , wherein the primary SLB executes on the second target processing unit and the replicated connection data will not contain the second information, which maps the second session to the second target processing unit. 
     
     
         8 . The method of  claim 3 , wherein
 the connection data further comprises third information mapping a third session to the first target processing unit, and   the first replication message transmitted from the first target processing unit contains not only the session identifier identifying the first session, but also a session identifier identifying the third session.   
     
     
         9 . A stand-by server load balancer (SLB) for recovering from the failure of a primary SLB that is operable to balance traffic across a plurality of target processing units using connection data that comprises information mapping sessions with target processing units, wherein the stand-by SLB is configured such that, in response to a detection of the failure of the primary SLB, the stand-by SLB replicates the connection data or most of the connection data to create replicated connection data, wherein the replicated connection data is accessible to the stand-by SLB so that the stand-by SLB can use the replicated connection data to balance traffic across the plurality of target processing units. 
     
     
         10 . The stand-by SLB of  claim 9 , wherein the stand-by SLB is configured to replicate the connection data by receiving one or more replication messages from one or more of the target processing units, each of the one or more replication message comprising a session identifier and a target processing unit identifier. 
     
     
         11 . The stand-by SLB of  claim 9 , wherein the stand-by SLB is further configured such that the stand-by SLB, in response to the failure of the primary SLB, transmits a connection data synchronization message to at least one of the plurality of target processing units. 
     
     
         12 . The stand-by SLB of  claim 9 , wherein
 the connection data comprises a record comprising a first field storing a session identifier identifying a session and a second field storing a target processing unit identifier identifying a target processing unit, and   the replicated connection data comprises a record comprising a first field storing the session identifier identifying the session and a second field storing the target processing unit identifier identifying the target processing unit.   
     
     
         13 . The stand-by SLB of  claim 9 , wherein the stand-by SLB is operable to:
 receive a network packet corresponding to the first session;   use the replicated connection data to determine the target processing unit to which the first session is mapped; and   forward the network packet to the determined target processing unit, wherein   the network packet is an Internet Protocol (IP) packet that contains an IP header and a payload, wherein the payload contains a transport layer segment having a transport layer header and payload, and   data from the IP header and transport layer header identifies the network packet as corresponding to the first session.   
     
     
         14 . A primary server load balance (SLB) for balancing traffic across a plurality of target processing units, wherein the primary SLB is operable to:
 receive traffic corresponding to a session;   access connection data to determine whether the connection data comprises information mapping the session to any of the plurality of target processing units; and   in response to determining that the connection data does not comprise information mapping the session to any of the plurality of target processing units: (a) select a particular target processing unit from the plurality of target processing units, (b) update the connection data so that the connection data will comprise information mapping the session with the selected target processing unit, and   (c) transmit to a replication agent running on the selected target processing unit a connection data update message comprising a session identifier identifying the session.   
     
     
         15 . The primary SLB of  claim 14 , wherein the connection update message further comprises a target processing unit identifier for identifying the selected target processing unit. 
     
     
         16 . A computer program product comprising a computer usable medium having a computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a method comprising:
 accessing connection data, in response to receiving traffic corresponding to a session, to determine whether the connection data comprises information mapping the session to any of the plurality of target processing units; and   in response to determining that the connection data does not comprise information mapping the session to any of the plurality of target processing units: (a) selecting a particular target processing unit from the plurality of target processing units, (b) updating the connection data so that the connection data will comprise information mapping the session with the selected target processing unit,   and (c) transmitting to a replication agent running on the selected target processing unit a connection data update message comprising a session identifier identifying the session.   
     
     
         17 . A computer program product comprising a computer usable medium having a computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a method comprising:
 replicating connection data used by a primary server load balancer (SLB) immediately in response to a detection that the primary SLB has failed; and   using the replicated connection data to balance traffic across a plurality of target processing units.   
     
     
         18 . A target processing unit, wherein the target processing includes a replication agent, the replication agent being operable to:
 receive from a primary server load balancer (SLB) a connection data update message comprising a session identifier identifying a session;   store the session identifier in response to receiving the connection data update message; and   transmit the session identifier to a stand-by SLB in response to receiving a synchronization message.   
     
     
         19 . The target processing unit of  claim 18 , wherein the replication agent is further operable to:
 receive from the primary SLB a second connection data update message comprising a second session identifier identifying a second session; and   store the second session identifier in response to receiving the second connection data update message; and   in response to receiving the synchronization message, transmit to the stand-by SLB a replication message containing the first and second session identifiers.   
     
     
         20 . The target processing unit of  claim 19 , wherein the replication message further contains an identifier identifying the target processing unit.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.