By default the snapshots which are taken for any vm are stored with their parent in the same directory or storage. Sometimes you may run out of space and you might not be able to take anymore snapshots so in that case you can always use some other location for the storage of snapshots.
But how will you change the default locations of all the snapshots which will be taken for any vm ?
Below are the steps to resolve the above issue;
01. Power off the Virtual Machine
02. Right Click the vm and select Edit Settings
03. Click on Options from the top TAB, select General and open the Configuration parameters
04. Add a new row with the following details
05. Save this parameter with a value "true" as shown below
06. Now open the CLI of the host where the vm is located, Go to the vm's parent directory where all the vm files are stored and open the main .vmx file: Ex;
# cd /vmfs/volumes/xxxxxxxx-xxxxxxxxx-xxxx-xxxxxxxxxxx/test_machine
# vi test_machine.vmx
07. Now add this line anywhere in the .vmx file with the path location where you want your snapshots to be stored
workingDir = "/vmfs/volumes/xxxxxxxx-xxxxxxxxx-xxxx-xxxxxxxxxxx/snapshots"
Save the file and exit
08. Now you need to reload this vm to make the changes take affect.
# vim-cmd vmsvc/getallvms | grep test_machine
09 test_machine [iSCSI-Datastore1] test_machine/test_machine wintestmachine vmx-07
10. Here 07 is the vm id which you can find out using the above command
# vim-cmd vmsvc/reload 07
11. Now when you take snapshots the snapshot files and vm swap files will be created in a different location.