Balanced load distribution for redundant disk array
AssigneeUniversity of New Hampshire
InventorsAndrás Krisztián Fekete, Elizabeth Varki
Life of this patent
Estimating the term…
Abstract
A redundant disk array includes homogeneous or heterogeneous disks divided into chunks, where larger disks have more chunks. Chunks from one or more disks are grouped into bundles containing data stored across multiple disks. Frequently accessed chunks can be moved to under-utilized, faster disks and least frequently used chunks can be moved to larger, slower disks, to balance the distribution of load across all of the disks in the array.
Claims20
A computer-implemented method comprising:
- allocating, by a processor, a plurality of identically sized logical blocks of storage units together to form a bundle on each of a plurality of data storage devices, at least two of the logical blocks in the bundle being located on different data storage devices;
- generating, by the processor, a lookup table representing a mapping between a logical location of each logical block in the bundle and a physical location of the respective logical block on the corresponding data storage device;
- electronically writing, by the processor, data to the physical locations of each logical block in the bundle, the physical locations being obtained from the lookup table;
- determining, by the processor, a candidate logical block among all of the logical blocks based at least in part on a speed of a different data storage device and an average access interval of the logical block on the different data storage device;
- and
- electronically writing, by the processor, the data in the candidate logical block to another logical block on the different one of the data storage devices.
A system comprising:
- a storage;
- and
- a computer processor operatively coupled to the storage, the computer processor configured to execute instructions stored in the storage that when executed cause the computer processor to carry out a process comprising
- allocating a plurality of identically sized logical blocks of storage units together to form a bundle on each of a plurality of data storage devices, at least two of the logical blocks in the bundle being located on different data storage devices;
- generating a lookup table representing a mapping between a logical location of each logical block in the bundle and a physical location of the respective logical block on the corresponding data storage device;
- electronically writing data to the physical locations of each logical block in the bundle, the physical locations being obtained from the lookup table;
- determining, by the processor, a candidate logical block among all of the logical blocks based at least in part on a speed of a different data storage device and an average access interval of the logical block on the different data storage device;
- and
- electronically writing, by the processor, the data in the candidate logical block to another logical block on the different one of the data storage devices.
A non-transitory computer program product having instructions encoded thereon that when executed by one or more processors cause a process to be carried out, the process comprising:
- allocating, by the one or more processors, a plurality of identically sized logical blocks of storage units together to form a bundle on each of a plurality of data storage devices, at least two of the logical blocks in the bundle being located on different data storage devices;
- generating, by the one or more processors, a lookup table representing a mapping between a logical location of each logical block in the bundle and a physical location of the respective logical block on the corresponding data storage device;
- electronically writing, by the one or more processors, data to the physical locations of each logical block in the bundle, the physical locations being obtained from the lookup table;
- determining, by the one or more processors, a candidate logical block among all of the logical blocks based at least in part on a speed of a different data storage device and an average access interval of the logical block on the different data storage device;
- and
- electronically writing, by the one or more processors, the data in the candidate logical block to another logical block on the different one of the data storage devices.
Dependencies are inferred from the claim text.