Method and system for maintaining consistency for i/o operations on metadata distributed amongst nodes in a ring structure
AssigneeNutanix, Inc.
InventorsRishi BHARDWAJ, Venkata Ranga Radhanikanth GUTURI
Life of this patent
Estimating the term…
Abstract
A method for maintaining consistency for I/O operations on metadata distributed amongst a plurality of nodes forming a ring structure.
Claims27
A method for maintaining data for I/O requests on data distributed amongst a plurality of nodes forming a ring structure, comprising:
- maintaining a network virtualization environment comprising a plurality of nodes forming a ring structure, individual nodes of the plurality of nodes having one or more locally attached storage devices, at least a subset of the one or more locally attached storage devices are logically aggregated to form a storage pool, and wherein the storage pool is presented to a plurality of service virtual machines by a plurality of controllers on individual nodes of the plurality of nodes;
- adding a new node to the plurality of nodes forming the ring structure, wherein the new node is placed in a transitional state;
- receiving an I/O request for data on the storage pool stored at a first node, wherein the first node is before the new node in the ring structure;
- identifying a subset of nodes of the plurality of nodes to perform the I/O request for data by selecting the first node and one or more nodes after the new node in the ring structure such that a total number of nodes in the subset of nodes is equal to a replication factor, wherein at least one node in the transitional state is not selected as one of the subset of nodes to perform the I/O request, the at least one node being located between the first node and a last selected node of the ring structure;
- and
- establishing a quorum, of the subset of nodes, by identifying a threshold number of matching results corresponding to the I/O request, wherein the new node is not used to establish a quorum when the new node is in the transitional state.
A apparatus for maintaining consistency for read requests on data distributed amongst a plurality of nodes forming a ring structure, comprising:
- the apparatus comprising a plurality of nodes, wherein the plurality of nodes comprise memories for storing instructions and processors which, when executing instructions stored in the memories, performs the following actions:
- maintaining a network virtualization environment comprising a plurality of nodes forming a ring structure, individual nodes of the plurality of nodes having one or more locally attached storage devices, at least a subset of the one or more locally attached storage devices are logically aggregated to form a storage pool, and wherein the storage pool is presented to a plurality of service virtual machines by a plurality of controllers on individual nodes of the plurality of nodes;
- adding a new node to the plurality of nodes forming the ring structure, wherein the new node is placed in a transitional state;
- receiving an I/O request for data on the storage pool stored at a first node, wherein the first node is before the new node in the ring structure;
- identifying a subset of nodes of the plurality of nodes to perform the I/O request for data by selecting the first node and one or more nodes after the new node in the ring structure such that a total number of nodes in the subset of nodes is equal to a replication factor, wherein at least one node in the transitional state is not selected as one of the subset of nodes to perform the I/O request, the at least one node being located between the first node and a last selected node of the ring structure;
- and
- establishing a quorum, of the subset of nodes, by identifying a threshold number of matching results corresponding to the I/O request, wherein the new node is not used to establish a quorum when the new node is in the transitional state.
A computer program product comprising a non-transitory computer usable medium having executable code to execute a method for maintaining consistency for read requests on data distributed amongst a plurality of nodes forming a ring structure, the method comprising:
- maintaining a network virtualization environment comprising a plurality of nodes forming a ring structure, individual nodes of the plurality of nodes having one or more locally attached storage devices, at least a subset of the one or more locally attached storage devices are logically aggregated to form a storage pool, and wherein the storage pool is presented to a plurality of service virtual machines by a plurality of controllers on individual nodes of the plurality of nodes;
- adding a new node to the plurality of nodes forming the ring structure, wherein the new node is placed in a transitional state;
- receiving an I/O request for data on the storage pool stored at a first node, wherein the first node is before the new node in the ring structure;
- identifying a subset of nodes of the plurality of nodes to perform the I/O request for data by selecting the first node and one or more nodes after the new node in the ring structure such that a total number of nodes in the subset of nodes is equal to a replication factor, wherein at least one node in the transitional state is not selected as one of the subset of nodes to perform the I/O request, the at least one node being located between the first node and a last selected node of the ring structure;
- and
- establishing a quorum, of the subset of nodes, by identifying a threshold number of matching results corresponding to the I/O request, wherein the new node is not used to establish a quorum when the new node is in the transitional state.
Dependencies are inferred from the claim text.