IP Library Granted Patent US 10,521,145
Granted Patent B1
US 10,521,145 · App. 15/799,175 · Granted Dec 31, 2019

Method, apparatus and computer program product for managing data storage

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,521,145
App. No.
15/799,175
Granted
Dec 31, 2019
Kind
B1
Abstract

There is disclosed herein techniques for managing data storage. In one exemplary embodiment, the techniques comprise generating one or more sets of storage devices. Each set is configured to be mutually exclusive with respect to other sets of the one or more sets such that storage devices within the same set provide the basis for the formation of a RAID (Redundant Arrays of Independent Disks) stripe. The techniques further comprise forming a RAID stripe from respective storage extents associated with different storage devices of the same set. The techniques further comprise mapping a storage object to the RAID stripe. The techniques further comprise servicing host I/O (Input/Output) operations directed to the storage object by using the RAID stripe mapped thereto.

Claims (73)

1. A method, comprising:

generating one or more sets of storage devices, wherein each set is configured to be mutually exclusive with respect to other sets of the one or more sets such that storage devices within the same set provide the basis for the formation of a RAID (Redundant Arrays of Independent Disks) stripe;

forming a RAID stripe from respective storage extents associated with different storage devices of the same set;

mapping a storage object to the RAID stripe;

servicing host I/O (Input/Output) operations directed to the storage object by using the RAID stripe mapped thereto; and

generating a first set of storage device, wherein generating the first set of storage devices includes:

upon addition of one or more new storage devices, determining if any further storage devices can be added to the first set by evaluating the current amount of storage devices in the first set and an upper limit of storage devices that represent a maximum number of storage devices that can be included in the first set,

in the event of determining that further storage devices can be added to the first set, determining an amount of the new storage devices to be added to the first set such that the amount of determined to be added to the first set fills the first set by as much as is possible given the number of new storage devices and the upper limit of the first set except in the situation where such an amount would leave an amount of new storage devices remaining that is insufficient to meet a lower limit of a second set in which case the amount to be added to the first set is balanced against the amount needed to satisfy the lower limit associated with the second set, and

added the amount of the new storage devices to the first set.

2. The method as claimed in claim 1 , wherein generating the one or more sets includes setting an upper limit and a lower limit of storage devices for each set in order to control the number of storage devices that can be included within the respective sets.

3. The method as claimed in claim 1 , wherein a first and a second set of storage devices are generated; and further comprising:

upon removal of one or more storage devices from the first set, determining that the number of storage devices within the first set is less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the first set;

in response to the said determination, adding at least one storage device from the second set to the first set provided the loss of the at least one storage device from the second set does not cause the number of storage devices in the second set to be less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the second set; and

copying data stored on the at least one storage device to at least one of the remaining storage devices in the second set.

4. The method as claimed in claim 1 , wherein an amount of the new storage devices remain after determining the amount of new storage devices to add to the first set; and further comprising:

determining if the remaining amount of the new storage devices can be added to a second set by evaluating at least one of the remaining amount of the new storage devices or the current amount of storage devices in the second set and at least one of a lower limit and an upper limit of storage devices that respectfully represent a minimum and a maximum number of storage devices that can be included in the second set; and

in the event of determining that the remaining amount of the new storage devices can be added to the second set, adding the remaining amount of the new storage devices to the second set.

5. The method as claimed in claim 1 , wherein a first set comprises a storage device that has not provided a storage extent to the RAID stripe; and further comprising:

detecting a failure in connection with a storage device that provides a storage extent to form the RAID stripe;

selecting the storage device that has not provided a storage extent to the RAID stripe based on wear and/or utilization in connection with the storage device; and

rebuilding the RAID stripe by utilizing a storage extent from the selected storage device.

6. The method as claimed in claim 1 , further comprising:

receiving a request for storage;

in response to receiving the request, selecting one of the one or more sets based on wear and/or utilization associated therewith; and

forming a new RAID stripe from respective storage extents associated with different storage devices of the selected set in order to satisfy the request.

7. An apparatus, comprising:

memory; and

processing circuitry coupled to the memory, the memory storing instructions which, when executed by the processing circuitry, cause the processing circuitry to:

generate one or more sets of storage devices, wherein each set is configured to be mutually exclusive with respect to other sets of the one or more sets such that storage devices within the same set provide the basis for the formation of a RAID (Redundant Arrays of Independent Disks) stripe;

form a RAID stripe from respective storage extents associated with different storage devices of the same set;

map a storage object to the RAID stripe;

service host I/O (Input/Output) operations directed to the storage object by using the RAID stripe mapped thereto; and

generate a first set of storage devices, wherein generating the first set of storage devices includes:

upon addition of one or more new storage devices, determine if any further storage devices can be added to the first set by evaluating the current amount of storage devices in the first set and an upper limit storage devices that represents a maximum number of storage devices that can be included in the first set,

in the event of determining that further storage devices can be added to the first set, determine an amount of the new storage devices to be added to the first set such that the amount determined to be added to the first set fills the first set by as much as is possible given the number of new storage devices and the upper limit of the first set except in the situation where such an amount would leave an amount of new storage devices remaining that is insufficient to meet a lower limit of a second set in which case the amount to be added to the first set is balances against the amount needed to satisfy the lower limit associated with the second set, and

add the amount of the new storage devices to the first set.

8. The apparatus as claimed in claim 7 , wherein generating the one or more sets includes setting an upper limit and a lower limit of storage devices for each set in order to control the number of storage devices that can be included within the respective sets.

