Claims
- 1. A computer-implemented method of managing a storage environment comprising storage units, the method comprising:
detecting a condition indicating that capacity utilization balancing is to be performed for a plurality of storage units; identifying a first storage unit from the plurality of storage units from which data is to be moved; identifying a file stored on the first storage unit to be moved; identifying a storage unit from the plurality of storage units for storing the file; moving the file from the first storage unit to the storage unit identified for storing the file; and repeating, the identifying a file stored on the first storage unit to be moved, the identifying a storage unit from the plurality of storage units for storing the file, and the moving the file from the first storage unit to the storage unit identified for storing the file, until the condition is determined to be resolved.
- 2. The method of claim 1 wherein:
detecting the condition comprises detecting a condition that indicates that used storage capacity for at least one storage unit from the plurality of storage units has exceeded a first threshold value; and the condition is determined to be resolved when the used storage capacity of the at least one storage capacity for the storage unit falls below the first threshold value.
- 3. The method of claim 2 wherein identifying the first storage unit comprises:
identifying the at least one storage unit whose used storage capacity has exceeded the first threshold value as the first storage unit.
- 4. The method of claim 1 wherein:
detecting the condition comprises detecting that a difference in used capacity of a least full storage unit and the most full storage unit in the plurality of storage units has exceeded a second threshold value; and the condition is determined to be resolved when the difference is within the second threshold value.
- 5. The method of claim 4 wherein identifying the first storage unit comprises:
identifying the most full storage unit as the first storage unit.
- 6. The method of claim 1 further comprising:
determining a storage unit from the plurality of storage units that is least full; determining a storage unit from the plurality of storage units that is most full; determining a difference in used capacity between the least full storage unit and the most full storage unit; and performing, the identifying a first storage unit from the plurality of storage units from which data is to be moved, the identifying a file stored on the first storage unit to be moved, the identifying a storage unit from the plurality of storage units for storing the file, the moving the file from the first storage unit to the storage unit identified for storing the file, and the repeating, only if the difference exceeds a pre-configured threshold value.
- 7. The method of claim 1 wherein identifying a file stored on the first storage unit to be moved comprises:
generating a score for each file included in a plurality of files stored on the first storage unit; and selecting a file, from the files stored on the first storage unit, a file with the highest score as the file to be moved.
- 8. The method of claim 1 wherein identifying a storage unit from the plurality of storage units for storing the file comprises:
generating a score for the storage units in the plurality of storage units; and selecting a storage unit from the plurality of storage units with the highest score as the storage unit for storing the file.
- 9. The method of claim 1 wherein repeating comprises:
determining a storage unit from the plurality of storage units that is least full; determining a storage unit from the plurality of storage units that is most full; determining a difference in used capacity between the least full storage unit and the most full storage unit; and repeating, the identifying a file stored on the first storage unit to be moved, the identifying a storage unit from the plurality of storage units for storing the file, and the moving the file from the first storage unit to the storage unit identified for storing the file, only if the difference exceeds a pre-configured threshold value.
- 10. The method of claim 1 wherein the plurality of storage units comprises at least one storage unit assigned to a first server and at least another storage unit assigned to a second server distinct from the first server.
- 11. The method of claim 1 wherein an original file stored on the first storage unit is not moved until all migrated files stored on the first storage unit have been moved.
- 12. In a storage environment comprising a plurality of storage units assigned to one or more servers, a computer-implemented method of performing capacity utilization balancing, the method comprising:
monitoring a first group of storage units from the plurality of storage units; receiving a first signal indicative of a condition; responsive to the first signal, determining a first storage unit from the first group of storage units from which data is to be moved; and moving data from the first storage unit to one or more other storage units in the first group of storage units until the condition is resolved.
- 13. The method of claim 12 wherein:
the first signal indicates that used storage capacity for a storage unit from the first group of storage units has exceeded a first threshold; and determining the first storage unit comprises identifying the storage unit whose used storage capacity has exceeded the first threshold as the first storage unit.
- 14. The method of claim 12 wherein moving data from the first storage unit to one or more other storage units in the first group of storage units comprises:
identifying a file stored on the first storage unit to be moved; identifying a storage unit from the first group of storage units for storing the file; moving the file from the first storage unit to the storage unit identified for storing the file; and repeating, the identifying a file, identifying a storage unit, and the moving the file, until the condition is determined to be resolved.
- 15. The method of claim 14 wherein identifying a file stored on the first storage unit to be moved comprises:
generating a score for each file included in a plurality of files stored on the first storage unit; and selecting a file, from the files stored on the first storage unit, with the highest score as the file to be moved.
- 16. The method of claim 14 wherein identifying a storage unit from the first group of storage units for storing the file comprises:
generating a score for the storage units in the first group of storage units; and selecting a storage unit from the first group of storage units with the highest score as the storage unit for storing the file.
- 17. The method of claim 12 wherein moving data from the first storage unit to one or more other storage units in the first group of storage units comprises:
moving a first file stored on the first storage unit to a first target storage unit included in the first group of storage units; and moving a second file stored on the first storage unit to a second target storage unit included in the first group of storage units, wherein the second target storage unit is distinct from the first target storage unit.
- 18. The method of claim 12 further comprising:
determining a storage unit from the first group of storage units that is least full; determining a storage unit from the first group of storage units that is most full; determining a difference in used capacity between the least full storage unit and the most full storage unit; and performing the determining the first storage unit step and the moving step only if the difference exceeds a pre-configured threshold value.
- 19. The method of claim 12 further comprising:
receiving information indicative of storage units from the plurality of storage units to be included in the first group of storage units.
- 20. The method of claim 12 wherein the first group of storage units comprises at least one storage unit assigned to a first server and at least another storage unit assigned to a second server distinct from the first server.
- 21. The method of claim 12 wherein original data stored on the first storage unit is not moved until all migrated data stored on the first storage unit has been moved.
- 22. A computer program product stored on a computer-readable medium for balancing capacity utilization in a storage environment comprising storage units, the computer program product comprising instructions for:
detecting a condition indicating that capacity utilization balancing is to be performed for a plurality of storage units; identifying a first storage unit from the plurality of storage units from which data is to be moved; identifying a file stored on the first storage unit to be moved; identifying a storage unit from the plurality of storage units for storing the file; moving the file from the first storage unit to the storage unit identified for storing the file; and repeating, the identifying a file stored on the first storage unit to be moved, the identifying a storage unit from the plurality of storage units for storing the file, and the moving the file from the first storage unit to the storage unit identified for storing the file, until the condition is determined to be resolved.
- 23. The computer program product of claim 22 wherein:
the instructions for detecting the condition comprise instructions for detecting a condition that indicates that used storage capacity for at least one storage unit from the plurality of storage units has exceeded a first threshold value; and the condition is determined to be resolved when the used storage capacity of the at least one storage capacity for the storage unit falls below the first threshold value.
- 24. The computer program product of claim 23 wherein the instructions for identifying the first storage unit comprise:
instructions for identifying the at least one storage unit whose used storage capacity has exceeded the first threshold value as the first storage unit.
- 25. The computer program product of claim 22 wherein:
the instructions for detecting the condition comprise instructions for detecting that a difference in used capacity of a least full storage unit and the most full storage unit in the plurality of storage units has exceeded a second threshold value; and the condition is determined to be resolved when the difference is within the second threshold value.
- 26. The computer program product of claim 25 wherein the instructions for identifying the first storage unit comprise instructions for identifying the most full storage unit as the first storage unit.
- 27. The computer program product of claim 22 further comprising instructions for:
determining a storage unit from the plurality of storage units that is least full; determining a storage unit from the plurality of storage units that is most full; determining a difference in used capacity between the least full storage unit and the most full storage unit; and performing, the identifying a first storage unit from the plurality of storage units from which data is to be moved, the identifying a file stored on the first storage unit to be moved, the identifying a storage unit from the plurality of storage units for storing the file, the moving the file from the first storage unit to the storage unit identified for storing the file, and the repeating, only if the difference exceeds a pre-configured threshold value.
- 28. The computer program product of claim 22 wherein the instructions for identifying a file stored on the first storage unit to be moved comprise instructions for:
generating a score for each file included in a plurality of files stored on the first storage unit; and selecting a file, from the files stored on the first storage unit, a file with the highest score as the file to be moved.
- 29. The computer program product of claim 22 wherein the instructions for identifying a storage unit from the plurality of storage units for storing the file comprise instructions for:
generating a score for the storage units in the plurality of storage units; and selecting a storage unit from the plurality of storage units with the highest score as the storage unit for storing the file.
- 30. The computer program product of claim 22 wherein the instructions for repeating comprise:
determining a storage unit from the plurality of storage units that is least full; determining a storage unit from the plurality of storage units that is most full; determining a difference in used capacity between the least full storage unit and the most full storage unit; and repeating, the identifying a file stored on the first storage unit to be moved, the identifying a storage unit from the plurality of storage units for storing the file, and the moving the file from the first storage unit to the storage unit identified for storing the file, only if the difference exceeds a pre-configured threshold value.
- 31. The computer program product of claim 22 wherein the plurality of storage units comprises at least one storage unit assigned to a first server and at least another storage unit assigned to a second server distinct from the first server.
- 32. The computer program product of claim 22 wherein an original file stored on the first storage unit is not moved until all migrated files stored on the first storage unit have been moved.
- 33. A computer program product stored on a computer-readable medium comprising code for performing capacity utilization balancing in a storage environment comprising a plurality of storage units assigned to one or more servers, the computer program product comprising code for:
monitoring a first group of storage units from the plurality of storage units; receiving a first signal indicative of a condition; determining, responsive to the first signal, a first storage unit from the first group of storage units from which data is to be moved; and moving data from the first storage unit to one or more other storage units in the first group of storage units until the condition is resolved.
- 34. The computer program product of claim 33 wherein:
the first signal indicates that used storage capacity for a storage unit from the first group of storage units has exceeded a first threshold; and the code for determining the first storage unit comprises code for identifying the storage unit whose used storage capacity has exceeded the first threshold as the first storage unit.
- 35. The computer program product of claim 33 wherein the code for moving data from the first storage unit to one or more other storage units in the first group of storage units comprises code for:
identifying a file stored on the first storage unit to be moved; identifying a storage unit from the first group of storage units for storing the file; moving the file from the first storage unit to the storage unit identified for storing the file; and repeating, the identifying a file, identifying a storage unit, and the moving the file, until the condition is determined to be resolved.
- 36. The computer program product of claim 35 wherein the code for identifying a file stored on the first storage unit to be moved comprises:
code for generating a score for each file included in a plurality of files stored on the first storage unit; and code for selecting a file, from the files stored on the first storage unit, with the highest score as the file to be moved.
- 37. The computer program product of claim 35 wherein the code for identifying a storage unit from the first group of storage units for storing the file comprises:
code for generating a score for the storage units in the first group of storage units; and code for selecting a storage unit from the first group of storage units with the highest score as the storage unit for storing the file.
- 38. The computer program product of claim 33 wherein the code for moving data from the first storage unit to one or more other storage units in the first group of storage units comprises:
code for moving a first file stored on the first storage unit to a first target storage unit included in the first group of storage units; and code for moving a second file stored on the first storage unit to a second target storage unit included in the first group of storage units, wherein the second target storage unit is distinct from the first target storage unit.
- 39. The computer program product of claim 33 further comprising:
code for determining a storage unit from the first group of storage units that is least full; code for determining a storage unit from the first group of storage units that is most full; code for determining a difference in used capacity between the least full storage unit and the most full storage unit; and code for performing the determining the first storage unit step and the moving step only if the difference exceeds a pre-configured threshold value.
- 40. The computer program product of claim 33 further comprising:
code for receiving information indicative of storage units from the plurality of storage units to be included in the first group of storage units.
- 41. The computer program product of claim 33 wherein the first group of storage units comprises at least one storage unit assigned to a first server and at least another storage unit assigned to a second server distinct from the first server.
- 42. The computer program product of claim 33 wherein original data stored on the first storage unit is not moved until all migrated data stored on the first storage unit has been moved.
- 43. In a storage environment comprising storage units, a system comprising:
at least one processor; and a memory operatively coupled to the processor, the memory storing program instructions that when executed by the processor, cause the processor to:
detect a condition indicating that capacity utilization balancing is to be performed for a plurality of storage units, identify a first storage unit from the plurality of storage units from which data is to be moved, identify a file stored on the first storage unit to be moved, identify a storage unit from the plurality of storage units for storing the file, move the file from the first storage unit to the storage unit identified for storing the file, and repeat, the identification of a file stored on the first storage unit to be moved, the identification of a storage unit from the plurality of storage units for storing the file, and the move of the file from the first storage unit to the storage unit identified for storing the file, until the condition is determined to be resolved.
- 44. The system of claim 43 wherein the program instructions when executed by the processor, cause the processor to detect a condition that indicates that used storage capacity for at least one storage unit from the plurality of storage units has exceeded a first threshold value, and the condition is determined to be resolved when the used storage capacity of the at least one storage capacity for the storage unit falls below the first threshold value.
- 45. The system of claim 44 wherein the program instructions when executed by the processor, cause the processor to identify the at least one storage unit whose used storage capacity has exceeded the first threshold value as the first storage unit.
- 46. The system of claim 43 wherein the program instructions when executed by the processor, cause the processor to detect the condition comprises detecting that a difference in used capacity of a least full storage unit and the most full storage unit in the plurality of storage units has exceeded a second threshold value, and the condition is determined to be resolved when the difference is within the second threshold value.
- 47. The system of claim 46 wherein the program instructions when executed by the processor, cause the processor to identify the most full storage unit as the first storage unit.
- 48. The system of claim 43 wherein the program instructions when executed by the processor, cause the processor to:
determine a storage unit from the plurality of storage units that is least full, determine a storage unit from the plurality of storage units that is most full, determine a difference in used capacity between the least full storage unit and the most full storage unit, and perform, the identification of a first storage unit from the plurality of storage units from which data is to be moved, the identification of a file stored on the first storage unit to be moved, the identification of a storage unit from the plurality of storage units for storing the file, the move of the file from the first storage unit to the storage unit identified for storing the file, and the repeating, only if the difference exceeds a pre-configured threshold value.
- 49. The system of claim 43 wherein the program instructions when executed by the processor, cause the processor to:
generate a score for each file included in a plurality of files stored on the first storage unit, and select a file, from the files stored on the first storage unit, a file with the highest score as the file to be moved.
- 50. The system of claim 43 wherein the program instructions when executed by the processor, cause the processor to:
generate a score for the storage units in the plurality of storage units, and select a storage unit from the plurality of storage units with the highest score as the storage unit for storing the file.
- 51. The system of claim 43 wherein the program instructions when executed by the processor, cause the processor to:
determine a storage unit from the plurality of storage units that is least full, determine a storage unit from the plurality of storage units that is most full, determine a difference in used capacity between the least full storage unit and the most full storage unit, and repeat, the identification of a file stored on the first storage unit to be moved, the identification of a storage unit from the plurality of storage units for storing the file, and the move of the file from the first storage unit to the storage unit identified for storing the file, only if the difference exceeds a pre-configured threshold value.
- 52. The system of claim 43 wherein the plurality of storage units comprises at least one storage unit assigned to a first server and at least another storage unit assigned to a second server distinct from the first server.
- 53. The system of claim 43 wherein an original file stored on the first storage unit is not moved until all migrated files stored on the first storage unit have been moved.
- 54. In a storage environment comprising a plurality of storage units assigned to one or more servers, a system for performing capacity utilization balancing, the system comprising:
at least one processor; and a memory operatively coupled to the processor, the memory storing program instructions that when executed by the processor, cause the processor to:
monitor a first group of storage units from the plurality of storage units, receive a first signal indicative of a condition, determine, responsive to the first signal, a first storage unit from the first group of storage units from which data is to be moved, and move data from the first storage unit to one or more other storage units in the first group of storage units until the condition is resolved.
- 55. The system of claim 54 wherein:
the first signal indicates that used storage capacity for a storage unit from the first group of storage units has exceeded a first threshold; and the program instructions when executed by the processor, cause the processor to identify the storage unit whose used storage capacity has exceeded the first threshold as the first storage unit.
- 56. The system of claim 54 wherein the program instructions when executed by the processor, cause the processor to:
identify a file stored on the first storage unit to be moved, identify a storage unit from the first group of storage units for storing the file, move the file from the first storage unit to the storage unit identified for storing the file, and repeat, the identification of a file, identification of a storage unit, and the move of the file, until the condition is determined to be resolved.
- 57. The system of claim 56 wherein the program instructions when executed by the processor, cause the processor to:
generate a score for each file included in a plurality of files stored on the first storage unit, and select a file, from the files stored on the first storage unit, with the highest score as the file to be moved.
- 58. The system of claim 56 wherein the program instructions when executed by the processor, cause the processor to:
generate a score for the storage units in the first group of storage units, and select a storage unit from the first group of storage units with the highest score as the storage unit for storing the file.
- 59. The system of claim 54 wherein the program instructions when executed by the processor, cause the processor to:
move a first file stored on the first storage unit to a first target storage unit included in the first group of storage units, and move a second file stored on the first storage unit to a second target storage unit included in the first group of storage units, wherein the second target storage unit is distinct from the first target storage unit.
- 60. The system of claim 54 wherein the program instructions when executed by the processor, cause the processor to:
determine a storage unit from the first group of storage units that is least full, determine a storage unit from the first group of storage units that is most full, determine a difference in used capacity between the least full storage unit and the most full storage unit, and perform the determining the first storage unit step and the moving step only if the difference exceeds a pre-configured threshold value.
- 61. The system of claim 54 wherein the program instructions when executed by the processor, cause the processor to receive information indicative of storage units from the plurality of storage units to be included in the first group of storage units.
- 62. The system of claim 54 wherein the first group of storage units comprises at least one storage unit assigned to a first server and at least another storage unit assigned to a second server distinct from the first server.
- 63. The system of claim 54 wherein original data stored on the first storage unit is not moved until all migrated data stored on the first storage unit has been moved.
- 64. A system for balancing capacity utilization in a storage environment comprising storage units, the system comprising:
means for detecting a condition indicating that capacity utilization balancing is to be performed for a plurality of storage units; means for identifying a first storage unit from the plurality of storage units from which data is to be moved; means for identifying a file stored on the first storage unit to be moved; means for identifying a storage unit from the plurality of storage units for storing the file; means for moving the file from the first storage unit to the storage unit identified for storing the file; and means for repeating, identifying a file stored on the first storage unit to be moved, identifying a storage unit from the plurality of storage units for storing the file, and moving the file from the first storage unit to the storage unit identified for storing the file, until the condition is determined to be resolved.
- 65. A system for performing capacity utilization balancing in a storage environment comprising a plurality of storage units assigned to one or more servers, the system comprising:
monitoring a first group of storage units from the plurality of storage units; receiving a first signal indicative of a condition; determining, responsive to the first signal, a first storage unit from the first group of storage units from which data is to be moved; and moving data from the first storage unit to one or more other storage units in the first group of storage units until the condition is resolved.
CROSS-REFERENCES TO RELATED APPLICATIONS
[0001] The present application claims priority from and is a non-provisional application of the following provisional applications, the entire contents of which are herein incorporated by reference for all purposes:
[0002] (1) U.S. Provisional Application No. 60/407,587, filed Aug. 30, 2002 (Attorney Docket No. 21154-5US); and
[0003] (2) U.S. Provisional Application No. 60/407,450, filed Aug. 30, 2002 (Attorney Docket No. 21154-8US).
[0004]4 The present application also claims priority from and is a continuation-in-part (CIP) application of U.S. Non-Provisional Application No. 10/232,875, filed Aug. 30, 2002 (Attorney Docket No. 21154-000210US), which in turn is a non-provisional of U.S. Provisional Application No. 60/316,764, filed Aug. 31, 2001, (Attorney Docket No. 21154-000200US) and U.S. Provisional Application No. 60/358,915, filed Feb. 21, 2002 (Attorney Docket No. 21154-000400US). The entire contents of the aforementioned applications are herein incorporated by reference for all purposes.
[0005] The present application also incorporates by reference for all purposes the entire contents of U.S. Non-Provisional Application No. ___/______, filed concurrently with this application (Attorney Docket No. 21154-000810US).
Provisional Applications (4)
|
Number |
Date |
Country |
|
60407587 |
Aug 2002 |
US |
|
60407450 |
Aug 2002 |
US |
|
60358915 |
Feb 2002 |
US |
|
60316764 |
Aug 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
| Parent |
10232875 |
Aug 2002 |
US |
| Child |
10650189 |
Aug 2003 |
US |