IP Library › Granted Patent US 9,298,372
Granted Patent B2
US 9,298,372 · App. 13/786,628 · Granted Mar 29, 2016

System and method for managing storage system snapshots

Inventors: Eric Robert Schott (Epsom, NH); Nishant Kanaiyalal Mehta (Ashland, MA); Timothy D. Nolan (Windham, NH); Paul Anthony Calato (Amherst, NH); Shari Ann Vietry (Merrimack, NH)
Assignee: Dell Products, L.P.
G06F3/0608G06F3/065G06F3/067G06F3/0644G06F3/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 9,298,372
App. No.
13/786,628
Filed
Mar 6, 2013
Granted
Mar 29, 2016
Kind
B2
Examiner
DARE, RYAN A
Art Unit
2136
USPC
711/161
Abstract

A method of managing snapshots on a storage system includes a storage controller (1) receiving a request to store a first snapshot associated with a first volume among a plurality of volumes on the storage system and (2) determining if an assigned snapshot reserve space remaining associated with the first volume is less than an amount of space that is required to store the first snapshot. In response to the assigned snapshot reserve space remaining being less than the amount of space required, borrowing snapshot reserve space from at least one of an unused assigned space or an unused unassigned space within the storage system and storing at least a portion of the first snapshot to the borrowed snapshot reserve space.

Claims (95)

1. A method of managing snapshots on a storage system, the method comprising:

a storage controller receiving a request to store a first snapshot associated with a first volume among a plurality of volumes on the storage system;

determining if an assigned snapshot reserve space associated with the first volume remaining is less than an amount of space that is required to store the first snapshot;

in response to the assigned snapshot reserve space remaining being less than the amount of space required, borrowing snapshot reserve space from at least one of an unused assigned space or an unused unassigned space within the storage system;

storing at least a portion of the first snapshot to the borrowed snapshot reserve space;

identifying if the first volume is a thin volume;

in response to the first volume being a thin volume, determining if a size of the first volume is decreasing;

in response to the size of the first volume decreasing, determining a number of snapshots associated with the first volume;

determining if an assigned snapshot space size associated with the first volume is sufficient to store the number of snapshots; and

in response to the assigned snapshot space size being insufficient to store the number of snapshots, borrowing snapshot space from at least one of an unused assigned space or from unused unassigned space within the storage system.

2. The method of claim 1 , further comprising:

selecting at least one of the unused assigned space or the unused unassigned space within the storage system based on the selected space being greater than the amount of space required.

3. The method of claim 1 , further comprising:

determining if a total storage system utilization is greater than a pre-determined total storage system utilization threshold;

in response to the total storage system utilization being greater than the pre-determined total storage system utilization threshold, ranking the volumes; and

deleting at least one of the snapshots based on the ranking of the volumes.

4. The method of claim 3 , wherein ranking the volumes comprises:

determining a number of snapshots being maintained for each volume;

determining a total amount of borrowed snapshot reserve space being utilized by each volume having borrowed snapshot reserve space; and

ranking the volumes based on the number of snapshots being maintained and the amount of borrowed space being utilized by each respective volume.

5. The method of claim 3 , further comprising:

iteratively ranking the volumes and deleting a snapshot of at least one volume until all remaining volumes have only a single snapshot remaining;

determining if only one snapshot remains for each of the volumes; and

in response to only one snapshot remaining for each of the volumes, while the storage utilization remains above the pre-determined total storage system utilization threshold, performing additional ranking and deletion of snapshots based on a relative size of the snapshots for each of the volumes until the storage utilization is no longer above the pre-determined total storage system utilization threshold.

6. The method of claim 1 , wherein ranking the volumes further comprises:

identifying if the first volume is a thin volume;

in response to the first volume being a thin volume, determining a maximum number of snapshot reserve pages allocated to the thin volume over a preceding period;

calculating a number of borrowed snapshot pages, wherein the number of borrowed snapshot pages is equal to a number of snapshot reserve pages in use minus the maximum number of snapshot reserve pages;

ranking the volumes based on the number of borrowed snapshot pages; and

in response to an unmap command, releasing additional snapshot pages after a pre-set time.

7. A storage system comprising:

a plurality of storage devices;

a storage controller coupled to the storage devices for controlling storage operations, wherein the storage controller comprises logic that:

receives a request to store a first snapshot associated with a first volume among a plurality of volumes on the storage system;

determines if an assigned snapshot reserve space remaining associated with the first volume is less than an amount of space that is required to store the first snapshot;

in response to the assigned snapshot reserve space remaining being less than the amount of space required, borrows snapshot reserve space from at least one of an unused assigned space or an unused unassigned space within the storage system;

stores at least a portion of the first snapshot to the borrowed snapshot reserve space;

identifies if the first volume is a thin volume;

in response to the first volume being a thin volume, determines if a size of the first volume is decreasing;

in response to the size of the first volume decreasing, determines a number of snapshots associated with the first volume;

determines if a first snapshot space size associated with the first volume is sufficient to store the number of snapshots; and

in response to the first snapshot space size being insufficient to store the number of snapshots, borrows snapshot space from at least one of an unused assigned space or from unused unassigned space within the storage system.

8. The storage system of claim 7 , wherein the storage controller further comprises logic that selects at least one of the unused assigned space or the unused unassigned space within the storage system based on the selected space being greater than the an amount of space required.