9. The apparatus as claimed in claim 7 , wherein a first and a second set of storage devices are generated; and further comprising instructions which, when executed by the processing circuitry, cause the processing circuitry to:

upon removal of one or more storage devices from the first set, determine that the number of storage devices within the first set is less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the first set;

in response to the said determination, add at least one storage device from the second set to the first set provided the loss of the at least one storage device from the second set does not cause the number of storage devices in the second set to be less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the second set; and

copy data stored on the at least one storage device to at least one of the remaining storage devices in the second set.

10. The apparatus as claimed in claim 7 , wherein an amount of the new storage devices remain after determining the amount of new storage devices to add to the first set; and further comprising instructions which, when executed by the processing circuitry, cause the processing circuitry to:

determine if the remaining amount of the new storage devices can be added to a second set by evaluating at least one of the remaining amount of the new storage devices or the current amount of storage devices in the second set and at least one of a lower limit and an upper limit of storage devices that respectfully represent a minimum and a maximum number of storage devices that can be included in the second set; and

in the event of determining that the remaining amount of the new storage devices can be added to the second set, add the remaining amount of the new storage devices to the second set.

11. The apparatus as claimed in claim 7 , wherein a first set comprises a storage device that has not provided a storage extent to the RAID stripe; and further comprising instructions which, when executed by the processing circuitry, cause the processing circuitry to:

detect a failure in connection with a storage device that provides a storage extent to form the RAID stripe;

select the storage device that has not provided a storage extent to the RAID stripe based on wear and/or utilization in connection with the storage device; and

rebuild the RAID stripe by utilizing a storage extent from the selected storage device.

12. The apparatus as claimed in claim 7 , further comprising instructions which, when executed by the processing circuitry, cause the processing circuitry to:

receive a request for storage;

in response to receiving the request, select one of the one or more sets based on wear and/or utilization associated therewith; and

form a new RAID stripe from respective storage extents associated with different storage devices of the selected set in order to satisfy the request.

13. A computer program product having a non-transitory computer readable medium which stores a set of instructions, the set of instructions, when carried out by processing circuitry, causing the processing circuitry to perform a method of:

generating one or more sets of storage devices, wherein each set is configured to be mutually exclusive with respect to other sets of the one or more sets such that storage devices within the same set provide the basis for the formation of a RAID (Redundant Arrays of Independent Disks) stripe;

forming a RAID stripe from respective storage extents associated with different storage devices of the same set;

mapping a storage object to the RAID stripe;

servicing host I/O (Input/Output) operations directed to the storage object by using the RAID stripe mapped thereto:

generating a first set of storage devices, wherein generating the first set of storage devices includes:

upon addition of one or more new storage devices, determining if any further storage devices can be added to the first set by evaluating the current amount of storage devices in the first set and an upper limit of storage devices that represents a maximum number of storage devices that can be included in the first set,

in the event of determining that further storage devices can be added to the first set, determining an amount of the new storage devices to be added to the first set such that the amount determined to be added to the first set fills the first set by as much as is possible given the number of new storage devices and the upper limit of the first set except in the situation where such an amount would leave an amount of new storage devices remaining that is insufficient to meet a lower limit of a second set in which case the amount to be added to the first set is balanced against the amount needed to satisfy the lower limit associated with the second set, and

adding the amount of the new storage devices to the first set.

14. The computer program product as claimed in claim 13 , wherein generating the one or more sets includes setting an upper limit and a lower limit of storage devices for each set in order to control the number of storage devices that can be included within the respective sets.

15. The computer program product as claimed in claim 13 , wherein a first and a second set of storage devices are generated; and further comprising instructions, when carried out by processing circuitry, causing the processing circuitry to perform a method of:

upon removal of one or more storage devices from the first set, determining that the number of storage devices within the first set is less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the first set;

in response to the said determination, adding at least one storage device from the second set to the first set provided the loss of the at least one storage device from the second set does not cause the number of storage devices in the second set to be less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the second set; and

copying data stored on the at least one storage device to at least one of the remaining storage devices in the second set.

16. The computer program product as claimed in claim 13 , wherein an amount of the new storage devices remain after determining the amount of new storage devices to add to the first set; and further comprising instructions, when carried out by processing circuitry, causing the processing circuitry to perform a method of:

determining if the remaining amount of the new storage devices can be added to a second set by evaluating at least one of the remaining amount of the new storage devices or the current amount of storage devices in the second set and at least one of a lower limit and an upper limit of storage devices that respectfully represent a minimum and a maximum number of storage devices that can be included in the second set; and

in the event of determining that the remaining amount of the new storage devices can be added to the second set, adding the remaining amount of the new storage devices to the second set.

17. The computer program product as claimed in claim 13 , wherein a first set comprises a storage device that has not provided a storage extent to the RAID stripe; and further comprising instructions, when carried out by processing circuitry, causing the processing circuitry to perform a method of:

detecting a failure in connection with a storage device that provides a storage extent to form the RAID stripe;

selecting the storage device that has not provided a storage extent to the RAID stripe based on wear and/or utilization in connection with the storage device; and

rebuilding the RAID stripe by utilizing a storage extent from the selected storage device.

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 (044535/0109) Recorded May 20, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
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 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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2017
From: FOLEY, ROBERT; MORLEY, STEVEN; CUMMINS, DANIEL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043995/0398 →