Virtual Servers, Real Snapshots
Creating state-consistent point-in-time snapshots is now possible in server virtualization environments
by Dr. Allon Cohen
Creating a "snapshot" of the content from a given volume of data at a certain point in time is one of the most widely used features of storage virtualization. Traditionally, snapshots have been taken and maintained at the storage network layer; however, recent advances in server virtualization now make it possible to take snapshots at the virtual server layer as well. This leaves the IT manager with the open question: what is the best practice for taking snapshots? IT managers must decide which option will provide more value: the snapshot functionality at the storage network, the snapshot functionality at the server virtualization layer, or some combination of the two.
Essentially, snapshots provide an image of a virtual machine "frozen" at the instant the snapshot was taken. It is the wide array of critical functionality that snapshots provide, both to traditional servers and to virtual servers, that makes their capability so important.
By using snapshots, for example, an IT manager can record the server configuration at given points in time throughout the day. If a virus attacks the system (or a software upgrade ruins the configuration), the user can revert to the last snapshot taken before the attack. Essentially, the IT manager simply "rolls back" to the system configuration prior to the virus attack.
Snapshots can also perform consistent backups of data without interruption to a working application. An IT manager can create a snapshot of a volume and back up the data from the snapshot while the application continues to run on the original volume. In this way, a backup copy of the data, consistent to a point in time, is created without the need to take the system offline.
The advent of virtual servers also created a third valuable snapshot usage: snapshots of "golden masters." IT managers of virtual server environments often need to keep golden masters of virtual servers containing a pre-defined configuration and specific set of installed applications. Under certain circumstances, at least one instance of these virtual servers must be created to support running the applications without changing the golden master itself. Snapshots are the best way to provide this functionality.
Comparing Virtual Server Layer Snapshots to Storage Array Snapshots
Using snapshot functionality at the server virtualization layer has advantages as well as drawbacks.
The main advantage is the ability to use the server virtualization capability of quiescing the virtual machine. Quiescing a virtual machine assures that the data in the snapshot is crash-consistent. This is especially important when the snapshot will be used for backup and recovery.
Another important advantage of using a server virtualization layer for snapshots is that the virtual server center has the best record of where the files owned by a certain virtual machine reside. For example VMware's virtual center can be queried for the location of the vmdk files of specific virtual machines.
However, there are also some drawbacks associated with using the server virtualization layer for snapshots. For example, server snapshots do not support all the data accessible to a virtual machine. For example, if you are running VMware and your virtual machines are accessing raw disks or RDM physical mode drives, you cannot take a snapshot of their data via the virtual center.
Another critical drawback is that taking a snapshot is a highly CPU- and I/O-intensive process. Using the server to perform many snapshots can easily stress the performance load on the servers and can compete with the resources of the virtual machines themselves.
Taking snapshots within a storage array is much more efficient and will afford the user much higher performance, but there are drawbacks. In many cases, such as storage high availability scenarios and resource tiering, the data of a virtual machine may be spread across several storage arrays. In such cases, an array snapshot creates only a partial image of the state of a virtual machine.
The same holds true when a virtual machine uses VMFS for its boot disk but an RDM for its application data. An IT manager will not be able to reconstruct the state of the virtual machine at a given point in time from the partial data collected in the array snapshot. Furthermore, array-based snapshots alone cannot guarantee a state-consistent snapshot. To achieve state-consistent snapshots, someone must ensure that the data in the array at the time the snapshot is taken is crash consistent.
Snapshots at the Intelligent Network Layer: The Best of Both Worlds
The advent of intelligent network switches with snapshot capabilities enables users to achieve the best of both worlds. For the first time, IT managers are able to obtain cross-array, state-consistent snapshots of their virtual machines.
In addition, managing the snapshots at the SAN network layer through the intelligent switch rather than at the server layer, retains the high efficiency of storage-based snapshots. Furthermore, server resources are not strained by any extra effort.
Consider the example presented in Figure 1 (below). In this example, a cluster of virtual servers is connected to a SAN using an iSCSI intelligent network switch. To maximize return on investment, the SAN manager is using two tiers of storage. The data from Exchange servers and databases are stored in tier 1 storage as RDMs. VMFS, along with boot volumes for the virtual machines, are stored in tier 2 storage on the SAN.
The SAN manager must provide consistent snapshots of the virtual machines and their data at given intervals. The task becomes easy under this architecture. By using the scripting capabilities of the intelligent network switch, the SAN manager runs a simple two-step script. In step 1, the script calls the virtual machine (using the VMware scripting and VSS) to quiesce both the applications and the virtual machines themselves. In step 2, the script activates snapshots of the virtual machine data on both tiers of storage. The goal has now been achieved. The SAN manager has created a cross-array snapshot of a virtual machine at a recovery-consistent point in time.
Performing snapshots at the SAN network layer enables IT managers to realize all the benefits of snapshots in a virtualized storage environment. By allowing cross-array, state-consistent snapshots of virtual machines, intelligent network switch technology delivers highly efficient storage-based snapshots without impacting the performance of critical production servers.
- - -
Dr. Allon Cohen is vice president of product management at SANRAD (http://www.sanrad.com). You can reach the author at firstname.lastname@example.org.