This article can also be found in the Premium Editorial Download "Storage magazine: How does your storage salary stack up?."
Download it now to read this article plus other related content.
|Network Appliance goes virtual|
Full copy. All full-copy snapshot techniques are essentially the same. In many ways, they're just another use of traditional volume mirroring. The first step is to initialize the relationship between the two data sets. Most systems allow modifications to be made to the primary data set while the initialization occurs. When the initialization is complete, the two data sets are kept in sync using synchronous or asynchronous updates. When it's time to use the snapshot, the application accessing the primary data set is quiescent. The method used to keep the application quiescent is application dependent; for example, Oracle table spaces would be put into backup mode. If the updates are done asynchronously, a final update to the snapshot data set is done. Finally, the relationship is broken and the destination becomes writable so that another host can access the data. Many products allow access to the destination in a read-only mode without breaking the relationship with the primary data set (see Full-copy snapshots).
Differential: Copy-on-write. The most popular technique for creating a differential snapshot is the copy-on-write method. The first step is to specify a snap reserve area, which is usually on a different set of spindles than the primary data set. Microsoft's VSS implementation, for example, allows a portion of the primary data disk to be set aside as the snap reserve.
The second step is to initialize or enable the snapshot service. This notifies the storage subsystem to track changes to the primary data set. As changes are made to the primary data set, the blocks of data affected by those changes are copied to the snap reserve location. There are two things to consider when using copy-on-write snapshots. The first involves performance. A file delete will cause all the blocks associated with that file to be read off the primary data spindles and then written to the snap reserve area. An overwrite of a block of data in the primary data set will result in two additional I/Os: a read of the old data block and a write of the old data block to the snap reserve location. The second involves the size of the snap reserve. Most storage systems will proactively delete the oldest snapshot to free up space when the snap reserve nears full capacity (see Differential snapshots: Copy-on-write).
NetApp's approach. NetApp uses a slightly different approach to implement its snapshot technology. It first specifies a snap reserve, a percentage of the primary data volume set aside for snapshots. The snap reserve is used only for space accounting on a NetApp device. Next, the snapshot is created. As with the copy-on-write approach, the snapshot view points to the existing data blocks in the primary data set. As changes are made to the primary data set, the blocks of data affected by those changes remain in place. This is the key difference between the copy-on-write approach and what NetApp does. The new information is written to free space in the primary data set (even if snapshots are turned off). The obvious benefit is that enabling snapshots has no effect on write performance. The size of the snap reserve must be monitored, however; if the snap reserve is exceeded, free space in the primary data set is consumed. Excessive deletes or overwrites, coupled with maintaining several snapshots, can cause the primary data set to reach 100% capacity even though no "new" data has been written to the volume (see "Network Appliance goes virtual" on this page).
|A sampling of SAN and NAS snapshot products|
This was first published in December 2004