
Felsökning av operativsystemets uppstart pÄ servrar utan KVM Àr en utmaning. Vi skapar KVM-over-IP via en ÄterstÀllningsavbildning och en virtuell maskin.
Vid problem med operativsystemet , laddar administratören upp en ÄterstÀllningsbild och utför nödvÀndiga ÄtgÀrder. Denna metod fungerar utmÀrkt nÀr orsaken till felet Àr kÀnd och ÄterstÀllningsbilden och det installerade operativsystemet pÄ servern tillhör samma familj. Om orsaken till felet Ànnu inte Àr kÀnd mÄste man övervaka uppstartsprocessen för operativsystemet.
AvlÀgsen KVM
Ă tkomst till serverns konsol kan göras via inbyggda verktyg som IPMI eller IntelÂź vProâą, eller genom externa enheter kallade IP-KVM. Det finns situationer dĂ€r alla ovanstĂ„ende teknologier Ă€r otillgĂ€ngliga. Men det Ă€r inte slutet. Om servern kan startas om pĂ„ distans till en Ă„terstĂ€llningsbild baserad pĂ„ ett operativsystem frĂ„n Linux-familjen kan KVM-over-IP snabbt ordnas.
à terstÀllningsbilden Àr ett fullstÀndigt operativsystem som finns i RAM-minnet. DÀrför kan vi köra mjukvara, inklusive virtuella maskiner (VM). Det vill sÀga att en VM kan startas, dÀr operativsystemet för servern kommer att köras. à tkomsten till VM-konsolen kan ordnas, till exempel via VNC.
För att starta serverns operativsystem inuti VM mÄste serverns diskar anges som VM-diskar. I operativsystem frÄn Linux-familjen representeras fysiska diskar som blockenheter av typen /dev/sdX, med vilka man kan arbeta som med vanliga filer.
Vissa hypervisorer, sÄsom QEMU och VirtualBox, tillÄter lagring av VM-data i 'rÄ'-format, det vill sÀga endast lagringsdata utan hypervisor-metadata. DÀrför kan VM köras med hjÀlp av serverns fysiska diskar.
Denna metod krÀver resurser för att köra ÄterstÀllningsbilden och VM inuti den. Men med fyra eller fler gigabyte RAM bör detta inte vara ett problem.
Förberedelse av miljön
Som virtuell maskin kan man anvÀnda ett lÀttvikts- och enkelt program , som oftast inte Àr en del av ÄterstÀllningsbilden och dÀrför mÄste installeras separat. à terstÀllningsbilden som vi erbjuder vÄra kunder baseras pÄ , dÀr pakethanteraren pacman.
Först mÄste vi sÀkerstÀlla att ÄterstÀllningsavbildningen anvÀnder de senaste versionerna av programvaran. En kontroll och uppdatering av alla operativsystemskomponenter kan göras med följande kommando:
pacman -Suy
Efter uppdateringen mÄste QEMU installeras. Kommandot för installation via pacman ser ut sÄ hÀr:
pacman -S qemu
Vi kontrollerar att qemu har installerats korrekt:
root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU-emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard och QEMU-projektets utvecklare
Om allt ser bra ut, Àr ÄterstÀllningsavbildningen redo för anvÀndning.
Starta den virtuella maskinen
Först mÄste vi bestÀmma mÀngden resurser som ska tilldelas VM, och ta reda pÄ vÀgarna till de fysiska diskarna. I vÄrt fall kommer vi att tilldela tvÄ kÀrnor och tvÄ gigabyte RAM till den virtuella maskinen, och diskarna ligger pÄ vÀgen /dev/sda och /dev/sdb. LÄt oss starta 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
Lite mer detaljer om vad varje parameter betyder:
- -m 2048M â vi tilldelar 2 GB RAM till VM;
- -net nic -net user â vi lĂ€gger till en enkel nĂ€tverksanslutning genom hypervisorn med hjĂ€lp av NAT (NĂ€tverksadressöversĂ€ttning);
- -enable-kvm â vi aktiverar full virtualisering med KVM (Kernel Virtual Machine);
- -cpu host â vi sĂ€ger till den virtuella processorn att fĂ„ hela funktionaliteten frĂ„n serverns processor;
- -M pc â typ av utrustning PC;
- -smp 2 â den virtuella processorn mĂ„ste vara tvĂ„kĂ€rnig;
- -vga std â vi vĂ€ljer ett standardgrafikkort som inte stöder högupplösta skĂ€rmar;
- -drive file=/dev/sda,format=raw,index=0,media=disk
- file=\/dev\/sdX â vĂ€gen till blockenheten som representerar serverns disk;
- format=raw â vi anger att alla data i den angivna filen ligger i "rĂ„" format, det vill sĂ€ga som pĂ„ disken;
- index=0 â disknumret, som ska öka med en enhet för varje nĂ€sta disk;
- media=disk â den virtuella maskinen ska kĂ€nna igen detta lagringsutrymme som en disk;
- -vnc :0, password â vi startar VNC-servern som standard pĂ„ 0.0.0.0:5900, med lösenord som autentisering;
- -monitor stdio â kommunikationen mellan administratören och qemu kommer att ske via standard in- och utström.
Om allt Àr i ordning kommer QEMU-monitoren att starta:
QEMU 4.0.0 övervakning - skriv 'hjÀlp' för mer information
(qemu)
Vi angav att autentisering sker med lösenord, men angav inte sjÀlva lösenordet. Det kan göras genom att skicka kommandot change vnc password i QEMU-monitorn. Viktig anmÀrkning: Lösenordet fÄr inte vara lÀngre Àn Ätta tecken.
(qemu) Àndra vnc-lösenord
Lösenord: ******
Efter detta kan vi ansluta med vilken VNC-klient som helst, till exempel Remmina, via IP-adressen till vÄr server med det angivna lösenordet.


