IP Library Granted Patent US 12,373,301
Granted Patent B2
US 12,373,301 · App. 18/473,423 · Granted Jul 29, 2025

Dataset image creation

Inventors: Stephen Wu (Sacramento, CA); Prathamesh Deshpande (San Jose, CA); Manan Patel (Sunnyvale, CA)
Assignee: NetApp, Inc.
G06F11/1451G06F3/061G06F3/0619G06F3/065G06F3/0652G06F3/067G06F11/07G06F11/0727G06F11/0757G06F11/0793G06F11/1438G06F11/1446G06F11/1464G06F11/1469G06F2201/845
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 12,373,301
App. No.
18/473,423
Granted
Jul 29, 2025
Kind
B2
Abstract

An application may store data to a dataset comprising a plurality of volumes stored on a plurality of storage systems. The application may request a dataset image of the dataset, the dataset image comprising a volume image of each volume of the dataset. A dataset image manager operates with a plurality of volume image managers in parallel to produce the dataset image, each volume image manager executing on a storage system. The plurality of volume image managers respond by performing requested operations and sending responses to the dataset image manager in parallel. Each volume image manager on a storage system may manage and produce a volume image for each volume of the dataset stored to the storage system. If a volume image for any volume of the dataset fails, or a timeout period expires, a cleanup procedure is performed to delete any successful volume images.

Claims (51)

1. A method executed by one or more processors, comprising:

generating a data structure associated with an operation identifier identifying an operation for producing a dataset image of a dataset having a plurality of volumes, wherein the data structure is populated with a header including the operational identifier, a start time for producing the dataset image, and a dataset timeout period for producing the dataset image, and wherein the data structure includes a plurality of grouping entries that each represent a grouping of one or more of the plurality of volumes stored on a single storage system;

in response to suspending input/output (I/O) operations associated with each of the volumes of the plurality of volumes and initiating production of volume images for each of the volumes of the plurality of volumes, updating the data structure to indicate that each of the plurality of volumes have been suspended and that volume image production has been initiated;

in response to receiving a volume-commit request for a selected volume of the plurality of volumes and upon determining that a volume image for the selected volume was successfully created, updating the data structure indicating a success status for the volume image of the selected volume; and

determining that production of the dataset image of the dataset is successful from status information of the data structure indicating that each of the volume images of the plurality of volumes has been successfully produced.

2. The method of claim 1 , further comprising:

suspending the I/O operations in response to a volume-start request that includes the operation identifier.

3. The method of claim 1 , further comprising:

aborting a timeout period upon successful volume image production for the plurality of volumes, the timeout period indicates a duration for successfully executing volume image production for the plurality of volumes.

4. The method of claim 3 , further comprising:

unsuspending the I/O operations, upon aborting the timeout period.

5. The method of claim 1 , further comprising:

deleting successfully generated volume images when the status information indicates unsuccessful volume image production for one of the plurality of volumes.

6. The method of claim 1 , further comprising:

reporting failure of the volume commit request, in response to unsuccessful volume image production for one of the plurality of volumes.

7. The method of claim 6 , further comprising:

indicating the operation identifier in reporting the failure.

8. A non-transitory machine readable medium having instructions stored thereon, the non-transitory machine readable medium comprising instructions for:

generate a data structure associated with an operation identifier identifying an operation for producing a dataset image of a dataset having a plurality of volumes, wherein the data structure is populated with a header including the operational identifier, a start time for producing the dataset image, and a dataset timeout period for producing the dataset image, and wherein the data structure includes a plurality of grouping entries that each represent a grouping of one or more of the plurality of volumes stored on a single storage system;

in response to suspending input/output (I/O) operations associated with each of the volumes of the plurality of volumes and initiating production of volume images for each of the volumes of the plurality of volumes, update the data structure to indicate that each of the plurality of volumes have been suspended and that volume image production has been initiated;

in response to receiving a volume-commit request for a selected volume of the plurality of volumes and upon determining that a volume image for the selected volume was successfully created, update the data structure indicating a success status for the volume image of the selected volume; and

determine that production of the dataset image of the dataset is successful from status information of the data structure indicating that each of the volume images of the plurality of volumes has have been successfully produced.

9. The non-transitory machine readable medium of claim 8 , wherein the instructions cause the machine to:

suspend the I/O operations in response to a volume-start request that includes the operation identifier.

10. The non-transitory machine readable medium of claim 8 , wherein the instructions cause the machine to:

abort a timeout period upon successful volume image production for the plurality of volumes, the timeout period indicates a duration for successfully executing volume image production for the plurality of volumes.

11. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

unsuspend the I/O operations, upon aborting the timeout period.

12. The non-transitory machine readable medium of claim 8 , wherein the instructions cause the machine to:

delete successfully generated volume images when the status information indicates unsuccessful volume image production for one of the plurality of volumes.

13. The non-transitory machine readable medium of claim 8 , wherein the instructions cause the machine to:

report failure of the volume commit request, in response to unsuccessful volume image production for one of the plurality of volumes.

14. The non-transitory machine readable medium of claim 13 , wherein the instructions cause the machine to:

indicate the operation identifier in reporting the failure.

15. A computing device comprising:

a memory comprising instructions; and

a processor coupled to the memory, the processor configured to execute the instructions to cause the processor to:

generate a data structure associated with an operation identifier identifying an operation for producing a dataset image of a dataset having a plurality of volumes, wherein the data structure is populated with a header including the operational identifier, a start time for producing the dataset image, and a dataset timeout period for producing the dataset image, and wherein the data structure includes a plurality of grouping entries that each represent a grouping of one or more of the plurality of volumes stored on a single storage system;

