IP-KVM via QEMU

IP-KVM via QEMU

Het oplossen van opstartproblemen van het besturingssysteem op servers zonder KVM is een uitdagende taak. We creëren KVM-over-IP via een herstelimage en een virtuele machine.

In het geval van problemen met het besturingssysteem op de externe server, laadt de administrator het herstelbeeld en voert de noodzakelijke werkzaamheden uit. Deze methode werkt uitstekend wanneer de oorzaak van de storing bekend is en het herstelbeeld en het op de server geïnstalleerde besturingssysteem tot dezelfde familie behoren. Als de oorzaak van de storing nog niet bekend is, is het nodig om het opstartproces van het besturingssysteem te observeren.

Externe KVM

Toegang tot de console van de server kan worden verkregen via ingebouwde middelen zoals IPMI of Intel® vPro™, of via externe apparaten die IP-KVM worden genoemd. Er zijn situaties waarin al deze technologieën niet beschikbaar zijn. Maar dat is nog geen einde. Als de server op afstand kan worden herstart naar een herstelbeeld op basis van een besturingssysteem uit de Linux-familie, kan KVM-over-IP snel worden georganiseerd.

Het herstelbeeld is een volledige besturingssysteem dat in het RAM wordt geladen. Op deze manier kunnen we elke software draaien, inclusief virtuele machines (VM). Dit betekent dat we een VM kunnen opstarten waarin het besturingssysteem van de server draait. Toegang tot de console van de VM kan bijvoorbeeld worden georganiseerd via VNC.

Om het besturingssysteem van de server binnen de VM te starten, moeten de schijven van de server als schijven van de VM worden opgegeven. In besturingssystemen van de Linux-familie worden fysieke schijven gepresenteerd als blokapparaten van het type /dev/sdX, waar we mee kunnen werken als met gewone bestanden.

Sommige hypervisors, zoals QEMU en VirtualBox, staan toe om de gegevens van de VM in 'rauwe' vorm op te slaan, dat wil zeggen alleen de opslaggegevens zonder hypervisor-metadata. Op deze manier kan de VM worden opgestart met fysieke schijven van de server.

Deze methode vereist middelen om het herstelbeeld en de VM erin op te starten. Echter, met vier of meer gigabyte RAM is dit geen probleem.

Omgeving voorbereiden

Als virtuele machine kan een lichte en eenvoudige applicatie worden gebruikt QEMU, die meestal geen deel uitmaakt van het herstelbeeld en dus apart moet worden geïnstalleerd. Het herstelbeeld dat wij aan klanten aanbieden, is gebaseerd op Arch Linux, dat het pakketbeheerprogramma gebruikt pacman.

Zorg er eerst voor dat het herstelimage de laatste versies van de software gebruikt. Voer de volgende opdracht uit om het besturingssysteem te controleren en alle componenten bij te werken:

pacman -Suy

Na de update moet QEMU worden geïnstalleerd. De installatieopdracht via pacman ziet er als volgt uit:

pacman -S qemu

Laten we controleren of QEMU correct is geïnstalleerd:

root@sel-rescue ~ # qemu-system-x86_64 --versie
QEMU emulator versie 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard en de QEMU Project ontwikkelaars

Als alles in orde is, is het herstelimage klaar voor gebruik.

De virtuele machine starten

Eerst moeten we beslissen over de hoeveelheid middelen die aan de VM worden toegewezen en de paden naar de fysieke schijven bepalen. In ons geval zullen we twee cores en twee gigabyte RAM aan de virtuele machine toekennen, en de schijven bevinden zich op het pad /dev/sda en /dev/sdb. Laten we de 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

