IP-KVM preko QEMU

IP-KVM preko QEMU

Otklanjanje problema prilikom pokretanja operativnog sistema na serverima bez KVM-a može biti izazovno. Kreiramo KVM-over-IP putem oporavnog imidža i virtuelne mašine.

U slučaju problema sa operativnim sistemom na udaljenom serveru, administrator učitava oporavni imidž i obavlja potrebne radove. Ova metoda odlično funkcioniše kada je uzrok kvara poznat, a oporavni imidž i instalirani operativni sistem na serveru pripadaju istoj porodici. Ako uzrok kvara još uvek nije poznat, potrebno je pratiti proces pokretanja operativnog sistema.

Udaljeni KVM

Pristup konzoli servera može se ostvariti putem ugrađenih sredstava, kao što su IPMI ili Intel® vPro™, ili korišćenjem eksternih uređaja poznatih kao IP-KVM. Postoje situacije u kojima su sve od navedenih tehnologija nedostupne. Ipak, to nije kraj. Ako se server može daljinski ponovo pokrenuti sa oporavnog imidža zasnovanog na operativnom sistemu iz porodice Linux, može se brzo organizovati KVM-over-IP.

Oporavni imidž predstavlja punopravan operativni sistem koji se smešta u radnu memoriju. Tako možemo pokretati bilo koji softver, uključujući virtuelne mašine (VM). To znači da možemo pokrenuti VM unutar koje će raditi operativni sistem servera. Pristup konzoli VM može biti organizovan, na primer, putem VNC-a.

Za pokretanje operativnog sistema servera unutar VM potrebno je naznačiti diskove servera kao diskove VM. U operativnim sistemima iz porodice Linux fizički diskovi se predstavljaju kao blok uređaji tipa /dev/sdX, sa kojima se može raditi kao sa običnim datotekama.

Neki hipervizori, kao što su QEMU i VirtualBox, omogućavaju skladištenje podataka VM u "sirovom" formatu, to jest samo podaci skladišta bez metapodataka hipervizora. Tako VM može da se pokrene koristeći fizičke diskove servera.

Ova metoda zahteva resurse za pokretanje oporavnog imidža i VM unutar njega. Međutim, sa četiri ili više gigabajta radne memorije, to neće biti problem.

Priprema okruženja

Kao virtuelna mašina može se koristiti lagan i jednostavan program QEMU, ki ponavadi ni del slike za obnovitev, zato jo je treba namestiti posebej. Slika za obnovitev, ki jo ponujamo strankam, temelji na Arch Linux, v katerem se uporablja upravitelj paketov pacman.

Najprej je treba potrditi, da slika za obnovitev uporablja najnovejše različice programske opreme. Preverjanje in posodobitev vseh komponent operacijskega sistema je mogoče izvesti z naslednjim ukazom:

pacman -Suy

Po posodobitvi je treba namestiti QEMU. Ukaz za namestitev preko pacmana bo videti tako:

pacman -S qemu

Preverimo, ali je qemu pravilno nameščen:

root@sel-rescue ~ # qemu-system-x86_64 --version
Različica emulatorja QEMU 4.0.0
Avtorskih pravic (c) 2003-2019 Fabrice Bellard in razvijalci projekta QEMU

Če je vse v redu, je slika za obnovitev pripravljena za delo.

Zagon virtualnega stroja

Najprej je treba določiti količino virov, dodeljenih VM, in ugotoviti poti do fizičnih diskov. V našem primeru bomo dodelili dva jedra in dva gigabajta pomnilnika virtualnemu stroju, disk pa se nahaja na poti /dev/sda in /dev/sdb. Zaženimo 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

Nekaj podrobnosti o tem, kaj pomeni vsak od parametrov:

  • -m 2048M — dodeljujemo 2 GB pomnilnika VM;
  • -net nic -net user — dodajamo preprosto omrežno povezavo preko hipervizorja z uporabo NAT (Prevod omrežnih naslovov);
  • -enable-kvm — omogočamo polno virtualizacijo KVM (Kernel Virtual Machine);
  • -cpu host — povemo virtualnemu procesorju, naj pridobi vse funkcionalnosti procesorja strežnika;
  • -M pc — tip opreme PC;
  • -smp 2 — virtualni procesor mora biti dvojedrni;
  • -vga std — izberemo standardno grafično kartico, ki ne podpira visoke ločljivosti zaslona;
  • -drive file=/dev/sda,format=raw,index=0,media=disk
    • file=\/dev\/sdX — pot do blok naprave, ki predstavlja disk strežnika;
    • format=raw — označimo, da so vsi podatki v določeni datoteki v "surovem" formatu, torej kot na disku;
    • index=0 — številka diska, ki se mora povečati za eno enoto za vsak naslednji disk;
    • media=disk — virtualni stroj mora to shranjevanje prepoznati kot disk;
  • -vnc :0, password — zaženemo privzeti VNC strežnik na 0.0.0.0:5900, kot avtentikacijo uporabljamo geslo;
  • -monitor stdio — komunikacija administratorja z qemu bo potekala preko standardnih vhodno-izhodnih tokov.

Če je vse v redu, se bo zagnal QEMU monitor:

QEMU 4.0.0 monitor - vpiši 'help' za več informacij
(qemu)

Določili smo, da avtentikacija poteka preko gesla, vendar nismo navedli samega gesla. To lahko naredimo z ukazom change vnc password v QEMU-monitorju. Pomembna opomba: geslo ne sme biti daljše od osem znakov.

(qemu) spremeni vnc geslo
Geslo: ******

Potem se lahko povežemo z vsakim VNC odjemalcem, kot je Remmina, preko IP-naslova našega strežnika s posredovanim geslom.

IP-KVM preko QEMU

IP-KVM preko QEMU

Zdaj ne samo, da vidimo morebitne napake med nalaganjem, temveč se z njimi tudi borimo.

Ko končamo z delom, je treba virtualni stroj izključiti. To lahko storimo bodisi znotraj operacijskega sistema, tako da pošljemo signal za izklop, ali pa v QEMU monitorju damo ukaz system_powerdown To bo ekvivalentno enkratnemu pritisku na gumb za izklop: operacijski sistem znotraj virtualnega stroja se bo gladko izklopil.

Namestitev operacijskega sistema

Virtualni stroj ima popoln dostop do diskov strežnika in ga lahko zato uporabimo za ročno namestitev operacijskega sistema. Edina omejitev je količina pomnilnika: ISO-sliko ni vedno mogoče shraniti v pomnilnik. Dodelimo štiri gigabajte pomnilnika za shranjevanje slike v /mnt:

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

Ponosno prenesemo namestitveno sliko operacijskega sistema 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

Zdaj lahko zaženemo 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

Zastava -boot d nastavi nalaganje iz CD-pogona. Povežemo se z VNC odjemalcem in vidimo nalagalnik FreeBSD.

IP-KVM preko QEMU

Ker je za dostop do interneta uporabljeno pridobivanje naslova prek DHCP, je morda po nastavitvi treba zagnati pravkar nameščen sistem in popraviti omrežne nastavitve. V nekaterih primerih lahko potrebujemo namestitev gonilnikov omrežnega vmesnika, ker se omrežna kartica, nameščena v strežniku in emulirana v VM, razlikujeta.

Zaključek

Ta način organizacije oddaljenega dostopa do konzole strežnika porabi del sredstev strežnika, vendar ne postavlja posebnih zahtev do strojne opreme strežnika, zato ga je mogoče izpeljati skoraj v vseh pogojih. Uporaba takšnega rešitve znatno olajša diagnostiko programske napake in obnovitev delovanja oddaljenega strežnika.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster