
FeilsÞking ved oppstart av operativsystemet pÄ servere uten KVM er en utfordrende oppgave. Vi oppretter KVM-over-IP gjennom gjenopprettingsbildet og en virtuell maskin.
Hvis det oppstÄr problemer med operativsystemet , laster administratoren opp gjenopprettingsbildet og utfÞrer nÞdvendige arbeider. Denne metoden fungerer utmerket nÄr Ärsaken til feilen er kjent, og gjenopprettingsbildet og det installerte operativsystemet pÄ serveren tilhÞrer samme familie. Hvis Ärsaken til feilen ennÄ ikke er kjent, er det nÞdvendig Ä overvÄke oppstartsprosessen av operativsystemet.
Fjern-KVM
Tilgang til konsollen til serveren kan oppnĂ„s ved hjelp av innebygde verktĂžy, som IPMI eller IntelÂź vProâą, eller ved hjelp av eksterne enheter som kalles IP-KVM. Det finnes situasjoner der alle de nevnte teknologiene ikke er tilgjengelige. Men dette er ikke slutten. Hvis serveren kan startes eksternt i gjenopprettingsbildet basert pĂ„ et Linux-operativsystem, kan KVM-over-IP raskt opprettes.
Gjenopprettingsbildet er et fullt operativsystem som plasseres i RAM. PÄ denne mÄten kan vi kjÞre hvilken som helst programvare, inkludert virtuelle maskiner (VM). Dette betyr at vi kan starte en VM der serverens operativsystem vil kjÞre. Tilgang til konsollen til VM kan for eksempel organiseres via VNC.
For Ä starte operativsystemet til serveren inne i VM mÄ serverens disker angis som disker til VM. I Linux-operativsystemer representeres fysiske disker som blokk-enheter av typen /dev/sdX, som kan behandles som vanlige filer.
Noen hypervisorer, som QEMU og VirtualBox, tillater lagring av data fra VM i "rÄ" format, det vil si kun lagringsdata uten hypervisorens metadatak. Dermed kan VM startes ved Ä bruke serverens fysiske disker.
Denne metoden krever ressurser for Ă„ starte gjenopprettingsbildet og VM inni det. Men med fire gigabyte eller mer RAM vil dette ikke vĂŠre et problem.
Forberedelse av miljĂžet
Som virtuell maskin kan en lettvekts og enkel programvare brukes , som oftest ikke er en del av gjenopprettingsbildet, sÄ den mÄ installeres separat. Gjenopprettingsbildet vi tilbyr kundene vÄre, er basert pÄ , der det brukes en pakkebehandler pacman.
FÞrst mÄ vi forsikre oss om at gjenopprettingsbildet bruker de nyeste versjonene av programvaren. Du kan sjekke og oppdatere alle operativsystemkomponentene med fÞlgende kommando:
pacman -Suy
Etter oppdateringen mÄ du installere QEMU. Kommandoen for installasjon via pacman vil se slik ut:
pacman -S qemu
La oss sjekke at qemu er installert korrekt:
root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard og QEMU-prosjektets utviklere
Hvis alt er i orden, er gjenopprettingsbildet klart til bruk.
Start av den virtuelle maskinen
FÞrst mÄ vi bestemme antall ressurser som tildeles VM, og finne stiene 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 i /dev/sda og /dev/sdb. Vi starter 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
Litt mer detaljert om hva hver av parameterne betyr:
- -m 2048M â vi tildeler 2 GB RAM til VM;
- -net nic -net user â legger til en enkel nettverksforbindelse via hypervisor ved hjelp av NAT (Network Address Translation);
- -enable-kvm â aktiverer full virtualisering KVM (Kernel Virtual Machine);
- -cpu host â vi sier til den virtuelle prosessoren Ă„ hente all funksjonalitet fra serverens prosessor;
- -M pc â maskinvaretypen er PC;
- -smp 2 â den virtuelle prosessoren skal vĂŠre tokjernet;
- -vga std â vi velger et standard grafikkort som ikke stĂžtter hĂžye skjermopplĂžsninger;
- -drive file=/dev/sda,format=raw,index=0,media=disk
- file=\/dev\/sdX â stien til blokkoppbevaringsenheten som representerer serverens disk;
- format=raw â vi merker at i den angitte filen er alle dataene i "rĂ„" format, det vil si som pĂ„ disken;
- index=0 â nummeret pĂ„ disken, mĂ„ Ăžkes med Ă©n for hver pĂ„fĂžlgende disk;
- media=disk â den virtuelle maskinen mĂ„ gjenkjenne disse lagringsenhetene som disker;
- -vnc :0, password â vi starter VNC-serveren som standard pĂ„ 0.0.0.0:5900, med et passord for autentisering;
- -monitor stdio â kommunikasjonen mellom administratoren og qemu vil skje via standard inndata- og utdata-strĂžmmer.
Hvis alt er i orden, vil QEMU-monitoren starte:
QEMU 4.0.0 overvÄkingssystem - skriv 'hjÊlp' for mer informasjon
(qemu)
Vi har angitt at autentiseringen skjer med passord, men vi har ikke spesifisert selve passordet. Dette kan gjÞres ved Ä sende kommandoen change vnc password i QEMU-monteren. Viktig merknad: passordet kan ikke vÊre lenger enn Ätte tegn.
(qemu) endre vnc-passord
Passord: ******
Etter dette kan vi koble til med en hvilken som helst VNC-klient, for eksempel Remmina, ved hjelp av IP-adressen til serveren vÄr og det passordet vi har angitt.


NÄ ser vi ikke bare mulige feil under oppstart, men vi kan ogsÄ hÄndtere dem.
NÄr arbeidet er fullfÞrt, mÄ den virtuelle maskinen avsluttes. Dette kan gjÞres bÄde innenfor operativsystemet ved Ä sende et avslagssignal, eller ved Ä gi kommandoen system_powerdown i QEMU-monitoren. Dette vil vÊre ekvivalent med Ä trykke pÄ av-knappen: operativsystemet inne i den virtuelle maskinen vil avsluttes glatt.
Installasjon av operativsystemet
Den virtuelle maskinen har full tilgang til serverens disker og kan derfor brukes til manuelt Ă„ installere operativsystemet. Den eneste begrensningen er mengden RAM: ikke alltid kan ISO-bildet plasseres i RAM. La oss allokere fire gigabyte i RAM for Ă„ lagre bildet i /mnt:
mount -t tmpfs -o size=4G tmpfs /mnt
Vi laster ogsÄ ned installasjonsbildet av operativsystemet FreeBSD 12.0:
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 vi 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
Flagget -boot d angir oppstart fra CD-stasjonen. Vi kobler til med VNC-klienten og ser FreeBSD-oppstarteren.

Siden DHCP ble brukt for Ä fÄ tilgang til Internett, kan det vÊre nÞdvendig etter oppsett Ä starte opp i det nyinstallerte systemet og korrigere nettverksinnstillingene. I noen tilfeller kan det vÊre nÞdvendig Ä installere drivere for nettverksadapteren, da det nettverkskortet som er installert pÄ serveren og som emuleres i VM, er forskjellige.
Konklusjon
Denne metoden for Ă„ organisere ekstern tilgang til serverens konsoll bruker en del av serverressursene, men stiller ingen spesielle krav til serverens maskinvare, og kan derfor utfĂžres under praktisk talt alle forhold. Bruken av en slik lĂžsning gjĂžr det betydelig enklere Ă„ diagnostisere programvarefeil og gjenopprette den eksterne serverens funksjonalitet.
Kilde: habr.com
