A system for restoring data to a destination storage pool from back-up point-in-time images of the data on a source storage pool using difference information between time states of the point-in-time images so that the restore can be performed by only copying the difference information to the destination storage pool, said system comprising:
- an object manager operable to simultaneously store a first set of a plurality of point-in-time images of application data over time in a source storage pool, each point-in-time image representing the entire application data at a back-up time, the plurality of point-in-time images comprising:
- an initial point-in-time image of the application data created at a first back-up time for the application data by copying a full copy of the application data;
- and
- a plurality of successive point-in-time images for subsequent back-up versions of the application data after the initial point-in-time image, wherein:
- each of the successive point-in-time images corresponds to a subsequent time-state of when the point-in-time image was made for the application data, each point-in-time image time-state being different than the time-states of the remaining point-in-time images from the first set of point-in-time images;
- and
- each of the successive point-in-time images is created based on (a) difference information indicating a portion of changed application data from a previous point-in-time image in the first set of point-in-time images, and content of the portion of changed application data for the time-state of the point-in-time image;
- and (b) a reference to unchanged application data in the previous point-in-time image so that the unchanged data need not be copied again from the previous point-in-time image;
- a data management engine operable to:
- maintain history information indicating the time-states for the first set of point-in-time images of the application data;
- and
- restore application data in the source storage pool to a restore point-in-time image from the first set of point-in-time images of the application data to a destination storage pool, wherein the restore point-in-time image corresponds to a specified restore time-state, comprising:
- identifying the existence of a prior point-in-time image of the application data in a second set of a plurality of point-in-time images simultaneously stored at the destination storage pool for a time-state prior to the specified restore time-state, wherein the prior point-in-time image corresponds to a common point-in-time image that is also in the first set of point-in-time images in the source storage pool,
- creating composite difference information between the common point-in-time image in the source storage pool and the restore point-in-time image in the source storage pool, and
- sending the composite difference information from the source storage pool to the destination storage pool, said difference information indicating which application data has changed and the content of the changed application data for the time between the specified restore time state and the prior time state for the point-in-time image identified on the destination storage pool so that the restore operation can be performed by only copying the composite difference information to the destination storage pool.