High availability using virtual storage controllers in a scale out storage cluster
Examples are provided for a method of providing access to data of a data center. In one aspect, the method comprises storing a unit of data to each of a plurality of data nodes of a data center, designating a first node of the data center as a primary access node for the unit of data, the primary access node being configured to service access requests to the unit of data using one or more of the plurality of data nodes, determining that the first node is not available, and performing a failover process by reconfiguring a second node of the data center as the primary access node for the unit of data.
1 . A method of providing access to data of a data center, the method comprising:
storing a unit of data to each of a plurality of data nodes of a data center;
designating a first node of the data center as a primary access node for the unit of data, the primary access node being configured to service access requests to the unit of data using one or more of the plurality of data nodes;
designating a second node of the data center as a secondary access node for the unit of data, wherein the secondary access node acts as a backup access node in case the primary access node is unavailable;
after designating the second node of the data center as the secondary access node, determining that the first node is not available;
performing a failover process by reconfiguring the second node of the data center as the primary access node for the unit of data, wherein the reconfigured second node can service access requests without relocating data;
before a failure of the second node, designating a third node as the secondary access node;
performing a second failover process; and
before a failure of the third node, designating the first node of the data center as the secondary access node.
2 . The method of claim 1 , further comprising:
receiving a request from a client associated with the unit of data to access the unit of data using the primary access node; and
after determining that the first node is not available, providing access to the client to the unit of data via the second node.
3 . The method of claim 2 , wherein the failover process is performed by a storage service, and wherein access to the unit of data via the second node is provided by a virtual storage controller unit in response to the failover process.
4 . The method of claim 2 , wherein the request from the client to access the unit of data comprises at least one of reading, writing, or modifying the unit of data.
5 . The method of claim 1 , wherein the failover process is performed without copying the unit of data when the plurality of data nodes is available.
6 . The method of claim 1 , further comprising:
determining that at least one data node of the plurality of data nodes is unavailable, wherein the at least one data node is below a predetermined number; and
performing a rebuild of the at least one data node that is unavailable during the performing of the failover process.
7 . The method of claim 1 , wherein performing the failover process further comprises:
determining that a first candidate node is not available; and
reconfiguring a second candidate node as the primary access node, wherein the second candidate node is the second node.
8 . The method of claim 1 , further comprising:
determining that a data node of the plurality of data nodes is unavailable;
configuring an additional node of the data center, separate from the plurality of data nodes, as a data node for the unit of data; and
copying at least a portion of the unit of data to the additional node.
9 . The method of claim 1 , further comprising monitoring a periodic signal from the primary access node, wherein determining that the primary access node is not available comprises determining that the periodic signal has not been received from the primary access node.
10 . A storage system for providing access to data of a data center, the storage system comprising:
a plurality of data processing units; and
a plurality of nodes, each node associated with a respective data processing unit of the plurality of data processing units, wherein the storage system is configured to:
store a unit of data to one or more storage devices of one or more data nodes, wherein the one or more data nodes are nodes within the plurality of nodes;
designate a first access node as a primary access node for the unit of data, wherein the first access node is a node within the plurality of nodes different from the one or more data nodes, and wherein the primary access node is configured to service access requests to the unit of data using the one or more data nodes;
designate a second access node of the plurality of nodes as a secondary access node for the unit of data, wherein the secondary access node acts as a backup access node in case the primary access node is unavailable;
after designating the second access node of the plurality of nodes as the secondary access node, determine that the primary access node is not available;
perform a failover process by reconfiguring the second access node as the primary access node for the unit of data, wherein the second access node is a node within the plurality of nodes different from the first access node and the one or more data nodes, wherein the reconfigured second node can service access requests without relocating data;
before a failure of the second access node, designate a third access node as the secondary access node;
perform a second failover process; and
before a failure of the third access node, designate the first access node as the secondary access node.
11 . The storage system of claim 10 , wherein the storage system is further configured to:
receive a request from a client associated with the unit of data to access the unit of data using the primary access node; and
after determining that the first access node is not available, providing access to the client to the unit of data via the second access node.
12 . The storage system of claim 10 , wherein the failover process is performed by a storage service, and wherein providing access to the client to the unit of data via the second access node is allowed by a virtual storage controller unit of the second access node in response to the failover process.
13 . The storage system of claim 10 , wherein performing the failover process further comprises:
determining that a first candidate node is not available; and
reconfiguring a second candidate node as the primary access node, wherein the second candidate node is the second access node.
14 . A method for providing access to data of a data center, the method comprising:
storing a unit of data to each of a plurality of data nodes of a data center;
designating a first node of the data center as a primary access node for the unit of data, the primary access node being configured to service access requests to the unit of data using one or more of the plurality of data nodes;
designating a second node of the data center as a secondary access node for the unit of data, wherein the secondary access node acts as a backup access node in case the primary access node is unavailable;
after designating the second node of the data center as the secondary access node, determining that the primary access node is not available;
performing a failover process by:
reconfiguring the second node of the data center as the primary access node for the unit of data, wherein the reconfigured second node can service access requests without relocating data, and wherein reconfiguring the second node comprises:
removing connections from the first node to the unit of data;
establishing connections from the second node to the unit of data; and
before a failure of the second node, designating a third node as the secondary access node;
performing a second failover process; and
before a failure of the third node, designating the first node of the data center as the secondary access node.
15 . The method of claim 14 , further comprising:
receiving a request from a client associated with the unit of data to access the unit of data using the primary access node; and
after determining that the first node is not available, providing access to the client to the unit of data via the second node.
16 . The method of claim 14 , wherein performing the failover process further comprises:
determining that a first candidate node is not available; and
reconfiguring a second candidate node as the primary access node, wherein the second candidate node is the second node.
17 . The method of claim 14 , further comprising:
determining that a current primary access node is not available; and
after determining that the current primary access node is not available, performing the second failover process.