24 Jul 2009

ESX 3.5: An invalid snapshot configuration was detected

In ESX 3.5, when trying to create a new snapshot, the following error is reported in the VI Client:

An invalid snapshot configuration was detected


Also, when reading the Virtual Machine log file (vmware.log) located in the same location as the VM, you may find references to delta files such as "vm_name-000001.vmdk", but when browsing the datastore, the delta file does not exists. Also, when running vmware-cmd hassnapshot,  "hassnapshot ()= " is returned, which means that the VM has no snapshots in place.

If this is truly the case, why is "An invalid snapshot configuration was detected" returned when trying to create a new snapshot?

VMware records snapshot information about the current VM in a .vmsd file. This file is located with the rest of the virtual machine configuration and VMDK files on the datastore. The file is normally called .vmsd. This file will contain information, even if your VM has no snapshots in place.

It is possible that in some cases, ESX fails to properly clean up after previous snapshots were removed. The information for previous snapshots may still be recorded in the .vmsd file. The file may indicate that you still have snapshots in pace, although all previous snapshots were removed and the dalta files have been merged. When you then try to create a snapshot, the .vmsd file will inform the ESX host that there is a delta file in place and that it has to create a second or third delta file. When the ESX host interigates the VMFS file system, it's unable to find the snapshot delta files specified in the .vmsd file and therefore errors with "an invalid snapshot configuration was detected."

We need to clear the contents of the .vmsd file in order to create new snapshots.

 

How to fix the issue

Create a backup copy of the current .vmsd file. Then create a new file called .vmsd. This can be done with a single command from the VMware ESX CLI (Service Console) once you have browsed to the datastore where the VM resides:

cd /vmfs/volumes///
mv ./.vmsd ./.vmsd.old && touch ./.vmsd 


Let's just have a look at the commands above

mv : This renames the .vmsd file.

&& : This basically tells the CLI that if the "mv" command was executed and completed successfully, only then execute the next part of the command which is "touch".

touch: "touch" is a Linux command that simply creates an empty file.

So, with a single line we have renamed (created a backup) our original file and created a new file that has the original file's name.

After the new .vmsd file has been created, it need to be initialised. In order to do so, use the VI client to create a snapshot. Once the new snapshot has been created, go ahead and delete the new snapshots again. This will write some information to the .vmsd file:

.encoding = "UTF-8"
snapshot.lastUID = "2"
snapshot.numSnapshots = "0"
snapshot.current = "0"
snapshot0.uid = "2"
snapshot0.filename = "-Snapshot2.vmsn"
snapshot0.displayName = "Consolidate Helper- 0"
snapshot0.description = "Helper snapshot for online consolidate."
snapshot0.createTimeHigh = "290676"
snapshot0.createTimeLow = "861410424"
snapshot0.numDisks = "2"
snapshot0.disk0.fileName = ".vmdk"
snapshot0.disk0.node = "scsi0:0"
snapshot0.disk1.fileName = "_1.vmdk"
snapshot0.disk1.node = "scsi0:1"
snapshot.needConsolidate = "FALSE"

 The issue should now be resolved and snapshots should work as expected.

Written by  0 comment
Last modified on Friday, 12 March 2010 12:42
Rate this item
(0 votes)

Comments (0)

There are no comments posted here yet

Leave your comments

Posting comment as a guest. Sign up or login to your account.
0 Characters
Attachments (0 / 3)
Share Your Location