Wednesday, July 11, 2012

VMware KB: Creating snapshots in a different location than default virtual machine directory

VMware KB: Creating snapshots in a different location than default virtual machine directory

In ESX/ESXi 3.x and 4.x, all files comprising snapshots are created in the virtual machine's working directory. By default, the working directory is the same directory as the virtual machine's (.vmx) configuration file. Thus, if the virtual disk (.vmdk) file is located on different datastore than the virtual machine itself, virtual disk redolog (-delta.vmdk) files are created alongside the virtual machine's (.vmx) configuration file instead of beside the virtual disk (.vmdk) file.

You may want to change the location (new directory on the same or alternative datastore) where virtual disk redolog (-delta.vmdk) files are created, in order to:
  • Create snapshots but do not have enough space on the VMFS volume.
  • Power on a virtual machine when there is not enough space to create a swap file on the VMFS volume.
This article describes a method to change the default virtual machine working directory location used for snapshots on ESX/ESXi 3.x and 4.x.

Note: For information about this procedure in ESXi 5.0, see Changing the location of snapshot delta files for virtual machines in ESXi 5.0 (2007563)


To change the default virtual machine working directory location for snapshots (to a new directory on the same or alternative datastore):
  1. Power off the virtual machine.
  2. Open the virtual machine's .vmx configuration file in a text editor. For more information, see Tips for editing a .vmx file (1714).
  3. Add a line to the .vmx configuration file for the virtual machine, specifying a full path to the directory on a datastore for theworkingDir option:

    workingDir = "new_path_location"

    Example:

    workingDir = "/vmfs/volumes/46f1225f-552b0069-e03b-00145e808070/vm-snapshots"

    This ensures that subsequently created snapshots will cause new virtual disk redolog (-delta.vmdk) files to be created in the defined directory.
  4. Note: This step is optional. Adding the new file location ensures the swap file is created in the working directory.

    When virtual machine is powered on for the first time, a new swap file is created in the working directory of the virtual machine.  By default, the virtual machine writes the swap file in the same directory as the.vmx configuration file. If you would like to change this location, add the new location to the below line in the.vmx file:

    sched.swap.dir = "path_to_vm_directory"
  5. Save the changes and close the virtual machine's .vmx configuration file.
  6. Reload the virtual machine configuration by unregistering and re-registering it in the inventory. For more information, seeRegistering or adding a virtual machine to the inventory (1006160).
  7. Power on the virtual machine.
Note: If you are performing a storage vMotion or storage migration of a virtual machine that has its working folder set to a location other than the virtual machine directory, this change is not maintained and you must reconfigure it as necessary.

VMware KB: Changing the location of snapshot delta files for virtual machines in ESXi 5.0

VMware KB: Changing the location of snapshot delta files for virtual machines in ESXi 5.0


In ESXi 5.0, the storage vMotion process has been improved to allow:
  • Virtual machines can now be migrated to a new datastore while running on snapshots.
  • Linked clone virtual machines are now supported with storage vMotion.
For further/related information see the following VMware blog post, vSphere 5.0 Storage Features Part 2 - Storage vMotion

The above link was correct as of March 13, 2012. If you find a link is broken, provide feedback and a VMware employee will correct the link.
To facilitate these improvements to storage vMotion and the new Storage DRS feature a change to the snapshot process was introduced to ESXi 5.0.

With previous versions of ESX/ESXi the delta disks were stored in the directory specified by the workingDir parameter.

This was typically the same directory as the configuration files for the virtual machine, but this could be changed by updating theworkingDir parameter.

With ESXi 5.0 storage vMotion will ignore the workingDir parameter and all the the snapshot delta disks are now stored in the same directory as the base disk.
For further/related information see the following VMware blog post, Storage vMotion, Storage DRS & Virtual Machine Snapshots Interoperability.

In ESXi 5.0 the workingDir parameter still exists but it is only used to specify the location of the snapshot .vmsn file.
To go back to the pre-ESXi 5.0 way of storing snapshots in the directory specified by the workingDir parameter there is a new parameter snapshot.redoNotWithParent which must be added to the virtual machine .vmx file.
Note: For the ESX/ESXi 3.x/4.x version of this article, see Creating snapshots in a different location than default virtual machine directory (1002929).
To specify that the snapshot delta files should be kept in the same directory as the location specified in the workingDirparameter then we need to add a new parameter snapshot.redoNotWithParent to the virtual machine configuration file.

To modify the snapshot storage location:
  1. Ensure that the virtual machine is powered off.
  2. Right-click the virtual machine and click Edit Settings.
  3. Click the Options tab.
  4. In the Advanced Options, click General.
  5. Click Configuration Parameters.
  6. Click Add Row.
  7. In the Name field, type snapshot.redoNotWithParent.
  8. In the Value field, type true.
  9. The virtual machine can be powered on again.
For more information, see the VMware blog post Storage vMotion, Storage DRS & Virtual Machine Snapshots Interoperability.

Note: The preceding link was correct as of March 13, 2012. If you find the link is broken, provide feedback and a VMware employee will update the link.

Note: The following additional behaviour are experienced with snapshots and Storage vMotion on ESXi 5.0:
  • If you have a virtual machine running on snapshots and you move a VMDK from one datastore to another its associated snapshot files will move with the VMDK to the new datastore (even if they were created in the working directory initially).
  • Newly created snapshots will be created in the working directory again though (as per the advanced setting).
  • The working directory is located at /usr/lib/vmware/hostd/docroot/downloads.
  • Snapshot files do not move if you move the configuration files to another datastore. The existing snapshot files continue to stay on the original datastore.