Wat betreft de betekenis van elk van de parameters:

  • -m 2048M — we wijzen 2 GB RAM toe aan de VM;
  • -net nic -net user — we voegen een eenvoudige netwerkverbinding toe via de hypervisor met behulp van NAT (Network Address Translation);
  • -enable-kvm — we schakelen volledige virtualisatie in met KVM (Kernel Virtual Machine);
  • -cpu host — we vertellen de virtuele processor om alle functies van de serverprocessor te gebruiken;
  • -M pc — hardwaretype PC;
  • -smp 2 — de virtuele processor moet dual-core zijn;
  • -vga std — we kiezen een standaard videokaart die geen hoge schermresoluties ondersteunt;
  • -drive file=/dev/sda,format=raw,index=0,media=disk
    • file=\/dev\/sdX — pad naar het blokapparaat dat de server schijf vertegenwoordigt;
    • format=raw — we geven aan dat alle gegevens in het opgegeven bestand in een "rauw" formaat staan, dat wil zeggen zoals op de schijf;
    • index=0 — schijfnummer, dit moet met één worden verhoogd voor elke volgende schijf;
    • media=disk — de virtuele machine moet deze opslag herkennen als een schijf;
  • -vnc :0, password — we starten de VNC-server standaard op 0.0.0.0:5900, waarbij we een wachtwoord voor autorisatie gebruiken;
  • -monitor stdio — communicatie tussen de beheerder en QEMU zal plaatsvinden via de standaard invoer-/uitvoerstromen.

Als alles in orde is, zal de QEMU-monitor starten:

QEMU 4.0.0 monitor - typ 'help' voor meer informatie
(qemu)

We hebben aangegeven dat autorisatie op basis van een wachtwoord plaatsvindt, maar we hebben het wachtwoord zelf niet opgegeven. Dit kan worden gedaan door het commando change vnc password in de QEMU-monitor te sturen. Belangrijke opmerking: het wachtwoord mag niet meer dan acht tekens bevatten.

(qemu) wijzig vnc-wachtwoord
Wachtwoord: ******

Daarna kunnen we met elke VNC-client, zoals Remmina, verbinding maken via het IP-adres van onze server met het door ons opgegeven wachtwoord.

IP-KVM via QEMU

IP-KVM via QEMU

Nu zien we niet alleen mogelijke fouten tijdens het opstarten, maar kunnen we ook met hen omgaan.

Na het voltooien van het werk moet de virtuele machine worden afgesloten. Dit kan zowel binnen het besturingssysteem door een uitschakelsignal te geven, als door een commando te geven system_powerdown in de QEMU-monitor. Dit komt overeen met het één keer indrukken van de aan-/uit-knop: het besturingssysteem binnen de virtuele machine wordt soepel afgesloten.

Installatie van het besturingssysteem

De virtuele machine heeft volledige toegang tot de schijven van de server en kan daarom worden gebruikt om het besturingssysteem handmatig te installeren. De enige beperking is de hoeveelheid RAM: niet altijd kan het ISO-beeld in het RAM worden geplaatst. We wijzen vier gigabyte in het RAM toe voor het opslaan van het beeld in /mnt:

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

We zullen ook het installatiebeeld van het besturingssysteem FreeBSD 12.0 downloaden:

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

Nu kunnen we de 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

Vlag -boot d die de opstart vanuit de cd-rom instelt. We maken verbinding met de VNC-client en zien de opstartloader van FreeBSD.

IP-KVM via QEMU

Aangezien voor de internettoegang het adres via DHCP werd verkregen, kan het nodig zijn om na de configuratie op te starten in het pas geïnstalleerde systeem en de netwerkinstellingen te corrigeren. In sommige gevallen kan het nodig zijn om stuurprogramma's voor de netwerkadapter te installeren, aangezien de netwerkkaart in de server en gemodelleerd in de VM verschillen.

Conclusie

Deze manier van het organiseren van externe toegang tot de console van de server verbruikt een deel van de serverbronnen, maar stelt geen bijzondere eisen aan de hardware van de server en kan daarom onder vrijwel alle omstandigheden worden uitgevoerd. Het gebruik van een dergelijke oplossing maakt de diagnose van softwareproblemen en het herstel van de functionaliteit van de externe server aanzienlijk gemakkelijker.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster