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.
- 2. The distributed file system of claim 1 further configured to minimize movement of data during restriping data files.
- 3. The distributed file system of claim 1 further configured to restripe data files to change protection schemes.
- 4. The distributed file system of claim 1 further configured to restripe data files to add additional storage devices.
- 5. The distributed file system of claim 1 further configured to restripe data files to respond to a failed storage device.
- 6. The distributed file system of claim 1 further configured to restripe data files to remove existing storage devices.
- 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.
- 8. The method of claim 7 additionally comprising assigning smart storage devices based on a new protection scheme.
- 9. The method of claim 8 additionally comprising updating the metadata to reflect the new protection scheme.
- 10. The method of claim 7 additionally comprising assigning smart storage devices in response to a failure of a smart storage device.
- 11. The method of claim 7, wherein assigning smart storage devices includes minimizing data movement.
- 12. The method of claim 7, wherein assigning smart storage devices includes enforcing protection scheme constraints.
- 13. The method of claim 7, wherein assigning smart storage devices includes attempting to incorporate designated preferences.
- 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.
- 15. The system of claim 14, wherein the update module is further configured to determine whether the data blocks were successfully stored.
- 16. The system of claim 14, wherein the request module is further configured to determine whether the data blocks were successfully stored.
- 17. The system of claim 14, wherein the assignment module is further configured to minimize data movement among the plurality of smart devices.
- 18. The system of claim 14, wherein the assignment module is further configured to comply with protection scheme constraints.
- 19. The system of claim 14, wherein the assignment module is further configured to attempt to comply with designated preferences.
- 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.
- 21. The method of claim 20 wherein assigning the data blocks includes minimizing data movement among storage units.
- 22. The method of claim 20 wherein assigning the data blocks includes meeting protection scheme constraints.
- 23. The method of claim 20 wherein assigning the data blocks includes attempting to meet designated preferences.
- 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.
- 25. The method of claim 24 further comprising determining if there are enough available storage units.
- 26. The method of claim 24 wherein selecting the available storage units includes minimizing data movement among the storage units.
- 27. The method of claim 24 wherein selecting the available storage units includes meeting protection scheme constraints.
- 28. The method of claim 24 wherein selecting the available storage units includes attempting to meet designated preferences.
- 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.
- 30. The method of claim 29, wherein determining which storage unit from the set of storage units is the optimal storage unit is based on a preferred file layout.
- 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.
- 32. The method of claim 31, wherein selecting one of the set of optimal storage units further comprises selecting one of the set of optimal storage units that is also one of the storage units on which the block of data is currently stored.
- 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.
Parent Case Info
[0001] This application claims the benefit of U.S. Provisional Application No. 60/426,464 filed Nov. 14, 2002, which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60426464 |
Nov 2002 |
US |