Third vote consensus in a cluster using shared storage devices
First Claim
1. A method comprising:
- receiving a write request directed towards a logical unit (LUN), the write request having data and received at a first node of a cluster, the first node and a second node of the cluster connected to a storage array, the first node connected to a local storage device;
maintaining configuration information of the cluster on the storage array;
maintaining a copy of the configuration information on the local storage device;
in response to the second node failing, obtaining control to update the configuration information on the storage array at the first node using a consensus protocol;
establishing a first vote of the consensus protocol by ownership of the copy of the configuration information on the local storage device; and
establishing a second vote of the consensus protocol by ownership of the configuration information on the storage array.
1 Assignment
0 Petitions
Accused Products
Abstract
A third vote consensus technique enables a first node, i.e., a surviving node, of a two-node cluster to establish a quorum and continue to operate in response to failure of a second node of the cluster. Each node maintains configuration information organized as a cluster database (CDB) which may be changed according to a consensus-based protocol. Changes to the CDB are logged on a third copy file system (TCFS) stored on a local copy of TCFS (L-TCFS). A shared copy of the TCFS (i.e., S-TCFS) may be stored on shared storage devices of one or more storage arrays coupled to the nodes. The local copy of the TCFS (i.e., L-TCFS) represents a quorum vote for each node of the cluster, while the S-TCFS represents an additional “tie-breaker” vote of a consensus-based protocol. The additional vote may be obtained from the shared storage devices by the surviving node as a third vote to establish the quorum and enable the surviving node to cast two of three votes (i.e., a majority of votes) needed to continue operation of the cluster. That is, the majority of votes allows the surviving node to update the CDB with the configuration information changes so as to continue proper operation of the cluster.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving a write request directed towards a logical unit (LUN), the write request having data and received at a first node of a cluster, the first node and a second node of the cluster connected to a storage array, the first node connected to a local storage device; maintaining configuration information of the cluster on the storage array; maintaining a copy of the configuration information on the local storage device; in response to the second node failing, obtaining control to update the configuration information on the storage array at the first node using a consensus protocol; establishing a first vote of the consensus protocol by ownership of the copy of the configuration information on the local storage device; and establishing a second vote of the consensus protocol by ownership of the configuration information on the storage array. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
receiving a write request directed towards a logical unit (LUN), the write request having data and received at a first node of a cluster, the first node and a second node of the cluster connected to a storage array; maintaining a local copy of a configuration database of the cluster at each node of the cluster; maintaining a shared copy of the configuration database on the storage array; in response to the first node failing, obtaining control to update the shared copy of the configuration database at the second node using a consensus protocol; obtaining exclusive access to the storage array at the second node; establishing a first vote of the consensus protocol by ownership of the local copy of the configuration database at the second node; establishing a second vote of the consensus protocol by ownership of the shared copy of the configuration database at the second node; updating the configuration database at the second node to reflect the failure of the first node; and servicing the write request at the second node.
-
-
11. A system comprising:
-
a cluster having first and second nodes, each node having a memory connected to a processor via a bus; a storage array coupled to each node of the cluster; a local storage device coupled to each node of the cluster; a storage I/O stack executing on the processor of each node of the cluster, the storage I/O stack configured to; receive a write request directed towards a logical unit (LUN), the write request having data and received at the first node of the cluster; maintain configuration information of the cluster on the storage array; maintain a copy of the configuration information on the local storage device; in response to the second node failing, obtain control to update the configuration information on the storage array at the first node using a consensus protocol; establish a first vote of the consensus protocol by ownership of the copy of the configuration information on the local storage device; and establish a second vote of the consensus protocol by ownership of the configuration information on the storage array. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification