VxRail: Come sapere quale macchina virtuale sta bloccando un file .vmdk
Riepilogo: Questo articolo spiega come identificare la macchina virtuale (VM) che utilizza il file .vmdk e impedirne l'eliminazione.
Istruzioni
A volte, quando si utilizza l'opzione Delete from Disk su una macchina virtuale, la cartella della macchina virtuale non viene eliminata e contiene ancora i vecchi file .vmdk. In genere, quel file .vmdk è ancora in uso, quindi è bloccato, motivo per cui non può essere eliminato.
Ciò si verifica spesso quando si utilizzano le istantanee e potrebbe essere correlato a vari motivi, come software di backup di terze parti, VMware Horizon o altro.
Il modo tradizionale per risolvere questo problema consiste nel controllare tutte le impostazioni delle macchine virtuali del cluster fino a trovare la macchina virtuale che utilizza ancora il file .vmdk. Tuttavia, esiste un altro metodo più veloce che può essere applicato a questa situazione:
- In questo esempio sono state create due VM di test per riprodurre questo problema:
myVM-01 Test-VM-01
- Inoltre, sono stati creati due file .vmdk per VM
myVM-01:
myVM-01.vmdk myVM-01_1.vmdk
- Poi
myVM-01_1.vmdkè stato disconnesso dalla VM originale e aggiunto (collegato) alla VMTest-VM-01. Test-VM-01è acceso, quindi il vDisk appena collegatomyVM-01_1.vmdkè bloccato e non può essere eliminato.- Infine, la VM
myVM-01è stato eliminato dal disco ma, come previsto, il file .vmdk non è stato eliminato:

Guida passo passo:
- Aprire una sessione SSH su uno degli host ESXi VxRail (vSAN).
- Modificare la directory nella cartella della macchina virtuale in cui si trova il suddetto file .vmdk.
[root@vcxxxxxx-esx01:~] cd /vmfs/volumes/VxRail-Virtual-SAN-Datastore-1591ac9b-6337-4f4d-b72a-8b78dd2b9547/myVM-01/ [root@vcxxxxxx-esx01:/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2]
- Ottenere l'identificatore univoco universale (UUID) .vmdk con
Grep RW vmdk_name.vmdk:[root@vcxxxxxx-esx01:/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2] grep RW myVM-01_1.vmdk RW 20971520 VMFS "vsan://522f8adc3102b750-7ce28cbf91a437bc/9fbf0164-b6e0-ec93-d3d9-00505683bcb2" [root@vcxxxxxx-esx01:/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2]
- Ottieni il
.vmdk.lckfile con lo stesso UUID .vmdk del comando precedente nel nome:ls -lah .*.lckoppurels -lah *.lckse il file di blocco non è nascosto.[root@vcxxxxxx-esx01:/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2] ls -lah .*.lck -rw------- 1 root root 0 Mar 3 09:36 .9fbf0164-b6e0-ec93-d3d9-00505683bcb2.lck [root@vcxxxxxx-esx01:/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2] ls -lah *.lck ls: *.lck: No such file or directory [root@vcxxxxxx-esx01:/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2]
- Dall'output precedente, il file di blocco del file .vmdk può essere visualizzato come nascosto.
- Dall'output precedente, il file di blocco del file .vmdk può essere visualizzato come nascosto.
- Verificare chi è il proprietario del nodo del blocco con il comando
vmfsfilelockinfo -p <.lck_filename>:[root@vcxxxxxx-esx01:/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2] vmfsfilelockinfo -p .9fbf0164-b6e0-ec93-d3d9-00505683bcb2.lck vmfsfilelockinfo Version 2.0 Looking for lock owners on ".9fbf0164-b6e0-ec93-d3d9-00505683bcb2.lck" ".9fbf0164-b6e0-ec93-d3d9-00505683bcb2.lck" is locked in Exclusive mode by host having mac address ['00:xx:xx:xx:xx:a4'] Trying to make use of Fault Domain Manager ---------------------------------------------------------------------- Found 4 ESX hosts using Fault Domain Manager. ---------------------------------------------------------------------- Searching on Host vcxxxxxx-esx02.vxxx.local Searching on Host vcxxxxxx-esx04.vxxx.local Searching on Host vcxxxxxx-esx01.vxxx.local Searching on Host vcxxxxxx-esx03.vxxx.local MAC Address : 00:xx:xx:xx:xx:a4 Host owning the lock on file is vcxxxxxx-esx03.vxxx.local, lockMode : Exclusive Total time taken : 0.4937002270016819 seconds. [root@vcxxxxxx-esx01:/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2]- Dall'output precedente si può notare che il proprietario del blocco è l'host
vcxxxxxx-esx03.vxxx.local.
- Dall'output precedente si può notare che il proprietario del blocco è l'host
- Aprire una sessione SSH per il proprietario del nodo.
- Individuare la macchina virtuale a cui è allegato il file .vmdk con il
Find /vmfs/volumes/*-name *.vmx -exec grep -Hi vmdk_name.vmdk {} \;:[root@vcxxxxxx-esx03:~] find /vmfs/volumes/* -name *.vmx -exec grep -Hi myVM-01_1.vmdk {} \; /vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/66bf0164-d6f2-2682-c1d1-00505683bcb2/Test-VM-01.vmx:scsi0:1.fileName = "/vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2/myVM-01_1.vmdk" grep: /vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/faa1de62-1cfc-948c-f01c-005056833d65/VxRail Manager.vmx: Device or resource busy grep: /vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/d1b6de62-3871-269d-eee4-005056832fb7/vCLS-0017eb10-16d2-470a-86eb-caac2239ff2f.vmx: Device or resource busy grep: /vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/5d97de62-64d5-a2c4-9e85-005056833d65/VMware vCenter Server Appliance.vmx: Device or resource busy /vmfs/volumes/vsan:522f8adc3102b750-7ce28cbf91a437bc/9ebf0164-4e7c-20f0-c91f-00505683bcb2/myVM-01.vmx:scsi0:1.fileName = "myVM-01_1.vmdk" [root@vcxxxxxx-esx03:~]- La colonna
findmostra due macchine virtuali che hanno il nostro file .vmdk nei loro file di configurazione (.vmx). - Come mostra l'output del comando, è possibile trovare la macchina virtuale a cui è assegnato lo specifico file .vmdk, ovvero
Test-VM-01 VM.
- La colonna
- Ora, una volta identificata la VM, è possibile rimuovere il blocco su tale file .vmdk rimuovendolo da VM Edit Settings e quindi eliminandolo manualmente.