Systems and methods for restriping files in a distributed file system
First Claim
1. A distributed file system communicating with a plurality of intelligent storage devices, wherein the distributed file system comprises a messaging system and is configured to store and manage metadata about files and directories stored on the distributed file system such that the metadata includes locations of metadata data blocks, content data blocks, and parity data blocks, and the distributed file system is further configured to restripe data files.
20 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for restriping files distributed among a set of smart storage units, wherein data blocks for a particular stripe do not typically need to be located at any particular location on the storage units, wherein data can be typically restriped among the smart storage units with minimal data movement, and wherein data is typically protected and recoverable even if a system failure occurs during the restriping process.
One embodiment relates to a method of selecting a storage unit for a block of data. The method comprises identifying storage units on which the block of data is currently stored; identifying an optimal location on first storage unit; determining a set of optimal storage units; if the first storage unit is one of the storage units on which the block of data is currently stored, selecting the first storage unit; and if the first storage unit is not in the list of storage units on which the block of data is currently stored, selecting one of the set of optimal storage units.
Another aspect of the present invention relates to a method of restriping data stored in a plurality of smart storage devices in an intelligent distributed file system. The method comprises identifying at least one smart storage device on which clusters of data from an existing file may be stored; storing the clusters on the identified smart storage device; determining that the clusters were successfully stored; and updating metadata related to the clusters of data to reflect new assignments.
407 Citations
35 Claims
- 1. A distributed file system communicating with a plurality of intelligent storage devices, wherein the distributed file system comprises a messaging system and is configured to store and manage metadata about files and directories stored on the distributed file system such that the metadata includes locations of metadata data blocks, content data blocks, and parity data blocks, and the distributed file system is further configured to restripe data files.
-
7. A method of restriping data stored in a plurality of smart storage devices in an intelligent distributed file system, the method comprising:
-
identifying at least one smart storage device on which clusters of data from an existing file may be stored;
storing the clusters on the identified smart storage device;
determining that the clusters were successfully stored; and
updating metadata related to the clusters of data to reflect new assignments. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A system for restriping data, the system comprising:
-
a plurality of smart devices, the smart devices configured to store data blocks in stripes distributed among the smart devices;
an assignment module configured to assign data blocks to smart devices;
a request module configured to send instructions to the smart devices to store the data blocks after the data blocks are assigned; and
an update module configured to update metadata related to the data blocks after the data blocks are stored. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method of restriping data comprised of data blocks comprising:
-
assigning a data block to storage unit;
determining if the data block is already stored on the storage unit;
storing the data block on the storage unit if it is not already residing on the storage unit; and
updating metadata related to the data block if the data block has been stored. - View Dependent Claims (21, 22, 23)
-
-
24. A method of assigning data blocks to storage units comprising:
-
identifying available storage units;
selecting an available storage unit for each data block; and
determining related address locations for each selected storage unit. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A method of selecting a storage unit from a set of storage units for storing a block of data in a protection group comprising:
-
identifying which storage unit from the set of storage units is the optimal storage unit in relation to the protection group; and
selecting the optimal storage unit. - View Dependent Claims (30)
-
-
31. A method of selecting a storage unit for a block of data comprising:
-
identifying storage units on which the block of data is currently stored;
identifying an optimal location on a first storage unit;
determining a set of optimal storage units;
if the first storage unit is one of the storage units on which the block of data is currently stored, selecting the first storage unit; and
if the first storage unit is not one of the storage units on which the block of data is currently stored, selecting one of the set of optimal storage units. - View Dependent Claims (32)
-
-
33. A system having a storage device containing instructions that, when executed, cause the system to perform the method of:
-
identifying storage devices on which clusters of data from existing files will be stored;
storing the clusters on the identified storage devices;
determining that the clusters were successfully stored; and
updating metadata related to the clusters of data.
-
-
34. A distributed file system configured to restripe data files, the system comprising:
-
means for identifying devices on which clusters of data from existing files will be stored;
means for storing the clusters on the identified devices;
means for determining that the clusters were successfully stored; and
means for updating metadata related to the clusters of data.
-
-
35. A distributed file system configured to restripe a set of data comprised of data blocks, the system comprising:
-
means for assigning the data blocks to a storage unit;
means for determining if the data blocks do already reside on the assigned storage unit;
means for storing the data blocks on the assigned storage unit if they are not already residing on the assigned storage unit; and
means for updating metadata related to the data blocks if the data blocks have been stored on the assigned storage unit.
-
Specification