KVM può sospendere o arrestare automaticamente gli ospiti allo spegnimento dell'host?


16

Abbiamo un host KVM di CentOS 5.5, che esegue guest con varie versioni di CentOS e possibilmente altri SO successivi.

Vorremmo essere in grado di (a) inviare automaticamente un arresto ACPI a tutti gli ospiti o (b) sospendere tutti gli ospiti su disco, allo spegnimento dell'host.

Esiste un metodo standard per realizzare uno di questi o è una situazione a sé stante? Grazie!

Risposte:


5

Sì.

Il virsh shutdowncomando (o altre implementazioni di "shutdown" usando libvirt, come in virt-manager) indica al SO guest di spegnersi in modo pulito. Dalla pagina man:

   shutdown domain-id

   Gracefully shuts down a domain.  This coordinates with the domain
   OS to perform graceful shutdown, so there is no guarantee that it
   will succeed, and may take a variable length of time depending on
   what services must be shutdown in the domain.

   The exact behavior of a domain when it shuts down is set by the
   on_shutdown parameter in the domain’s XML definition.

Con KVM, questo dovrebbe inviare un evento ACPI system_powerdown.

In Fedora e RHEL 6, uno libvirt-guestsscript di init è pronto per essere configurato per sospendere tutti i guest allo spegnimento del sistema. Tuttavia, non è particolarmente magico, quindi è possibile copiarlo su CentOS 5 con poche modifiche.


È una buona idea, ho una macchina Fedora, proverò a eseguirne il backport su CentOS5. Grazie.
Andrew Clegg,

Non riesco a vedere on_shutdown nel doco: libvirt.org/formatdomain.html#elementsCiclo di vita
Thiago Figueiro,

Hmmmm. Sì, manca anche il codice sospettosamente . Ciò che lo libvirt-guestsscript fa effettivamente è eseguito virsh managedsave. (Sembra che forse solo il driver UML supporti system_powerdown.) Grazie per la cattura! Aggiornerò la mia risposta e presenterò un bug sulla documentazione.
Mattdm,


0

Per quanto ne so non esiste uno script standard per CentOS. È possibile codificare, ma un po 'pericoloso, poiché è necessario gestire gli ospiti che impiegano molto tempo a chiudere. Basta ucciderli dopo un timeout può distruggere i dati, mentre aspettarli può lasciare il tuo arresto sospeso.

Invece è meglio chiudere manualmente gli ospiti prima di fare un riavvio. Per un po 'ho avuto uno script che ha sostituito l'arresto e il riavvio. Lo script mi ​​ha avvisato se c'erano ospiti in esecuzione (semplice LC nell'elenco delle macchine virtuali) e ha bloccato il comando se c'erano ospiti in esecuzione.


-2

Gli ospiti KVM sono solo processi di spazio utenti. dovresti avere un po 'di monitoraggio del processo in atto. il più comune là fuori sembra essere libvirt (è sviluppato da RedHat, quindi suppongo che dovrebbe essere disponibile su CentOS).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.