in response to suspending input/output (I/O) operations associated with each of the volumes of the plurality of volumes and initiating production of volume images for each of the volumes of the plurality of volumes, update the data structure to indicate that each of the plurality of volumes have been suspended and that volume image production has been initiated;

in response to receiving a volume-commit request for a selected volume of the plurality of volumes and upon determining that a volume image for the selected volume was successfully created, update the data structure indicating a success status for the volume image of the selected volume; and

determine that production of the dataset image of the dataset is successful from status information of the data structure indicating that each of the volume images of the plurality of volumes has been successfully produced.

16. The computing device of claim 15 , wherein the instructions cause the processor to:

suspend the I/O operations in response to a volume-start request that includes the operation identifier.

17. The computing device of claim 15 , wherein the instructions cause the processor to:

abort a timeout period upon successful volume image production for the plurality of volumes, the timeout period indicates a duration for successfully executing volume image production for the plurality of volumes.

18. The computing device of claim 17 , wherein the instructions cause the processor to:

unsuspend the I/O operations, upon aborting the timeout period.

19. The computing device of claim 15 , wherein the instructions cause the processor to:

delete successfully generated volume images when the status information indicates unsuccessful volume image production for one of the plurality of volumes.

20. The computing device of claim 15 , wherein the instructions cause the processor to:

report failure of the volume commit request, in response to unsuccessful volume image production for one of the plurality of volumes.

Continuity (5)
Continuation 16683502 · Nov 14, 2019
Continuation 15727754 · Oct 9, 2017
Continuation 14875197 · Oct 5, 2015
Continuation 13903752 · May 28, 2013
Related Publication 20240012715A1 · Jan 11, 2024
References Cited (50)
US 6594744B1 · Humlicek et al. · 2003 [cited by applicant]
US 6647473B1 · Golds et al. · 2003 [cited by applicant]
US 6671704B1 · Gondi et al. · 2003 [cited by applicant]
US 7054892B1 · Phillips · 2006 [cited by examiner]
US 7260589B2 · Cotner et al. · 2007 [cited by applicant]
US 7281024B1 · Banerjee et al. · 2007 [cited by applicant]
US 7673031B1 · Jalagam et al. · 2010 [cited by applicant]
US 7680839B1 · Krishnamurthy et al. · 2010 [cited by applicant]
US 7734591B1 · Mercier · 2010 [cited by examiner]
US 7831782B1 · Coulter et al. · 2010 [cited by applicant]
US 7925796B1 · Bailey et al. · 2011 [cited by applicant]
US 7950022B1 · Gould et al. · 2011 [cited by applicant]
US 9152327B2 · Wu et al. · 2015 [cited by applicant]
US 9152340B2 · Wu et al. · 2015 [cited by applicant]
US 9785512B2 · Wu et al. · 2017 [cited by applicant]
US 10268709B1 · Suehs et al. · 2019 [cited by applicant]
US 10509702B2 · Wu et al. · 2019 [cited by applicant]
US 20030018870A1 · Abboud · 2003 [cited by examiner]
US 20030131207A1 · Arakawa · 2003 [cited by examiner]
US 20040204949A1 · Shaji · 2004 [cited by examiner]
US 20050039069A1 · Prahlad et al. · 2005 [cited by applicant]
US 20050228832A1 · Ghotge et al. · 2005 [cited by applicant]
US 20060026452A1 · Suzuki et al. · 2006 [cited by applicant]
US 20060080503A1 · Araki et al. · 2006 [cited by applicant]
US 20070033356A1 · Erlikhman · 2007 [cited by applicant]
US 20070150651A1 · Nemiroff et al. · 2007 [cited by applicant]
US 20070198718A1 · Savoor et al. · 2007 [cited by applicant]
US 20070294274A1 · Kano et al. · 2007 [cited by applicant]
US 20070300013A1 · Kitamura · 2007 [cited by examiner]
US 20080177964A1 · Takahashi · 2008 [cited by examiner]
US 20080178185A1 · Okada et al. · 2008 [cited by applicant]
US 20080215670A1 · Redd et al. · 2008 [cited by applicant]
US 20090178015A1 · Federovsky et al. · 2009 [cited by applicant]
US 20090228488A1 · Brand et al. · 2009 [cited by applicant]
US 20110078657A1 · Okada · 2011 [cited by applicant]
US 20120005672A1 · Cervantes et al. · 2012 [cited by applicant]
US 20120173822A1 · Testardi et al. · 2012 [cited by applicant]
US 20120192006A1 · Qi et al. · 2012 [cited by applicant]
US 20130080480A1 · Mao et al. · 2013 [cited by applicant]
US 20130268503A1 · Budithi et al. · 2013 [cited by applicant]
US 20140059300A1 · Olin · 2014 [cited by examiner]
US 20140173213A1 · Beveridge · 2014 [cited by applicant]
US 20140250233A1 · Webster · 2014 [cited by applicant]
US 20140281744A1 · Elias et al. · 2014 [cited by applicant]
US 20150193264A1 · Hutton et al. · 2015 [cited by applicant]
US 20200081794A1 · Wu et al. · 2020 [cited by applicant]
US 20200387575A1 · Palekar et al. · 2020 [cited by applicant]
Brinkmann, André, et al. “Realizing multilevel snapshots in dynamically changing virtualized storage environments.” International Conference on Networking, International Conference on Systems and International Conferenc… [cited by examiner]
Hibler, Mike, et al. “Fast, Scalable Disk Imaging with Frisbee.” USENIX Annual Technical Conference, General Track. 2003. (Year: 2003). [cited by examiner]
Notice of Allowance mailed on May 18, 2023 for U.S. Appl. No. 16/683,502, filed Nov. 14, 2019, 12 pages. [cited by applicant]