Using shrinkable read-once snapshots for online data backup
First Claim
1. A method for shrinking a set of data, comprising:
- providing a writable volume presented in a computer and used for storing data;
providing a differential snapshot of one or more blocks of said volume, said differential snapshot comprising;
a preservation store for storing copies of the one or more blocks of said volume;
a watch-list structure identifying a first set of blocks of said volume remaining unchanged since a moment of creation of said snapshot;
a retention-list structure identifying updated blocks of said volume and keeping associations of references to said updated blocks with references to original copies of said updated blocks stored in said preservation store;
a space allocation list structure identifying unused space in said preservation store;
providing an input structure specifying a second set of blocks of said volume to be removed from a set of data included to said snapshot;
providing to the computer a set of instructions, the computer operable to execute the instructions to perform;
removing references to the second set of blocks from said watch list,adding locations referenced by the associations stored in said retention-list which include references to blocks specified by said input structure into said space allocation list;
removing associations stored in said retention-list which include references to blocks specified by said input structure from said retention-list; and
wherebythe number of unchanged blocks included into said snapshot is shrunk.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention discloses a method and system for snapshot-based online backup operations permitting reduced requirements to storage capacity and computational overhead for snapshot function.
At the beginning of an online backup operation, the backup software system creates a snapshot of source data storage. The snapshot includes a watch-list used for identifying blocks of a source storage which are watched by snapshot management means for update. If a block included into the watch-list was requested for update, the snapshot management means preserve original contents of that block in a retention container for the purpose of temporary store. The retention container includes a set of temporal stores dedicated for transient storing of blocks until they are backed up.
The essence of the invention is enabling to exclude blocks from the watch-list and the retention container at any moment within the period of snapshot operation. Therefore it is possible to exclude unnecessary blocks from the scope of blocks managed by the snapshot management means, for the purpose of preserving point-in-time data.
Backed up blocks can be operatively excluded from the snapshot so that unchanged blocks are excluded from the watch-list and updated blocks are removed from the retention container. In the latter case temporal stores are shrunk as well. This technique allows to reduce progressively storage expenses and computational overheads required for maintenance of a snapshot being used in the online backup routine.
When a volume-level online backup is performed the snapshot is switched to the read-once mode at the beginning of the data copying stage. A backup utility performs sequential read of blocks from the snapshot. The snapshot management means automatically exclude requested blocks from the scope of managed blocks.
-
Citations
11 Claims
-
1. A method for shrinking a set of data, comprising:
-
providing a writable volume presented in a computer and used for storing data; providing a differential snapshot of one or more blocks of said volume, said differential snapshot comprising; a preservation store for storing copies of the one or more blocks of said volume; a watch-list structure identifying a first set of blocks of said volume remaining unchanged since a moment of creation of said snapshot; a retention-list structure identifying updated blocks of said volume and keeping associations of references to said updated blocks with references to original copies of said updated blocks stored in said preservation store; a space allocation list structure identifying unused space in said preservation store; providing an input structure specifying a second set of blocks of said volume to be removed from a set of data included to said snapshot; providing to the computer a set of instructions, the computer operable to execute the instructions to perform; removing references to the second set of blocks from said watch list, adding locations referenced by the associations stored in said retention-list which include references to blocks specified by said input structure into said space allocation list; removing associations stored in said retention-list which include references to blocks specified by said input structure from said retention-list; and whereby the number of unchanged blocks included into said snapshot is shrunk. - View Dependent Claims (2)
-
-
3. A method for performing a snapshot-based online backup with shrinking a set of data included into a snapshot, the method comprising:
-
providing a writable storage for storing blocks of data; providing a backup storage for storing data backup; providing snapshot management means used for controlling a differential snapshot of blocks of said writable storage, said differential snapshot comprising; a preservation store used for storing a copy of any of said blocks of data; a watch-list structure identifying blocks of said writable storage remaining unchanged since a moment of creation of said snapshot; a retention-list structure storing associations of references to updated blocks of said writable storage with references to original copies of updated blocks stored in said preservation store; a space allocation list structure identifying unused space in said preservation store; a snapshot shrinking subroutine used for removing block identification data from said watch-list and removing associations data from said retention-list, said subroutine taking a structure specifying blocks a storage as input data, said subroutine comprising instructions for executing the following steps on a computer; removing references to blocks specified by input data from said watch-list; adding locations referenced by associations from said retention-list, which include references to blocks specified by input data, into said space allocation list; removing associations, which include references to blocks specified by input data, from said retention-list; creating a differential snapshot of said writable storage; compiling a backup-list of blocks required to back up by analyzing file allocation on said snapshot; and performing a backup of portions of blocks included into said backup-list until said backup-list becomes empty, the step of performing a backup comprising by iteratively executing at least the following steps; reading a portion of blocks from said snapshot into a memory buffer for further processing and storing on said backup storage; invoking said snapshot shrinking routine with specifying a structure identifying locations of blocks included into said portion as input data; removing references to blocks included into said portion from said backup list. - View Dependent Claims (4, 5)
-
-
6. A backup system for performing a snapshot-based online backup, the system comprising:
-
a writable storage for storing blocks of data; a backup storage for storing data backup; a computer system controlling said writable storage device and said backup storage, said the computer system comprising; snapshot management means for controlling a differential snapshot of data blocks of said writable storage system, said differential snapshot comprising; a preservation store used for storing a copy of any of said blocks of data; a watch-list structure identifying blocks of said writable storage remaining unchanged since a moment of creation of said snapshot; a retention-list structure storing associations of references to updated blocks of said writable storage with references to original copies of updated blocks stored in said preservation store, a space allocation list structure identifying unused space in said preservation store; means for enabling access to data stored on a snapshot; means for shrinking a set of data included to said snapshot, the means for shrinking operable to perform the steps of; removing references to specified blocks from said watch-list; adding locations referenced by associations stored in said retention-list which include references to said specified blocks into said space allocation list; and removing associations stored in said retention-list which include references to said specified blocks; means for performing a snapshot-based online backup with shrinking a set of data included to a snapshot during backup operation, the means for performing a snapshot-based online backup operable, in an interactive manner, to; read a portion of blocks from said snapshot into a memory buffer for further processing and storing on said backup store; invoke said means for shrinking a set of data included to a snapshot with specifying locations of blocks from portion of blocks as input data. - View Dependent Claims (7, 8, 9, 10, 11)
-
Specification