Preserving point-in-time objectives in block level incremental snapshot systems – by cascading snapshots
Publication Date: 2010-Oct-19
The IP.com Prior Art Database
Please enter 2-3 line Abstract
Page 01 of 5
Block level incremental backup systems are designed to supply fast incremental snapshots by using device level filter drivers to monitor changes on the protected volume/disk and then by running an incremental snapshot that includes only the modified blocks since the last snapshot until the point-in-time (i.e. time of the beginning of the snapshot) of the current snapshots.
An example for such a backup
product would be IBM TSM FastBack, disclosed in the patent "Fast backup storage and fast recovery of data (FBSRD)", (UK: 2411030 (22/03/2006), USA: 11122508 (04/05/2005)). By using this filter level driver for monitoring and using it to provide Copy-On-Write during the backup process, backup products can provide incremental snapshots with a well defined consistent point-in-time.
During the backup process of one snapshot, the monitoring of changes continues since every change that happened after the point-in-time of the previous snapshot will be in the bitmap of the next one, this bitmap is for monitoring purposes only, it's not related to other bitmaps that may be used to manage the backup process.
A possible scenario can be that a point-in-time
of a new snapshot has arrived
while a previous snapshot is still running.
In this case, existing products will not begin the new snapshot before the old one has finished. This scenario can typically happen during snapshots that require a long time to complete such as a full snapshot (mostly the first one), that takes a long time, or when the scheduling of the snapshots is very frequent, e.g.
we schedule a snapshot every
5 minutes whereas
the backup process takes more than 5 minutes.
This disclosure shows a novel procedure that allows running multiple cascading snapshots on the same volume/disk at the same time by managing multiple change bitmaps on the same volume/disk. This will allow keeping the point-in-times the user needs, no matter what the running time of snapshots is. Two caveats is that to restore from a snapshot is possible only when it ad all its predecessor snapshots are completed.
Also if a snapshots fails,
it will automatically fail any snapshots that depend on it, even if they are already completed. This procedure is not limited to software products and can be also implemented in hardware snapshots.
The implementation of this procedure will require having a separate bitmap for each snapshot running as well as a bitmap that is monitoring for the next snapshot, called the active bitmap. Failing snapshots will require merging the bitmaps of previous snapshots into the active one, to provide an incremental snapshot that captures the entire changes since the last successful one.
Any write operation of a block is
marked in the "next snapshot" bitmap and the old data of that block is sent to all running snapshots for Copy-on-Write processing purposes.
As for managing status
of snapshots we need the following states: running, tentatively completed, completed & failed. Tentati...