Creating snapshots in a different location than default virtual machine directory for VMware ESXi and VMware ESX
search cancel

Creating snapshots in a different location than default virtual machine directory for VMware ESXi and VMware ESX

book

Article ID: 314378

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

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 that of the virtual machine (.vmx) configuration file. If the virtual disk (.vmdk) file is located on a different datastore than that of the virtual machine, the virtual disk redolog (-delta.vmdk or -sesparse.vmdk) files are created along with the virtual machine's (.vmx) configuration file instead of the virtual disk (.vmdk) file.
 
In ESXi 5.0 and later, virtual disk redolog (-delta.vmdk) files for snapshots are placed in the same directory as the parent 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, to:
  • Create snapshots but do not have enough space on the VMFS volume.
  • Power on a virtual machine when does not have enough space to create a swap file on the VMFS volume.
This article provides steps to change the default virtual machine working directory location used for snapshots on ESX/ESXi 3.x and later.


Environment

VMware ESXi 8.x
VMware ESXi 7.x
VMware ESXi 6.x
VMware ESXi 5.x

Resolution

To change the default virtual machine working directory location for snapshots (to a new directory on the same or alternative datastore):

Note: To proceed you need the UUID of the target datastore. You can run the esxcli storage filesystem list command in an SSH session to generate a compact list of the LUNs currently connected to the ESXi host, including their UUIDs and VMFS version. For more information see Identifying disks when working with VMware ESXi/ESX (1014953).

ESX/ESXi 4.1 and earlier

  1. Power off the virtual machine.
  2. Open the virtual machine's .vmx configuration file using a text editor. For more information, see Tips for editing a .vmx file (1714).
  3. Add a line to the .vmx configuration file of the virtual machine, specifying a full path to the directory on a datastore for the workingDir option:

    workingDir = "new_path_location"

    Example:

    workingDir = "/vmfs/volumes/46f1225f-########-####-###########70/vm-snapshots/"

    This ensures that subsequently created snapshots cause new virtual disk redolog (-delta.vmdk) files to be created in the defined directory. In this example, the redolog files are created in the vm-snapshots directory.
     
  4. When a 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 this line in the.vmx file:

    sched.swap.dir = "path_to_vm_directory"

    Note: This step is optional. Adding the new file location ensures that the swap file is created in the working 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, see Registering or adding a virtual machine to the inventory (1006160).
  7. Power on the virtual machine.

ESXi 5.0 and later

  1. Power off the virtual machine.
  2. Open the virtual machine's .vmx configuration file using a text editor. For more information, see Tips for editing a .vmx file (1714).
  3. Add these lines to the .vmx configuration file of the virtual machine, specifying a full path to the directory on a datastore for the workingDir option:

    workingDir = "new_path_location"
    snapshot.redoNotWithParent = "true"

    Example:

    workingDir = "/vmfs/volumes/46f1225f-########-####-##########70/vm-snapshots/"
    snapshot.redoNotWithParent = "true"

    This ensures that subsequently created snapshots cause new virtual disk redolog (-delta.vmdk) files to be created in the defined directory. In this example, the redolog files are created in the vm-snapshots directory.

    Note: In ESXi 5.5, if the virtual disk is larger than 2TB in size, the redolog files will be -sesparse.vmdk format rather than -delta.vmdk.
     
  4. When a virtual machine is powered on and the memory allocated to the virtual machine is greater than the memory reserved for it, 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 want to change this location, add the new location to this line in the.vmx file:

    sched.swap.dir = "new_path_location"

    Note: This step is optional. Adding the new file location ensures the swap file is created in the chosen directory. You might want to do this to keep the swap file with the virtual disk files, for example, or in a separate path from the original VM folder.
     
  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, see Registering or adding a virtual machine to the inventory (1006160).
  7. Power on the virtual machine.

Notes:

  • The snapshot.redoNotWithParent option in 5.x/6.x/7.x/8.x can also be added from the vSphere Client. For more information, see Changing the location of snapshot delta files for virtual machines in ESXi 5.x (2007563).
  • 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.
  • 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, the operation might fail with the error:

    Cannot complete the operation because the file or folder already exists.