IP-KVM über QEMU

IP-KVM über QEMU

Die Fehlersuche beim Booten des Betriebssystems auf Servern ohne KVM ist eine komplexe Angelegenheit. Wir richten uns ein KVM-over-IP über ein Wiederherstellungsabbild und eine virtuelle Maschine ein.

Sollten Probleme mit dem Betriebssystem auftreten, auf dem Remote-Server,, lädt der Administrator das Wiederherstellungsabbild und führt die erforderlichen Arbeiten durch. Diese Methode funktioniert hervorragend, wenn die Ursache des Problems bekannt ist und das Wiederherstellungsabbild sowie das auf dem Server installierte Betriebssystem derselben Familie angehören. Wenn die Ursache des Fehlers jedoch noch unbekannt ist, sollte der Bootvorgang des Betriebssystems beobachtet werden.

Remote KVM

Der Zugriff auf die Serverkonsole ist über integrierte Mittel wie IPMI oder Intel® vPro™ oder über externe Geräte, die als IP-KVM bezeichnet werden, möglich. In Situationen, in denen keine der genannten Technologien verfügbar ist, ist das jedoch nicht das Ende. Wenn der Server remote neu gestartet werden kann, um ein Wiederherstellungsabbild auf Basis eines Betriebssystems der Linux-Familie zu verwenden, kann schnell ein KVM-over-IP eingerichtet werden.

Das Wiederherstellungsimage ist ein voll funktionsfähiges Betriebssystem, das im Arbeitsspeicher gespeichert wird. Dadurch können wir jede Art von Software, einschließlich virtueller Maschinen (VMs), ausführen. Das bedeutet, dass Sie eine VM starten können, in der das Betriebssystem des Servers läuft. Der Zugriff auf die Konsole der VM kann beispielsweise über VNC organisiert werden.

Um das Betriebssystem des Servers innerhalb der VM auszuführen, müssen die Serverlaufwerke als VM-Laufwerke angegeben werden. In den Betriebssystemen der Linux-Familie werden physische Laufwerke als Blockgeräte vom Typ /dev/sdX, die wie ganz normale Dateien behandelt werden können.

Einige Hypervisoren, wie QEMU und VirtualBox, ermöglichen es, die Daten der VM im 'rohen' Format zu speichern, das heißt nur die Speicherdaten ohne Hypervisor-Metadaten. So kann die VM unter Verwendung physischer Serverlaufwerke gestartet werden.

Diese Methode benötigt Ressourcen zum Starten des Wiederherstellungsimages und der darin enthaltenen VM. Bei vier oder mehr Gigabyte Arbeitsspeicher wird dies jedoch kein Problem sein.

Umgebungsvorbereitung

Als virtuelle Maschine kann ein leichtgewichtiges und einfaches Programm verwendet werden QEMU, das in der Regel nicht Teil des Wiederherstellungs-Images ist und daher separat installiert werden muss. Das Wiederherstellungs-Image, das wir unseren Kunden anbieten, basiert auf Arch Linux, in dem ein Paketmanager verwendet wird pacman.

Zunächst sollten Sie sicherstellen, dass das Wiederherstellungs-Image die neuesten Versionen der Software verwendet. Sie können die Überprüfung durchführen und alle OS-Komponenten mit dem folgenden Befehl aktualisieren:

pacman -Suy

Nach der Aktualisierung muss QEMU installiert werden. Der Befehl zur Installation über pacman lautet:

pacman -S qemu

Überprüfen wir, ob QEMU korrekt installiert wurde:

root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU Emulator-Version 4.0.0
Urheberrecht (c) 2003-2019 Fabrice Bellard und die QEMU-Projektentwickler

Wenn alles in Ordnung ist, ist das Wiederherstellungs-Image betriebsbereit.

Start der virtuellen Maschine

Zuerst muss festgelegt werden, wie viele Ressourcen der VM zugewiesen werden und wo sich die physischen Festplatten befinden. In unserem Fall werden wir der virtuellen Maschine zwei Kerne und zwei Gigabyte RAM zuweisen, und die Festplatten befinden sich unter /dev/sda und /dev/sdb. Lassen Sie uns die VM starten:

qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio

