What is a VMware Snapshot ?

Perhaps you need to test the result of configuration changes on a server or maybe you want to see what happens if you install a new service pack. No matter what you are doing on a computer, many times, you actions may have unintended consequences. Have you ever installed a new program you downloaded and it crashed your machine or the file sharing software that fills your system with adware? Wouldn't it be great to push a button and just "go back" to where you were before? These are some of the many uses for VMware snapshots. So, what is a snapshot?

What is a VMware Shapshot ?

A snapshot is a picture of your system at the time the snapshot is taken. Think of it as an image of your computer's hard drive. Besides just the data on the hard drive, the VMware configuration for that virtual machine and the BIOS configuration are also saved when you take a snapshot. The snapshot files that are created contain only the changes that have occurred to the virtual machine since the snapshot was taken. Thus, over time, the snapshot files will grow as the machine is used more and more.

What Snapshot files are created ?

When a snapshot is created a number of files are created in the directory for that virtual machine.

<machine name>-SnapshotX.vmsn (Where X is the number of the snapshot taken) This file stores the state of the virtual machine when the snapshot was taken.
<machine name>-SnapshotX.vmem (Where X is the number of the snapshot taken) This file stores the state of the virtual machine memory when the snapshot was taken.
<machine name>-nnnnnn.vmdk (where nnnnnn is the number of the disk image, not corresponding to the snapshot number)

These are log files which store changes to the virtual machine, since snapshot was taken. There may be many of these files over time.
Usually, it looks something like this: Notice the circled "Windows XP Professional-000007.vmdk", "windows xp professional-Snapshot9.vmsn", and "windows xp professional-Snapshot9.vmem" file.

Snapshots in Workstation vs Server

VMware Workstation has the ability to create multiple snapshots and offers a very nice Snapshot Manager. The Snapshot Manager was introduced in VMware Workstation 5.0. With Snapshot Manager, you can view the snapshot tree. Each snapshot will be represented by a screenshot of what the screen looked like when the snapshot was taken. VMware Server lacks two important features: Snapshot Manager (multiple snapshots) and virtual machine cloning. In other words, in VMware server, you can only take a single snapshot and then revert back to that snapshot.

One alternative to taking snapshots that can be used in VMware Server is to shutdown the virtual machine and copy the vmdk, vmem, vmx, and nvram files. Later you could replace these files and your virtual machine would be back at the point of when that copy was made. This is a manual way of taking snapshots. However, this method takes much more disk space when compared to snapshots.

Summary

VMware snapshots are an extremely valuable feature of VMware. Currently, VMware workstation offers the Snapshot Manager, which offers the possibility of multiple snapshots. Currently, VMware Server offers only the ability to take a single snapshot. With snapshots, you can save the state of your virtual system BEFORE you make risky changes like installing applications, adding a new patch, or making a configuration change. When things go wrong, Snapshots can really save your day.