IP Library Granted Patent US 10,496,316
Granted Patent B1
US 10,496,316 · App. 16/176,651 · Granted Dec 3, 2019

Forming storage containers from extents having different widths within a group of storage devices

Inventors: Ronald D. Proulx (Boxborough, MA); Shuyu Lee (Acton, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0644G06F3/0604G06F3/0683G06F3/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 10,496,316
App. No.
16/176,651
Granted
Dec 3, 2019
Kind
B1
Abstract

A technique forms storage containers within a group of storage devices. The technique involves partitioning each storage device of the group of storage devices into slices having a same storage size. The technique further involves creating, from the slices having the same storage size, first extents having a first extent width and second extents having a second extent width. The first extent width is different from the second extent width. The technique further involves provisioning (i) at least one first extent from the first extents having the first extent width to form a first storage container within the group of storage devices and (ii) at least one second extent from the second extents having the second extent width to form a second storage container within the group of storage devices. The first storage container and the second storage container share at least one storage device.

Claims (93)

1. In data storage equipment, a method of forming storage containers within a group of storage devices, the method comprising:

partitioning each storage device of the group of storage devices into slices having a same storage size;

from the slices having the same storage size, creating first extents having a first extent width and second extents having a second extent width, the first extent width being different from the second extent width; and

provisioning (i) at least one first extent from the first extents having the first extent width to form a first storage container within the group of storage devices and (ii) at least one second extent from the second extents having the second extent width to form a second storage container within the group of storage devices, the first storage container and the second storage container sharing at least one storage device of the group of storage devices;

wherein creating the first extents having the first extent width and the second extents having the second extent width includes:

generating, as the first extents having the first extent width, first RAID (redundant array of independent devices) extents, each first RAID extent containing multiple data slices and at least one parity slice to provide a first ratio of data to parity, and

generating, as the second extents having the second extent width, second RAID extents, each second RAID extent containing multiple data slices and at least one parity slice to provide a second ratio of data to parity, the first ratio of data to parity being different from the second ratio of data to parity.

2. A method as in claim 1 wherein each first extent having the first extent width includes exactly a first number of slices;

wherein each second extent having the second extent width includes exactly a second number of slices, the first number of slices being different from the second number of slices; and

wherein provisioning includes:

allocating a first number of first extents to form the first storage container and a second number of second extents to form the second storage container, the first number of first extents being different from the second number of second extents.

3. A method as in claim 2 wherein allocating the first number of first extents to form the first storage container and the second number of second extents to form the second storage container includes:

provisioning each of the first storage container and the second storage container with a same total number of data slices so as to configure each of the first storage container and the second storage container to hold a same amount of data.

4. A method as in claim 3 wherein partitioning each storage device of the group of storage devices into slices having the same storage size includes:

dividing storage space provided by each storage device of the group of storage devices into 4-GB (gigabyte) portions to form the slices having the same storage size.

5. A method as in claim 4 wherein provisioning each of the first storage container and the second storage container with the same total number of data slices includes:

provisioning the first storage container with a first 4-GB portion from a particular storage device and the second storage container with a second 4-GB portion from the particular storage device.

6. A method as in claim 4 wherein provisioning each of the first storage container and the second storage container with the same total number of data slices includes:

provisioning each of the first storage container and the second storage container with 16 4-GB portions for holding data so as to configure each of the first storage container and the second storage container to hold 64 GB of data.

7. A method as in claim 6 wherein each first RAID extent includes exactly four data slices and exactly one parity slice;

wherein each second RAID extent includes exactly eight data slices and exactly one parity slice; and

wherein provisioning each of the first storage container and the second storage container with 16 4-GB portions includes:

providing the first storage container with exactly four first RAID extents, and

providing the second storage container with exactly two second RAID extents.

8. A method as in claim 6 wherein each first RAID extent includes exactly eight data slices and exactly one parity slice;

wherein each second RAID extent includes exactly 16 data slices and exactly one parity slice; and

wherein provisioning each of the first storage container and the second storage container with 16 4-GB portions includes:

providing the first storage container with exactly two first RAID extents, and

providing the second storage container with exactly one second RAID extent.

9. A method as in claim 6 wherein each first RAID extent includes exactly four data slices and exactly one parity slice;

wherein each second RAID extent includes exactly 16 data slices and exactly one parity slice; and

wherein provisioning each of the first storage container and the second storage container with 16 4-GB portions includes:

providing the first storage container with exactly four first RAID extents, and

providing the second storage container with exactly one second RAID extent.

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

in response to a first storage request to store first host data on behalf of a set of host computers, (i) generating first parity from a portion of the first host data and (ii) storing the portion of the first host data and the first parity in a first RAID extent, and

in response to a second storage request to store second host data on behalf of the set of host computers, (i) generating second parity from a portion of the second host data and (ii) storing the portion of the second host data and the second parity in a second RAID extent.

11. A method as in claim 10 wherein the first RAID extent and the second RAID extent share a particular storage device of the group of storage devices; and

wherein the method further comprises:

sustaining a failure of the particular storage device that loses a part of the first RAID extent and a part of the second RAID extent, and

performing a RAID recovery operation that reconstructs the part of the first RAID extent from remaining parts of the first RAID extent and reconstructs the part of the second RAID extent from remaining parts of the second RAID extent.

12. A method as in claim 1 wherein generating the first RAID extents includes:

preventing each first RAID extent from having more than one slice from the same storage device, and

wherein generating the second RAID extents includes:

preventing each second RAID extent from having more than one slice from the same storage device.

13. A method as in claim 12 wherein the first RAID extents are RAID5 (4+1) extents, each RAID5 (4+1) extent having exactly four data slices and exactly one parity slice;

wherein the second RAID extents are RAID5 (8+1) extents, each RAID5 (8+1) extent having exactly eight data slices and exactly one parity slice; and

wherein the method further includes:

generating third RAID extents, each third RAID extent containing exactly 16 data slices and exactly one parity slice, and

allocating exactly one third RAID extent from the third RAID extents to form a third storage container that shares at least one storage device of the group of storage devices with the first storage container and the second storage container.

14. A method as in claim 1 wherein multiple first extents having the first extent width are created from a subgroup of storage devices of the group of storage devices;

wherein provisioning includes:

combining only first extents created from the subgroup of storage devices to form the first storage container; and

wherein combining only the first extents created from the subgroup of storage devices to form the first storage container includes:

selecting a particular first extent and another first extent for use as at least part of the first storage container, the particular first extent having a first slice on a particular storage device of the subgroup of storage devices and the other first extent having a second slice on the particular storage device of the subgroup of storage devices, the first slice on the particular storage device and the second slice on the particular storage device being separated from each other by at least one slice on the particular storage device that does not belong to the first storage container.

15. In data storage equipment, a method of forming storage containers within a group of storage devices, the method comprising:

partitioning each storage device of the group of storage devices into slices having a same storage size;

from the slices having the same storage size, creating first extents having a first extent width and second extents having a second extent width, the first extent width being different from the second extent width; and

provisioning (i) at least one first extent from the first extents having the first extent width to form a first storage container within the group of storage devices and (ii) at least one second extent from the second extents having the second extent width to form a second storage container within the group of storage devices, the first storage container and the second storage container sharing at least one storage device of the group of storage devices;

wherein multiple first extents having the first extent width are created from a subgroup of storage devices of the group of storage devices;

wherein provisioning includes:

combining only first extents created from the subgroup of storage devices to form the first storage container; and

wherein combining only the first extents created from the subgroup of storage devices to form the first storage container includes:

selecting a particular first extent and another first extent for use as at least part of the first storage container, the particular first extent having a first slice on a particular storage device of the subgroup of storage devices and the other first extent having a second slice on the particular storage device of the subgroup of storage devices, the first slice on the particular storage device and the second slice on the particular storage device being separated from each other by at least one slice on the particular storage device that does not belong to the first storage container.

16. A method as in claim 15 wherein the particular first extent has a first slice on another storage device of the subgroup of storage devices and the other first extent has a second slice on the other storage device of the subgroup of storage devices, the first slice on the other storage device and the second slice on the other storage device being adjacent to each other on the other storage device.

17. Data storage equipment, comprising:

a storage interface constructed and arranged to communicate with a group of storage devices;

memory; and

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

partition each storage device of the group of storage devices into slices having a same storage size,

from the slices having the same storage size, create first extents having a first extent width and second extents having a second extent width, the first extent width being different from the second extent width, and

provision (i) at least one first extent from the first extents having the first extent width to form a first storage container within the group of storage devices and (ii) at least one second extent from the second extents having the second extent width to form a second storage container within the group of storage devices, the first storage container and the second storage container sharing at least one storage device of the group of storage devices;

the data storage equipment being constructed and arranged to store host data within the first storage container and the second storage container on behalf of a set of host computers;

wherein the control circuitry, when creating the first extents having the first extent width and the second extents having the second extent width, is constructed and arranged to:

generate, as the first extents having the first extent width, first RAID (redundant array of independent devices) extents, each first RAID extent containing multiple data slices and at least one parity slice to provide a first ratio of data to parity, and

generate, as the second extents having the second extent width, second RAID extents, each second RAID extent containing multiple data slices and at least one parity slice to provide a second ratio of data to parity, the first ratio of data to parity being different from the second ratio of data to parity.

18. Data storage equipment as in claim 17 wherein multiple first extents having the first extent width are created from a subgroup of storage devices of the group of storage devices;

wherein the control circuitry, when provisioning, is constructed and arranged to:

combine only first extents created from the subgroup of storage devices to form the first storage container; and

wherein the control circuitry, when combining only the first extents created from the subgroup of storage devices to form the first storage container, is constructed and arranged to:

select a particular first extent and another first extent for use as at least part of the first storage container, the particular first extent having a first slice on a particular storage device of the subgroup of storage devices and the other first extent having a second slice on the particular storage device of the subgroup of storage devices, the first slice on the particular storage device and the second slice on the particular storage device being separated from each other by at least one slice on the particular storage device that does not belong to the first storage container.

19. A computer program product having a non-transitory computer readable medium which stores a set of instructions to form storage containers within the group of storage devices; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

partitioning each storage device of the group of storage devices into slices having a same storage size;

from the slices having the same storage size, creating first extents having a first extent width and second extents having a second extent width, the first extent width being different from the second extent width; and

provisioning (i) at least one first extent from the first extents having the first extent width to form a first storage container within the group of storage devices and (ii) at least one second extent from the second extents having the second extent width to form a second storage container within the group of storage devices, the first storage container including a slice on a particular storage device of the group of storage devices and the second storage container including another slice on the particular storage device of the group of storage devices;

wherein creating the first extents having the first extent width and the second extents having the second extent width includes:

generating, as the first extents having the first extent width, first RAID (redundant array of independent devices) extents, each first RAID extent containing multiple data slices and at least one parity slice to provide a first ratio of data to parity, and

generating, as the second extents having the second extent width, second RAID extents, each second RAID extent containing multiple data slices and at least one parity slice to provide a second ratio of data to parity, the first ratio of data to parity being different from the second ratio of data to parity.

20. A computer program product as in claim 19 wherein multiple first extents having the first extent width are created from a subgroup of storage devices of the group of storage devices;

wherein provisioning includes:

combining only first extents created from the subgroup of storage devices to form the first storage container; and

wherein combining only the first extents created from the subgroup of storage devices to form the first storage container includes:

selecting a particular first extent and another first extent for use as at least part of the first storage container, the particular first extent having a first slice on a particular storage device of the subgroup of storage devices and the other first extent having a second slice on the particular storage device of the subgroup of storage devices, the first slice on the particular storage device and the second slice on the particular storage device being separated from each other by at least one slice on the particular storage device that does not belong to the first storage container.

Assignments (8)
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 (052216/0758) 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 IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2018
From: PROULX, RONALD D.; LEE, SHUYU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047671/0902 →
Cited By (1)
US 12,282,689