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!
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ą.
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,
4
Jest to teraz standardowa funkcja w najnowszych Fedorach i RHEL 6.
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.
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).
libvirt-guests
skrypt faktycznie robi to runvirsh 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.Jest to teraz standardowa funkcja w najnowszych Fedorach i RHEL 6.
źródło
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.
źródło
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).
źródło