Method and apparatus for allocating erasure coded data to disk storage
First Claim
1. A computer-implemented method comprising:
- allocating encoded data objects for storage in a pool of disk storage devices comprising multiple disk drives;
at least some of the encoded objects being generated by different error correction algorithms and allocation is not restricted to a group of drives based on the algorithm utilized to generate the encoded object;
each disk drive is divided into multiple logical storage units, each defined as a partition;
a logical storage unit group (LSU group) comprising a group of partitions extending across a group of disk drives, wherein the partitions of the LSU group are each of the same size and cannot be on the same drive;
the allocating of each encoded data object being performed utilizing a single allocation bitmap that extends across the LSU group to identify available locations for storage of the object, wherein the object is allocated to one available location defined by contiguous bits of the bitmap, or to multiple locations aligned along a common partition boundary allowing a gap of non-contiguous allocation between the two locations.
2 Assignments
0 Petitions
Accused Products
Abstract
Allocation process that allows erasure coded data to be stored on any of a plurality of disk drives, in a pool of drives, so that the allocation is not tied to a fixed group of drives. Still further, the encoded data can be generated by any of multiple different erasure coding algorithms, where again storage of the encoded data is not restricted to a single group of drives based on the erasure algorithm being utilized to encode the data. In another embodiment, the encoded data can be “stacked” (aligned) on select drives to reduce the number of head seeks required to access the data. As a result of these improvements, the system can dynamically determine which one of multiple erasure coding algorithms to utilize for a given incoming data block, without being tied to one particular algorithm and one particular group of storage devices as in the prior art.
231 Citations
24 Claims
-
1. A computer-implemented method comprising:
-
allocating encoded data objects for storage in a pool of disk storage devices comprising multiple disk drives; at least some of the encoded objects being generated by different error correction algorithms and allocation is not restricted to a group of drives based on the algorithm utilized to generate the encoded object; each disk drive is divided into multiple logical storage units, each defined as a partition; a logical storage unit group (LSU group) comprising a group of partitions extending across a group of disk drives, wherein the partitions of the LSU group are each of the same size and cannot be on the same drive; the allocating of each encoded data object being performed utilizing a single allocation bitmap that extends across the LSU group to identify available locations for storage of the object, wherein the object is allocated to one available location defined by contiguous bits of the bitmap, or to multiple locations aligned along a common partition boundary allowing a gap of non-contiguous allocation between the two locations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A data storage system comprising:
-
an error correction algorithm component operable to select, for different incoming data objects, different error correction algorithms for generating encoded data objects; and a disk storage allocation component for allocating the encoded data objects for storage in a pool of disk storage devices comprising multiple disk drives, at least some of the encoded objects generated by different error correction algorithms being allocated to the same or a different group of drives that is not based on the algorithm utilized to generate the encoded object; wherein each disk drive is divided into multiple logical storage units, each defined as a partition; a logical storage unit group (LSU group) comprising a group of partitions extending across a group of disk drives wherein the partitions of the LSU group are of each of the same size and cannot be on the same drive; the allocation component utilizing a single allocation bitmap that extends across the LSU group to identify available locations for storage of the object, wherein the object is allocated to one available location defined by contiguous bits of the bitmap, or to multiple locations aligned along a common partition boundary allowing a gap of non-contiguous allocation between the two locations. - View Dependent Claims (21, 22, 23)
-
-
24. In a computing environment for locating data storage, a data structure comprising an allocation bitmap, stored on a non-transitory computer-readable medium, to request available allocation units for storing encoded data objects in a pool of disk storage devices comprising multiple disk drives;
-
at least some of the encoded objects being generated by different error correction algorithms and allocation is not restricted to a group of drives based on the algorithm utilized to generate the encoded object; each disk drive is divided into multiple logical storage units, each defined as a partition; a logical storage unit group (LSU group) comprising a group of partitions extending across a group of disk drives, wherein partitions of the LSU group are each of the same size and cannot be on the same drive; the single allocation bitmap extends across the LSU group to identify available locations for storage of the object, the bitmap including multiple available locations aligned along a common boundary allowing a gap of non-contiguous allocation between the two locations.
-
Specification