Иногда может возникнуть ситуация требующая удаления snapshot'ов вручную, из за различных ошибок не позволяющих выполнить удаление/консолидацию через графический/web интерфейс vmware.
	 
	
		Подобные проблемы могут возникнуть, например, в случае возникновения ошибок при процессе репликации средствами Veeam, как в нашем случае.
	
		 
	
		Для того, чтобы восстановить рабочее состояние виртуальной машины, необходимо:
	
		- 
			зайти через CLI в каталог с виртуальной машиной и посмотреть на наличие файлов snapshot'ов и delta-дисков на файловой системе
 
/vmfs/volumes/9619731d-7db0f1c5-998f-00157812468ad/MYVIRTUALMACHINE_replica_1 # ls -l
total 131951640
-rw-------    1 root     root         34836 Dec 12 17:41 MYVIRTUALMACHINE-Snapshot18.vmsn
-rw-------    1 root     root         34836 Dec 13 17:42 MYVIRTUALMACHINE-Snapshot20.vmsn
-rw-------    1 root     root          8684 Dec 13 17:41 MYVIRTUALMACHINE.nvram
-rw-------    1 root     root          1101 Dec 13 17:59 MYVIRTUALMACHINE.vmsd
-rwx------    1 root     root          6077 Dec 13 17:59 MYVIRTUALMACHINE.vmx
-rw-------    1 root     root          3500 Dec 13 17:41 MYVIRTUALMACHINE.vmxf
-rw-------    1 root     root        372736 Dec 13 17:42 MYVIRTUALMACHINE_1-000001-delta.vmdk
-rw-------    1 root     root           327 Dec 13 17:42 MYVIRTUALMACHINE_1-000001.vmdk
-rw-------    1 root     root     3070603264 Dec 13 17:41 MYVIRTUALMACHINE_1-000010-delta.vmdk
-rw-------    1 root     root           343 Dec 13 17:59 MYVIRTUALMACHINE_1-000010.vmdk
-rw-------    1 root     root     193273528320 Dec 13 17:59 MYVIRTUALMACHINE_1-flat.vmdk
-rw-------    1 root     root           521 Dec 13 17:59 MYVIRTUALMACHINE_1.vmdk 
- 
			
				Посмотреть и, в случае необходимости, отредактировать файл с информацией о snapshot'ах виртуальной машины .vmsd  
.encoding = "UTF-8"
snapshot.lastUID = "20"
snapshot.current = "20"
snapshot0.uid = "18"
snapshot0.filename = "MYVIRTUALMACHINE-Snapshot18.vmsn" 
snapshot0.displayName = "Restore Point 12.12.2016 20:05:19"
snapshot0.description = "<RPData PointTime=|225247857609617387904|22 WorkingSnapshotTime=|2252
snapshot0.createTimeHigh = "344953"
snapshot0.createTimeLow = "-1653115076"
snapshot0.numDisks = "1"
snapshot0.disk0.fileName = "MYVIRTUALMACHINE_1.vmdk"
snapshot0.disk0.node = "scsi0:0"
snapshot1.uid = "20"
snapshot1.filename = "MYVIRTUALMACHINE-Snapshot20.vmsn"
snapshot1.parent = "18"
snapshot1.displayName = "Restore Point 13.12.2016 20:04:59"
snapshot1.description = "<RPData PointTime=|225247858473417387904|22 WorkingSnapshotTime=|2252
snapshot1.createTimeHigh = "344973"
snapshot1.createTimeLow = "-1122050657"
snapshot1.numDisks = "1"
snapshot1.disk0.fileName = "MYVIRTUALMACHINE_1-000010.vmdk"
snapshot1.disk0.node = "scsi0:0"
snapshot.numSnapshots = "2"  
- 
			
				
					Проверить наличие объектов на файловой системе описанных в filename и корректность  
					занимаемых этими файлами размеров(может быть пустой/битый vmdk файл). - прим. безусловно в случае ошибок типа Consolidate failed for VM MYVIRTUALMACHINE with error: vim.fault.FileLocked или vim.vm.Snapshot.remove: vim.fault.FileNotFound 
 
- 
			
				Если требуется руками удалить неактуальный снапшот, то нужно удалить строчки с данным снапшотом и последующими снапшотами (в примере если мы хотим убрать некорректный snapshot1 с uid 20 мы должны удалить все строчки начинающиеся с snapshot1, если были бы последующие, у которых в цепочке взаимосвязей,указанных в параметре parent значился бы данный снапшот,их так же следовало бы удалить). 
