Erro de consolidação do disco VM/VM disk Consolidation error: Unable to access file since it is locked

Se você é administrador de vSphere, já deve ter deparado com um alerta igual:

Este alerta indica que a VM tem discos delta ou obsoletos, ficheiro vmdk gerado por snapshot e na operação de remoção do mesmo falhou o merge/compactação com o disco base.

E pode não ser possível visualizar a existência de snapshot no snapshot manager do vSphere web client como ilustra o screenshot.

Mas se acedermos o directório da VM, podemos verificar que existem vários delta disks “-00000x.vmdk”, e isto afecta de forma negativa a performance da VM (I/O) .

Um dos factores que contribui para este tipo de alerta é o backup. As soluções de backup fazem uso desse mecanismo “snapshot” para criar backup de VM, e por vezes o processo de remoção do snapshot pode falhar ou o backup.

Em condições normais, para eliminar este alerta, basta executar consolidar “Consolidate, que consiste em fundir ou compactar os delta disks” deve funcionar, mas existe casos em que este processo falha.

Na sequência de screenshots a seguir, demonstrarei como eliminar este alerta caso o processo normal de consolidação falhe.

Executar consolidate de uma vm que possui este alerta.

A operação retorna erro, reportando falha na consolidação pois não consegue acessar o file ou disco por este estar locked “um outro processo ou vm deve estar a usar”.

Bom, já mencionei que muitos softwares ou soluções de backup usam o snapshot para fazer backup, normalmente fazem snapshot da VM, criando delta disk onde são armazenadas todas as alteração durante o backup, e o disco base fica em read-only. É esse o disco que o backup proxy tranca e faz a copia. O servidor de backup é quem tem o lock do disco, então para resolver o erro é necessário remover o disco no servidor de backup, isto caso o backup tenha terminado.

Atenção: Remover o disco do backup proxy e não apagar do datastore/delete fom disk.

EX:

Editar a VM -> procurar pelo disco ou snapshot que corresponde a VM que está com erro ao executar consolidate -> efectuar remoção do disco

Não efectuar check Delete files from datastore/disk

via vSphere client C#

Depois de remover o disco no servidor de backup, podemos voltar a executar Consolidate, desta vez com sucesso:

No pior dos casos você pode não ter um servidor de backup “acho difícil”, e talvez o disco esteja partilhado e sendo usado em 1 outro servidor, para saber qual é o servidor que tem o lock do disco podemos usar a linha de comando do ESXi.

Para usar CLI (ESXi shell) é necessário :

  • Habilitar o SSH do host onde a VM esta alocada
  • Usar uma ferramenta SSH client (ex: putty) para conectar-se ao host

# Identifcar os hosts que tem ficheiro locked

vmfsfilelockinfo -p vmfs/volumes/DataStore01-Gold/VM-01/VM-01_1-flat.vmdk -v 192.168.1.20 -u administrator@vsphere.local

vmfsfilelockinfo -p vmfs/volumes/DataStore01-Gold/VM-01/VM-01_1-000001-delta.vmdk -v 192.168.1.20 -u administrator@vsphere.local

Output:

vmfsfilelockinfo Version 1.0
Looking for lock owners on "VM-01_1-flat.vmdk "
"VM-01_1-flat.vmdk " is locked in Read-Only mode by host having mac address ['00:45:a2:00:22:09', '00:55:b5:a1:31:08']
Trying to make use of Fault Domain Manager
----------------------------------------------------------------------
Found 13 ESX hosts using Fault Domain Manager.
----------------------------------------------------------------------
Searching on Host Host-07.lab.com
Searching on Host Host-03.lab.com
    MAC Address : 00:45:a2:00:22:09
Searching on Host Host-04.lab.com
Searching on Host Host-05.lab.com
Searching on Host Host-06.lab.com
Searching on Host Host-08.lab.com
    MAC Address : 00:55:b5:a1:31:08
Searching on Host Host-01.lab.com
Searching on Host Host-02.lab.com
Searching on Host Host-09.lab.com
Searching on Host Host-10.lab.com
Searching on Host Host-11.lab.com
Searching on Host Host-12.lab.com
Searching on Host Host-13.lab.com

Host owning the lock on the vmdk is Host-03.lab.com, lockMode : Read-Only
Host owning the lock on the vmdk is Host-08.lab.com, lockMode : Read-Only
Total time taken : 0.0 seconds

De acordo com o output host-03 & 08 tem o disco locked em modo leitura.

Agora queremos saber quais são as VMs que tem o disco montado e criando o lock, para isso vamos executar o comando abaixo em cada host(03 & 08) para identificar o número do processo e com este vamos do poder identificar a VM.

# identificar nome do processo que tem o lock

lsof | egrep ' VM-01_1-flat.vmdk '

Output:

33078626    vmx                   FILE                       91   /vmfs/volumes/5bdb0b44-2b666060-e2b7-0025b500125c/ VM-01/VM-01_1-flat.vmdk

O disco esta locked pela VM com Cartel ID 33078626.

# Visualizar VMs activas e info. Cartel ID….

esxcli vm process list

o comando devolve uma lista de VMs, é necessário procurar pela VM com id Cartel ID 33078626

Output:

VM-98
   World ID: 33078627
   Process ID: 0
   VMX Cartel ID: 33078626
   UUID: 42 09 e7 f0 e1 c7 ee b1-9f 17 71 ba 20 ab 95 d6
   Display Name: VM-98
   Config File: /vmfs/volumes/548b0dee-212a56ed-a0c9-0025b5001222/ VM-98/ VM-98.vmx  

Segundo o output, VMX Cartel ID 33078626 pertence a VM-98. Após identificar a VM, podemos ir a consola GUI e remover o disco ou desligar a VM e em seguida executar consolidate.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s