IP Library Granted Patent US 10,983,860
Granted Patent B2
US 10,983,860 · App. 16/446,161 · Granted Apr 20, 2021

Automatic prefill of a storage system with conditioning of raid stripes

Inventors: William F. Moore (Attleboro, MA); Anton Kucherov (Dudley, MA); Boaz Binia (Framingham, MA)
Assignee: EMC IP Holding Company LLC
G06F11/1076G06F3/064G06F3/0604G06F3/0619G06F3/0631G06F3/0635G06F3/0643G06F3/0644G06F3/0689G06F11/1088G06F11/3034G06F12/023G06F12/0802
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,983,860
App. No.
16/446,161
Granted
Apr 20, 2021
Kind
B2
Abstract

A storage system comprises a plurality of storage nodes each comprising one or more storage devices. Each of the storage nodes further comprises a processor coupled to a memory. The storage system is configured to prefill a given stripe across multiple ones of the storage devices with data blocks to a first fullness level, to designate at least a subset of the prefilled data blocks of the stripe as available for use in prefilling one or more logical storage volumes of the storage system, and to prefill a given one of the logical storage volumes to a second fullness level utilizing selected ones of the available data blocks. The given stripe across multiple ones of the storage devices illustratively comprises a RAID stripe.

Claims (45)

1. An apparatus comprising:

a storage system comprising a plurality of storage nodes each comprising one or more storage devices;

each of the storage nodes further comprising a processor coupled to a memory;

the storage system being configured:

to prefill a given stripe across multiple ones of the storage devices with data blocks to a first fullness level;

to designate at least a subset of the prefilled data blocks of the stripe as available for use in prefilling one or more logical storage volumes of the storage system; and

to prefill a given one of the logical storage volumes to a second fullness level utilizing selected ones of the available data blocks.

2. The apparatus of claim 1 wherein the storage system is configured to store the data blocks across the storage devices of the storage nodes utilizing a redundant array of independent disks (RAID) arrangement.

3. The apparatus of claim 2 wherein the RAID arrangement includes parity information supporting at least one recovery option for reconstructing the data blocks of at least one of the storage devices responsive to a failure of that storage device.

4. The apparatus of claim 2 wherein the given stripe across multiple ones of the storage devices comprises a RAID stripe.

5. The apparatus of claim 1 wherein each of the storage nodes further comprises a set of processing modules configured to communicate over one or more networks with corresponding sets of processing modules on other ones of the storage nodes.

6. The apparatus of claim 5 wherein the sets of processing modules comprise respective servers that collectively implement at least a portion of a distributed storage controller of the storage system.

7. The apparatus of claim 5 wherein the sets of processing modules of the storage nodes each comprise at least one data module and at least one control module.

8. The apparatus of claim 1 wherein the first and second fullness levels are the same.

9. The apparatus of claim 1 wherein at least one of the first and second fullness levels is specified as a percentage fullness.

10. The apparatus of claim 1 wherein the storage system is further configured:

to determine sizes of the one or more logical storage volumes; and

to compute the first fullness level based at least in part on the determined sizes of the one or more logical storage volumes.

11. The apparatus of claim 1 wherein the storage system is further configured:

to determine from the first fullness level a number of free data blocks to be included within the given stripe; and

to prefill the given stripe based at least in part on the determined number of free data blocks.

12. The apparatus of claim 1 wherein the prefilling of the given stripe is configured to ensure that each of the free data blocks has been written to at least one time.

13. The apparatus of claim 1 wherein the storage system is further configured to include each of the prefilled data blocks of the given stripe in at least one parity computation.

14. The apparatus of claim 1 wherein the prefilling of the given stripe and the prefilling of the given logical storage volume are implemented as respective separate automatic processes.

15. A method comprising:

configuring a storage system to include a plurality of storage nodes each comprising one or more storage devices, each of the storage nodes further comprising a processor coupled to a memory;

prefilling a given stripe across multiple ones of the storage devices with data blocks to a first fullness level;

designating at least a subset of the prefilled data blocks of the stripe as available data blocks for use in prefilling one or more logical storage volumes of the storage system; and

prefilling a given one of the logical storage volumes to a second fullness level utilizing selected ones of the available data blocks.

16. The method of claim 15 further comprising:

determining sizes of the one or more logical storage volumes; and

computing the first fullness level based at least in part on the determined sizes of the one or more logical storage volumes.

17. The method of claim 15 further comprising:

determining from the first fullness level a number of free data blocks to be included within the given stripe; and

prefilling the given stripe based at least in part on the determined number of free data blocks.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by a storage system comprising a plurality of storage nodes each comprising one or more storage devices, each of the storage nodes further comprising a processor coupled to a memory, causes the storage system:

to prefill a given stripe across multiple ones of the storage devices with data blocks to a first fullness level;

to designate at least a subset of the prefilled data blocks of the stripe as available data blocks for use in prefilling one or more logical storage volumes of the storage system; and

to prefill a given one of the logical storage volumes to a second fullness level utilizing selected ones of the available data blocks.

19. The computer program product of claim 18 wherein the program code when executed by the storage system further causes the storage system:

to determine sizes of the one or more logical storage volumes; and

to compute the first fullness level based at least in part on the determined sizes of the one or more logical storage volumes.

20. The computer program product of claim 18 wherein the program code when executed by the storage system further causes the storage system:

to determine from the first fullness level a number of free data blocks to be included within the given stripe; and

to prefill the given stripe based at least in part on the determined number of free data blocks.

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 Jun 20, 2019
From: MOORE, WILLIAM F.; BINIA, BOAZ; KUCHEROV, ANTON
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049532/0834 →