Symantec logo

How VVR creates instant space-optimized snapshots

This section explains how VVR creates and manages the space-optimized snapshots.

In the following illustration, the Primary has two data volumes: Data Volume 1 and Data Volume 2. For this example we have indicated two specific blocks, namely, A and C in Data Volume 1 and B and D in Data Volume 2.

The Secondary has two data volumes, Data Volume 1 and Data Volume 2 that have all the replicated data from the Primary, including the specified blocks. The Secondary illustrates an instant space-optimized snapshot in which the data resides on the original volume itself. A Read operation to the snapshots will be redirected to the source volumes and writes will result in a copy-on-write operation. The data will be copied to the snapshots only if there is a write to the original data. Because the snapshots are space-optimized the data will actually get written to the cache object only if there is a write to the original data.

Example 1—How VVR creates instant space-optimized snapshots

Example 1—How VVR creates instant space-optimized snapshots

Click the thumbnail above to view full-sized image.

The following illustration indicates the scenario where the Primary receives some updates to the blocks A and B. These are now represented as A' and B'.

The Secondary also receives the updates A' and B'. The write to the data volumes first results in a copy-on-write on to the space-optimized snapshot. A space-optimized snapshot is created on a cache object that holds all the data for the snapshots. Hence during a copy-on-write, the blocks A and B get written onto the cache object, before the changed blocks are written to the original volumes, Data Volume 1 and Data Volume 2. The cache object stores the blocks persistently in the cache volume after remapping the original offsets.

Example 2—How VVR writes to the instant space-optimized snapshots

Example 2—How VVR writes to the instant space-optimized
snapshots

Click the thumbnail above to view full-sized image.

The following illustration indicates the scenario when there is a write from the application to the block C on the snapshot. This block in now indicated as C'. The changed information for the block C is preserved on the cache object using the copy-on-write mechanism described earlier. If there is a read then the changed block C' will be read from the cache object. Similarly, if there is a request for reading block A from the snapshot volume, it will be fetched from the cache object, where it has been copied earlier.

Example 3—How VVR reads the changed block from the cache object

Example 3—How VVR reads the changed block from the cache
object

Click the thumbnail above to view full-sized image.