Identification of active server cluster controller
First Claim
1. A method of identifying a consensus active backend server in a server cluster including a primary backend server, a secondary backend server, and a plurality of servers coupled to both the primary backend server and the secondary backend server, the method comprising the steps of each of the plurality of servers:
- making an own assessment of an active backend server;
identifying either the primary backend server or the secondary backend server as the consensus active backend server based upon at least a quorum of the plurality of servers'"'"' respective own assessments of an active backend server.
2 Assignments
0 Petitions
Accused Products
Abstract
A failover algorithm implemented in software, without any failover-specific hardware, that allows servers in a cluster to determine whether a primary or secondary controller is active without requiring communication between the primary and secondary controllers. A server cluster includes several servers coupled to two servers, which are designated as a primary controller and a secondary controller. While the server cluster is operational, either the primary controller or the secondary controller will be actively controlling the cluster. Software running on the servers of the cluster, on the primary controller, and on the secondary controller, cooperates to ensure that each server will properly identify which controller is active at any particular time, including, but not limited to, upon starting up the server cluster, upon adding one or more servers to a cluster that is already operation, and upon failure of an active controller, a server, or a link between an active controller and a server. The failover algorithm includes the following steps performed by each of a group of servers in the cluster for identifying which controller is active: making the server'"'"'s own assessment of the active controller; and identifying either the primary controller or the secondary controller as a consensus active controller based upon a majority vote of the own assessments by each server in the cluster as to which controller is the active controller.
50 Citations
13 Claims
-
1. A method of identifying a consensus active backend server in a server cluster including a primary backend server, a secondary backend server, and a plurality of servers coupled to both the primary backend server and the secondary backend server, the method comprising the steps of each of the plurality of servers:
-
making an own assessment of an active backend server;
identifying either the primary backend server or the secondary backend server as the consensus active backend server based upon at least a quorum of the plurality of servers'"'"' respective own assessments of an active backend server. - View Dependent Claims (2, 3, 4)
notifying at least one of the primary backend server and the secondary backend server of the servers'"'"' own assessment of an active backend server; and
querying at least one of the primary backend server and the secondary backend server for the own assessments of other servers of the plurality of servers.
-
-
3. The method of claim 2, further comprising the steps of each of the plurality of servers:
-
notifying both the primary backend server and the secondary backend server of the servers'"'"' own assessment of an active backend server; and
querying both the primary backend server and the secondary backend server for the own assessments of other servers of the plurality of servers.
-
-
4. The method of claim 1, further comprising the step of each of the plurality of servers:
- using at least a majority of the number of servers in the server cluster, exclusive of the primary and secondary controllers, as a minimum number of servers in the quorum.
-
5. A server cluster comprising:
-
a primary backend server;
a secondary backend server;
a plurality of servers each coupled to both the primary backend server and the secondary backend server, wherein each of the plurality of servers identify either the primary backend server or the secondary backend server as an active backend server based upon at least a quorum of the plurality of servers assessing the identified backend server as the active server. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A computer-readable medium having computer-executable instruction for identifying an active controller in a server cluster including at least a first server, a second server, and a third server each coupled to at least one of a server designated as a primary controller and a server designated as a secondary controller by each of the first, second, and third servers performing steps comprising:
-
a. trying to establish a connection to the primary controller;
b. trying to establish a connection to the secondary controller;
c. determining whether a connection has been established to either controller;
d. upon determining that no connection has been established to either controller, repeating steps a through d;
e. upon successfully connecting to either the primary controller or the secondary controller;
i. making an own assessment of a presumed active controller based upon success or failure in establishing a connection to the primary controller and based upon success or failure in establishing a connection to the secondary controller, ii. notifying each controller to which a successful connection was established of an own assessment of the active controller, iii. querying each controller to which a successful connection has been established for a respective own assessment of the active controller by at least two other servers of the cluster, iv. determining whether there is a quorum of servers assessing either the primary controller or the secondary controller as the active controller, v. upon determining that there is no quorum of servers assessing either the primary controller or the secondary controller as the active controller, repeating steps a through e.v vi. upon determining that there is a quorum of servers assessing the primary controller as the active server, treating the primary controller as the active controller, and vii. upon determining that there is a quorum of servers assessing the secondary controller as the active server, treating the secondary controller as the active controller. - View Dependent Claims (12, 13)
-
Specification