Memory device with data scrubbing capability and methods
US-2024393961-A1 · Nov 28, 2024 · US
US10140041B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10140041-B1 |
| Application number | US-201715662731-A |
| Country | US |
| Kind code | B1 |
| Filing date | Jul 28, 2017 |
| Priority date | Jul 28, 2017 |
| Publication date | Nov 27, 2018 |
| Grant date | Nov 27, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.