lunedì 13 agosto 2018

How to cancel an hang task of a VM?

Problema
Una VM risulta essere bloccata, non risponde più al ping, non si riescono ad effettuare le normali attività di gestione della VM come, migrazione, riavvio, spegnimento della VM ecc.
Tutto, per questa VM sembra essere in uno stato di blocco impossibile da annullare, la stessa VM è in fase di migrazione da un host esxi ad un altro da oltre 24 ore.


Come possibile vedere dall'immagine sotto, quando si provava a spegnere via web client la VM si otteneva il seguente messaggio di errore: "The attempted operation cannot be performed in the current state ("Powered on"). An error was received from ESX host while powering off VM <VM NAME>."


Idem provando via command line direttamente sull'host ESXi con i vari comandi vim-cmd, si ottiene lo stesso messaggio di errore. 
Non resta che "killare" il processo che gestisce la VM procedendo nel seguente modo:

  • 1. Lanciare il comando ps.
  • 2. Identificare i processi in esecuzione relativi alla VM problematica usando il comando grep in questo modo "ps | grep VM-Name". Nel mio caso la VM si chiama COGNOS_TEST, quindi "ps | grep COGNOS_TEST"
  • 3. Uccidere (kill) il processo genitore (parent) con il comando "kill Parent_ID". In questo caso "kill 4730011"


Verificato che i processi relativi alla VM non sono più in esecuzione.... la VM risulta ancora accesa e quando si prova a spegnerla, si ottiene il solito messaggio di errore.


Soluzione
La soluzione trovata indicata anche dalla seguente KB1014165 ... è stata quella di verificare i processi relativi alla VM bloccata con i comandi esxicli nel modo seguente:
  • 1. Lanciare il comando "esxcli vm process list" per identificare il "World ID" della VM. Nel mio caso "4730012"
  • 2. Spegnere brutalmente la VM con il comando "esxcli vm process kill -t [soft, hard, force] -w World_ID". Nel mio caso "esxcli vm process kill -t force -w 4730012 


  • 3. In questo caso la VM risulta essersi spenta.


Nessun commento:

Posta un commento