IP Library Granted Patent US 10,908,997
Granted Patent B1
US 10,908,997 · App. 16/526,547 · Granted Feb 2, 2021

Simple and efficient technique to support disk extents of different sizes for mapped RAID

Inventors: Vamsi K. Vankamamidi (Hopkinton, MA); Shuyu Lee (Acton, MA); Ronald D. Proulx (Boxborough, MA)
Assignee: EMC IP Holding Company LLC
G06F11/1084G06F3/0619G06F3/0653G06F3/0689G06F12/0253
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 10,908,997
App. No.
16/526,547
Granted
Feb 2, 2021
Kind
B1
Abstract

A technique is directed to storing data on a plurality of storage devices of a data storage array. The technique involves, on each storage device of the plurality of storage devices, providing large disk extents and small disk extents for allocation to RAID extents. The technique further involves forming, from the large disk extents, a user-data RAID extent to store user data for the data storage array. The technique further involves forming, from the small disk extents, an internal-metadata RAID extent to store internal metadata for the data storage array. In some arrangements, spare space is reserved on one or more storage devices between large and small disk extents.

Claims (60)

1. A method of storing data on a plurality of storage devices of a data storage array, the method comprising:

on each storage device of the plurality of storage devices, providing large disk extents and small disk extents for allocation to Redundant Array of Independent Disk (RAID) extents;

from the large disk extents, forming a user-data RAID extent to store user data for the data storage array; and

from the small disk extents, forming an internal-metadata RAID extent to store internal metadata for the data storage array;

wherein each storage device of the plurality of storage devices has a first end and a second end that define a logical block address (LBA) range, a lowest LBA of the LBA range starting at one of the first end and the second end of that storage device, and a highest LBA of the LBA range starting at the other of the first end and the second end of that storage device; and

wherein providing the large disk extents and the small disk extents for allocation to the RAID extents includes:

on each storage device of the plurality of storage devices, creating a series of large disk extents starting at the first end of that storage device and creating a series of small disk extents starting at the second end of that storage device.

2. A method as in claim 1 wherein creating the series of large disk extents on each storage device of the plurality of storage devices includes slicing storage space starting at the first end of that storage device into a contiguous sequence of large disk extents, each large disk extent having a same large disk extent size; and

wherein creating the series of small disk extents on each storage device of the plurality of storage devices includes slicing storage space starting at the second end of that storage device into a contiguous sequence of small disk extents, each small disk extent having a same small disk extent size which is smaller than the large disk extent size.

3. A method as in claim 2 , further comprising:

on at least some storage devices of the plurality of storage devices, reserving spare space between the contiguous sequence of large disk extents and the contiguous sequence of small disk extents created on those storage devices while the user-data RAID extent stores user data for the data storage array and the internal-metadata RAID extent stores internal metadata for the data storage array.

4. A method as in claim 3 , further comprising:

in response to a request to form another user-data RAID extent, allocating a portion of spare space on a particular storage device to extend a contiguous sequence of large disk extents starting at the first end of the particular storage device.

5. A method as in claim 3 , further comprising:

in response to a request to form another internal-metadata RAID extent, allocating a portion of spare space on a particular storage device to extend a contiguous sequence of small disk extents starting at the second end of the particular storage device.

6. A method as in claim 3 , further comprising:

in response to a request to form another user-data RAID extent, allocating a first portion of spare space on a particular storage device to extend a contiguous sequence of large disk extents starting at the first end of the particular storage device, and

in response to a request to form another internal-metadata RAID extent, allocating a second portion of spare space on a particular storage device to extend a contiguous sequence of small disk extents starting at the second end of the particular storage device.

7. A method as in claim 6 wherein the first portion of spare space on the particular storage device is allocated from a first end of the spare space closest to the first end of the particular storage device to extend the contiguous sequence of large disk extents, and

wherein the second portion of spare space on the particular storage device is allocated from a second end of the spare space closest to the second end of the particular storage device to extend the contiguous sequence of large disk extents.

8. A method as in claim 3 , further comprising:

in response to a change in an input/output (I/O) profile of the data storage array, performing a garbage collection operation to reclaim at least one large disk extent of a contiguous sequence of large disk extents on a particular storage device, the at least one large disk extent being returned to a spare space between the contiguous sequence of large disk extents and a contiguous sequence of small disk extents on the particular storage device.

9. A method as in claim 8 wherein the at least one large disk extent included a particular large disk extent that consumed storage space on the particular storage device; and

wherein the method further comprises:

repurposing the storage space consumed by the particular large disk extent into at least one small disk extent for use in a new internal-metadata RAID extent.

10. A method as in claim 3 , further comprising:

in response to a ratio change in an input/output (I/O) profile of the data storage array, performing a garbage collection operation to reclaim at least one small disk extent of a contiguous sequence of small disk extents on a particular storage device, the at least one small disk extent being returned to a spare space between a contiguous sequence of large disk extents and the contiguous sequence of small disk extents on the particular storage device.

11. A method as in claim 10 wherein the at least one small disk extent included a particular small disk extent that consumed storage space on the particular storage device; and

wherein the method further comprises:

repurposing the storage space consumed by the particular small disk extent into a portion of a large disk extent for use in a new user-data RAID extent.

12. A method as in claim 3 , further comprising:

allocating the spare space from a set of storage devices to form a hot-spare storage device for use by the data storage array to reconstruct data from a failed storage device.

13. A method as in claim 12 , further comprising:

reconstructing data from the failed storage device using the hot-spare storage device while the plurality of storage devices store, as the user data, host data on behalf of a set of host computer in accordance with a mapped-RAID architecture.

14. A method as in claim 2 wherein forming the user-data RAID extent to store the user data for the data storage array includes combining multiple large disk extents into a first storage object that provides data storage resiliency in accordance with a particular RAID level, each of the multiple large disk extents residing on a different storage device, the data storage array storing user data within the first storage object on behalf of a set of host computers; and

wherein forming the internal-metadata RAID extent to store the internal metadata for the data storage array includes combining multiple small disk extents into a second storage object that provides data storage resiliency in accordance with the particular RAID level, each of the multiple small disk extents residing on a different storage device, the data storage array storing internal metadata within the second storage object in support of storing user data on behalf of the set of host computers.

15. Data storage equipment, comprising:

memory; and

control circuitry coupled to the memory, the memory storing instructions which, when carried out by the control circuitry, cause the control circuitry to:

on each storage device of a plurality of storage devices, provide large disk extents and small disk extents for allocation to Redundant Array of Independent Disk (RAID) extents;

from the large disk extents, form a user-data RAID extent to store user data for the data storage array; and

from the small disk extents, form an internal-metadata RAID extent to store internal metadata for the data storage array;

wherein each storage device of the plurality of storage devices has a first end and a second end that define a logical block address (LBA) range, a lowest LBA of the LBA range starting at one of the first end and the second end of that storage device, and a highest LBA of the LBA range starting at the other of the first end and the second end of that storage device; and

wherein the control circuitry, when providing the large disk extents and the small disk extents for allocation to the RAID extents, is constructed and arranged to:

on each storage device of the plurality of storage devices, creating a series of large disk extents starting at the first end of that storage device and creating a series of small disk extents starting at the second end of that storage device.

16. Data storage equipment as in claim 15 wherein the control circuitry, when creating the series of large disk extents on each storage device of the plurality of storage devices is constructed and arranged to slice storage space starting at the first end of that storage device into a contiguous sequence of large disk extents, each large disk extent having a same large disk extent size; and

wherein the control circuitry, when creating the series of small disk extents on each storage device of the plurality of storage devices, is constructed and arranged to slice storage space starting at the second end of that storage device into a contiguous sequence of small disk extents, each small disk extent having a same small disk extent size which is smaller than the large disk extent size.

17. Data storage equipment as in claim 16 wherein the control circuitry is further constructed and arranged to:

on at least some storage devices of the plurality of storage devices, reserve spare space between the contiguous sequence of large disk extents and the contiguous sequence of small disk extents created on those storage devices while the user-data RAID extent stores user data for the data storage array and the internal-metadata RAID extent stores internal metadata for the data storage array.

18. A computer program product having a non-transitory computer readable medium which stores a set of instructions to store data on a plurality of storage devices of a data storage array; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

on each storage device of the plurality of storage devices, providing large disk extents and small disk extents for allocation to Redundant Array of Independent Disk (RAID) extents;

from the large disk extents, forming a user-data RAID extent to store user data for the data storage array; and

from the small disk extents, forming an internal-metadata RAID extent to store internal metadata for the data storage array, the user-data RAID extent being larger in size than the internal-metadata RAID extent;

wherein each storage device of the plurality of storage devices has a first end and a second end that define a logical block address (LBA) range, a lowest LBA of the LBA range starting at one of the first end and the second end of that storage device, and a highest LBA of the LBA range starting at the other of the first end and the second end of that storage device; and

wherein providing the large disk extents and the small disk extents for allocation to the RAID extents includes:

on each storage device of the plurality of storage devices, creating a series of large disk extents starting at the first end of that storage device and creating a series of small disk extents starting at the second end of that storage device.

19. A computer program product as in claim 16 wherein creating the series of large disk extents on each storage device of the plurality of storage devices includes slicing storage space starting at the first end of that storage device into a contiguous sequence of large disk extents, each large disk extent having a same large disk extent size; and

wherein creating the series of small disk extents on each storage device of the plurality of storage devices includes slicing storage space starting at the second end of that storage device into a contiguous sequence of small disk extents, each small disk extent having a same small disk extent size which is smaller than the large disk extent size.

20. A computer program product as in claim 19 wherein the method further includes:

on at least some storage devices of the plurality of storage devices, reserving spare space between the contiguous sequence of large disk extents and the contiguous sequence of small disk extents created on those storage devices while the user-data RAID extent stores user data for the data storage array and the internal-metadata RAID extent stores internal metadata for the data storage array.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2019
From: VANKAMAMIDI, VAMSI K.; LEE, SHUYU; PROULX, RONALD D.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050089/0722 →