web-dev-qa-db-fra.com

CAN KVM Suspendre ou arrêter automatiquement les invités de l'hôte?

Nous avons un CENTOS 5.5 KVM hôte, en cours d'exécution avec différentes versions de Centos et éventuellement d'autres OSES plus tard.

Nous aimerions être capables de (a) envoyer automatiquement un arrêt ACPI à tous les invités ou (b) suspendre tous les invités à un disque, sur l'arrêt de l'hôte.

Existe-t-il une méthode standard pour accomplir l'un ou l'autre ou s'agit-il d'une situation de rouleau? Merci!

16
Andrew Clegg

Oui.

Les virsh shutdown commande (ou autres implémentations de "arrêt" à l'aide de LibVirt, comme dans virt-manager) Indique le système d'exploitation d'invité à s'éteindre proprement. De la page 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.

Avec KVM, cela devrait envoyer un événement ACPI System_PowerDown.

À Fedora et Rhel 6, un libvirt-guests Init Script sort de la boîte configurée pour suspendre tous les invités sur l'arrêt du système. Ce n'est pas particulièrement magique, cependant, on pourrait copier cela sur Centos 5 avec peu de modification.

5
mattdm

Ceci est maintenant une caractéristique standard dans la récente Fedora et Rhel 6.

4
user62972

Autant que je sache, il n'y a pas de tel script standard pour Centos. Il est possible de coder, mais un peu dangereux, comme vous avez besoin de gérer les invités qui prennent beaucoup de temps à fermer. Il suffit de les tuer après une période de temps pouvant détruire des données, en attendant qu'ils puissent laisser votre arrêt suspendu.

Au lieu de cela, il est préférable de fermer les invités avant de faire un redémarrage. Pendant un moment, j'ai eu un script qui a remplacé l'arrêt et le redémarrage. Ce script m'a averti que s'il y avait des invités en cours (Simple LC sur la liste des machines virtuelles) et bloqué la commande s'il y avait des invités.

0
pehrs