Rather than spend a lot of time writing up my own post on snapshots, I’ve found quite a bit of good info on some other blogs that justifies a good copy/paste here.
From boche.net
Disk write I/O inside a guest VM may be seldom or it may be very active. It depends on the role of the VM and more specifically the software and features installed inside the VM. When the initial 16MB delta file fills to capacity with the delta changes it maintains, it dynamically increases its size by another 16MB. Once again, if and when the delta file fills to capacity with delta changes, it grows by another 16MB. For those who excel in math, our delta file is now 48MB in size. Do you see the pattern? The delta file will continue to grow in 16MB increments to a maximum size of the parent file (and in some cases very rapidly!) unless one of a few conditions is met:
1. Someone closes the snapshot
2. Someone creates an additional child snapshot (perpetuating a potential problem)
3. The snapshot file somehow becomes corrupted before or during closing of the snapshot (bad news)
4. The VMFS volume where the VM and delta file are stored runs out of available storage space (update your resume. All other VMs on the same VMFS volume, snapshotted or not, as well as VMKernel swap and VM logs are now also out of write space)
I particularly like his analogy:
Unfortunately in the current builds, VMware doesn’t give us real good (or automated) visibility of open snapshots. I liken it to handing a loaded gun to a child – it’s only a matter of time before an accident happens. That analogy is quite extreme but it gets my point across on the importance of preventing such an accident from happening.
Read the full article.
Rich Brambley from VM/ETC has also posted a number of articles on snapshots. All of them good. Especially this one on finding open snapshots:
To use the ls command to find snapshots do the following:
1. Log in to the service console (use putty or mRemote for remote log in)
2. Query for the snap shot files in the VMFS volumes
#ls -Ral /vmfs/volumes/* |grep .vmsn
I would like to add my own preferred method of finding snapshots in an environment: PowerShell! Using the VI-Toolkit for Windows (Keep an eye out for a future post going further into snapshots & PowerShell)
connect-viserver esx.address.com
Get-VM | Get-Snapshot | where { $_.Created -le (Get-Date).AddDays(-7)}
test