Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives
First Claim
1. A method of providing RAID (Redundant Array of Independent Disks) data protection for a storage object in a data storage system, wherein the data storage system includes a storage processor and a group of hard disk drives communicably coupled to the storage processor, the method comprising:
- generating a RAID mapping table, wherein the RAID mapping table contains a plurality of RAID extents, wherein each RAID extent contained in the RAID mapping table indicates a predetermined number of drive extents that are used to persistently store host data written to the storage object, and wherein each drive extent comprises a contiguous region of non-volatile data storage located on one of the hard disk drives, wherein each one of the RAID extents in the RAID mapping table indicates the same predetermined total number of drive extents;
creating, in the group of hard disk drives, a plurality of storage sub-groups, wherein each one of the storage sub-groups contains, in each one of the hard disk drives in the group of hard disk drives, a contiguous set of blocks of storage located within a unique range of logical block addresses corresponding to the storage sub-group; and
allocating, to each one of the RAID extents in the RAID mapping table, and based on the created storage sub-groups, a unique corresponding set of drive extents in which all drive extents contained in the set of drive extents are allocated from within a single one of the storage sub-groups, wherein allocating a unique corresponding set of drive extents to each one of the RAID extents in the RAID mapping table includes calculating a RAID mapping table sub-group size, and wherein the value of the RAID mapping table sub-group size has a value that is at least as large as the result of dividing i) a total number of hard disk drives contained in the group of hard disk drives, by ii) the number of drive extents indicated by each one of the RAID extents in the RAID mapping table.
7 Assignments
0 Petitions
Accused Products
Abstract
Technology is provided within a mapped RAID (Redundant Array of Independent Disks) system for creating multiple storage sub-groups in a group of disk drives. Each one of the storage sub-groups contains, in each one of the hard disk drives in the group of hard disk drives, a contiguous set of blocks of storage located within a unique range of logical block addresses corresponding to the storage sub-group. Based on the storage sub-groups created by the disclosed technology, a unique corresponding set of drive extents is allocated to each one of the RAID extents in the RAID mapping table, such that all drive extents contained in each one of the sets of drive extents are allocated from within a single one of the storage sub-groups. Drive extents may be allocated such that a low level of variance is maintained within values of a neighborhood matrix for the group of disk drives.
26 Citations
15 Claims
-
1. A method of providing RAID (Redundant Array of Independent Disks) data protection for a storage object in a data storage system, wherein the data storage system includes a storage processor and a group of hard disk drives communicably coupled to the storage processor, the method comprising:
-
generating a RAID mapping table, wherein the RAID mapping table contains a plurality of RAID extents, wherein each RAID extent contained in the RAID mapping table indicates a predetermined number of drive extents that are used to persistently store host data written to the storage object, and wherein each drive extent comprises a contiguous region of non-volatile data storage located on one of the hard disk drives, wherein each one of the RAID extents in the RAID mapping table indicates the same predetermined total number of drive extents; creating, in the group of hard disk drives, a plurality of storage sub-groups, wherein each one of the storage sub-groups contains, in each one of the hard disk drives in the group of hard disk drives, a contiguous set of blocks of storage located within a unique range of logical block addresses corresponding to the storage sub-group; and allocating, to each one of the RAID extents in the RAID mapping table, and based on the created storage sub-groups, a unique corresponding set of drive extents in which all drive extents contained in the set of drive extents are allocated from within a single one of the storage sub-groups, wherein allocating a unique corresponding set of drive extents to each one of the RAID extents in the RAID mapping table includes calculating a RAID mapping table sub-group size, and wherein the value of the RAID mapping table sub-group size has a value that is at least as large as the result of dividing i) a total number of hard disk drives contained in the group of hard disk drives, by ii) the number of drive extents indicated by each one of the RAID extents in the RAID mapping table. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A data storage system that provides RAID (Redundant Array of Independent Disks) data protection for a storage object, comprising:
-
at least one storage processor including processing circuitry and a memory; a set of hard disk drives communicably coupled to the storage processor; and wherein the memory has program code stored thereon, wherein the program code, when executed by the processing circuitry, causes the processing circuitry to; generate a RAID mapping table in the memory, wherein the RAID mapping table contains a plurality of RAID extents, wherein each RAID extent contained in the RAID mapping table indicates a predetermined number of drive extents that are used to persistently store host data written to the storage object, wherein each drive extent comprises a contiguous region of non-volatile data storage located on one of the hard disk drives, and wherein each one of the RAID extents in the RAID mapping table indicates the same predetermined total number of drive extents, create, in the group of hard disk drives, a plurality of storage sub-groups, wherein each one of the storage sub-groups contains, in each one of the hard disk drives in the group of hard disk drives, a contiguous set of blocks of storage located within a unique range of logical block addresses corresponding to the storage sub-group, and allocate, to each one of the RAID extents in the RAID mapping table, and based on the created storage sub-groups, a unique corresponding set of drive extents in which all drive extents contained in the set of drive extents are allocated from within a single one of the storage sub-groups, at least in part by causing the processing circuitry to calculate a RAID mapping table sub-group size, wherein the value of the RAID mapping table sub-group size has a value that is at least as large as the result of dividing i) a total number of hard disk drives contained in the group of hard disk drives, by ii) the number of drive extents indicated by each one of the RAID extents in the RAID mapping table. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium for providing RAID (Redundant Array of Independent Disks) data protection for a storage object, comprising instructions stored thereon, that when executed on processing circuitry in a storage processor, perform the steps of:
-
generating a RAID mapping table, wherein the RAID mapping table contains a plurality of RAID extents, wherein each RAID extent contained in the RAID mapping table indicates a predetermined number of drive extents that are used to persistently store host data written to the storage object, and wherein each drive extent comprises a contiguous region of non-volatile data storage located on one of the hard disk drives, wherein each one of the RAID extents in the RAID mapping table indicates the same predetermined total number of drive extents; creating, in the group of hard disk drives, a plurality of storage sub-groups, wherein each one of the storage sub-groups contains, in each one of the hard disk drives in the group of hard disk drives, a contiguous set of blocks of storage located within a unique range of logical block addresses corresponding to the storage sub-group; and allocating, to each one of the RAID extents in the RAID mapping table, and based on the created storage sub-groups, a unique corresponding set of drive extents in which all drive extents contained in the set of drive extents are allocated from within a single one of the storage sub-groups, wherein allocating a unique corresponding set of drive extents to each one of the RAID extents in the RAID mapping table includes calculating a RAID mapping table sub-group size, and wherein the value of the RAID mapping table sub-group size has a value that is at least as large as the result of dividing i) a total number of hard disk drives contained in the group of hard disk drives, by ii) the number of drive extents indicated by each one of the RAID extents in the RAID mapping table.
-
Specification