9. The storage system of claim 7 , wherein the storage controller further comprises logic that:

determines if a total storage system utilization is greater than a pre-determined total storage system utilization threshold;

in response to the total storage system utilization being greater than the pre-determined total storage system utilization threshold, ranking the volumes; and

deletes at least one of the snapshots based on the ranking of the volumes.

10. The storage system of claim 9 , wherein the storage controller further comprises logic that:

determines a number of snapshots being maintained for each volume;

determines a total amount of borrowed snapshot reserve space being utilized by each volume having borrowed snapshot reserve space; and

ranks the volumes based on the number of snapshots being maintained and the amount of borrowed space being utilized by each respective volume.

11. The storage system of claim 9 , wherein the storage controller further comprises logic that:

iteratively ranks the volumes and deletes a snapshot of at least one volume until all remaining volumes have only a single snapshot remaining;

determines if only one snapshot remains for each of the volumes; and

in response to only one snapshot remaining for each of the volumes, while the storage utilization remains above the pre-determined total storage system utilization threshold, performs additional ranking and deletion of snapshots based on a relative size of the snapshots for each of the volumes until the storage utilization is no longer above the pre-determined total storage system utilization threshold.

12. A storage system comprising:

a plurality of storage devices;

a storage controller coupled to the storage devices for controlling storage operations, wherein the storage controller comprises logic that:

receives a request to store a first snapshot associated with a first volume among a plurality of volumes on the storage system;

determines if an assigned snapshot reserve space remaining associated with the first volume is less than an amount of space that is required to store the first snapshot;

in response to the assigned snapshot reserve space remaining being less than the amount of space required, borrows snapshot reserve space from at least one of an unused assigned space or an unused unassigned space within the storage system;

stores at least a portion of the first snapshot to the borrowed snapshot reserve space;

identifies if the first volume is a thin volume;

in response to the first volume being a thin volume, determines a maximum number of snapshot reserve pages allocated to the thin volume over a preceding period;

calculates a number of borrowed snapshot pages, wherein the number of borrowed snapshot pages is equal to a number of snapshot reserve pages in use minus the maximum number of snapshot reserve pages; and

ranks the volumes based on the number of borrowed snapshot pages.

13. An information handling system comprising:

one or more processors;

a storage system coupled to the processor and in communication with the processor, the storage system comprising: a plurality of storage devices and a storage controller coupled to the storage devices, the storage controller having firmware executing thereon to provide control of storage system operations wherein the firmware configures the storage controller to:

receive a request to store a first snapshot associated with a first volume among a plurality of volumes on the storage system;

determine if an assigned snapshot reserve space remaining associated with the first volume is less than an amount of space that is required to store the first snapshot;

in response to the assigned snapshot reserve space remaining being less than the amount of space required, borrow snapshot reserve space from at least one of an unused assigned space or an unused unassigned space within the storage system;

store at least a portion of the first snapshot to the borrowed snapshot reserve space;

identify if the first volume is a thin volume;

in response to the first volume being a thin volume, determine a maximum number of snapshot reserve pages allocated to the thin volume over a preceding period;

calculate a number of borrowed snapshot pages, wherein the number of borrowed snapshot pages is equal to a number of snapshot reserve pages in use minus the maximum number of snapshot reserve pages; and

rank the volumes based on the number of borrowed snapshot pages.

14. The information handling system of claim 13 , wherein the firmware further configures the storage controller to:

identify if the first volume is a thin volume;

in response to the first volume being a thin volume, determine if a size of the first volume is decreasing;

in response to the size of the first volume decreasing, determine a number of snapshots associated with the first volume;

determine if a first snapshot space size associated with the first volume is sufficient to store the number of snapshots; and

in response to the first snapshot space size being insufficient to store the number of snapshots, borrow snapshot space from at least one of a unused, assigned space and unused unassigned space within the storage system.

15. The information handling system of claim 13 , wherein the firmware further configures the storage controller to:

determine if a total storage system utilization is greater than a pre-determined total storage system utilization threshold;

in response to the total storage system utilization being greater than the pre-determined total storage system utilization threshold, rank the volumes; and

delete at least one of the snapshots based on the ranking of the volumes.

16. The information handling system of claim 15 , wherein the firmware further configures the storage controller to:

determine a number of snapshots being maintained for each volume;

determine a total amount of borrowed snapshot reserve space being utilized by each volume having borrowed snapshot reserve space; and

rank the volumes based on the number of snapshots being maintained and the amount of borrowed space being utilized by each respective volume.

17. The information handling system of claim 15 , wherein the firmware further configures the storage controller to:

iteratively rank the volumes and delete a snapshot of at least one volume until all remaining volumes have only a single snapshot remaining;

determine if only one snapshot remains for each of the volumes; and

in response to only one snapshot remaining for each of the volumes, while the storage utilization remains above the pre-determined total storage system utilization threshold, perform additional ranking and deletion of snapshots based on a relative size of the snapshots for each of the volumes until the storage utilization is no longer above the pre-determined total storage system utilization threshold.

Assignments (15)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2013
From: SCHOTT, ERIC ROBERT; MEHTA, NISHANT KANAIYALAL; NOLAN, TIMOTHY D.; CALATO, PAUL ANTHONY; VIETRY, SHARI ANN
To: DELL PRODUCTS L.P.
Reel/Frame 031146/0160 →
Continuity (1)
Related Publication 20140258657A1 · Sep 11, 2014