Disk snapshots are one of the best data-protection mechanisms available in the data center today. Whether it's a SAN-based snapshot technology or one built into your file system or operating system, maintaining a solid snapshot regimen can really save your bacon when things go wrong. However, not all snapshot technologies are built to serve as direct hedges against unintentional data loss. A great example of this is the snapshot technology built into EMC VMware's vSphere ESX server and desktop virtualization platform.
Unlike other snapshot technologies, VMware's snapshots are not well-suited to being used as a data protection methodology. Trying to use them that way -- creating and maintaining periodic snapshots of a production server virtual machine, for example -- will result in terrible I/O performance as well as significantly increased likelihood that the snapshots themselves will become a risk to production. However, that's certainly not to say that this snapshot technology is without purpose. VMware's snapshot capability is an exceptionally useful tool; you just have to know where and how to use it.
Essentially, there are two things these snapshots are really good for: 1) allowing a virtual machine's disks to be isolated from write activity so that they can be backed up, and 2) providing a short-term failback during patching and software upgrades. In development environments, you'll see snapshots used extensively to maintain many point-in-time images as changes are made. However, using snapshots in this manner in a performance-sensitive production environment is rarely advisable.
The reasons for this have their foundation in the nitty-gritty of what VMware's snapshot technology actually does. Understanding this is the key to being able to use them effectively.
In a typical environment, a virtual machine's disk resources are comprised of large files called VMDK files (a loose acronym for virtual machine disk) that are located on a VMware-proprietary VMFS file system or NFS store. Although there are several ways to provision these files, they are generally equal in size to the disk resource you're presenting to the virtual machine. So, if you have a Windows 2003 server with a 15GB system drive, you'd expect to find a corresponding 15GB VMDK file hanging out on a VMFS volume.