IP-KVM via QEMU

IP-KVM via QEMU

Feilsøking av operativsystemoppstartsproblemer på servere uten KVM er ikke en lett oppgave. Vi lager en KVM-over-IP for oss selv via et gjenopprettingsbilde og en virtuell maskin.

Ved problemer med operativsystemet på en ekstern server, laster administratoren ned gjenopprettingsbildet og utfører det nødvendige arbeidet. Denne metoden fungerer utmerket når årsaken til feilen er kjent, og gjenopprettingsbildet og operativsystemet installert på serveren er fra samme familie. Hvis årsaken til feilen ennå ikke er kjent, må du overvåke fremdriften for å laste operativsystemet.

Ekstern KVM

Du kan få tilgang til serverkonsollen ved å bruke innebygde verktøy som IPMI eller Intel® vPro™, eller via eksterne enheter kalt IP-KVM. Det er situasjoner der alle de oppførte teknologiene ikke er tilgjengelige. Dette er imidlertid ikke slutten. Hvis serveren kan fjernstartes til et gjenopprettingsbilde basert på et Linux-operativsystem, kan KVM-over-IP raskt organiseres.

Gjenopprettingsbildet er et fullverdig operativsystem som ligger i RAM. Dermed kan vi kjøre hvilken som helst programvare, inkludert virtuelle maskiner (VM). Det vil si at du kan starte en VM der serveroperativsystemet skal kjøres. Tilgang til VM-konsollen kan organiseres, for eksempel via VNC.

For å kjøre serveroperativsystemet inne i en VM, må du spesifisere serverdiskene som VM-disker. I operativsystemer i Linux-familien er fysiske disker representert av blokkenheter av skjemaet / Dev / sdX, som kan arbeides med som vanlige filer.

Noen hypervisorer, som QEMU og VirtualBox, lar deg lagre VM-data i en "rå" form, det vil si bare lagringsdata uten hypervisor-metadata. Dermed kan VM-en startes ved hjelp av serverens fysiske disker.

Denne metoden krever ressurser for å starte gjenopprettingsbildet og VM-en inne i den. Men hvis du har fire eller flere gigabyte RAM, vil ikke dette være noe problem.

Forberede miljøet

Du kan bruke et lett og enkelt program som en virtuell maskin QEMU, som oftest ikke er en del av gjenopprettingsbildet og må derfor installeres separat. Gjenopprettingsbildet vi tilbyr til klienter er basert på Arch Linux, som bruker en pakkebehandling pacman.

Det første du må gjøre er å sørge for at gjenopprettingsbildet bruker den nyeste programvaren. Du kan sjekke og oppdatere alle OS-komponenter med følgende kommando:

pacman -Suy

Etter oppdateringen må du installere QEMU. Installasjonskommandoen via pacman vil se slik ut:

pacman -S qemu

La oss sjekke at qemu er riktig installert:

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 slik, er gjenopprettingsbildet klart til bruk.

Starte en virtuell maskin

Først må du bestemme mengden ressurser som er allokert til VM og finne ut banene til de fysiske diskene. I vårt tilfelle vil vi tildele to kjerner og to gigabyte RAM til den virtuelle maskinen, og diskene er plassert underveis / Dev / sda и / Dev / sdb. La oss starte VM:

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

Litt mer detalj om hva hver av parameterne betyr:

  • -m 2048M — allokere 2 GB RAM til VM;
  • -net nic -net bruker — legge til en enkel tilkobling til nettverket gjennom en hypervisor som bruker NAT (Network Address Translation);
  • -aktiver-kvm — aktiver full KVM (Kernel Virtual Machine) virtualisering;
  • -cpu-vert — vi ber den virtuelle prosessoren få all funksjonaliteten til serverprosessoren;
  • -M PC — type PC-utstyr;
  • -smp 2 — den virtuelle prosessoren må være dual-core;
  • -vga std — velg et standard skjermkort som ikke støtter store skjermoppløsninger;
  • -stasjon fil=/dev/sda, format=rå, indeks=0, media=disk
    • file=/dev/sdX — banen til blokkenheten som representerer serverdisken;
    • format=rå — vi legger merke til at i den angitte filen er alle data i "rå" form, det vil si som på en disk;
    • indeks = 0 — disknummer, må øke med én for hver påfølgende disk;
    • media=disk — den virtuelle maskinen må gjenkjenne denne lagringen som en disk;
  • -vnc :0, passord — start VNC-serveren som standard på 0.0.0.0:5900, bruk et passord som autorisasjon;
  • -monitor stdio — kommunikasjon mellom administratoren og qemu vil skje gjennom standard input/output-strømmer.

Hvis alt er i orden, vil QEMU-monitoren starte:

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

Vi indikerte at autorisasjon skjer ved hjelp av et passord, men angir ikke selve passordet. Dette kan gjøres ved å sende kommandoen change vnc password til QEMU-monitoren. Viktig merknad: Passordet kan ikke være mer enn åtte tegn.

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

Etter dette kan vi koble til en hvilken som helst VNC-klient, for eksempel Remmina, ved å bruke IP-adressen til serveren vår med passordet vi spesifiserte.

IP-KVM via QEMU

IP-KVM via QEMU

Nå ser vi ikke bare mulige feil på innlastingsstadiet, men vi kan også håndtere dem.

Når du er ferdig, må du slå av den virtuelle maskinen. Dette kan gjøres enten inne i OS ved å sende et signal til avslutning, eller ved å gi kommandoen system_powerdown i QEMU-monitor. Dette vil tilsvare å trykke én gang på avslutningsknappen: operativsystemet inne i den virtuelle maskinen vil slå seg av jevnt.

Installasjon av operativsystem

Den virtuelle maskinen har full tilgang til serverdiskene og kan derfor brukes til å manuelt installere operativsystemet. Den eneste begrensningen er mengden RAM: ISO-bildet kan ikke alltid plasseres i RAM. La oss tildele fire gigabyte RAM for å lagre bildet i / mnt:

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

Vi vil også laste ned installasjonsbildet av 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

Nå kan du starte VM:

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

flagg -støvel d installerer oppstart fra CD-stasjonen. Vi kobler til en VNC-klient og ser FreeBSD bootloader.

IP-KVM via QEMU

Siden innhenting av en adresse via DHCP ble brukt for å få tilgang til Internett, kan det etter konfigurasjon være nødvendig å starte opp i det nylig installerte systemet og korrigere nettverksinnstillingene. I noen tilfeller kan det være nødvendig å installere nettverkskortdrivere, siden nettverkskortet som er installert på serveren og det som emuleres i VM er forskjellige.

Konklusjon

Denne metoden for å organisere ekstern tilgang til serverkonsollen bruker noen av serverressursene, men den stiller ingen spesielle krav til servermaskinvaren, og kan derfor implementeres under nesten alle forhold. Bruk av denne løsningen gjør det mye enklere å diagnostisere programvarefeil og gjenopprette funksjonaliteten til en ekstern server.

Kilde: www.habr.com

Legg til en kommentar