everythingpossible - Fotolia

What are VMware vSphere snapshots, and what's the best way to use them?

VSphere snapshots help restore a VM to a given point in time but can eat up data store resources. How should you use, monitor and manage snapshots in a virtual environment?

A VMware snapshot preserves the state and data of a VM at a specific point in time. The state refers to the VM's power state -- whether it is powered-on, powered-off or suspended. The data refers to the files that make up the VM, including disks, memory and other devices, such as virtual network interface cards.

VMware snapshots are useful but come with some caveats. Some administrators use snapshots during long periods or use them as backups, which can create problems. The vSphere management client allows the administrator to restrict who has the ability to create or delete snapshots, but this management system is imperfect. The VM owner has the ability to create a snapshot by default but not the right to delete a snapshot. If the administrator and the rest of his team fail to communicate or work together to minimize snapshots, this can result in snapshot sprawl within your virtual environment.

Take, manage or delete snapshots.
Take, manage or delete snapshots.

Backup software uses snapshot technology and Changed Block Tracking to back up live VMs, but some backup software does not "clean" older snapshots after a successful backup. This can result in an environment accumulating snapshots and, again, lead to snapshot sprawl.

Manual snapshots are good for testing and development environments. I recommend manual snapshots for test/dev environments in which production VMs are critical and should only be exposed to automatic snapshots via backup software.

Now that we've talked about what snapshots are and the risks that surround them, what are VMware's best practices for vSphere snapshots?

VMware does not recommend creating a large number of snapshots in a chain. VMware supports a maximum of 32 snapshots in a chain, but you really shouldn't have more than two or three. VMware also recommends that you keep snapshots on a VM for no more than 72 hours. The longer you keep a snapshot file, the larger it grows. This causes the snapshot data store to run out of space faster, which can affect VMs that run on the same data store. Delete any vSphere snapshots older than 72 hours.

If you use third-party backup software, be mindful that it doesn't leave any snapshots behind. Consider using monitoring software to detect snapshots within a virtualized environment or scripts that email a daily report on your environment. Before you increase disk size for a VM, make sure that the VM doesn't have a snapshot. If you increase disk size without checking first, it will corrupt the data so that you can't revert to the snapshot. If you know that your VM is due to undergo changes, such as a software upgrade or patching, create a full backup with your usual backup software rather than create a vSphere snapshot.

There are multiple free tools you can use to detect and report snapshots in your virtualized environment, but you can also use the vSphere Web Client or a command line to manually check if a VM has snapshots. In many cases, the command-line tool is even preferable to the vSphere Web Client, as the Web Client doesn't always pick up on snapshots left behind by backup software.

Next Steps

Disable snapshots in vSphere 6 to boost performance

Use PowerCLI commands to locate vSphere snapshots

Why would you want to disable snapshots?

Dig Deeper on Backing up VMware host servers and guest OSes