- 
			
				[Если на пункте 4 потребовалось изменение файла .vmsd] После изменить на UID последнего снапшота.
				 
snapshot.lastUID = "20"
snapshot.current = "20" 
					В нашем случае на snapshot0 с UID 18 
snapshot.lastUID = "18"
snapshot.current = "18" 
 
- 
			
				[Если на пункте 4 потребовалось изменение файла .vmsd] Изменить информаци о количестве снапшотов
				 
snapshot.numSnapshots = "1"  
 
- 
			
				[Если на пункте 4 потребовалось изменение файла .vmsd] Если требуется удалить всю информацию о снапшотах, нужно очистить содержимое данного файла. 
- 
			
				[Если на пункте 4 потребовалось изменение файла .vmsd] Чтобы изменения были восприняты гипервизором/vsphere необходимо перерегистрировать виртуальную машину в Inventory [ 1][ 2] 
 
		 
	
		P.S. Возможные ошибки
	
		Ошибка quiesce 
	
Error: An error occurred while saving the snapshot: Failed to quiesce the virtual machine.
2016-12-13T15:20:46.251+03:00 [02752 error 'vmsnapshot' opID=0D3F1714-00000060-b1] [VmMo::ConsolidateDisks] Consolidate failed for VM MYVIRTUALMACHINE with error: vim.fault.InvalidSnapshotFormat
 
	 
	Ошибки vim.fault.FileLocked
2016-12-13T16:59:00.941+03:00 [02736 error 'vmsnapshot' opID=0D3F1714-00000386-8b] [VmMo::ConsolidateDisks] Consolidate failed for VM MYVIRTUALMACHINE with error: vim.fault.FileLocked
2016-12-13T16:59:01.945+03:00 [02736 info 'Default' opID=0D3F1714-00000386-8b] [VpxLRO] -- ERROR task-74490 -- vm-13111 -- vim.VirtualMachine.consolidateDisks: vim.fault.FileLocked:
--> Result:
--> (vim.fault.FileLocked) {
-->    dynamicType = <unset>, 
-->    faultCause = (vmodl.MethodFault) null, 
-->    faultMessage = (vmodl.LocalizableMessage) [
-->       (vmodl.LocalizableMessage) {
-->          dynamicType = <unset>, 
-->          key = "msg.snapshot.vigor.consolidate.error", 
-->          arg = (vmodl.KeyAnyValue) [
-->             (vmodl.KeyAnyValue) {
-->                dynamicType = <unset>, 
-->                key = "1", 
-->                value = "msg.snapshot.error-DUPLICATEDISK", 
-->             }
-->          ], 
-->          message = "An error occurred while consolidating disks: One of the disks in this virtual machine is already in use by a virtual machine or by a snapshot.", 
	Ошибки NOTFOUND
2016-12-13T16:32:32.741+03:00 [05584 info 'Default' opID=0D3F1714-00000310-9c] [VpxLRO] -- ERROR task-74486 -- vm-13109 -- vim.vm.Snapshot.revert: vim.fault.InvalidSnapshotFormat:
--> Result:
--> (vim.fault.InvalidSnapshotFormat) {
-->    dynamicType = <unset>, 
-->    faultCause = (vmodl.MethodFault) null, 
-->    faultMessage = (vmodl.LocalizableMessage) [
-->       (vmodl.LocalizableMessage) {
-->          dynamicType = <unset>, 
-->          key = "msg.snapshot.vigor.revert.error", 
-->          arg = (vmodl.KeyAnyValue) [
-->             (vmodl.KeyAnyValue) {
-->                dynamicType = <unset>, 
-->                key = "1", 
-->                value = "msg.snapshot.error-NOTFOUND", 
-->             }
-->          ], 
-->          message = "An error occurred while reverting to a snapshot: A required file was not found.", 
-->       }
-->    ], 
-->    msg = "Detected an invalid snapshot configuration."
--> }
2016-12-13T16:32:24.034+03:00 [02736 info 'Default' opID=0D3F1714-0000030B-ea] [VpxLRO] -- ERROR task-74485 -- vm-13109 -- vim.vm.Snapshot.remove: vim.fault.FileNotFound:
--> Result:
--> (vim.fault.FileNotFound) {
-->    dynamicType = <unset>, 
-->    faultCause = (vmodl.MethodFault) null, 
-->    file = "[]", 
-->    msg = "File [] was not found", 
--> }
--> Args: