IP Library Granted Patent US 11,340,816
Granted Patent B2
US 11,340,816 · App. 16/940,758 · Granted May 24, 2022

Deallocation of drive extents for mapped raid (redundant array of independent disks) extents

Inventors: Nickolay Dalmatov (Saint Petersburg, RU); Mikhail Danilov (Saint Petersburg, RU)
Assignee: EMC IP Holding Company LLC
G06F3/0644G06F3/0604G06F3/0631G06F3/0689
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,340,816
App. No.
16/940,758
Granted
May 24, 2022
Kind
B2
Abstract

A mapped RAID system with a protection group of physical data storage drives calculates an affinity value for each pair of physical data storage drives in the protection group that is equal to a total number of RAID extents to which at least one drive extent is allocated from each of the physical data storage drives in the pair. A change from a previous level of RAID protection to a new level of RAID protection provided by one of the RAID extents is detected. The new level of RAID protection provided by the RAID extent uses fewer drive extents than the previous level of RAID protection provided by the RAID extent. The disclosed technology selects one of the drive extents previously allocated to the RAID extent for deallocation such that the range of the affinity values is minimized after deallocation of the drive extent.

Claims (46)

1. A method comprising:

providing mapped RAID (Redundant Array of Independent Disks) protection for data written into a logical RAID space, wherein the RAID space includes multiple RAID extents, wherein each RAID extent independently provides a corresponding level of RAID protection, and wherein multiple drive extents are allocated to each individual RAID extent from a protection group of storage drives;

calculating an affinity value for each pair of storage drives in the protection group that is equal to a total number of RAID extents to which at least one drive extent is allocated from each storage drive in the pair of storage drives;

detecting a change from a previous level of RAID protection to a new level of RAID protection provided for one of the RAID extents, wherein the new level of RAID protection uses fewer drive extents than the previous level of RAID protection; and

selecting one of the drive extents allocated to the RAID extent for deallocation such that the range of the affinity values after deallocation of the drive extent is minimized, wherein the range of the affinity values after deallocation of the drive extent is minimized comprises a difference between a highest affinity value and a lowest affinity value after deallocation of the drive extent.

2. The method of claim 1 , wherein calculating the affinity value for each pair of storage drives in the protection group further comprises:

generating an affinity matrix for the protection group, wherein each element in the affinity matrix for the protection group corresponds to a pair of storage drives contained in the protection group and stores a value equal to the total number of RAID extents in the RAID space to which are allocated i) at least one drive extent contained in a first one of the storage drives in the pair of storage drives, and ii) at least one drive extent contained in a second one of the storage drives in the pair of storage drives corresponding to the element.

3. The method of claim 2 , wherein selecting one of the drive extents allocated to the RAID extent for deallocation such that the range of the affinity values after deallocation of the drive extent is minimized comprises:

selecting one of the drive extents allocated to the RAID extent for deallocation such that the range of the values stored in the elements of the affinity matrix after deallocation of the drive extent is minimized.

4. The method of claim 2 , wherein selecting one of the drive extents allocated to the RAID extent for deallocation such that the range of the affinity values after deallocation of the drive extent is minimized comprises selecting a drive extent for deallocation from the drive extents previously allocated to the one of the RAID extents such that the range of the values in the affinity matrix after deallocation of the selected drive extent is a minimum range of the values in the affinity matrix that can be achieved after deallocation of any one of the drive extents previously allocated to the RAID extent.

5. The method of claim 1 , wherein the new level of RAID protection for the RAID extent provides a lower level of RAID protection for the RAID extent than the previous level of RAID protection.

6. The method of claim 5 , further comprising:

receiving a list of multiple RAID extents in the RAID space for which a previous level of RAID protection is being changed to a new level of RAID protection;

identifying those RAID extents in the list for which the new level of RAID protection uses fewer drive extents than the previous level of RAID protection; and

for each of those RAID extents in the list for which the new level of RAID protection uses fewer drive extents than the previous level of RAID protection, selecting at least one of the drive extents allocated to the RAID extent for deallocation such that the range of the affinity values after deallocation of the drive extent is minimized.

7. The method of claim 6 , wherein at least two RAID extents in the multiple RAID extents in the logical RAID space provide different levels of RAID protection.

8. The method of claim 1 , wherein deallocation of the drive extent enables the drive extent to be reallocated to another one of the RAID extents in the RAID space.

9. The method of claim 1 , wherein the change from the previous level of RAID protection to the new level of RAID protection for the one of the RAID extents is performed in response to detecting a change in a faultiness level of the storage drives that contain the drive extents allocated to the RAID extent.

