Methods and apparatus for optimizing resource utilization in distributed storage systems
First Claim
1. A distributed storage data center, comprising:
- a data center network;
a plurality of storage units each coupled to the data center network that collectively store client data for a plurality of clients, wherein the data center network carries general client I/O traffic from the plurality of clients to the plurality of storage units, wherein the general client I/O traffic includes reads from and writes to the client data collectively stored on the plurality of storage units;
one or more devices coupled to the data center network, wherein the one or more devices implement a data migration module operable to;
initiate migration of data units among the plurality of storage units according to a storage load balancing technique to maintain a balanced distribution of the client data across the plurality of storage units;
detect addition of one or more new storage units to the data center network;
in response to said detecting the addition of the one or more new storage units to the data center network;
block general client I/O traffic to the one or more new storage units on the data center network;
initiate migration of data units from each of one or more of the plurality of storage units to the one or more new storage units according to the storage load balancing technique to balance storage load across the plurality of storage units and the one or more new storage units, wherein general client I/O traffic is allowed to go through to the one or more of the plurality of storage units during said migration of data units from the one or more of the plurality of storage units to the one or more new storage units, and wherein general client I/O traffic remains blocked to the one or more new storage units during said migration of data units from the one or more of the plurality of storage units to the one or more new storage units;
determine that storage load is balanced across the plurality of storage units and the one or more new storage units; and
in response to said determining that storage load is balanced across the plurality of storage units and the one or more new storage units, unblock general client I/O traffic to the one or more new storage units on the data center network.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus for optimizing resource utilization in distributed storage systems. A data migration technique is described that may operate in the background in a distributed storage data center to migrate data among a fleet of storage units to achieve a substantially even and randomized data storage distribution among all storage units in the fleet. When new storage units are added to the fleet and coupled to the data center network, the new storage units are detected. Instead of processing and storing new data to the newly added storage units, as in conventional distributed storage systems, the new units are blocked from general client I/O to allow the data migration technique to migrate data from other, previously installed storage hardware in the data center onto the new storage hardware. Once the storage load on the new storage units is balanced with the rest of the fleet, the new storage units are released for general client I/O.
-
Citations
33 Claims
-
1. A distributed storage data center, comprising:
-
a data center network; a plurality of storage units each coupled to the data center network that collectively store client data for a plurality of clients, wherein the data center network carries general client I/O traffic from the plurality of clients to the plurality of storage units, wherein the general client I/O traffic includes reads from and writes to the client data collectively stored on the plurality of storage units; one or more devices coupled to the data center network, wherein the one or more devices implement a data migration module operable to; initiate migration of data units among the plurality of storage units according to a storage load balancing technique to maintain a balanced distribution of the client data across the plurality of storage units; detect addition of one or more new storage units to the data center network; in response to said detecting the addition of the one or more new storage units to the data center network; block general client I/O traffic to the one or more new storage units on the data center network; initiate migration of data units from each of one or more of the plurality of storage units to the one or more new storage units according to the storage load balancing technique to balance storage load across the plurality of storage units and the one or more new storage units, wherein general client I/O traffic is allowed to go through to the one or more of the plurality of storage units during said migration of data units from the one or more of the plurality of storage units to the one or more new storage units, and wherein general client I/O traffic remains blocked to the one or more new storage units during said migration of data units from the one or more of the plurality of storage units to the one or more new storage units; determine that storage load is balanced across the plurality of storage units and the one or more new storage units; and in response to said determining that storage load is balanced across the plurality of storage units and the one or more new storage units, unblock general client I/O traffic to the one or more new storage units on the data center network. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A distributed storage system, comprising:
-
a plurality of storage units each coupled to a network, wherein the plurality of storage units collectively store client data for a plurality of clients, wherein the network carries general client I/O traffic from the plurality of clients to the plurality of storage units, wherein the general client I/O traffic includes reads from and writes to the client data collectively stored on the plurality of storage units; one or more devices coupled to the network operable to; detect addition of one or more new storage units to the network; in response to said detecting the addition of the one or more new storage units to the network; block general client I/O traffic to the one or more new storage units on the network; migrate data units from each of one or more of the plurality of storage units to the one or more new storage units, wherein general client I/O traffic is allowed to go through to the one or more of the plurality of storage units during said migration of data units from the one or more of the plurality of storage units to the one or more new storage units, and wherein general client I/O traffic remains blocked to the one or more new storage units during said migration of data units from the one or more of the plurality of storage units to the one or more new storage units; and in response to determining that said migrating data units from the one or more of the plurality of storage units to the one or more new storage units is complete, unblock general client I/O traffic to the one or more new storage units on the network. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method, comprising:
-
detecting one or more new storage units added to a plurality of storage units coupled to a network, wherein the plurality of storage units collectively store data, wherein the network carries general I/O traffic to the plurality of storage units, wherein the general client I/O traffic includes reads from and writes to the data collectively stored on the plurality of storage units; in response to said detecting the one or more new storage units; blocking general I/O traffic to the one or more new storage units on the network; migrating, by one or more devices coupled to the network, data units from each of one or more of the plurality of storage units to the one or more new storage units, wherein general client I/O traffic is allowed to go through to the one or more of the plurality of storage units when migrating data units from the one or more of the plurality of storage units to the one or more new storage units, and wherein general client I/O traffic remains blocked to the one or more new storage units during said migration of data units from the one or more of the plurality of storage units to the one or more new storage units; and in response to determining that said migrating data units from the one or more of the plurality of storage units to the one or more new storage units is complete, unblocking general I/O traffic to the one or more new storage units on the network. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A non-transitory computer-accessible storage medium storing program instructions computer-executable to implement:
-
detecting a new storage unit added to a fleet of storage units coupled to a network, wherein the fleet of storage units collectively store data, wherein the network carries general I/O traffic to the storage units in the fleet, and wherein the general client I/O traffic includes reads from and writes to the data collectively stored on the fleet of storage units; in response to said detecting the new storage unit; blocking general I/O traffic to the new storage unit on the network; migrating data units from each of two or more of the storage units in the fleet to the new storage unit, wherein, in said migrating, the program instructions are computer-executable to implement iteratively performing; selecting a storage unit from the fleet as a source storage unit; selecting one or more units of the data to be migrated from the source storage unit to the new storage unit; and initiating migration of the selected one or more units of the data from the source storage unit to the new storage unit, wherein general client I/O traffic is allowed to go through to the source storage unit during said migration of data units from the source storage unit to the new storage unit; wherein general client I/O traffic remains blocked to the new storage unit during said migration of data units from the two or more storage units to the new storage unit; and unblocking general I/O traffic to the new storage unit on the network subsequent to said migration of data units from the two or more storage units to the new storage unit. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
-
Specification