IP Library Granted Patent US 11,232,036
Granted Patent B2
US 11,232,036 · App. 16/530,065 · Granted Jan 25, 2022

Managing write access to data storage devices for spontaneous de-staging of cache

Inventors: Gabriel Benhanokh (Tel-Aviv, IL); Andrew L. Chanler (Berlin, MA); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F12/0866G06F3/0614G06F3/0653G06F3/0683G06F12/0891G06F2003/0697
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,232,036
App. No.
16/530,065
Granted
Jan 25, 2022
Kind
B2
Abstract

Writes to one or more physical storage devices may be blocked after a certain storage consumption threshold (WBT) for each physical storage device. A WBT for certain designated physical storage devices may be applied in addition to, or as an alternative to, determining and applying a user-defined background task mode threshold (UBTT) for certain designated physical storage devices. In some embodiments, the WBT and UBTT for a physical storage device designated for spontaneous de-staging may be a same threshold value. Write blocking management may include, for each designated physical storage device, blocking any writes to the designated physical storage device after a WBT for the designated physical storage device has been reached, and restoring (e.g., unblocking) writes to the designated physical storage device after storage consumption on the physical storage device has been reduced to a storage consumption threshold (WRT) lower than the WBT.

Claims (63)

1. For a storage system including a plurality of physical storage devices and a cache for temporarily storing data corresponding to the plurality of physical storage devices, a method comprising:

determining a cumulative amount of storage space that is required to be available on the plurality of physical storage devices to adequately support a spontaneous de-staging of data in the cache to at least one of the plurality of physical storage devices if power fails on the storage system;

estimating an amount of time available to spontaneously de-stage the cache;

determining a number of physical storage devices necessary to de-stage the cache based on the estimated amount of time available;

selecting, based on the determined number of physical storage devices necessary to de-stage the cache, two or more of the plurality of physical storage devices to receive de-staged data from the cache in case of a spontaneous de-staging of the cache;

for the two or more of the plurality of physical storage devices, determining an apportioned amount of the cumulative amount for the respective physical storage device to have available for storing data in case of a spontaneous de-staging of the cache;

for each of the two or more physical storage devices, controlling a first threshold amount of storage space to be consumed on the physical storage space before I/O writes targeting the physical storage device are blocked, the first threshold amount based at least in part on the respective determined apportioned amount for the physical device; and

for a first of the two or more physical storage devices, blocking writes targeting the first physical storage device if it is determined that the first threshold amount of storage space has been consumed on the first physical storage device.

2. The method of claim 1 ,

wherein, for each of the two or more physical storage devices, the apportioned amount is determined at least in part based on a total number of the two or more physical storage devices.

3. The method of claim 1 , further comprising:

controlling a second threshold amount of storage space to be consumed on the physical storage space before the physical storage device enters into a background task mode, the second threshold amount based at least in part on the respective determined apportioned amount for the physical device.

4. The method of claim 1 , wherein the first threshold amount and the second threshold amount are a same value.

5. The method of claim 1 , further comprising:

each of the two or more of the plurality of physical storage devices indicating, on one or more occasions, a remaining storage capacity on the physical storage device before the first threshold amount of storage space is reached for the physical storage device.

6. The method of claim 1 , further comprising:

providing a parameter that specifies whether to control the first threshold amount in relation to a spontaneous de-staging of the cache;

receiving a value for the parameter indicating to not control the first threshold amount; and

for each of the two or more physical storage devices, refraining from controlling the first threshold amount based on the value of the parameter.

7. The method of claim 1 , further comprising:

for each of the two or more physical storage devices, controlling a second threshold amount of storage space consumed on the physical storage device below which the blocking of I/O writes targeting the physical storage device is unblocked.

8. A data storage system comprising:

a plurality of physical storage devices;

a cache for temporarily storing data corresponding to the plurality of physical storage devices;

one or more processors; and

a memory comprising code stored thereon that, when executed, performs a method comprising:

determining a cumulative amount of storage space that is required to be available on the plurality of physical storage devices to adequately support a spontaneous de-staging of data in the cache to at least one of the plurality of physical storage devices if power fails on the storage system;

estimating an amount of time available to spontaneously de-stage the cache;

determining a number of physical storage devices necessary to de-stage the cache based on the estimated amount of time available;

selecting, based on the determined number of physical storage devices necessary to de-stage the cache, two or more of the plurality of physical storage devices to receive de-staged data from the cache in case of a spontaneous de-staging of the cache;

