
Fejlfinding ved opstart af operativsystemet på servere uden KVM er en udfordrende opgave. Vi opretter KVM-over-IP via et gendannelsesbillede og en virtuel maskine.
I tilfælde af problemer med operativsystemet , uploader administratoren gendannelsesbilledet og udfører de nødvendige opgaver. Denne metode fungerer godt, når årsagen til fejlen er kendt, og gendannelsesbilledet og det installerede operativsystem på serveren tilhører samme familie. Hvis årsagen til fejlen endnu ikke er kendt, er det nødvendigt at observere opstartsprocessen for operativsystemet.
Fjern KVM
Adgang til serverens konsol kan opnås ved hjælp af indbyggede værktøjer som IPMI eller Intel® vPro™, eller ved hjælp af eksterne enheder kaldet IP-KVM. Der er situationer, hvor alle de nævnte teknologier ikke er tilgængelige. Men det er ikke slutningen. Hvis serveren kan genstartes i et gendannelsesbillede baseret på en Linux-operativsystemfamilie, kan KVM-over-IP hurtigt organiseres.
Gendannelsesbilledet fungerer som et komplet operativsystem, der placeres i RAM. På den måde kan vi køre hvilken som helst software, inklusive virtuelle maskiner (VM). Det vil sige, at en VM kan startes, hvor serverens operativsystem kører. Adgang til VM-konsollen kan for eksempel organiseres via VNC.
For at starte serverens operativsystem inden i VM'en er det nødvendigt at angive serverens diske som VM-diskene. I Linux-operativsystemer repræsenteres fysiske diske som blokkerende enheder af typen /dev/sdX, som kan betegnes som almindelige filer.
Nogle hypervisorer, såsom QEMU og VirtualBox, tillader at gemme VM-data i "rå" form, det vil sige kun lagringsdata uden hypervisorens metadata. På den måde kan VM'en starte ved hjælp af serverens fysiske diske.
En sådan metode kræver ressourcer til at starte gendannelsesbilledet og VM'en indeni. Men med fire gigabyte RAM eller mere bliver det ikke et problem.
Forberedelse af miljøet
En letvægts og enkel software kan bruges som en virtuel maskine. , der ofte ikke er en del af genoprettelsesbilledet, og derfor skal installeres separat. Det genoprettelsesbillede, vi tilbyder kunderne, er baseret på , hvor pakkehåndtereren pacman.
Først skal du sikre dig, at genoprettelsesbilledet bruger de nyeste versioner af softwaren. Du kan kontrollere og opdatere alle operativsystemkomponenter med følgende kommando:
pacman -Suy
Efter opdatering skal QEMU installeres. Kommandoen til installation via pacman ser således ud:
pacman -S qemu
Lad os tjekke, 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 og QEMU Projektets udviklere
Hvis alt er i orden, er genoprettelsesbilledet klar til brug.
Start af den virtuelle maskine
Først skal du bestemme, hvor mange ressourcer der tildeles VM'en, og finde stierne til de fysiske diske. I vores tilfælde vil vi tildele to kerner og to gigabyte RAM til den virtuelle maskine, og diskene er placeret på stien /dev/sda og /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 mere om, hvad hver af parametrene betyder:
- -m 2048M — vi tildeler 2 GB RAM til VM'en;
- -net nic -net user — vi tilføjer en simpel netværksforbindelse gennem hypervisoren ved hjælp af NAT (Network Address Translation);
- -enable-kvm — vi aktiverer fuld virtualisering KVM (Kernel Virtual Machine);
- -cpu host — vi beder den virtuelle processor om at få alle funktionerne fra serverens processor;
- -M pc — hardwaretypen er PC;
- -smp 2 — den virtuelle processor skal være toogtyve kerner;
- -vga std — vi vælger et standard grafikkort, som ikke understøtter høje skærmopløsninger;
- -drive file=/dev/sda,format=raw,index=0,media=disk
- file=\/dev\/sdX — stien til blokenheden, der repræsenterer serverens disk;
- format=raw — vi angiver, at alle data i den angivne fil er i "rå" format, det vil sige som på disken;
- index=0 — disknummeret skal øges med én for hver følgende disk;
- media=disk — den virtuelle maskine skal genkende denne lagerenhed som en disk;
- -vnc :0, password — vi starter VNC-serveren som standard på 0.0.0.0:5900 og bruger en adgangskode til autorisation;
- -monitor stdio — kommunikationen mellem administratoren og qemu vil foregå via standard ind- og udgangsstrømme.
Hvis alt er i orden, starter QEMU-monitoren:
QEMU 4.0.0 monitor - skriv 'help' for mere information
(qemu)
Vi har angivet, at autorisationen foregår via en adgangskode, men vi har ikke angivet selve adgangskoden. Dette kan gøres ved at sende kommandoen change vnc password til QEMU-monitoren. Vigtigt at bemærke: Adgangskoden må ikke være længere end otte tegn.
(qemu) ændre vnc-adgangskode
Adgangskode: ******
Efter dette kan vi oprette forbindelse med enhver VNC-klient, f.eks. Remmina, via IP-adressen til vores server med den angivne adgangskode.


Nu kan vi ikke kun se mulige fejl under opstarten, men også håndtere dem.
Når arbejdet er færdigt, skal den virtuelle maskine afsluttes. Dette kan gøres inde i OS ved at sende et signal om at slukke, eller ved at give kommandoen system_powerdown i QEMU-monitoren. Dette vil svare til at trykke på sluk-knappen én gang: operativsystemet inden i den virtuelle maskine vil lukke ned blødt.
Installation af operativsystemet
Den virtuelle maskine har fuld adgang til serverens diske og kan derfor bruges til manuelt at installere et operativsystem. Den eneste begrænsning er mængden af RAM: ISO-billedet kan ikke altid placeres i RAM. Vi vil tildele fire gigabyte i RAM til opbevaring af billedet i /mnt:
mount -t tmpfs -o size=4G tmpfs /mnt
Vi henter også installationsbilledet af 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
Nu kan VM'en startes:
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
Flaget -boot d sætter opstart fra CD-drevet. Vi opretter forbindelse med VNC-klienten og ser opstartsladeren for FreeBSD.

Da der blev anvendt DHCP for at få internetadressen, kan det være nødvendigt at starte op i det nyinstallerede system og rette netværksindstillingerne efter konfigurationen. I nogle tilfælde kan det være nødvendigt at installere drivere til netværksadapteren, da netværkskortet installeret på serveren og emuleret i VM'en adskiller sig.
Konklusion
Denne metode til at organisere fjernadgang til serverens konsol forbruger en del af serverens ressourcer, men har ikke særlige krav til serverens hardwarekomponenter, så den kan udføres under næsten alle forhold. Anvendelsen af en sådan løsning gør det betydeligt lettere at diagnosticere softwarefejl og genoprette funktionen af den fjernbetjente server.
Kilde: habr.com
