IP-KVM via QEMU

IP-KVM via QEMU

Het oplossen van opstartproblemen met het besturingssysteem op servers zonder KVM is geen gemakkelijke taak. Wij creëren voor onszelf een KVM-over-IP via een herstelimage en een virtuele machine.

In geval van problemen met het besturingssysteem op een externe server, downloadt de beheerder de herstelimage en voert de nodige werkzaamheden uit. Deze methode werkt uitstekend als de oorzaak van de fout bekend is en de herstelimage en het besturingssysteem dat op de server is geïnstalleerd tot dezelfde familie behoren. Als de oorzaak van de fout nog niet bekend is, moet u de voortgang van het laden van het besturingssysteem controleren.

KVM op afstand

U kunt toegang krijgen tot de serverconsole met behulp van ingebouwde tools zoals IPMI of Intel® vPro™, of via externe apparaten genaamd IP-KVM. Er zijn situaties waarin niet alle genoemde technologieën beschikbaar zijn. Dit is echter niet het einde. Als de server op afstand opnieuw kan worden opgestart naar een herstelimage op basis van een Linux-besturingssysteem, kan KVM-over-IP snel worden georganiseerd.

De herstelimage is een volwaardig besturingssysteem dat zich in het RAM bevindt. We kunnen dus elke software uitvoeren, inclusief virtuele machines (VM's). Dat wil zeggen dat u een VM kunt starten waarin het besturingssysteem van de server zal draaien. De toegang tot de VM-console kan bijvoorbeeld via VNC worden georganiseerd.

Als u het serverbesturingssysteem binnen een VM wilt uitvoeren, moet u de serverschijven opgeven als VM-schijven. In besturingssystemen van de Linux-familie worden fysieke schijven weergegeven door blokapparaten van de vorm / Dev / sdX, waarmee kan worden gewerkt zoals met gewone bestanden.

Met sommige hypervisors, zoals QEMU en VirtualBox, kunt u VM-gegevens in een ‘ruwe’ vorm opslaan, dat wil zeggen alleen opslaggegevens zonder hypervisor-metagegevens. De VM kan dus worden gestart met behulp van de fysieke schijven van de server.

Voor deze methode zijn bronnen nodig om de herstelimage en de VM daarin te starten. Als je echter vier of meer gigabyte RAM hebt, zal dit geen probleem zijn.

De omgeving voorbereiden

U kunt een lichtgewicht en eenvoudig programma als virtuele machine gebruiken QEMU, dat meestal geen deel uitmaakt van de herstelimage en daarom afzonderlijk moet worden geïnstalleerd. Het herstelimage dat wij aan klanten aanbieden is hierop gebaseerd Arch Linux, dat een pakketbeheerder gebruikt Pacman.

Eerst moet u ervoor zorgen dat de herstelimage de nieuwste software gebruikt. U kunt alle OS-componenten controleren en bijwerken met de volgende opdracht:

pacman -Suy

Na de update moet u QEMU installeren. Het installatiecommando 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 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

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

Een virtuele machine starten

Eerst moet u beslissen over de hoeveelheid bronnen die aan de VM worden toegewezen en de paden naar de fysieke schijven achterhalen. In ons geval wijzen we twee kernen en twee gigabytes RAM toe aan de virtuele machine, en de schijven bevinden zich onderweg / Dev / sda и / 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

Iets meer details over wat elk van de parameters betekent:

  • -m 2048M — wijs 2 GB RAM toe aan de VM;
  • -net nic -net gebruiker — het toevoegen van een eenvoudige verbinding met het netwerk via een hypervisor met behulp van NAT (Network Address Translation);
  • -inschakelen-kvm — volledige KVM-virtualisatie (Kernel Virtual Machine) mogelijk maken;
  • -cpu-host — we vertellen de virtuele processor dat hij alle functionaliteit van de serverprocessor moet krijgen;
  • -M-pc — type pc-apparatuur;
  • -smp 2 — de virtuele processor moet dual-core zijn;
  • -vga standaard — kies een standaard videokaart die geen grote schermresoluties ondersteunt;
  • -drive file=/dev/sda,format=raw,index=0,media=schijf
    • bestand=/dev/sdX — pad naar het blokapparaat dat de serverschijf vertegenwoordigt;
    • formaat=rauw — we merken op dat in het opgegeven bestand alle gegevens in “ruwe” vorm zijn, dat wil zeggen, zoals op een schijf;
    • index = 0 — schijfnummer, moet voor elke volgende schijf met één toenemen;
    • media=schijf — de virtuele machine moet deze opslag als schijf herkennen;
  • -vnc:0, wachtwoord — start de VNC-server standaard op 0.0.0.0:5900, gebruik een wachtwoord als autorisatie;
  • -monitor stdio — communicatie tussen de beheerder en qemu zal plaatsvinden via standaard invoer-/uitvoerstromen.

Als alles in orde is, start de QEMU-monitor:

QEMU 4.0.0 monitor - type 'help' for more information
(qemu)

Wij hebben aangegeven dat autorisatie gebeurt via een wachtwoord, maar hebben het wachtwoord zelf niet aangegeven. Dit kunt u doen door het commando change vnc-wachtwoord naar de QEMU-monitor te sturen. Belangrijke opmerking: het wachtwoord mag niet langer zijn dan acht tekens.

(qemu) change vnc password
Password: ******

Hierna kunnen we verbinding maken met elke VNC-client, bijvoorbeeld Remmina, 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 in de laadfase, maar kunnen we deze ook aanpakken.

Wanneer u klaar bent, moet u de virtuele machine afsluiten. Dit kan binnen het besturingssysteem worden gedaan door een signaal te sturen om af te sluiten, of door het commando te geven systeem_powerdown in QEMU-monitor. Dit komt overeen met één keer op de afsluitknop drukken: het besturingssysteem in de virtuele machine wordt soepel afgesloten.

Installatie van besturingssysteem

De virtuele machine heeft volledige toegang tot de serverschijven en kan daarom worden gebruikt om het besturingssysteem handmatig te installeren. De enige beperking is de hoeveelheid RAM: de ISO-image kan niet altijd in RAM worden geplaatst. Laten we vier gigabytes RAM toewijzen om de afbeelding in op te slaan / mnt:

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

We zullen ook het installatie-image van het FreeBSD 12.0-besturingssysteem 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 kunt u 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 installeert opstarten vanaf CD-station. We maken verbinding met een VNC-client en zien de FreeBSD-bootloader.

IP-KVM via QEMU

Omdat het verkrijgen van een adres via DHCP werd gebruikt om toegang te krijgen tot internet, kan het na de configuratie nodig zijn om op te starten in het nieuw geïnstalleerde systeem en de netwerkinstellingen te corrigeren. In sommige gevallen kan het nodig zijn om netwerkadapterstuurprogramma's te installeren, omdat de netwerkkaart die op de server is geïnstalleerd en de kaart die in de VM wordt geëmuleerd, verschillend zijn.

Conclusie

Deze methode voor het organiseren van externe toegang tot de serverconsole verbruikt een deel van de serverbronnen, maar stelt geen speciale eisen aan de serverhardware en kan daarom onder vrijwel alle omstandigheden worden geïmplementeerd. Het gebruik van deze oplossing maakt het veel eenvoudiger om softwarefouten te diagnosticeren en de functionaliteit van een externe server te herstellen.

Bron: www.habr.com

Voeg een reactie