Nu kan vi inte bara se eventuella fel under uppstarten, utan ocksÄ hantera dem.
NÀr arbetet Àr slutfört mÄste den virtuella maskinen stÀngas av. Detta kan göras antingen inuti operativsystemet genom att skicka en signal för avstÀngning, eller genom att ge kommandot system_powerdown i QEMU-monitoren. Detta kommer att vara ekvivalent med att trycka pÄ strömbrytaren en gÄng: operativsystemet inuti den virtuella maskinen kommer att avslutas smidigt.
Installation av operativsystemet
Den virtuella maskinen har full tillgÄng till serverns diskar och kan dÀrför anvÀndas för att installera operativsystemet manuellt. Den enda begrÀnsningen Àr mÀngden RAM-minne: ISO-bilden fÄr inte alltid plats i RAM-minnet. Vi tilldelar fyra gigabyte i RAM-minnet för att lagra bilden i /mnt:
mount -t tmpfs -o size=4G tmpfs /mnt
Vi laddar ocksÄ ner installationsbilden 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
Nu kan vi starta 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
Flagga -boot d stÀller in uppstart frÄn CD-enheten. Vi ansluter med VNC-klienten och ser FreeBSD-laddaren.

Eftersom internetÄtkomst skedde genom att hÀmta en adress via DHCP kan det vara nödvÀndigt att starta det just installerade systemet och korrigera nÀtverksinstÀllningarna efter konfigurationen. I vissa fall kan det krÀvas installation av drivrutiner för nÀtverkskortet, eftersom nÀtverkskortet som Àr installerat i servern och emuleras i VM skiljer sig.
Slutsats
Denna metod för att organisera fjÀrrÄtkomst till serverkonsolen anvÀnder en del av serverns resurser, men stÀller inga sÀrskilda krav pÄ serverns hÄrdvara, och kan dÀrför utföras under nÀstan vilka förhÄllanden som helst. AnvÀndningen av en sÄdan lösning gör det betydligt lÀttare att diagnostisera programvarufel och ÄterstÀlla funktionaliteten hos den fjÀrrstyrda servern.
KĂ€lla: habr.com
