
Die Fehlerbehebung beim Laden des Betriebssystems auf Servern ohne KVM ist keine leichte Aufgabe. Wir erstellen KVM-over-IP mithilfe eines Wiederherstellungsabbilds und einer virtuellen Maschine.
Bei Problemen mit dem Betriebssystem
auf dem Remote-Server lädt der Administrator das Wiederherstellungsimage herunter und führt die erforderlichen Arbeiten aus. Diese Methode funktioniert einwandfrei, wenn die Fehlerursache bekannt ist und das Wiederherstellungsimage und das auf dem Server installierte Betriebssystem derselben Familie angehören. Wenn die Fehlerursache noch nicht bekannt ist, müssen Sie den Fortschritt des Ladens des Betriebssystems überwachen.
Remote-KVM
Sie können mit integrierten Tools wie IPMI oder Intel® vPro ™ oder mit externen Geräten, die als IP-KVMs bezeichnet werden, auf die Serverkonsole zugreifen. Es gibt Situationen, in denen nicht alle aufgeführten Technologien verfügbar sind. Dies ist jedoch nicht das Ende. Wenn der Server remote in ein Wiederherstellungsimage neu gestartet werden kann, das auf dem Linux-Betriebssystem basiert, kann KVM-over-IP schnell organisiert werden.
Das Wiederherstellungsimage ist ein vollwertiges Betriebssystem, das sich im RAM befindet. Somit können wir jede Software ausführen, einschließlich virtueller Maschinen (VMs). Das heißt, Sie können die VM starten, in der das Server-Betriebssystem funktioniert. Der Zugriff auf die VM-Konsole kann beispielsweise über die VNC erfolgen.
Um das Server-Betriebssystem in der VM zu starten, müssen Sie die Server-Festplatten als VM-Festplatten angeben. Unter Linux-Betriebssystemen werden physische Festplatten als Blockgeräte der Form
/ dev / sdX dargestellt , die wie normale Dateien
behandelt werden können.
Bei einigen Hypervisoren wie QEMU und VirtualBox können Sie VM-Daten in einer Rohform speichern, dh nur Speicherdaten ohne Hypervisor-Metadaten. Auf diese Weise kann eine VM über die physischen Festplatten des Servers gestartet werden.
Diese Methode erfordert Ressourcen, um das Wiederherstellungsimage und die darin enthaltene VM auszuführen. Bei vier oder mehr Gigabyte RAM ist dies jedoch kein Problem.
Umweltvorbereitung
Als virtuelle Maschine können Sie das einfache und einfache
QEMU- Programm verwenden, das meistens nicht Teil des Wiederherstellungsimages ist. Daher muss es separat installiert werden. Das Wiederherstellungsimage, das wir unseren Kunden anbieten, basiert auf
Arch Linux , das den
pacman- Paketmanager verwendet.
Zuerst müssen Sie sicherstellen, dass das Wiederherstellungsimage die neueste Software verwendet. Sie können alle Betriebssystemkomponenten mit dem folgenden Befehl überprüfen und aktualisieren:
pacman -Suy
Nach dem Update müssen Sie QEMU installieren. Der Installationsbefehl über pacman sieht folgendermaßen aus:
pacman -S qemu
Überprüfen Sie, ob qemu korrekt installiert ist:
root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
Wenn ja, ist das Wiederherstellungsimage einsatzbereit.
Start der virtuellen Maschine
Zunächst müssen Sie die Menge der der VM zugewiesenen Ressourcen ermitteln und die Pfade zu physischen Festplatten ermitteln. In unserem Fall weisen wir der virtuellen Maschine zwei Kerne und zwei Gigabyte RAM zu, und die Festplatten befinden sich in den Pfaden
/ dev / sda und
/ dev / sdb . VM ausführen:
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 bisschen mehr darüber, was jeder der Parameter bedeutet:
- -m 2048M - 2 GB RAM pro VM zuweisen;
- -net nic -net user - Hinzufügen einer einfachen Netzwerkverbindung über einen Hypervisor mithilfe von NAT (Network Address Translation);
- -enable-kvm - Aktiviert die vollständige KVM-Virtualisierung (Kernel Virtual Machine).
- -cpu host - Weist den virtuellen Prozessor an, alle Funktionen des Serverprozessors abzurufen .
- -M PC - Typ der PC-Ausrüstung;
- -smp 2 - Der virtuelle Prozessor muss Dual-Core sein.
- -vga std - Wählen Sie eine Standard-Grafikkarte aus, die keine Auflösungen für große Bildschirme unterstützt.
- -drive file = / dev / sda, format = raw, index = 0, media = disk
- file = / dev / sdX - Pfad zum Blockgerät, das die Serverfestplatte darstellt ;
- format = raw - Markieren Sie, dass in der angegebenen Datei alle Daten in der "raw" -Form vorliegen, dh wie auf der Festplatte.
- index = 0 - Plattennummer, sollte für jede nächste Platte um eins erhöht werden;
- media = disk - Die virtuelle Maschine sollte diesen Speicher als Festplatte erkennen.
- -vnc: 0, Kennwort - Führen Sie den Standard-VNC-Server um 0.0.0.0:5900 aus. Verwenden Sie das Kennwort als Autorisierung.
- -monitor stdio - Der Administrator kommuniziert mit qemu über Standard-Eingabe- / Ausgabestreams.
Wenn alles in Ordnung ist, startet der QEMU-Monitor:
QEMU 4.0.0 monitor - type 'help' for more information
(qemu)
Wir haben angegeben, dass die Autorisierung mit einem Passwort erfolgt, das Passwort selbst jedoch nicht angegeben. Sie können dies tun, indem Sie den Befehl change vnc password an den QEMU-Monitor senden. Wichtiger Hinweis: Das Passwort darf nicht länger als acht Zeichen sein.
(qemu) change vnc password
Password: ******
Danach können wir über die IP-Adresse unseres Servers mit dem von Ihnen angegebenen Passwort eine Verbindung zu jedem VNC-Client herstellen, z. B. Remmina.


