IP-KVM via QEMU

IP-KVM via QEMU

Fejlfinding af operativsystemets opstartsproblemer på servere uden KVM er ikke en nem opgave. Vi opretter en KVM-over-IP til os selv via et gendannelsesbillede og en virtuel maskine.

I tilfælde af problemer med styresystemet på en ekstern server, downloader administratoren gendannelsesbilledet og udfører det nødvendige arbejde. Denne metode fungerer godt, når årsagen til fejlen er kendt, og gendannelsesbilledet og operativsystemet installeret på serveren er fra samme familie. Hvis årsagen til fejlen endnu ikke er kendt, skal du overvåge fremskridtene med at indlæse operativsystemet.

Fjernbetjent KVM

Du kan få adgang til serverkonsollen ved hjælp af indbyggede værktøjer såsom IPMI eller Intel® vPro™ eller via eksterne enheder kaldet IP-KVM. Der er situationer, hvor alle de nævnte teknologier ikke er tilgængelige. Dette er dog ikke enden. Hvis serveren kan fjernstartes til et gendannelsesbillede baseret på et Linux-operativsystem, så kan KVM-over-IP hurtigt organiseres.

Gendannelsesbilledet er et fuldgyldigt operativsystem, der er placeret i RAM. Således kan vi køre enhver software, inklusive virtuelle maskiner (VM'er). Det vil sige, at du kan starte en VM, inden for hvilken serveroperativsystemet kører. Adgang til VM-konsollen kan organiseres, for eksempel via VNC.

For at køre serveroperativsystemet inde i en VM skal du angive serverdiskene som VM-diske. I operativsystemer i Linux-familien er fysiske diske repræsenteret af blokenheder af formen / Dev / sdX, som kan arbejdes med som almindelige filer.

Nogle hypervisorer, såsom QEMU og VirtualBox, giver dig mulighed for at gemme VM-data i en "rå" form, det vil sige kun lagringsdata uden hypervisor-metadata. VM'en kan således startes ved hjælp af serverens fysiske diske.

Denne metode kræver ressourcer til at starte gendannelsesbilledet og VM'en inde i det. Men hvis du har fire eller flere gigabyte RAM, vil dette ikke være et problem.

Forberedelse af miljøet

Du kan bruge et let og enkelt program som en virtuel maskine QEMU, som oftest ikke er en del af gendannelsesbilledet og derfor skal installeres separat. Det gendannelsesbillede, vi tilbyder til kunder, er baseret på Arch Linux, som bruger en pakkehåndtering Pacman.

Den første ting du skal gøre er at sikre dig, at gendannelsesbilledet bruger den nyeste software. Du kan kontrollere og opdatere alle OS-komponenter med følgende kommando:

pacman -Suy

Efter opdateringen skal du installere QEMU. Installationskommandoen via pacman vil se sådan ud:

pacman -S qemu

Lad os kontrollere, at qemu er installeret korrekt:

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

Hvis alt er tilfældet, er gendannelsesbilledet klar til at gå.

Start af en virtuel maskine

Først skal du bestemme mængden af ​​ressourcer, der er allokeret til VM'en, og finde ud af stierne til de fysiske diske. I vores tilfælde vil vi allokere to kerner og to gigabyte RAM til den virtuelle maskine, og diskene er placeret undervejs / Dev / sda и / Dev / sdb. Lad os starte VM'en:

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

Lidt flere detaljer om, hvad hver af parametrene betyder:

  • -m 2048M — alloker 2 GB RAM til VM'en;
  • -net nic -net bruger — tilføjelse af en simpel forbindelse til netværket gennem en hypervisor ved hjælp af NAT (Network Address Translation);
  • -aktiver-kvm — aktiver fuld KVM (Kernel Virtual Machine) virtualisering;
  • -cpu vært — vi fortæller den virtuelle processor at få al serverprocessorens funktionalitet;
  • -M PC — type pc-udstyr;
  • -smp 2 — den virtuelle processor skal være dual-core;
  • -vga std — vælg et standardskærmkort, der ikke understøtter store skærmopløsninger;
  • -drev fil=/dev/sda, format=raw, index=0, media=disk
    • file=/dev/sdX — stien til blokenheden, der repræsenterer serverdisken;
    • format=rå — vi bemærker, at i den angivne fil er alle data i "rå" form, det vil sige som på en disk;
    • indeks=0 — disknummer, skal øges med én for hver efterfølgende disk;
    • media=disk — den virtuelle maskine skal genkende dette lager som en disk;
  • -vnc :0, adgangskode — start VNC-serveren som standard på 0.0.0.0:5900, brug en adgangskode som autorisation;
  • -monitor stdio — kommunikation mellem administratoren og qemu vil ske gennem standard input/output-strømme.

Hvis alt er i orden, starter QEMU-monitoren:

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

Vi angav, at autorisationen sker ved hjælp af en adgangskode, men angav ikke selve adgangskoden. Dette kan gøres ved at sende kommandoen change vnc password til QEMU-monitoren. Vigtig bemærkning: Adgangskoden må ikke være mere end otte tegn.

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

Efter dette kan vi oprette forbindelse til enhver VNC-klient, for eksempel Remmina, ved at bruge IP-adressen på vores server med den adgangskode, vi har angivet.

IP-KVM via QEMU

IP-KVM via QEMU

Nu ser vi ikke kun mulige fejl på indlæsningsstadiet, men vi kan også håndtere dem.

Når du er færdig, skal du lukke den virtuelle maskine. Dette kan gøres enten inde i OS ved at sende et signal til nedlukning eller ved at give kommandoen system_powerdown i QEMU-monitor. Dette vil svare til at trykke én gang på shutdown-knappen: operativsystemet inde i den virtuelle maskine lukker jævnt ned.

Installation af operativsystem

Den virtuelle maskine har fuld adgang til serverdiskene og kan derfor bruges til manuelt at installere operativsystemet. Den eneste begrænsning er mængden af ​​RAM: ISO-billedet kan ikke altid placeres i RAM. Lad os allokere fire gigabyte RAM til at gemme billedet i / mnt:

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

Vi vil også downloade installationsbilledet af FreeBSD 12.0-operativsystemet:

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

Nu kan du starte VM'en:

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

flag -støvle d installerer opstart fra cd-drev. Vi forbinder med en VNC-klient og ser FreeBSD bootloader.

IP-KVM via QEMU

Da opnåelse af en adresse via DHCP blev brugt til at få adgang til internettet, kan det efter konfiguration være nødvendigt at starte op i det nyligt installerede system og rette netværksindstillingerne. I nogle tilfælde kan det være nødvendigt at installere netværksadapterdrivere, da netværkskortet, der er installeret på serveren, og det, der emuleres i VM'en, er forskellige.

Konklusion

Denne metode til at organisere fjernadgang til serverkonsollen bruger nogle af serverressourcerne, men den stiller ingen særlige krav til serverhardwaren og kan derfor implementeres under næsten alle forhold. Brug af denne løsning gør det meget nemmere at diagnosticere softwarefejl og gendanne funktionaliteten af ​​en ekstern server.

Kilde: www.habr.com

Tilføj en kommentar