Systems and methods for implementing an enterprise-class converged compute-network-storage appliance
First Claim
1. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to dispatch an input/output request in a distributed storage system, the method comprising:
- receiving, at a storage controller client, the input/output request, wherein the distributed storage system includes the storage controller client, a plurality of storage controller servers, a plurality of virtual nodes distributed among a plurality of physical nodes, and each of the plurality of physical nodes is hosted on one of the plurality of storage controller servers;
computing a target virtual node for the input/output request, wherein the target virtual node is one of the plurality of virtual nodes and the target virtual node is computed using a deterministic placement function without storing a global map;
determining a target physical node that corresponds to the target virtual node, wherein the target physical node is one of the plurality of physical nodes; and
dispatching the input/output request to a target storage controller server that corresponds to the target physical node, wherein the target storage controller server is one of the plurality of storage controller servers.
4 Assignments
0 Petitions
Accused Products
Abstract
A distributed storage system that dispatches an input/output request is described. In an exemplary embodiment, a storage controller client receives the input/output request, wherein the distributed storage system includes the storage controller client, a plurality of storage controller servers, a plurality of virtual nodes distributed among a plurality of physical nodes, and each of the plurality of physical nodes is hosted on one of the plurality of storage controller servers. The storage controller client further computes a target virtual node for the input/output request, where the target virtual node is one of the plurality of virtual nodes. Using the computed target virtual node, the storage controller client determines a target physical node that corresponds to the target virtual node, where the target physical node is one of the plurality of physical nodes. In addition, the storage controller client dispatches the input/output request to a target storage controller that corresponds to the target physical node, wherein the target storage controller server is one of the plurality of storage controller servers. In addition, the virtual node includes a set of one or more mirrored copies across different fault domains for ensuring resiliency and high availability.
122 Citations
22 Claims
-
1. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to dispatch an input/output request in a distributed storage system, the method comprising:
-
receiving, at a storage controller client, the input/output request, wherein the distributed storage system includes the storage controller client, a plurality of storage controller servers, a plurality of virtual nodes distributed among a plurality of physical nodes, and each of the plurality of physical nodes is hosted on one of the plurality of storage controller servers; computing a target virtual node for the input/output request, wherein the target virtual node is one of the plurality of virtual nodes and the target virtual node is computed using a deterministic placement function without storing a global map; determining a target physical node that corresponds to the target virtual node, wherein the target physical node is one of the plurality of physical nodes; and dispatching the input/output request to a target storage controller server that corresponds to the target physical node, wherein the target storage controller server is one of the plurality of storage controller servers. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to write data in a distributed storage system, the method comprising:
-
receiving, at one of a plurality of storage controller servers, a write operation request to store data at a virtual node, wherein the write operation request is dispatched from a storage controller client to the one of the plurality of storage controller servers using a deterministic placement function without storing a global map, and the distributed storage system includes the storage controller client, and the plurality of storage controller servers; and in response to receiving the write operation request, writing the data to a mirror set of the virtual node. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to process a read operation request in a distributed storage system, the method comprising:
-
receiving, at one of a plurality of storage controller servers, the read operation request for a virtual node, wherein the write operation request is dispatched from a storage controller client to the storage controller server using a deterministic placement function without storing a global map, and the distributed storage system includes the storage controller client and the plurality of storage controller servers; and in response to receiving the read operation request, determining a mirror set for the read operation request, and reading data indicated in the read operation request from the mirror set. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method to dispatch an input/output request in a distributed storage system, the method comprising:
-
receiving, at a storage controller client, the input/output request, wherein the distributed storage system includes the storage controller client, a plurality of storage controller servers, a plurality of virtual nodes distributed among a plurality of physical nodes, and each of the plurality of physical nodes is hosted on one of the plurality of storage controller servers; computing a target virtual node for the input/output request, wherein the target virtual node is one of the plurality of virtual nodes and the target virtual node is computed using a deterministic placement function without storing a global map; determining a target physical node that corresponds to the target virtual node, wherein the target physical node is one of the plurality of physical nodes; and dispatching the input/output request to a target storage controller server that corresponds to the target physical node, wherein the target storage controller server is one of the plurality of storage controller servers.
-
-
21. A method to write data in a distributed storage system, the method comprising:
-
receiving, at one of a plurality of storage controller servers, a write operation request to store data at a virtual node, wherein the write operation request is dispatched from a storage controller client to the one of the plurality of storage controller servers using a deterministic placement function without storing a global map, and the distributed storage system includes the storage controller client, and the plurality of storage controller servers; and in response to receiving the write operation request, writing the data to a mirror set of the virtual node.
-
-
22. A method to process a read operation request in a distributed storage system, the method comprising:
-
receiving, at one of a plurality of storage controller servers, the read operation request for a virtual node, wherein the write operation request is dispatched from a storage controller client to the storage controller server using a deterministic placement function without storing a global map, and the distributed storage system includes the storage controller client and the plurality of storage controller servers; and in response to receiving the read operation request, determining a mirror set for the read operation request, and reading data indicated in the read operation request from the mirror set.
-
Specification