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

US10140041B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10140041-B1
Application numberUS-201715662731-A
CountryUS
Kind codeB1
Filing dateJul 28, 2017
Priority dateJul 28, 2017
Publication dateNov 27, 2018
Grant dateNov 27, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The method of claim 1 , wherein each one of the RAID extents in the RAID mapping table indicates the same predetermined total number of drive extents, and further comprising: calculating a RAID extent sub-group size, wherein the value of the RAID extent sub-group size is at least as large as a result of dividing i) a total number of hard disk drives contained in the group of hard disk drives, by ii) the predetermined total number of drive extents indicated by each one of the RAID extents in the RAID mapping table; and wherein creating the plurality of RAID extent sub-groups further comprises creating each one of the RAID extent sub-groups to contain a total number of consecutively located RAID extents that is equal to the RAID extent sub-group size. 3. The method of claim 2 , wherein allocating drive extents to the RAID extent sub-groups includes allocating consecutive, contiguous drive extents from each hard disk drive, starting from drive extents that extend over lower ranges of logical block addresses of the hard disk drive, and continuing upwards through consecutive, contiguously located drive extents that extend over higher ranges of logical block addresses of the hard disk drive. 4. The method of claim 3 , further comprising: generating a neighborhood matrix for the group of hard disk drives, wherein each element in the neighborhood matrix for the group of hard disk drives corresponds to a pair of hard disk drives contained in the group of hard disk drives and stores a value equal to a total number of RAID extents in the RAID mapping table that indicate both i) at least one drive extent located on a first one of the hard disk drives in the pair of hard disk drives corresponding to the element, and ii) at least one drive extent located on a second one of the hard disk drives in the pair of hard disk drives corresponding to the element; and wherein allocating each one of the drive extents in the unique set of drive extents corresponding to the RAID extents contained in each one of the RAID extent sub-groups includes: i) generating a list of candidate drives contained in the group of hard disk drives, wherein each candidate drive in the list of candidate drives has located thereon at least one free drive extent and has no drive extent located thereon that was previously allocated to any RAID extent in the RAID extent sub-group, ii) assigning, to each one of the candidate drives, a variance weighting that is equal to a variance of the values of the elements in the neighborhood matrix for the group of hard disk drives resulting from modifying the neighborhood matrix to indicate that the drive extent was allocated from the candidate drive, iii) selecting one of the candidate drives having a lowest assigned variance weighting, and iv) allocating a drive extent from the candidate drive having the lowest assigned variance weighting. 5. The method of claim 4 , wherein allocating a unique corresponding set of drive extents to each one of the RAID extent sub-groups further includes: determining whether any drive extent has previously been allocated to the RAID extent sub-group; and in response to determining that no drive extent has previously been allocated to the RAID extent sub-group: i) determining which one of the hard disk drives in the group of hard disk drives that has located thereon a number of free drive extents that is greater than the number of free drive extents located on any other hard disk drive in the group of hard disk drives, and ii) allocating a drive extent to the RAID extent sub-group from the one of the hard disk drives that has located thereon the number of free drive extents that is greater than the number of free drive extents located on any other hard disk drive in the group of hard disk drives. 6. The method of claim 1 , further comprising: performing a flush operation on a cache located within the data storage system that stores host data received by the data storage system that is directed to the storage object; and wherein the 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 is received from the cache during the flush operation. 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

Assignees

Inventors

Classifications

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • Parity data used in redundant arrays of independent storages, e.g. in RAID systems · CPC title

  • at area level, e.g. provisioning of virtual or logical volumes · CPC title

  • by allocating resources to storage systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10140041B1 cover?
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 ar…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/0619. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 27 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).