Jetzt sehen wir mögliche Fehler nicht nur beim Laden, sondern können sie auch bekämpfen.
Am Ende der Arbeit müssen Sie die virtuelle Maschine fertigstellen. Dies kann entweder innerhalb des Betriebssystems durch
Senden eines Abschaltsignals erfolgen, oder Sie können dem QEMU-Monitor den Befehl
system_powerdown geben. Dies entspricht einem einzigen Druck auf die Schaltfläche zum Herunterfahren: Das Betriebssystem in der virtuellen Maschine wird reibungslos 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 ist die RAM-Größe: Nicht immer kann das ISO-Image im RAM abgelegt werden. Wir wählen vier Gigabyte RAM zum Speichern des Bildes in
/ mnt :
mount -t tmpfs -o size=4G tmpfs /mnt
Wir laden auch das Installationsimage des FreeBSD 12.0-Betriebssystems:
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
Das
Flag -boot d setzt den Start vom CD-Laufwerk. Wir sind durch den VNC-Client verbunden und sehen den FreeBSD-Loader.

Da DHCP für den Zugriff auf das Internet verwendet wurde, ist es möglich, dass nach der Konfiguration das neu installierte System gestartet und die Netzwerkeinstellungen korrigiert werden müssen. In einigen Fällen kann es erforderlich sein, Netzwerkadaptertreiber zu installieren, da die auf dem Server installierte und in der VM emulierte Netzwerkkarte unterschiedlich ist.
Fazit
Diese Methode zum Organisieren des Remotezugriffs auf die Serverkonsole beansprucht einen Teil der Serverressourcen, stellt jedoch keine besonderen Anforderungen an die Hardwarekomponente des Servers und kann daher unter nahezu allen Bedingungen ausgeführt werden. Die Verwendung dieser Lösung kann die Diagnose von Softwarefehlern erheblich erleichtern und den Zustand eines Remote-Servers wiederherstellen.