Czy KVM może automatycznie zawieszać lub wyłączać gości podczas zamykania hosta?

16

Mamy hosta CentOS 5.5 KVM, który obsługuje gości z różnymi wersjami CentOS i ewentualnie innymi systemami operacyjnymi później.

Chcemy mieć możliwość (a) automatycznego wysyłania zamknięcia ACPI do wszystkich gości lub (b) zawieszenia wszystkich gości na dysku podczas zamykania hosta.

Czy istnieje standardowa metoda realizacji któregokolwiek z nich, czy też jest to sytuacja typu roll-your-own? Dzięki!

Andrew Clegg
źródło

Odpowiedzi:

5

Tak.

virsh shutdownPoleceń (lub inne implementacje „shutdown” używając libvirt, podobnie jak w virt-manager) instruuje system gościa zamknąć czysto. Ze strony podręcznika:

   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.

W przypadku KVM powinno to wysłać zdarzenie ACPI system_powerdown.

W Fedorze i RHEL 6 libvirt-guestsskrypt inicjujący wychodzi z pudełka skonfigurowanego do zawieszania wszystkich gości przy zamykaniu systemu. Nie jest to jednak szczególnie magiczne, więc można je skopiować do CentOS 5 z niewielką modyfikacją.

mattdm
źródło
To dobry pomysł, mam maszynę Fedory, spróbuję przenieść ją do CentOS5. Dzięki.
Andrew Clegg,
Nie widzę on_shutdown w doco: libvirt.org/formatdomain.html#elementsLifecycle
Thiago Figueiro
Hmmmm Tak, podejrzanie brakuje go również w kodzie . Co libvirt-guestsskrypt faktycznie robi to run virsh managedsave. (Wygląda na to, że może tylko sterownik UML obsługuje system_powerdown.) Dzięki za haczyk! Zaktualizuję moją odpowiedź i zgłoś błąd w dokumentacji.
mattdm,
0

O ile mi wiadomo, nie ma takiego standardowego skryptu dla CentOS. Możliwe jest kodowanie, ale trochę niebezpieczne, ponieważ musisz obsługiwać gości, których zamknięcie zajmuje dużo czasu. Tylko zabicie ich po upływie czasu może zniszczyć dane, a czekanie na nie może spowodować zawieszenie się systemu.

Zamiast tego lepiej jest ręcznie zamknąć gości przed ponownym uruchomieniem komputera. Przez chwilę miałem skrypt, który zastąpił zamknięcie i ponowne uruchomienie. Ten skrypt ostrzegał mnie, jeśli są uruchomieni goście (zwykły lc na liście maszyn wirtualnych) i blokował polecenie, jeśli działali goście.

pehrs
źródło
-2

Goście KVM to tylko procesy w przestrzeni użytkownika. powinieneś mieć pewne monitorowanie procesu. najpowszechniejszym wydaje się być libvirt (jest opracowany przez RedHat, więc myślę, że powinien być dostępny na CentOS).

Javier
źródło