A volte può capitare di avere una macchina virtuale in stato di “pending” che, anche con la console di Xen, non è possibile riavviare o spegnere in alcun modo.  Fondamentalmente il processo (dom-id) associato alla macchina virtuale non risponde al control domain e l’unico modo per ripristinare il funzionamento della VM è di terminare il suo dom-id o riavviare XenServer.

Visto che riavviare tutto l’hypervisor non è esattamente la migliore delle idee, vediamo quindi come terminare il dom-id e sbloccare la macchina “addormentata”

Istruzioni

Per eseguire questa operazione sono richiesti:

  • Accesso alla console di XenServer
  • Un minimo di dimestichezza con i sistemi Linux e con l’immissione dei comandi shell

Per spegnere una VM bloccata in stato di pending, seguire questa procedura:

1. Selezionare la macchina virtuale bloccata. Andare nella scheda General e copiarsi il suo UUID

support.citrix

2. Accedere alla console di Xen (ovviamente, sull’host su cui sta girando la VM) e digitare questo comando:

list_domains | grep <UUID from step1>

L’output sarà qualcosa di simile a questo:

51 | bcdb1445-1f28-9600-ae84-53c254167ae6 | H

dove:
51 è il dom-id della VM
bcdb1445-1f28-9600-ae84-53c254167ae6  è invece l’UUID

3. Il comando per distruggere il dom-id della VM e forzarne lo spegnimento è il seguente:

destroy_domain –domid <ID from step2>

4. Il percorso completo per l’esecuzione del comando, come da nostro esempio è:

/opt/xensource/debug/xenops destroy_domain –domid 51

Dopo avere eseguito queste operazioni la VM bloccata si spegnerà forzatamente e sarà quindi possibile riaccenderla e renderla finalmente di nuovo funzionante.