Strona główna
» Jak
»
Konfiguracja SLES 15 KVM: uruchamianie wybranych maszyn wirtualnych podczas rozruchu
Konfiguracja SLES 15 KVM: uruchamianie wybranych maszyn wirtualnych podczas rozruchu
Aby maszyna wirtualna SLES 15 KVM uruchomiła się po ponownym uruchomieniu hosta, zainstaluj komponenty zarządzania KVM i libvirt, oznacz gościa do automatycznego uruchomienia za pomocą virsh autostart VM_NAMEi upewnij się, że aktywny demon libvirt hosta uruchamia się podczas rozruchu. Autostart to ustawienie dla każdej maszyny wirtualnej; sama instalacja KVM lub uruchomienie libvirt nie powoduje automatycznego uruchomienia każdego gościa.
Poniższe polecenia są zgodne z podręcznikiem SUSE SLES 15 SP7 Virtualization Guide. Wcześniejsze pakiety Service Pack mogą się różnić, dlatego przed zastosowaniem poleceń serwisowych należy sprawdzić odpowiedni podręcznik i zainstalowane jednostki systemd.
Czy potrzebujesz serwera KVM, narzędzi KVM czy obu?
W przypadku hosta, który będzie uruchamiał i zarządzał gośćmi za pomocą libvirt, należy zainstalować zarówno serwer KVM, jak i narzędzia KVM. SUSE definiuje serwer KVM jako minimalne środowisko QEMU/KVM, a narzędzia KVM jako stos zarządzania oparty na libvirt, który obejmuje virshzastosowany tutaj przepływ pracy.
Przed instalacją należy sprawdzić, czy procesor i oprogramowanie sprzętowe maszyny umożliwiają wirtualizację sprzętową. SUSE dokumentuje obsługę procesora i wymagane oprogramowanie w swoim Podręczniku wirtualizacji SLES 15 SP7 . Jeśli weryfikacja zgłosi problem ze sprzętem lub konfiguracją, należy go rozwiązać w oprogramowaniu sprzętowym lub konfiguracji hosta przed próbą zdefiniowania maszyny wirtualnej; flaga autostartu nie może zrekompensować hosta, który nie może uruchomić KVM.
Przed utworzeniem gości uruchom narzędzie do sprawdzania poprawności hosta. W terminalu wyświetlane jest polecenie, a nie wynik testu.
Na już zainstalowanym serwerze otwórz YaST i wybierz Wirtualizacja > Zainstaluj hiperwizor i narzędzia . Jeśli brakuje modułu wirtualizacji YaST, SUSE twierdzi, że jest on dostarczany w yast2-vmpakiecie.
Wybierz serwer KVM i narzędzia KVM , a następnie zaakceptuj zmiany w pakiecie. YaST może zaproponować konfigurację mostu sieciowego. Wybierz tę opcję tylko wtedy, gdy pasuje do projektu sieci hosta. Zmiana sieci hosta produkcyjnego może zakłócić zdalny dostęp, dlatego zaplanuj i zaplanuj zmiany mostu przed ich wprowadzeniem.
Po zakończeniu konfiguracji utwórz lub zaimportuj gościa i upewnij się, że jest on zdefiniowany jako trwała domena libvirt. W podręczniku SUSE podano, że konfiguracja KVM za pomocą YaST nie wymaga ponownego uruchomienia hosta.
Alternatywnie, dokumentacja SUSE opisuje instalację wzorców za pomocą Zyppera: sudo zypper install -t pattern kvm_server kvm_toolsWybierz jedną ścieżkę instalacji i sprawdź transakcję pakietu przed jej potwierdzeniem. Jeśli host jest instalowany od podstaw, rola systemowa hosta wirtualizacji KVM instaluje i konfiguruje odpowiedni wybór podczas instalacji SLES.
Jak oznaczyć jedną maszynę wirtualną do automatycznego uruchamiania?
Najpierw wypisz domeny za pośrednictwem połączenia systemowego libvirt, aby móc użyć dokładnej nazwy gościa:
Wypisz wszystkie domeny w połączeniu systemowym i skopiuj dokładną nazwę maszyny wirtualnej przed ustawieniem automatycznego uruchamiania.
sudo virsh -c qemu:///system list --all
Opcja --allobejmuje gości, którzy są obecnie wyłączeni. Wybierz docelową stałą maszynę wirtualną z wyników. Następnie włącz autostart dla tej domeny:
Zastąp VM_NAME dokładną nazwą domeny libvirt gościa, aby włączyć jego flagę automatycznego uruchamiania.
sudo virsh autostart VM_NAME
Aby później cofnąć ustawienie, uruchom polecenie sudo virsh autostart --disable VM_NAME. Nie jest to przywracanie zapisanej pamięci: gość uruchamia się normalnie ze skonfigurowanych dysków po uruchomieniu hosta. Nie wybiera również automatycznie wszystkich maszyn wirtualnych. Zastosuj polecenie tylko do gości, którzy mają być uruchomieni na tym hoście.
Która usługa libvirt musi zostać uruchomiona podczas rozruchu?
Zależy to od tego, czy ten host SLES korzysta z modułowych demonów libvirt, czy z tradycyjnego, monolitycznego libvirtd. SUSE dokumentuje modułowe demony jako domyślnie włączone w SLES 15 SP7 i zaleca uruchamianie odpowiedniej usługi sterownika podczas rozruchu, gdy goście są skonfigurowani do automatycznego uruchamiania. Usługa sterownika QEMU to virtqemud.service. W konfiguracji monolitycznej SUSE zaleca libvirtd.service. Nie należy włączać obu trybów wdrażania tylko dlatego, że istnieją obie nazwy jednostek.
Przed zmianą jednostek sprawdź je na hoście:
Przed włączeniem czegokolwiek sprawdź dostępne jednostki demona libvirt, aby zidentyfikować tryb wdrożenia hosta.
systemctl status virtqemud.service libvirtd.service
Jeżeli host używa modułowej biblioteki libvirt i zainstalowana jest jednostka QEMU, włącz ją za pomocą:
sudo systemctl enable --now virtqemud.service
Jeśli host jest celowo skonfigurowany dla demona monolitycznego, należy zamiast tego użyć następującego polecenia:
Jednostkę tę należy włączyć tylko na hoście korzystającym z monolitycznego wdrożenia libvirtd; hosty modułowe korzystają ze swojego demona sterownika.
sudo systemctl enable --now libvirtd.service
Oznacz domyślną sieć libvirt do automatycznego uruchamiania tylko wtedy, gdy maszyna wirtualna korzysta z tej sieci wirtualnej.
Dzięki modułowej bibliotece libvirt, wirtualne sieci i zarządzanie pamięcią masową mogą korzystać z oddzielnych demonów sterowników lub gniazd. Jeśli gość potrzebuje sieci zarządzanej przez libvirt, należy ustawić automatyczne uruchamianie tej sieci; na przykład w dokumentach SUSE sudo virsh net-autostart defaultdla predefiniowanej defaultsieci. Należy to zrobić tylko wtedy, gdy gość faktycznie korzysta z tej sieci. Most skonfigurowany na poziomie hosta nie korzysta z tego ustawienia sieciowego libvirt. Należy sprawdzić rzeczywistą sieć podłączoną do gościa, zamiast zakładać nazwę default.
Jeśli gość korzysta z dysku zewnętrznego lub zamontowanego w sieci, upewnij się, że jego zapasowa pamięć masowa jest dostępna podczas rozruchu. SUSE zauważa, że aktywny stan puli pamięci masowej libvirt nie zmienia dostępności woluminów już podłączonych do gości, ale włączenie automatycznego uruchamiania puli jest przydatne, gdy pula musi być aktywna do zarządzania pulą po stronie hosta lub późniejszych operacji na woluminach: sudo virsh pool-autostart POOL. Zastąp POOLrzeczywistą nazwą puli; nie twórz nowej puli tylko po to, aby ustawić automatyczne uruchamianie maszyn wirtualnych.
Jak można sprawdzić, czy maszyna wirtualna powróci?
Przed zaplanowaniem ponownego uruchomienia hosta sprawdź ustawienia automatycznego uruchamiania, korzystając z informacji o domenie gościa.
Przed planowanym restartem konserwacyjnym sprawdź konfigurację domeny i stan demona. Użyj sudo virsh dominfo VM_NAME, aby potwierdzić, że autostart jest włączony, i systemctl is-enabled virtqemud.servicelub systemctl is-enabled libvirtd.servicedla wybranego trybu demona. Jeśli pierwsze polecenie zakończy się niepowodzeniem z powodu braku gościa, upewnij się, że odpytujesz to samo połączenie libvirt, dla którego zostało utworzone.
Następnie przetestuj w zatwierdzonym oknie konserwacji. Po powrocie hosta uruchom sudo virsh -c qemu:///system list --all. Wybrany gość powinien być wyświetlany jako uruchomiony; sprawdź oddzielnie jego usługi sieciowe i gościnne. Jeśli nadal jest wyłączony, sprawdź logi rozruchu aktywnego demona za pomocą journalctl -b -u virtqemud.servicelub journalctl -b -u libvirtd.service, w zależności od sytuacji, i sprawdź, czy pamięć masowa lub wymagana sieć wirtualna nie są niedostępne. Warunki te zależą od konfiguracji hosta, więc dziennik demona i rzeczywista konfiguracja urządzenia wirtualnego decydują o kolejnym rozwiązaniu problemu.