Why are snapshots considered as temporary backups not real backups?

When a VM has an active snapshot, its virtual disk I/O is not performed on the VM's actual .VMDK files, but instead they are kept unchanged, and whatever changes in the VM is written to different physical files; this allows for the recovery of the previous VM state, but has three important side effects:

  • Disk I/O for the VM is much slower.
  • Those "delta" files keep growing over time, as more and more disk I/O is performed by the VM.
  • When the snapshot is removed, the changes stored in the "delta" files have to be merged back into the main .VMDK files, and this is is very slow and time consuming if the snapshot has been active for a long time.

It is indeed better to not keep active snapshots for a long time. If you need a long-term backup of a VM in a given state, you can just copy the VM somewhere else: this will have no performance impact on the VM, and you'll anyway end up using less disk space than what long-term snapshots would fill up over time.

Also, having a copy of the VM stored in a different place will actually help you if you lose the VM: snapshots are stored together with the VM they belong to, and are only useful if the VM is available; they are totally useless in the case of an actual data loss (like a datastore crash), and thus can't be used as real backups.

Here is some official documentation about snapshots:

http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1015180


Some snapshot formats used by vmware degrade performance over time as they store more data. The "sparse extent" format I believe is still the default in the latest versions doesn't seem to have this property (you're looking at 3 reads per read, and up to 2 reads or 3 writes per write, but this doesn't get any worse as the disk fills up). So, I'm not entirely sure that the "don't keep snapshots around for a long time" property is necessarily correct advice at all times.

One thing I have noticed, though, is that merging snapshots takes ages as they get big. Depending on your use case, this may or may not be a problem.

As far as your other question, about "temporary backup", well, that's easy -- a backup is intended to survive the loss of the primary data store. Since snapshots and origins are stored together (and the snapshot is useless without the base image), you lose the lot -- hence a snapshot is in no way a backup.