for the two or more of the plurality of physical storage devices, determining an apportioned amount of the cumulative amount for the respective physical storage device to have available for storing data in case of a spontaneous de-staging of the cache;

for each of the two or more physical storage devices, controlling a first threshold amount of storage space to be consumed on the physical storage space before I/O writes targeting the physical storage device are blocked, the first threshold amount based at least in part on the respective determined apportioned amount for the physical device; and

for a first of the two or more physical storage devices, blocking writes targeting the first physical storage device if it is determined that the first threshold amount of storage space has been consumed on the first physical storage device.

9. The system of claim 8 ,

wherein, for each of the two or more physical storage devices, the apportioned amount is determined at least in part based on a total number of the two or more physical storage devices.

10. The system of claim 8 , the method further comprising:

controlling a second threshold amount of storage space to be consumed on the physical storage space before the physical storage device enters into a background task mode, the second threshold amount based at least in part on the respective determined apportioned amount for the physical device.

11. The system of claim 8 , wherein the first threshold amount and the second threshold amount are a same value.

12. The system of claim 8 , the method further comprising:

each of the two or more of the plurality of physical storage devices indicating, on one or more occasions, a remaining storage capacity on the physical storage device before the first threshold amount of storage space is reached for the physical storage device.

13. The system of claim 8 , the method further comprising:

providing a parameter that specifies whether to control the first threshold amount in relation to a spontaneous de-staging of the cache;

receiving a value for the parameter indicating to not control the first threshold amount; and

for each of the two or more physical storage devices, refraining from controlling the first threshold amount based on the value of the parameter.

14. The system of claim 8 , the method further comprising:

for each of the two or more physical storage devices, controlling a second threshold amount of storage space consumed on the physical storage device below which the blocking of I/O writes targeting the physical storage device is unblocked.

15. One or more non-transitory computer-readable media having software stored thereon for a storage system including a plurality of physical storage devices and a cache for temporarily storing data corresponding to the plurality of physical storage devices, the software comprising:

executable code that determines a cumulative amount of storage space that is required to be available on the plurality of physical storage devices to adequately support a spontaneous de-staging of data in the cache to at least one of the plurality of physical storage devices if power fails on the storage system;

executable code that estimates an amount of time available to spontaneously de-stage the cache;

executable code that determines a number of physical storage devices necessary to de-stage the cache based on the estimated amount of time available;

executable code that selects, based on the determined number of physical storage devices necessary to de-stage the cache, two or more of the plurality of physical storage devices to receive de-staged data from the cache in case of a spontaneous de-staging of the cache;

executable code that, for the two or more of the plurality of physical storage devices, determines an apportioned amount of the cumulative amount for the respective physical storage device to have available for storing data in case of a spontaneous de-staging of the cache;

executable code that, for each of the two or more physical storage devices, controls a threshold amount of storage space to be consumed on the physical storage space before I/O writes targeting the physical storage device are blocked, the first threshold amount based at least in part on the respective determined apportioned amount for the physical device; and

executable code that, for a first of the two or more physical storage devices, blocks writes targeting the first physical storage device if it is determined that the first threshold amount of storage space has been consumed on the first physical storage device.

16. The one or more non-transitory computer-readable media of claim 15 ,

wherein, for each of the two or more physical storage devices, the apportioned amount is determined at least in part based on a total number of the two or more physical storage devices.

17. The one or more non-transitory computer-readable media of claim 15 , the software further comprising:

executable code that controls a second threshold amount of storage space to be consumed on the physical storage space before the physical storage device enters into a background task mode, the second threshold amount based at least in part on the respective determined apportioned amount for the physical device.

18. The one or more non-transitory computer-readable media of claim 15 , wherein the first threshold amount and the second threshold amount are a same value.

19. The one or more non-transitory computer-readable media of claim 15 , the software further comprising:

executable code controlling each of the two or more of the plurality of physical storage devices to indicate, on one or more occasions, a remaining storage capacity on the physical storage device before the first threshold amount of storage space is reached for the physical storage device.

20. The one or more non-transitory computer-readable media of claim 15 , the software further comprising:

executable code that, for each of the two or more physical storage devices, controls a second threshold amount of storage space consumed on the physical storage device below which the blocking of I/O writes targeting the physical storage device is unblocked.

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 12, 2019
From: BENHANOKH, GABRIEL; CHANLER, ANDREW L.; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050026/0860 →