IP-KVM via QEMU

IP-KVM via QEMU

Att felsöka operativsystemsstartproblem på servrar utan KVM är ingen lätt uppgift. Vi skapar en KVM-over-IP för oss själva via en återställningsbild och en virtuell maskin.

Vid problem med operativsystemet på en fjärrserver, laddar administratören ner återställningsbilden och utför det nödvändiga arbetet. Denna metod fungerar utmärkt när orsaken till felet är känd och återställningsavbildningen och operativsystemet som är installerat på servern kommer från samma familj. Om orsaken till felet ännu inte är känd måste du övervaka hur operativsystemet laddas.

Fjärrstyrd KVM

Du kan komma åt serverkonsolen med inbyggda verktyg som IPMI eller Intel® vPro™, eller via externa enheter som kallas IP-KVM. Det finns situationer där alla listade tekniker inte är tillgängliga. Detta är dock inte slutet. Om servern kan fjärrstartas om till en återställningsavbildning baserad på ett Linux-operativsystem, kan KVM-over-IP snabbt organiseras.

Återställningsavbildningen är ett fullfjädrat operativsystem som finns i RAM. Således kan vi köra vilken programvara som helst, inklusive virtuella maskiner (VM). Det vill säga du kan starta en virtuell dator inom vilken serveroperativsystemet kommer att köras. Tillgång till VM-konsolen kan organiseras, till exempel via VNC.

För att köra serveroperativsystemet inuti en virtuell dator måste du ange serverdiskarna som virtuella datorer. I operativsystem i Linux-familjen representeras fysiska diskar av blockenheter i formen / Dev / sdX, som kan arbetas med som vanliga filer.

Vissa hypervisorer, som QEMU och VirtualBox, låter dig lagra VM-data i en "rå" form, det vill säga endast lagringsdata utan hypervisormetadata. Således kan den virtuella datorn startas med hjälp av serverns fysiska diskar.

Den här metoden kräver resurser för att starta återställningsavbildningen och den virtuella datorn inuti den. Men om du har fyra eller fler gigabyte RAM kommer detta inte att vara ett problem.

Att förbereda miljön

Du kan använda ett lätt och enkelt program som en virtuell maskin QEMU, som oftast inte är en del av återställningsavbildningen och måste därför installeras separat. Återställningsbilden vi erbjuder kunderna är baserad på Arch Linux, som använder en pakethanterare pacman.

Det första du behöver göra är att se till att återställningsbilden använder den senaste programvaran. Du kan kontrollera och uppdatera alla OS-komponenter med följande kommando:

pacman -Suy

Efter uppdateringen måste du installera QEMU. Installationskommandot via pacman kommer att se ut så här:

pacman -S qemu

Låt oss kontrollera att qemu är korrekt installerat:

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

Om allt är så är återställningsbilden redo att användas.

Starta en virtuell maskin

Först måste du bestämma mängden resurser som allokeras till den virtuella datorn och ta reda på sökvägarna till de fysiska diskarna. I vårt fall kommer vi att allokera två kärnor och två gigabyte RAM till den virtuella maskinen, och diskarna finns längs vägen / Dev / sda и / Dev / sdb. Låt oss starta VM:n:

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 var och en av parametrarna betyder:

  • -m 2048M — allokera 2 GB RAM till den virtuella datorn;
  • -net nic -net användare — lägga till en enkel anslutning till nätverket genom en hypervisor som använder NAT (Network Address Translation);
  • -aktivera-kvm — aktivera fullständig KVM (Kernel Virtual Machine)-virtualisering;
  • -Cpu-värd — vi säger åt den virtuella processorn att få all funktionalitet hos serverprocessorn;
  • -M PC — Typ av PC-utrustning.
  • -smp 2 — Den virtuella processorn måste vara dubbelkärnig.
  • -vga std — välj ett standard grafikkort som inte stöder stora skärmupplösningar;
  • -enhet fil=/dev/sda, format=rå, index=0, media=disk
    • file=/dev/sdX — Sökväg till blockenheten som representerar serverdisken.
    • format=rå — vi noterar att i den angivna filen är all data i "rå" form, det vill säga som på en disk;
    • index = 0 — disknummer, måste öka med en för varje efterföljande disk;
    • media=disk — den virtuella maskinen måste känna igen denna lagring som en disk;
  • -vnc :0, lösenord — starta VNC-servern som standard vid 0.0.0.0:5900, använd ett lösenord som auktorisering;
  • -monitor stdio — Kommunikation mellan administratören och qemu kommer att ske genom standardin-/utgångsströmmar.

Om allt är i sin ordning kommer QEMU-monitorn att starta:

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

Vi angav att auktorisering sker med ett lösenord, men angav inte själva lösenordet. Detta kan göras genom att skicka kommandot change vnc password till QEMU-monitorn. Viktigt: Lösenordet får inte vara mer än åtta tecken.

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

Efter detta kan vi ansluta till vilken VNC-klient som helst, till exempel Remmina, med hjälp av IP-adressen till vår server med lösenordet vi angav.

IP-KVM via QEMU

IP-KVM via QEMU

Nu ser vi inte bara möjliga fel i laddningsstadiet, utan vi kan också hantera dem.

När du är klar måste du stänga av den virtuella maskinen. Detta kan göras antingen inuti operativsystemet genom att skicka en signal till avstängning eller genom att ge kommandot system_powerdown i QEMU monitor. Detta kommer att motsvara att trycka på avstängningsknappen en gång: operativsystemet inuti den virtuella maskinen kommer att stängas av smidigt.

Installation av operativsystem

Den virtuella maskinen har full åtkomst till serverdiskarna och kan därför användas för att manuellt installera operativsystemet. Den enda begränsningen är mängden RAM: ISO-bilden kan inte alltid placeras i RAM. Låt oss tilldela fyra gigabyte RAM för att lagra bilden i / mnt:

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

Vi kommer också att ladda 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 du starta VM:n:

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övel d installerar uppstart från CD-enhet. Vi ansluter till en VNC-klient och ser FreeBSD bootloader.

IP-KVM via QEMU

Eftersom att erhålla en adress via DHCP användes för att komma åt Internet, kan det efter konfiguration vara nödvändigt att starta upp i det nyinstallerade systemet och korrigera nätverksinställningarna. I vissa fall kan det vara nödvändigt att installera drivrutiner för nätverkskort, eftersom nätverkskortet som är installerat på servern och det som emuleras i den virtuella datorn är olika.

Slutsats

Denna metod för att organisera fjärråtkomst till serverkonsolen förbrukar en del av serverresurserna, men den ställer inga speciella krav på serverns hårdvara och kan därför implementeras under nästan alla förhållanden. Att använda den här lösningen gör det mycket lättare att diagnostisera programvarufel och återställa funktionaliteten på en fjärrserver.

Källa: will.com

Lägg en kommentar