¿Puede KVM suspender o apagar invitados automáticamente al apagar el host?

16

Tenemos un host KVM CentOS 5.5, que ejecuta huéspedes con varias versiones de CentOS y posiblemente otros sistemas operativos más adelante.

Nos gustaría poder (a) enviar automáticamente un apagado ACPI a todos los invitados o (b) suspender a todos los invitados al disco, en el apagado del host.

¿Existe un método estándar para lograr cualquiera de estos, o es una situación de rodar tu propia cuenta? ¡Gracias!

Andrew Clegg
fuente

Respuestas:

5

Si.

El virsh shutdowncomando (u otras implementaciones de "apagado" usando libvirt, como en virt-manager) ordena al sistema operativo invitado que se apague limpiamente. Desde la página del manual:

   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, esto debería enviar un evento ACPI system_powerdown.

En Fedora y RHEL 6, un libvirt-guestsscript de inicio sale de la caja configurado para suspender a todos los invitados en el apagado del sistema. Sin embargo, no es particularmente mágico, por lo que uno podría copiar esto a CentOS 5 con poca modificación.

mattdm
fuente
Esa es una buena idea, tengo una máquina Fedora, voy a intentar hacer una copia de seguridad en CentOS5. Gracias.
Andrew Clegg
No puedo ver on_shutdown en el doco: libvirt.org/formatdomain.html#elementsLifecycle
Thiago Figueiro
Hmmmm Sí, también es sospechosamente faltante en el código . Lo que el libvirt-guestsscript realmente hace es ejecutar virsh managedsave. (Parece que tal vez solo el controlador UML admite system_powerdown). ¡Gracias por la captura! Actualizaré mi respuesta y presentaré un error contra la documentación.
mattdm
0

Hasta donde yo sé, no existe un script estándar para CentOS. Es posible codificar, pero es un poco peligroso, ya que necesita manejar invitados que tardan mucho en apagarse. Simplemente matarlos después de un tiempo de espera puede destruir datos, mientras que esperarlos puede dejar su cierre suspendido.

En cambio, es mejor cerrar los invitados a mano antes de reiniciar. Durante un tiempo tuve un script que reemplazó el apagado y el reinicio. Ese script me advirtió si había invitados en ejecución (lc simple en la lista de máquinas virtuales) y bloqueó el comando si había invitados en ejecución.

pehrs
fuente
-2

Los invitados KVM son solo procesos de espacio de usuario. debe tener algún proceso de monitoreo en su lugar. el más común parece ser libvirt (está desarrollado por RedHat, así que supongo que debería estar disponible en CentOS).

Javier
fuente