Hi folks,
I'm running into a brick wall with an issue I'm having with snapshots. At some point a few nights ago a configuration change was made to one of our VMs while a snapshot existed for that VM. Afterwards, snapshots have not been functioning properly.
The original snapshot which was there when the configuration change occurred seems to have consolidated into the base disk. However, the snapshot files are still there (1mb in size) and are still there in the snapshot manager.
Creating snapshots on top of that one works fine, but they cannot be consolidated:
An error occurred while consolidating disks: msg.snapshot.error-DUPLICATEDISK.
Examining the .vmsn files shows that the first snapshot and the second snapshot point to the same base disk, rather than the second snapshot pointing to the first snapshot.
I've attached a .zip of all files that seem to be relevant.
My thinking is this: Since we know the first snapshot doesn't contain valuable data (the deltas are empty; they were not growing between the time the first consolidation 'failed' and the second snapshot was created) can we edit the .vmsd of the VM and remove references to the first, broken snapshot? Would this allow the consolidation to ignore that first useless snapshot which points to the same disks as the second and finish successfully?
Thanks!
If a vmsd becomes invalid and snapshotmanager does not display anything or something that makes no sense
create a directory "deletemelater" inside the existing one - move all vmsd and vmsn-files into it.
Next examine the really used config by
1. check vmdk in your current config by reading the vmx-file (scsi0:0.filename = ?.vmdk
2. check ?.vmdk and follow the parentFileNameHint referenced there
3. do the same for every eventually existing additional parts of the snapshot chain
....
X. finally you should find the reference to the basedisk
If all paths make sense and are available and you want to keep the VM as it is configured
create a new snapshot while the VM is powered off.
This should create a fresh and valid minimal vmsd-file which also will enable future automatic backups after you then used the UI-function "delete all"
Editing vmsd-files is rarely ever needed - and the procedure listed above is way less prone to errors.
If a vmsd becomes invalid and snapshotmanager does not display anything or something that makes no sense
create a directory "deletemelater" inside the existing one - move all vmsd and vmsn-files into it.
Next examine the really used config by
1. check vmdk in your current config by reading the vmx-file (scsi0:0.filename = ?.vmdk
2. check ?.vmdk and follow the parentFileNameHint referenced there
3. do the same for every eventually existing additional parts of the snapshot chain
....
X. finally you should find the reference to the basedisk
If all paths make sense and are available and you want to keep the VM as it is configured
create a new snapshot while the VM is powered off.
This should create a fresh and valid minimal vmsd-file which also will enable future automatic backups after you then used the UI-function "delete all"
Editing vmsd-files is rarely ever needed - and the procedure listed above is way less prone to errors.
Success! Thanks a ton, you saved me a really boring night of cloning 2TB of virtual disks
Cheers!
For reference to anyone who may have the same issue, below is my documentation for this resolution:
The snapshot manager for this virtual machine appeared like so:
Deleting All results in the following error:
An error occurred while consolidating disks: msg.snapshot.error-DUPLICATEDISK.
Examining the .vmx of the virtual machine shows that the files being used are those belonging to the snapshot Test 2.
Test 2's VMDKs point to Test
Test's VMDKs point to the Base Disks
VEEAM BACKUP TEMPORARY SNAPSHOT also point to the base disks
I shut down the virtual machine and moved all .vmsn and .vmsd files into a temporary, separate folder.
Then I took a snapshot of the virtual machine while it was powered off.
Afterwards, I used the Delete All function of the Snapshot Manager. At this point, the snapshots began consolidating.
The operation completed successfully, and the .vmx of the virtual machine now points to the base disks.
The procedure left orphan .vmdks, 1,024KB in size, belonging to VEEAM BACKUP TEMPORARY SNAPSHOT. These .vmdks can be deleted without issue. If your .vmdks are larger than this, I don't recommend deleting them without examining your VM for missing data!
Maybe useful in case you have to decide wether to trust Snapshotmanager or not ...
A short and incomplete list of error-messages that I read as possible hints for a eventually bad vmsd-file. If I see any of those I usually delete the vmsd and fix the problem myself manually:
(msg.disklibSnapshot.LAST)Invalid snapshot error
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_NOT_REVERTABLE)Cannot revert. The snapshot is marked non-revertable.
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_MAXSNAPSHOTS)Exceeded the maximum number of permitted snapshots
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_NONUNIQUE_NAME)The name does not uniquely identify one snapshot
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_VIXFILE)Cannot snapshot all metadata files
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_INCONSISTENT)The snapshot files are in an inconsistent state
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_LOCKED)A snapshot operation is already in progress
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_CHECKPOINT)Unable to save the snapshot file
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_EXISTS)The snapshot already exists
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_NOTFOUND)The snapshot does not exist
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_DUMPER)Unable to open the snapshot file
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_INVAL)A snapshot-related error has occurred
(msg.disklibSnapshot.TOOMANY_SNAPSHOTS)The number of snapshots for this file has exceeded supported limits
(msg.disklibSnapshot.TOOMANY_LEVELS)The number of snapshot levels has exceeded supported limits
Forget the vmsd when ever the UI tells you anything about too many snapshots.
A valid VM can have several hundred of snapshots and still work.
(msg.foundryErrMsgId.VIX_E_SNAPSHOT_QUIESCING_UNAVAILABLE)Quiesced snapshots are not supported by the virtual machine.
This smells like VSS errors inside the VM - check VSS providers and vmware-tools.
Hi continuum,
thanks for your very helpful post.
I decided to do a full export via .ovf first as the backup software (Veeam) wasn't able to run properly anymore and afterwards proceeded as proposed - so I moved .vmsn and .vmsd files into a newly created subdirectory. This worked like a charm, and after that I was able to create a new snapshot while the VM was turned off and deleted the snapshot again while the VM was running.
Perfect, thank you!