Ein wenig mehr zu dem, was jeder der Parameter bedeutet:

  • -m 2048M — wir weisen der VM 2 GB RAM zu;
  • -net nic -net user — einfache Netzwerkverbindung über einen Hypervisor mit NAT (Network Address Translation) hinzufügen;
  • -enable-kvm — vollständige Virtualisierung mit KVM (Kernel Virtual Machine) aktivieren;
  • -cpu host — dem virtuellen Prozessor anweisen, die gesamte Funktionalität des Serverprozessors zu nutzen;
  • -M pc — Hardwaretyp PC;
  • -smp 2 — der virtuelle Prozessor muss dual-core sein;
  • -vga std — wir wählen eine Standardgrafikkarte, die keine hohen Bildschirmauflösungen unterstützt;
  • -drive file=/dev/sda,format=raw,index=0,media=disk
    • file=/dev/sdX — Pfad zu dem Blockgerät, das die Festplatte des Servers darstellt;
    • format=raw — wir kennzeichnen, dass alle Daten in der angegebenen Datei im „rohen“ Format vorliegen, also wie auf der Festplatte;
    • index=0 — die Festplattennummer, die sich für jede nächste Festplatte um eins erhöhen muss;
    • media=disk — die virtuelle Maschine muss dieses Speichergerät als Festplatte erkennen;
  • -vnc :0, password — den VNC-Server standardmäßig auf 0.0.0.0:5900 starten, wobei ein Passwort zur Authentifizierung verwendet wird;
  • -monitor stdio — die Kommunikation des Administrators mit QEMU erfolgt über die Standard-Eingabe-/Ausgabe-Streams.

Wenn alles in Ordnung ist, startet der QEMU-Monitor:

QEMU 4.0.0 Monitor - Tippen Sie 'help' für weitere Informationen ein
(qemu)

Wir haben angegeben, dass die Authentifizierung über ein Passwort erfolgt, jedoch das Passwort selbst nicht definiert. Dies kann durch den Befehl change vnc password im QEMU-Monitor erfolgen. Wichtiger Hinweis: Das Passwort darf nicht mehr als acht Zeichen lang sein.

(qemu) VNC-Passwort ändern
Passwort: ******

Anschließend können wir uns mit jedem VNC-Client, wie zum Beispiel Remmina, über die IP-Adresse unseres Servers und das von uns angegebene Passwort verbinden.

IP-KVM über QEMU

IP-KVM über QEMU

Jetzt können wir nicht nur mögliche Fehler beim Startvorgang sehen, sondern auch aktiv dagegen ankämpfen.

Nach Abschluss der Arbeiten muss die virtuelle Maschine beendet werden. Dies kann entweder innerhalb des Betriebssystems erfolgen, indem ein Herunterfahrbefehl gesendet wird, oder durch den Befehl system_powerdown im QEMU-Monitor. Dies entspricht dem einmaligen Drücken der Ausschaltetaste: Das Betriebssystem innerhalb der virtuellen Maschine wird ordnungsgemäß heruntergefahren.

Installation des Betriebssystems

Die virtuelle Maschine hat vollen Zugriff auf die Festplatten des Servers und kann daher zur manuellen Installation des Betriebssystems verwendet werden. Die einzige Einschränkung betrifft den Arbeitsspeicher: Ein ISO-Image kann nicht immer im Arbeitsspeicher untergebracht werden. Wir reservieren vier Gigabyte im RAM zur Speicherung des Images in /mnt:

mount -t tmpfs -o size=4G tmpfs /mnt

Wir laden auch das Installationsabbild des Betriebssystems FreeBSD 12.0 hoch:

wget -P /mnt ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-bootonly.iso

Jetzt können Sie die VM starten:

qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio
-cdrom /mnt/FreeBSD-12.0-RELEASE-amd64-bootonly.iso
-boot d

Flagge -boot d stellt das Booten vom CD-Laufwerk ein. Wir verbinden uns mit einem VNC-Client und sehen den Bootloader von FreeBSD.

IP-KVM über QEMU

Da für den Internetzugang die IP-Adresse über DHCP bezogen wurde, könnte es nach der Konfiguration erforderlich sein, in das neu installierte System zu booten und die Netzwerkeinstellungen anzupassen. In einigen Fällen kann die Installation von Treibern für den Netzwerkadapter erforderlich sein, da sich die Netzwerkkarte, die im Server installiert ist, von der in der VM emulierten unterscheidet.

Fazit

Diese Methode zur Organisation des Fernzugriffs auf die Serverkonsole verbraucht Teilressourcen des Servers, stellt jedoch keine besonderen Anforderungen an die Hardware des Servers und kann somit unter nahezu allen Bedingungen umgesetzt werden. Der Einsatz einer solchen Lösung erleichtert die Diagnose von Softwarefehlern und die Wiederherstellung der Funktionsfähigkeit des Remote-Servers erheblich.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster