Claims
- 1. An apparatus, comprising:
a storage unit configured to store archival data, the storage unit including at least one spindle of disks configured to magnetically store archival data; an interconnect; and a control unit configured to process requests over the interconnect to either archive or retrieve data from the storage unit.
- 2. The apparatus of claim 1, further comprising a power controller coupled to the control unit and the storage unit, the control unit further configured to generate commands to selectively power on and off the storage unit.
- 3. The apparatus of claim 2, wherein the control unit issues an on/off command signal and an ID signal corresponding to the storage unit to the power controller to selectively power on and off the storage unit through the power controller.
- 4. The apparatus of claim 1, wherein the storage unit further includes a controller configured as a slave in a master-slave arrangement with respect to the control unit.
- 5. The apparatus of claim 1, wherein the storage unit is configured to perform one or more of the following tasks in response to commands from the control unit: shut down or power up the storage unit; enter running or standby modes; spin up or spin down the at least one spindle of disks; and periodically perform data integrity checks of the archival data stored on the storage unit.
- 6 The apparatus of claim 1, wherein the least one spindle of disks is arranged in a RAID configuration.
- 7 The apparatus of claim 1, wherein the at least one spindle of disks are configured as individual disks in either a logical or physical arrangement.
- 8. The apparatus of claim 1, wherein the control unit maintains a directory of the data archived on the storage unit, the directory including a map of the archived data stored in data blocks on the storage unit.
- 9. The apparatus of claim 8, wherein the directory is updated whenever data is archived or retrieved from the storage unit.
- 10. The apparatus of claim 1, wherein the control unit is configured to issue commands to the storage unit, the commands including at least one of the following: commands to shut down or power up the storage unit; commands to cause the storage unit to enter a running mode or a standby mode; commands to cause the storage unit to spin up or spin down the at least one spindle of disks; and commands to instruct the storage unit to perform a data integrity check of the archival data stored on the storage unit.
- 11. The apparatus of claim 1, further comprising a plurality of the storage units, each configured to store archival data on one or more spindles of disks respectively, the control unit further configured to generate commands to the plurality of storage units to cause the plurality of storage units to selectively shut down or power up, enter run mode or standby mode, cause the spindles to spin up or down, and to perform data integrity checks.
- 12. The apparatus of claim 1, further comprising a plurality of the storage units, each configured to store archival data on one or more spindles of disks, the control unit further configured to update a directory map of the archival data stored on each of the plurality of storage units each time data is archive or retrieved from one of the plurality of storage units.
- 13. The apparatus of claim 1, wherein the control unit is further configured to process archival and retrieval requests from a primary storage unit of an information infrastructure, the information infrastructure further including a server cluster coupled to the primary storage unit and further configured to be coupled to one or more clients through a network.
- 14. The apparatus of claim 1, wherein the control unit manages access to a plurality =of the storage units by:
receiving a request; identifying the appropriate storage unit among the plurality of storage units to handle the request; determining if the appropriate storage unit is on; and either:
sending the request to the appropriate storage unit if the appropriate storage unit is on; or waking up or powering on the appropriate storage unit if the appropriate storage unit is in sleep mode or is powered off before sending the request to the appropriate storage unit; processing the request at the appropriate storage unit; and repeating the above for each subsequent request received by the control unit.
- 15. The apparatus of claim 14, wherein either:
if the appropriate storage unit is on, comparing a current value of SU.H which is substantially equal to the duration of time where the life cost and power cost of an idle spinning disk approximately equals the life cost and power cost of a disk spin up and spin down cycle of the appropriate storage unit to a predetermined value of Hmax and incrementing the value of SU.H if SU.H is less than Hmax; or if the appropriate storage unit is off or is in sleep mode, comparing the current value of SU.H to a second predetermined value of Hmin and decrementing SU.H if SU.H is greater than Hmin.
- 16. The apparatus of claim 1, wherein the control unit manages access to a plurality of the storage units by:
defining a threshold H for the storage unit equal to the duration of time where the life cost and power cost of an idle spinning disk approximately equals the life cost and power cost of a disk spin up and spin down cycle; initializing a parameter L which is the remaining spin lifetime of the storage unit; initializing a parameter N which equals the remaining number of starts and stops of the storage unit; noting the last time-stamp T of the previous request; receiving a new request; identifying the appropriate storage unit to handle the new request; determining if the appropriate storage unit is on; and either
sending the request to the appropriate storage unit if the appropriate storage unit is on or is in wake up mode; or turning on or waking up the appropriate storage unit if the appropriate storage unit is in sleep mode or is powered off before sending the request to the appropriate storage unit; processing the request on the appropriate storage unit; updating the parameters of L and T; and waiting for the next request.
- 17. The apparatus of claim 16, wherein the value of H is determined by:
- 18. The apparatus of claim 1, wherein the control unit manages the power consumption and disk lifetime of a plurality of the storage units by:
sequencing through each of the plurality of storage units to determine which of the plurality of storage units are running, and for each storage unit identified as running:
computing an SU.H value for the running storage unit, the SU.H value being defined as substantially equal to the duration of time where the life cost and power cost of an idle spinning disk approximately equals the life cost and power cost of a disk spin up and spin down cycle of the storage unit; and comparing the SU.H value for the running storage unit to the elapsed time since the previous request to that running storage unit; and either powering off or placing the running storage unit in standby mode if the elapsed time exceeds the SH.U value; or returning to sequencing through each of the plurality of storage units if the elapsed time is less than the SH.U value.
- 19. The apparatus of claim 18, further generating a warning if the spinning lifetime or the remaining number of start-and-stops of the storage unit powered off or placed in standby mode falls below a predetermined threshold.
- 20. The apparatus of claim 1, wherein the control unit manages the data integrity of a plurality of storage units by:
identifying a data block stored at a first location on one of the plurality of storage units; calculating an error correction code for the identified block and comparing it to a previous error correction code calculated when the data was first stored on the identified data block at the first location; and either:
re-writing the data block to the first location if the calculated error correction code is the same as the previous error correction code; or determining if the error is correctable if the calculated error correction code is different than the previous error correction code; and
migrating the data stored on the identified data block to a second location on one of the plurality of storage units if the error is correctable.
- 21. The apparatus of claim 19, further comprising logging the error if it is determined that the error is not correctable.
- 22. The apparatus of claim 19, further comprising repeating the above for all of the data blocks stored on the plurality of storage units.
- 23. The apparatus of claim 19 wherein the data integrity of the plurality of storage units is checked with a periodicity P where:
- 24. The apparatus of claim 1, further comprising a data integrity checker configured to check the integrity of the data stored on the disk.
- 25. The apparatus of claim 24, wherein the data integrity checker checks the integrity of the data stored on the disk every period P where P is defined by
- 26. The apparatus of claim 24, wherein the data integrity checker checks the integrity of the data with a periodicity of P where P is determined based on one or more of the following: the remaining number of start-and-stops of the disk, or the remaining spin lifetime of the disk
- 27. The apparatus of claim 24, wherein the data integrity checker performs a data integrity check on the disk by:
identifying a data block stored at a first location on the disk; calculating an error correction code for the identified data block and comparing it to a previous error correction code calculated when the data block was first stored at the first location; and either:
re-writing the data block to the first location if the calculated error correction code is the same as the previous error correction code; or determining if the error is correctable if the calculated error correction code is different than the previous error correction code; and migrating the data block a second location if the error is correctable; and repeating the aforementioned for each data block stored on the disk.
- 28. The apparatus of claim 27, wherein the second location is located on the disk.
- 29. The apparatus of claim 27, wherein the second location is located on another disk.
- 30. The apparatus of claim 24, wherein the data integrity checker is further configured to periodically check the integrity of the data stored on a plurality of the disks.
- 31. The apparatus of claim 1 further comprising a managing unit configured to manage the operation of the disk to extend the lifetime of the disk, the managing unit being configured to estimate the remaining spin lifetime of the disk and to determine when to spin up or spin down the disk to extend its lifetime based on the estimated remaining spin lifetime of the disk.
- 32. The apparatus of claim 31, wherein the managing unit is further configured to estimate the remaining start and stop limit of the disk and determine when to spin up or spin down the disk to extend the lifetime of the disk based on the estimated remaining spin lifetime and the estimated remaining start and stop limit of the disk.
- 33. The apparatus of claim 32, wherein the managing unit determines when to spin up or spin down the disk further by:
computing a threshold value for the disk, the threshold value being defined as substantially equal to the duration of time where the life cost of the disk spinning idle approximately equals the life cost of a spin up and spin down cycle of the disk; comparing the threshold value for the disk when it is running to the elapsed time since the previous request to the disk; and powering off or placing the disk into a standby mode if the elapsed time exceed the threshold value.
- 34. The apparatus of claim 33, wherein the computing the threshold value further includes the consideration of the power cost of having the disk run idle versus the power cost of having the disk spin up and spin down.
- 35. The apparatus of claim 34, wherein the threshold value is adjustable.
- 36. The apparatus of claim 33, wherein the managing unit is further configured to generate a warning if either the remaining spin lifetime falls below a first minimum value or remaining start and stop limit falls below a second minimum value.
- 37. A method comprising:
providing an archival data storage system having a storage disk; providing a data integrity checker to check the integrity of the data stored on the storage disk; and configuring the data integrity checker to check the integrity of the data stored on the storage disk.
- 38. The method of claim 37, wherein the data integrity checker checks the integrity of the data every period P where period P is defined by
- 39. The method of claim 37, wherein the period P is determined based on one or more of the following: the remaining number of start-and-stops of the storage disk, or the remaining spin lifetime of the storage disk.
- 40. The method of claim 37, wherein the data integrity checker performs a data integrity check on the storage disk by:
identifying a data block stored at a first location on the storage disk; calculating an error correction code for the identified data block and comparing it to a previous error correction code calculated when the data block was first stored at the first location; and either:
re-writing the data block to the first location if the calculated error correction code is the same as the previous error correction code; or determining if the error is correctable if the calculated error correction code is different than the previous error correction code; and migrating the data block a second location if the error is correctable; and repeating the aforementioned for each data block stored on the storage disk.
- 41. The method of claim 40, wherein the second location is located on the storage disk.
- 42. The method of claim 40, wherein the second location is located on another storage disk.
- 43. The method of claim 37, further comprising:
providing a plurality of the storage disks in the archival storage system; and configuring the data integrity checker to successively check the integrity of the data stored on the plurality of the storage disks.
- 44. A method comprising:
estimating the remaining spin lifetime of a disk in a data storage system; and determining when to spin up or spin down the disk to extend the lifetime of the disk based on the estimated remaining spin lifetime of the disk.
- 45. The method of claim 44 further comprising:
estimating the remaining start and stop limit of the disk; and determining when to spin up or spin down the disk to extend the lifetime of the disk based on the estimated remaining spin lifetime and the estimated remaining start and stop limit of the disk.
- 46. The method of claim 45, wherein determining when to spin up or spin down the disk further comprises:
computing a threshold value for the disk, the threshold value being defined as substantially equal to the duration of time where the life cost of the disk spinning idle approximately equals the life cost of a spin up and spin down cycle of the disk; comparing the threshold value for the disk when it is running to the elapsed time since the previous request to the disk; and powering off or placing the disk into a standby mode if the elapsed time exceed the threshold value.
- 47. The method of claim 46, wherein the computing the threshold value further includes the consideration of the power cost of having the disk run idle versus the power cost of having the disk spin up and spin down.
- 48. The method of claim 46, wherein the threshold value is adjustable.
- 49. The method of claim 45, further comprising generating a warning if either the remaining spin lifetime of the disk falls below a first minimum value or the remaining start and stop limit of the disk falls below a second minimum value.
Parent Case Info
[0001] This application claims priority of U.S. provisional patent application No. 60/265,180, filed Jan. 30, 2001 and entitled “System Architecture and Methods of Building Low-Power, Dynamically Reconfigurable, And Reliable Online Archival System,” which is hereby incorporated by reference for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60265180 |
Jan 2001 |
US |