US2021224161A1PendingUtilityA1

Efficient io processing in a storage system with instant snapshot, xcopy, and unmap capabilities

Assignee: NEBULON INCPriority: Jan 21, 2020Filed: Jan 21, 2020Published: Jul 22, 2021
Est. expiryJan 21, 2040(~13.5 yrs left)· nominal 20-yr term from priority
G06F 2201/84G06F 11/1464G06F 11/1451G06F 3/065G06F 3/0689G06F 3/0619G06F 3/0658G06F 3/061G06F 11/1469G06F 3/0659G06F 2201/835G06F 3/0653G06F 3/0665
59
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method for a storage system to process input and output operations. The method includes receiving writes over time to an address at a base virtual volume, storing each of the writes in a physical storage at a new location that is without existing data, tagging each stored write with a different generation number to distinguish between different versions of data written to the address at the base virtual volume, receiving a read of the address at the base virtual volume, and, in response to the read of the address at the base virtual volume, returning one of the stored writes that is tagged with a newer generation number than a remainder of the stored writes.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for a storage system to process input and output operations, comprising:
 receiving writes over time to an address at a base virtual volume;   storing each of the writes in a physical storage at a new location that is without existing data;   tagging each stored write with a different generation number to distinguish between different versions of data written to the address at the base virtual volume;   receiving a read of the address at the base virtual volume; and   in response to the read of the address at the virtual volume, returning one of the stored writes that is tagged with a newer generation number than a remainder of the stored writes.   
     
     
         2 . The method of  claim 1 , further comprising reclaiming space in the storage by deleting the remainder of the stored writes. 
     
     
         3 . The method of  claim 1 , further comprising:
 capturing a snapshot virtual volume of the base virtual volume by creating a static view that a creation generation number of the static view;   attaching the read-only view to the base virtual volume;   receiving a read of the address at the snapshot; and   in response to the read of the address at the snapshot virtual volume, returning one of the stored writes having a most recent generation number that is older than or equal to the creation generation number of the static view.   
     
     
         4 . The method of  claim 3 , further comprising reclaiming space in the storage by, for a range between a creation generation number of the base virtual volume and the creation generation number of the static view, deleting all but the stored write having the most recent generation number in the range. 
     
     
         5 . The method of  claim 1 , further comprising:
 capturing a first snapshot virtual volume of the base virtual volume by creating a first static view that identifies a first creation generation number of the first static view;   capturing a second snapshot virtual volume of the base virtual volume by creating a second static view that identifies a second creation generation number of the second static view; and   reclaiming space in the storage by:
 for a first range between a creation generation number of the base virtual volume and the first creation generation number of the first static view, deleting all but the stored write having a most recent generation number in the first range; and 
 for a second range between the first creation generation number of the first static view and the second creation generation number of the second static view, deleting all but the stored write having a most recent generation number in the second range. 
   
     
     
         6 . The method of  claim 1 , further comprising performing a copy command by:
 receiving a command to copy data from an address range at a first virtual volume to a second virtual volume;   creating a range view that identifies the address range, a creation generation number of the first virtual volume, and a creation generation number of the range view;   attaching the range view to the first virtual volume;   creating a first query range that identifies (1) the first virtual volume and (2) a first range between the creation generation number of the first virtual volume and the creation generation number of the range view; and   attaching the first query range to the second virtual volume;   creating a second query range that identifies (1) the second virtual volume and (2) a second range between the creation generation number of the range view and a current generation number; and   attaching the second query range to the second virtual volume;   
     
     
         7 . The method of  claim 6 , further comprising:
 receiving a read of an address in the address range at the second virtual volume;   in response to receiving the read, using the second query range to search the second virtual volume for a stored write to the address and having a generation number in the second range;   when the searching the second virtual volume using the second query range fails, using the first query range to search the first virtual volume for a stored write to the address and having a generation number in the first range; and   when using the second query range to search the second virtual volume or using the first query range to search the first virtual volume succeeds, returning the corresponding stored write.   
     
     
         8 . The method of  claim 7 , further comprising reclaiming space in the storage by, for a range between the creation generation number of the first virtual volume the creation generation number of the range view, deleting all but the stored write having the most recent generation number in the range. 
     
     
         9 . The method of  claim 1 , further comprising performing an unmap command by:
 receiving a command to unmap data from an address range at the base virtual volume;   creating a first query range that identifies the address range, a creation generation number of the base virtual volume, and a creation generation number of the first query range;   attaching the first query range to the base virtual volume;   creating a second query range that identifies (1) the base virtual volume, (2) a range between the creation generation number of the first query range and a current generation number, and (3) a zero view for returning zero data; and   attaching the second query range to the virtual volume;   
     
     
         10 . The method of  claim 9 , further comprising:
 receiving a read of an address in the address range at the base virtual volume;   in response to receiving the read, using the first query range to search the base virtual volume for a stored write to the address and having a generation number in the range;   when using the first query range to search the base virtual volume succeeds, returning the corresponding stored write; and   when using the first query range to search the base virtual volume fails, using the second query range to return the zero data.   
     
     
         11 . The method of  claim 10 , further comprising reclaiming space in the storage by, for a range between the creation generation number of the base virtual volume and the creation generation number of first query range, deleting all the stored writes in the range. 
     
     
         12 . The method of  claim 1 , wherein said tagging each stored write comprises creating a key-value pair comprising a key and a value, the key identifying the base virtual volume, the address, and a generation number when corresponding write data was received, the value identifying the location without existing data in the storage. 
     
     
         13 . The method of  claim 12 , wherein said returning one of the stored writes comprises:
 determining key-value pairs having keys identifying the base virtual volume and the address;   from the key-value pairs, determining a key-value pair having a key identifying the newer generation number;   determining a key location identified by a value of the key-value pair; and   reading and returning data from the location in the storage.   
     
     
         14 . The method of  claim 1 , wherein the storage comprises a logic unit number having a RAID 5 or 6 configuration.

Join the waitlist — get patent alerts

Track US2021224161A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.