Abstract:
A multi-tiered system of data storage includes a plurality of data storage solutions. The data storage solutions are organized such that the each progressively faster, more expensive solution serves as a cache for the previous solution, and each solution includes a dedicated data block to store individual data sets, newly written in a plurality of write operations, for later migration to slower data storage solutions in a single write operation.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention is directed generally toward data storage systems and more particularly toward a method for implementing variable performance storage devices in a single system. 
       BACKGROUND OF THE INVENTION 
       [0002]    Data storage technology focuses on providing the greatest capacity and availability, with the greatest performance, at a minimum cost. RAID technology increased the capacity of data storage systems for minimal cost by combining multiple independent, inexpensive hard disk drives into a large array. Later RAID technology increased data availability by adding fault tolerance at the expense of capacity and performance. 
         [0003]    State of the art data storage systems are beginning to incorporate solid state drive (SSD) technology. SSDs are arrays of semiconductor memory elements, so every memory element is accessible with electrical signals as opposed to a hard disk drive which relies on mechanically spinning disks and mechanically actuated arms. SSDs are orders of magnitude faster than hard disk drives. SSDs are also more expensive than hard disk drives per unit of data storage. 
         [0004]    Some data storage technologies have attempted to combine the performance of SSDs with the high capacity per unit cost of hard disk drives, but the high disparity in performance tends to negate the performance advantage of SSDs for any operation that accesses the hard disk drive. 
         [0005]    Any data storage system attempting to incorporate multiple tiers of data storage devices to take advantage of the performance characteristics of each device will necessarily lose all of those performance advantages whenever the system performs an operation involving the slowest tier, such as a write operation. To provide data integrity, redundant fields are added, wasting capacity of faster, more expensive tiers, and slowing performance because of redundant write operations. 
         [0006]    Consequently, it would be advantageous if a method and apparatus existed that are suitable for minimizing performance slowing operations and redundant capacity usage in a system having more than one storage tier, each storage tier having superior performance characteristics as compared to the previous tier. 
       SUMMARY OF THE INVENTION 
       [0007]    Accordingly, the present invention is directed to a novel method and apparatus for minimizing low performance operations in a system having more than one storage tier, each storage tier having superior performance characteristics as compared to the previous tier. 
         [0008]    One embodiment of the present invention is a data storage device having a processor, a first data storage functioning as a cache for a second data storage, and memory with a segregated data block. When write operations would overwrite data in the first storage device, the processor writes the new data to the first storage device and to the segregated data block. After a number of write operations have written new data to the segregated data block such that the segregated data block has reached a predetermined data limit, the processor copies the data to the second data storage. 
         [0009]    Another embodiment of the present invention is a data storage system having multiple tiers of data storage, each tier a cache to the next higher tier. When write operations would overwrite data in a certain tier, a processor writes the new data to that tier and to a segregated data block in the next lower tier. After a number of write operations have written new data to that segregated data block, the processor copies the data to the next higher tier where the data has not yet been written and purges the segregated data block. 
         [0010]    Another embodiment of the present invention is a method for consolidating write operations in a data storage system having multiple tiers of data storage, each tier a cache to the next higher tier. The method includes writing a plurality of data sets to a tier where the first data hit occurs and to a segregated data block in the next lower tier. The method further includes copying the segregated data block to the next higher tier where the data has not been written when the segregated data block reaches a predetermined data limit. 
         [0011]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The numerous objects and advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which: 
           [0013]      FIG. 1  shows a block diagram of a data storage device having a hard disk drive and an SSD cache; 
           [0014]      FIG. 2  shows a block diagram of a data storage device having a hard disk drive and an SSD cache where the device memory includes a segregated data block; 
           [0015]      FIG. 3  shows a block diagram of a data storage system having multiple tiers where all but the highest level tier includes a segregated data block; 
           [0016]      FIG. 4  shows a flowchart of a method for writing new data in a multi-tiered data storage system at the lowest tier level; and 
           [0017]      FIG. 5  shows a flowchart of a method for writing new data in a multi-tiered data storage system at other than the lowest tier level; 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0018]    Reference will now be made in detail to the subject matter disclosed, which is illustrated in the accompanying drawings. The scope of the invention is limited only by the claims; numerous alternatives, modifications and equivalents are encompassed. For the purpose of clarity, technical material that is known in the technical fields related to the embodiments has not been described in detail to avoid unnecessarily obscuring the description. 
         [0019]    Referring to  FIG. 1 , one implementation of a data storage device using SSD and hard disk drives is a hard disk drive with an SSD cache. The device may include a processor  100  and memory  106  connected to one or more hard disk drives  104  and one or more SSDs  102  functioning as a cache for each of the one or more hard disk drives  104 . In a RAID architecture, the device may include an array of hard disk drives  104  and a corresponding array of SSDs  102  functioning as caches. In a typical cache implementation, the SSD  102  may have roughly ten percent the capacity of the hard disk drive  104 , though those skilled in the art will appreciate that larger or smaller cache implementations are possible. In this device, read operations have performance that is roughly inversely proportional to the hit rate of the cache. The hit rate is the percentage of read operations that find the requested data in the cache. Because read operations take orders of magnitude longer to perform on a hard disk drive  104  than an SSD  102 , the amount of time spent performing read operations can be estimated as the amount of time the hard disk drive  104  spends performing a read operation multiplied by the inverse of the hit rate. Therefore, for read operations, improving the hit rate improves performance of the data storage device. 
         [0020]    Using existing technology, write operations do not benefit from an increased hit rate. Write operations, like read operations, are orders of magnitude faster when writing to SSDs  102  than when writing to hard disk drives  104 . However, data written only to the cache is not redundantly stored in any other location. In the event the cache becomes corrupted, newly written data would be lost. For that reason, in a data storage device having one or more caches for one or more hard disk drives  104 , write operations have always been performed on the appropriate cache and the corresponding hard disk drive  104 . Such a system ensures redundancy but completely negates the advantages of SSD  102  caches during write operations. 
         [0021]    Referring to  FIG. 2 , a data storage device having a hard disk drive  104  and an SSD  102  serving as a cache for the hard disk drive  104  is shown. The device may also include a processor  100  and memory  106 . The memory  106  may include a segregated data block  200 . Whenever a write operation attempts to overwrite data in the SSD  102  cache, the processor  100  may overwrite the data in the SSD  102  cache, and write the same data to the segregated data block  200 . The segregated data block  200  may accommodate data from a plurality of independent write operations. When the amount of data in the segregated data block  200  reaches a predetermined data limit, the data in the segregated data block  200  may be written to the hard disk drive  104  in a single write operation. A single write operation to the hard disk drive  104  is faster than multiple write operations writing the same amount of data because a single write operation minimizes the mechanical movement of the hard disk drive  104 . 
         [0022]    By consolidating multiple write operations to a relatively slower data storage device into a single write operation, and maintaining the data to be written in a segregated data block  200  of a separate storage device, a data storage device with a relatively higher speed cache has both data redundancy and improved performance corresponding to the hit rate of the cache. While  FIG. 2  depicts a device having a hard disk drive  104  and SSD  102  cache, the same principle applies to data storage systems having several tiers. 
         [0023]    Referring to  FIG. 3 , a data storage system having four tiers is shown. The system may have a first tier storage device  302  with a first tier data block  310 , a second tier storage device  304  with a second tier data block  312 , a third tier storage device  306  with a third tier data block  314  and a fourth tier storage device  308 . The system may also include a processor  300  for executing various read and write operations. The first tier storage device  302  may be system memory, or a cache for the second tier storage device  304 . The second tier storage device  304  may be a cache for the third tier storage device  306 . The third tier storage device  306  may be a cache for the fourth tier storage device  308 . Each tier  302 ,  304 ,  306 ,  308  may be progressively slower and larger than the last. For example, the fourth tier storage device  308  may be a ‘cloud’ storage solution or a tape library while the third tier storage device  306  may be a local hard disk drive  104  with relatively less storage space but relatively faster access time. As a cache, the third tier storage device  306  may store a subset of the total data stored on the fourth tier storage device  308 . The second tier storage device  304  may be a SSD  102  with relatively less storage space than the third tier storage device  306 , but relatively faster access time. As a cache, the second tier storage device  304  may store a subset of the data stored on the third tier storage device  306 . The first tier storage device  302  may be system memory. Because the second tier storage device  304  is a cache of the third tier storage device  306  and the third tier storage device  306  is a cache of the fourth tier storage device  308 , any hit at the second tier storage device  304  will necessarily hit at the third tier storage device  306  and the fourth tier storage device  308 . Therefore, any data newly written to the second tier storage device  304  must also eventually be written to the third tier storage device  306  and the fourth tier storage device  308 . 
         [0024]    Where a write operation attempts to modify data cached in the second tier storage device  304 , the data in the second tier storage device  304  is overwritten and the same data is written to the first tier data block  310 . The first tier data block  310  is a segregated data block of the first tier storage device  302  to temporarily store newly written data until such data can be efficiently written to the third tier storage device  306 . The first tier data block  310  may accommodate data from multiple write operations. When the amount of data stored in the first tier data block  310  reaches a predetermined limit, the processor  300  may write the data to the third tier storage device  306  and purge the first tier data block  310  so that the first tier data block  310  can begin to accept new write operations. The processor  300  may also write the data to the second tier data block  312 . The second tier data block  312  is a segregated data block of the second tier storage device  304  to temporarily store newly written data until such data can be efficiently written to the fourth tier storage device  308 . The second tier data block  312  may accommodate data from multiple write operations. When the amount of data stored in the second tier data block  312  reaches a predetermined limit, the processor  300  writes the data to the fourth tier storage device  308  and purges the second tier data block  312  so that the second tier data block  312  can begin to accept new write operations. 
         [0025]    Newly written data may not hit every tier in a data storage system. For example, a write operation may attempt to overwrite data cached in the third tier storage device  306  but not cached in the second tier storage device  304 . In that case, the data in the third tier storage device  306  may be overwritten and corresponding new data may be written to the second tier data block  312 . The second tier data block  312  may accommodate data from multiple write operations. When the amount of data stored in the second tier data block  312  reaches a predetermined limit, the processor  300  may write the data to the fourth tier storage device  308  and purge the second tier data block  312  so that the second tier data block  312  can begin to accept new write operations. 
         [0026]    Using the present data storage system, the number of write operations to each successive tier may be minimized by consolidating a plurality of write operations in a cache. Newly written data is always maintained in at least two separate locations so that for the period of time when newly written data is stored only in a cache, the newly written data can always be recovered after a single failure. 
         [0027]    Referring to  FIG. 4 , a flowchart for minimizing write operations in a data storage system with a first tier storage device  302 , a second tier storage device  304  and a third tier storage device  306  is shown. When a write operation  401  attempts to overwrite data found in the second tier storage device  304 , the data storage system may write  400  the new data set to the second tier storage device  304 . The second tier storage device  304  may be a cache for a third tier storage device  306 . The data storage system may contemporaneously write  402  the data set to a first tier data block  310  in a first tier storage device  302 . Write operations  401  attempting to overwrite data found in the second tier storage device  304  may continue to write  400  to the second tier storage device  304  and write  402  to the first tier data block  310  until the data storage system determines  404  the first tier data block  310  has reached a predetermined data limit. When the first tier data block  310  reaches the predetermined data limit, the data storage system may copy  406  the data in the first tier data block  310  to the third tier storage device  306 . By this method all newly written data sets are migrated to the largest capacity, slowest storage device with a minimum number of write operations in a data storage system with three tiers. Total performance of the system during write operations is thereby improved. In a data storage system with more than three tiers, the data storage system may also copy  408  the first tier data block  310  to a second tier data block  312  in the second tier storage device  304 . The data storage system may then determine if the second tier data block  312  has reached a predetermined limit. If the second tier data block  312  has reached a predetermined limit, the data storage system may copy  414  the second tier data block  312  to a fourth tier storage device  308  and purge  416  the second tier data block  312 . In a four tier data storage system, all newly written data is migrated to the highest level tier and the process ends  418 . In a data storage system with more than four tiers, the process may continue in a similar manner until all new write operations  401  are migrated to the highest level tier. 
         [0028]    At each tier  302 ,  304 ,  306 , the storage device may include a data block  310 ,  312 ,  314  with a predetermined data limit. The predetermined data limit may be configured to maximize efficiency in write operations between tiers based on the characteristics of the storage device implementing each tier  302 ,  304 ,  306 ,  308 . For example, where the third tier storage device  306  is a hard disk drive, the third tier storage device  306  may be able to write a certain number of megabytes of data in a given track before moving the head actuator. The first tier data block  310  may therefore have a predetermined limit less than but nearly equal to that certain number of megabytes to maximize the amount of data that may be written to the third tier storage device  306  before moving the head actuator which is a limiting factor in the speed of operations to a hard disk drive. 
         [0029]    Referring to  FIG. 5 , a flowchart is shown for minimizing write operations in a data storage system with a first tier storage device  302 , a second tier storage device  304 , a third tier storage device  306  and a fourth tier storage device  308  when a new data write does not hit the lowest tier. When a write operation  500  attempts to overwrite data found in the third tier storage device  306 , the data storage system may determine  502  that a data hit does not occur at a second tier storage device  304 . The data storage system may then write  504  the new data set to the third tier storage device  306 . The third tier storage device  306  may be a cache for a fourth tier storage device  308 . The data storage system may contemporaneously write  506  the data set to a second tier data block  312  in the second tier storage device  304 . Write operations  500  attempting to overwrite data found in the third tier storage device  306  may continue to write  504  to the third tier storage device  306  and write  506  to the second tier data block  312  until the data storage system determines  508  the second tier data block  312  has reached a predetermined data limit. When the second tier data block  312  reaches the predetermined data limit, the data storage system may copy  510  the data in the first second data block  312  to the fourth tier storage device  308 . By this method all newly written data sets are migrated to the largest capacity, slowest storage device with a minimum number of write operations in a data storage system with four tiers. Total performance of the system during write operations is thereby improved. 
         [0030]    It is believed that the present invention and many of its attendant advantages will be understood by the foregoing description, and it will be apparent that various changes may be made in the form, construction, and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form herein before described being merely an explanatory embodiment thereof, it is the intention of the following claims to encompass and include such changes.