10. The method of claim 9 , wherein detecting the change in the faultiness level of the storage drives containing the drive extents allocated to the RAID extent comprises detecting a lower faultiness level of the storage drives containing the drive extents allocated to the RAID extent.

11. A data storage system 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:

provide mapped RAID (Redundant Array of Independent Disks) protection for data written into a logical RAID space, wherein the RAID space includes multiple RAID extents, wherein each RAID extent independently provides a corresponding level of RAID protection, and wherein multiple drive extents are allocated to each individual RAID extent from a protection group of storage drives,

calculate an affinity value for each pair of storage drives in the protection group that is equal to a total number of RAID extents to which at least one drive extent is allocated from each storage drive in the pair of storage drives,

detect a change from a previous level of RAID protection to a new level of RAID protection provided for one of the RAID extents, wherein the new level of RAID protection uses fewer drive extents than the previous level of RAID protection, and

select one of the drive extents allocated to the RAID extent for deallocation such that the range of the affinity values after deallocation of the drive extent is minimized, wherein the range of the affinity values after deallocation of the drive extent is minimized comprises a difference between a highest affinity value and a lowest affinity value after deallocation of the drive extent.

12. The data storage system of claim 11 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to calculate the affinity value for each pair of storage drives in the protection group at least in part by causing the processing circuitry to:

generate an affinity matrix for the protection group, wherein each element in the affinity matrix for the protection group corresponds to a pair of storage drives contained in the protection group and stores a value equal to the total number of RAID extents in the RAID space to which are allocated i) at least one drive extent contained in a first one of the storage drives in the pair of storage drives, and ii) at least one drive extent contained in a second one of the storage drives in the pair of storage drives corresponding to the element.

13. The data storage system of claim 12 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to select one of the drive extents allocated to the RAID extent for deallocation such that the range of the affinity values after deallocation of the drive extent is minimized at least in part by causing the processing circuitry to:

select one of the drive extents allocated to the RAID extent for deallocation such that the range of the values stored in the elements of the affinity matrix after deallocation of the drive extent is minimized.

14. The data storage system of claim 11 , further comprising:

wherein the new level of RAID protection for the RAID extent provides a lower level of RAID protection for the RAID extent than the previous level of RAID protection.

15. The data storage system of claim 14 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to:

receive a list of multiple RAID extents in the RAID space for which a previous level of RAID protection is being changed to a new level of RAID protection;

identify those RAID extents in the list for which the new level of RAID protection uses fewer drive extents than the previous level of RAID protection; and

for each of those RAID extents in the list for which the new level of RAID protection uses fewer drive extents than the previous level of RAID protection, select at least one of the drive extents allocated to the RAID extent for deallocation such that the range of the affinity values after deallocation of the drive extent is minimized.

16. The data storage system of claim 15 , wherein at least two RAID extents in the multiple RAID extents in the logical RAID space provide different levels of RAID protection.

17. The data storage system of claim 11 , wherein deallocation of the drive extent enables the drive extent to be reallocated to another one of the RAID extents in the RAID space.

18. The data storage system of claim 11 , wherein the change from the previous level of RAID protection to the new level of RAID protection for the one of the RAID extents is performed in response to detecting a change in a faultiness level of the storage drives that contain the drive extents allocated to the RAID extent.

19. The data storage system of claim 18 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to detect the change in the faultiness level of the storage drives containing the drive extents allocated to the RAID extent at least in part by causing the processing circuitry to detect a lower faultiness level of the storage drives containing the drive extents allocated to the RAID extent.

20. A computer program product including a non-transitory computer readable medium having instructions stored thereon, wherein the instructions, when executed on processing circuitry, cause the processing circuitry to perform the steps of:

providing mapped RAID (Redundant Array of Independent Disks) protection for data written into a logical RAID space, wherein the RAID space includes multiple RAID extents, wherein each RAID extent independently provides a corresponding level of RAID protection, and wherein multiple drive extents are allocated to each individual RAID extent from a protection group of storage drives;

calculating an affinity value for each pair of storage drives in the protection group that is equal to a total number of RAID extents to which at least one drive extent is allocated from each storage drive in the pair of storage drives;

detecting a change from a previous level of RAID protection to a new level of RAID protection provided for one of the RAID extents, wherein the new level of RAID protection uses fewer drive extents than the previous level of RAID protection; and

selecting one of the drive extents allocated to the RAID extent for deallocation such that the range of the affinity values after deallocation of the drive extent is minimized, wherein the range of the affinity values after deallocation of the drive extent is minimized comprises a difference between a highest affinity value and a lowest affinity value after deallocation of the drive extent.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2020
From: DALMATOV, NICKOLAY; DANILOV, MIKHAIL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053510/0181 →