Startseite
» Gewusst wie
»
SLES 15 KVM-Setup: Ausgewählte VMs beim Systemstart starten
SLES 15 KVM-Setup: Ausgewählte VMs beim Systemstart starten
Damit eine SLES 15 KVM-VM nach einem Neustart des Hosts automatisch startet, installieren Sie die KVM- und libvirt-Verwaltungskomponenten, markieren Sie die VM für den automatischen Start virsh autostart VM_NAMEund stellen Sie sicher, dass der aktive libvirt-Daemon des Hosts beim Bootvorgang gestartet wird. Der automatische Start ist eine Einstellung pro VM; die Installation von KVM oder das Starten von libvirt allein startet nicht automatisch alle VMs.
Die folgenden Befehle orientieren sich an der Virtualisierungsanleitung von SUSE SLES 15 SP7. Bei älteren Service Packs können Abweichungen auftreten. Prüfen Sie daher vor der Anwendung der Befehle die entsprechende Anleitung und die installierten systemd-Units.
Benötigen Sie einen KVM-Server, KVM-Tools oder beides?
Für einen Host, der Gastsysteme über libvirt ausführt und verwaltet, müssen sowohl der KVM-Server als auch die KVM-Tools installiert werden. SUSE definiert den KVM-Server als die minimale QEMU/KVM-Umgebung und die KVM-Tools als den auf libvirt basierenden Management-Stack, der den virshhier verwendeten Workflow umfasst.
Vor der Installation prüfen Sie, ob Prozessor und Firmware des Rechners Hardwarevirtualisierung unterstützen. SUSE dokumentiert die CPU-Unterstützung und die erforderliche Software im Virtualisierungsleitfaden SLES 15 SP7 . Falls die Validierung ein Hardware- oder Konfigurationsproblem meldet, beheben Sie dieses in der Firmware oder der Hostkonfiguration, bevor Sie versuchen, eine VM zu definieren. Die Autostart-Funktion kann einen Host, der KVM nicht ausführen kann, nicht kompensieren.
Führen Sie das Host-Validierungsprogramm aus, bevor Sie Gäste erstellen; das Terminal zeigt den Befehl an, nicht das Testergebnis.
Wie installiert man den SLES 15 KVM-Host-Stack?
Diese optionale Zypper-Route installiert den dokumentierten KVM-Server und die libvirt-Verwaltungsmuster.
Öffnen Sie auf einem bereits installierten Server YaST und wählen Sie Virtualisierung > Hypervisor und Tools installieren . Falls das YaST-Virtualisierungsmodul fehlt, wird es laut SUSE im yast2-vmPaket bereitgestellt.
Wählen Sie den KVM-Server und die KVM-Tools aus und bestätigen Sie die Paketänderungen. YaST bietet Ihnen die Konfiguration einer Netzwerkbrücke an. Wählen Sie diese Option nur, wenn sie zum Netzwerkdesign des Hosts passt. Änderungen am Netzwerk eines Produktivsystems können den Fernzugriff unterbrechen. Planen und terminieren Sie daher Brückenänderungen sorgfältig, bevor Sie diese anwenden.
Nach Abschluss der Einrichtung erstellen oder importieren Sie einen Gast und stellen Sie sicher, dass dieser als persistente libvirt-Domäne definiert ist. Laut SUSE-Anleitung ist für die KVM-Einrichtung über YaST kein Neustart des Hostsystems erforderlich.
Alternativ dokumentiert SUSE die Installation der Muster mit Zypper: sudo zypper install -t pattern kvm_server kvm_tools. Wählen Sie einen Installationsweg und überprüfen Sie die Pakettransaktion, bevor Sie sie bestätigen. Bei einer Neuinstallation des Hosts installiert und konfiguriert die KVM-Virtualisierungshost -Systemrolle die entsprechende Auswahl während der SLES-Installation.
Wie kann man eine VM so einstellen, dass sie automatisch startet?
Zuerst listen Sie die Domänen über die System-libvirt-Verbindung auf, damit Sie den genauen Gastnamen verwenden können:
Listen Sie alle Domänen der Systemverbindung auf und kopieren Sie den genauen VM-Namen, bevor Sie den Autostart aktivieren.
sudo virsh -c qemu:///system list --all
Die --allOption umfasst auch derzeit ausgeschaltete Gäste. Wählen Sie die gewünschte persistente VM aus der Ausgabe aus. Aktivieren Sie anschließend den Autostart für diese Domäne:
Ersetzen Sie VM_NAME durch den genauen libvirt-Domänennamen des Gastsystems, um dessen Autostart-Flag zu aktivieren.
sudo virsh autostart VM_NAME
Um die Einstellung später rückgängig zu machen, führen Sie den Befehl aus sudo virsh autostart --disable VM_NAME. Dies ist keine Wiederherstellung des gespeicherten Speichers: Der Gast startet nach dem Start des Hosts normal von seinen konfigurierten Festplatten. Außerdem werden nicht alle VMs automatisch ausgewählt. Wenden Sie den Befehl nur auf die Gastsysteme an, die auf diesem Host ausgeführt werden sollen.
Welcher libvirt-Dienst muss beim Systemstart gestartet werden?
Es hängt davon ab, ob dieser SLES-Host die modularen Daemons von libvirt oder die traditionelle monolithische Architektur verwendet libvirtd. SUSE dokumentiert, dass modulare Daemons in SLES 15 SP7 standardmäßig aktiviert sind und empfiehlt, den entsprechenden Treiberdienst beim Systemstart zu starten, wenn die Gastsysteme für den automatischen Start konfiguriert sind. Der QEMU-Treiberdienst ist [hier fehlt der Name des Treiberdienstes] . virtqemud.serviceBei einer monolithischen Konfiguration empfiehlt SUSE libvirtd.servicestattdessen [hier fehlt der Name des Treiberdienstes]. Aktivieren Sie nicht beide Bereitstellungsmodi, nur weil beide Unit-Namen existieren.
Prüfen Sie die Einheiten auf Ihrem Host, bevor Sie sie ändern:
Bevor Sie irgendetwas aktivieren, prüfen Sie die verfügbaren libvirt-Daemon-Einheiten, um den Bereitstellungsmodus des Hosts zu ermitteln.
systemctl status virtqemud.service libvirtd.service
Wenn der Host die modulare libvirt-Plattform verwendet und die QEMU-Einheit installiert ist, aktivieren Sie sie mit folgendem Befehl:
sudo systemctl enable --now virtqemud.service
Wenn der Host absichtlich für den monolithischen Daemon konfiguriert ist, verwenden Sie stattdessen diesen Befehl:
Aktivieren Sie diese Einheit nur auf einem Host, der die monolithische libvirtd-Bereitstellung verwendet; modulare Hosts verwenden ihren Treiber-Daemon.
sudo systemctl enable --now libvirtd.service
Markieren Sie das Standard-libvirt-Netzwerk nur dann für den automatischen Start, wenn die VM dieses virtuelle Netzwerk verwendet.
Mit dem modularen libvirt können virtuelle Netzwerk- und Speicherverwaltung separate Treiber-Daemons oder Sockets verwenden. Wenn das Gastsystem von einem libvirt-verwalteten Netzwerk abhängig ist, sollte dieses Netzwerk ebenfalls automatisch gestartet werden; siehe beispielsweise die SUSE-Dokumentation sudo virsh net-autostart defaultfür das vordefinierte defaultNetzwerk. Führen Sie diese Einstellung nur aus, wenn das Gastsystem dieses Netzwerk tatsächlich nutzt. Eine auf Hostebene konfigurierte Bridge verwendet diese libvirt-Netzwerkeinstellung nicht. Überprüfen Sie das tatsächlich mit dem Gastsystem verbundene Netzwerk, anstatt den Namen anzunehmen default.
Wenn ein Gastsystem eine externe oder netzwerkgebundene Festplatte verwendet, stellen Sie sicher, dass der zugehörige Speicher beim Systemstart verfügbar ist. SUSE weist darauf hin, dass der aktive Status eines libvirt-Speicherpools die Verfügbarkeit bereits an Gastsysteme angehängter Volumes nicht beeinflusst. Die Aktivierung des automatischen Poolstarts ist jedoch hilfreich, wenn der Pool für die hostseitige Poolverwaltung oder spätere Volume-Operationen aktiv sein muss. sudo virsh pool-autostart POOLErsetzen Sie ` POOL<Poolname>` durch den tatsächlichen Poolnamen; erstellen Sie keinen neuen Pool nur, um den automatischen VM-Start zu aktivieren.
Wie kann man überprüfen, ob die VM wieder funktioniert?
Verwenden Sie die Domäneninformationen des Gastsystems, um dessen Autostart-Einstellung zu überprüfen, bevor Sie einen Neustart des Hostsystems planen.
Überprüfen Sie vor einem geplanten Wartungsneustart die Domänenkonfiguration und den Daemon-Status. Verwenden Sie den Befehl, sudo virsh dominfo VM_NAMEum zu bestätigen, dass der Autostart aktiviert ist, und systemctl is-enabled virtqemud.serviceprüfen systemctl is-enabled libvirtd.serviceSie den gewählten Daemon-Modus. Falls der erste Befehl fehlschlägt, weil der Gast nicht gefunden wird, stellen Sie sicher, dass Sie dieselbe libvirt-Verbindung abfragen, über die der Gast erstellt wurde.
Testen Sie anschließend während eines genehmigten Wartungsfensters. Führen Sie nach der Rückkehr des Hosts den Befehl aus sudo virsh -c qemu:///system list --all. Der ausgewählte Gast sollte als aktiv angezeigt werden; überprüfen Sie dessen Netzwerk- und Gastdienste separat. Falls er weiterhin deaktiviert bleibt, prüfen Sie die Boot-Logs des aktiven Daemons mit journalctl -b -u virtqemud.serviceoder journalctl -b -u libvirtd.service(je nach Anwendbarkeit) und suchen Sie nach nicht verfügbarem Speicher oder einem erforderlichen virtuellen Netzwerk. Diese Bedingungen hängen von der Host-Konfiguration ab; daher bestimmen das Daemon-Log und die tatsächliche Gerätekonfiguration der VM die weiteren Schritte.