Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object
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 by one or more hosts, and wherein each drive extent comprises a contiguous region of non-volatile data storage located on one of the hard disk drives in the group of hard disk drives;
creating, in the RAID mapping table, a plurality of RAID extent sub-groups, wherein each one of the RAID extent sub-groups contains a unique set of consecutively located RAID extents within the RAID mapping table;
allocating, to the RAID extents contained in each one of the created RAID extent sub-groups, a unique corresponding set of drive extents such that for each RAID extent sub-group no drive extent is allocated to any RAID extent contained in the RAID extent sub-group that is located on the same hard disk drive as any other drive extent allocated to any other RAID extent contained in the RAID extent sub-group;
receiving a set of sequential data directed to the storage object that spans a sequential range of logical block addresses within a logical address space of the storage object;
dividing the set of data into multiple fixed size data elements;
identifying, within the RAID mapping table, at least one RAID extent sub-group corresponding to the sequential range of logical block addresses within the logical address space of the storage object; and
striping the data elements across the RAID extents contained in the identified RAID extent sub-group by writing consecutive ones of the data elements to sets of drive extents indicated by consecutive ones of the RAID extents contained in the RAID extent sub-group corresponding to the sequential range of logical block addresses of the storage object until all of the data elements have been written.
7 Assignments
0 Petitions
Accused Products
Abstract
Technology is provided within a mapped RAID system that creates multiple RAID extent sub-groups in a RAID mapping table. Each of the RAID extent sub-groups contains a unique set of consecutively located RAID extents within the RAID mapping table, and a unique corresponding set of drive extents is allocated to the RAID extents contained in each one of the RAID extent sub-groups. Drive extents are allocated to each RAID extent sub-group such that no drive extent is allocated to any RAID extent contained in the RAID extent sub-group that is located on the same hard disk drive as any other drive extent allocated to any other RAID extent contained in that RAID extent sub-group. Data striping may be performed based on the RAID extent sub-groups, such that host data is divided into data elements that are striped across the RAID extents contained in one or more individual RAID extent sub-groups.
38 Citations
13 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 by one or more hosts, and wherein each drive extent comprises a contiguous region of non-volatile data storage located on one of the hard disk drives in the group of hard disk drives; creating, in the RAID mapping table, a plurality of RAID extent sub-groups, wherein each one of the RAID extent sub-groups contains a unique set of consecutively located RAID extents within the RAID mapping table; allocating, to the RAID extents contained in each one of the created RAID extent sub-groups, a unique corresponding set of drive extents such that for each RAID extent sub-group no drive extent is allocated to any RAID extent contained in the RAID extent sub-group that is located on the same hard disk drive as any other drive extent allocated to any other RAID extent contained in the RAID extent sub-group; receiving a set of sequential data directed to the storage object that spans a sequential range of logical block addresses within a logical address space of the storage object; dividing the set of data into multiple fixed size data elements; identifying, within the RAID mapping table, at least one RAID extent sub-group corresponding to the sequential range of logical block addresses within the logical address space of the storage object; and striping the data elements across the RAID extents contained in the identified RAID extent sub-group by writing consecutive ones of the data elements to sets of drive extents indicated by consecutive ones of the RAID extents contained in the RAID extent sub-group corresponding to the sequential range of logical block addresses of the storage object until all of the data elements have been written. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. 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 group 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, 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 by one or more hosts, and wherein each drive extent comprises a contiguous region of non-volatile data storage located on one of the hard disk drives in the group of hard disk drives, create, in the RAID mapping table, a plurality of RAID extent sub-groups, wherein each one of the RAID extent sub-groups contains a unique set of consecutively located RAID extents within the RAID mapping table, allocate, to the RAID extents contained in each one of the created RAID extent sub-groups, a unique corresponding set of drive extents such that for each RAID extent sub-group no drive extent is allocated to any RAID extent contained in the RAID extent sub-group that is located on the same hard disk drive as any other drive extent allocated to any other RAID extent contained in the RAID extent sub-group, receive a set of sequential data directed to the storage object that spans a sequential range of logical block addresses within a logical address space of the storage object, divide the set of sequential data into multiple fixed size data elements, identify, within the RAID mapping table, at least one RAID extent sub-group corresponding to the sequential range of logical block addresses within the logical address space of the storage object, and stripe the data elements across the RAID extents contained in the identified RAID extent sub-group by writing consecutive ones of the data elements to sets of drive extents indicated by consecutive ones of the RAID extents contained in the RAID extent sub-group corresponding to the sequential range of logical block addresses of the storage object until all of the data elements have been written. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. 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 a storage object by one or more hosts, and wherein each drive extent comprises a contiguous region of non-volatile data storage located a hard disk in a group of hard disk drives; creating, in the RAID mapping table, a plurality of RAID extent sub-groups, wherein each one of the RAID extent sub-groups contains a unique set of consecutively located RAID extents within the RAID mapping table; allocating, to the RAID extents contained in each one of the created RAID extent sub-groups, a unique corresponding set of drive extents such that for each RAID extent sub-group no drive extent is allocated to any RAID extent contained in the RAID extent sub-group that is located on the same hard disk drive as any other drive extent allocated to any other RAID extent contained in the RAID extent sub-group; receiving a set of sequential data directed to the storage object that spans a sequential range of logical block addresses within a logical address space of the storage object; dividing the set of data into multiple fixed size data elements; identifying, within the RAID mapping table, at least one RAID extent sub-group corresponding to the sequential range of logical block addresses within the logical address space of the storage object; and striping the data elements across the RAID extents contained in the identified RAID extent sub-group by writing consecutive ones of the data elements to sets of drive extents indicated by consecutive ones of the RAID extents contained in the RAID extent sub-group corresponding to the sequential range of logical block addresses of the storage object until all of the data elements have been written.
-
Specification