
Rješavanje problema pri pokretanju operativnog sustava na serverima bez KVM-a — nije lak zadatak. Kreiramo KVM-over-IP putem slike za oporavak i virtualne mašine.
U slučaju problema s operativnim sustavom , administrator učitava sliku za oporavak i provodi potrebne radnje. Ova metoda odlično funkcionira kada je uzrok kvara poznat, a slika za oporavak i instalirani operativni sustav na serveru pripadaju jednoj obitelji. Ako uzrok kvara još nije poznat, potrebno je pratiti tijek pokretanja operativnog sustava.
Udaljeni KVM
Pristup konzoli servera može se dobiti pomoću ugrađenih alata, poput IPMI ili Intel® vPro™, ili putem vanjskih uređaja, poznatih kao IP-KVM. Postoje situacije kada sve navedene tehnologije nisu dostupne. Međutim, to nije kraj. Ako se server može udaljeno ponovno pokrenuti s slikom za oporavak temeljenom na operativnom sustavu Linux, moguće je brzo organizirati KVM-over-IP.
Slika za oporavak predstavlja potpuno funkcionalni operativni sustav koji se smješta u radnu memoriju. Na taj način možemo pokretati bilo koji softver, uključujući i virtualne mašine (VM). To znači da možemo pokrenuti VM unutar kojeg će raditi operativni sustav servera. Pristup konzoli VM može se organizirati, na primjer, putem VNC-a.
Za pokretanje operativnog sustava servera unutar VM potrebno je odrediti diskove servera kao diskove VM. U operativnim sustavima obitelji Linux fizički diskovi predstavljaju se kao blok uređaji tipa /dev/sdX, s kojima se može raditi kao s običnim datotekama.
Neki hipervizori, kao što su QEMU i VirtualBox, omogućuju pohranu podataka VM u 'sirovom' formatu, odnosno samo podaci pohrane bez metapodataka hipervizora. Na taj način, VM se može pokrenuti s fizičkih diskova servera.
Ovakav pristup zahtijeva resurse za pokretanje slike za oporavak i VM unutar nje. Međutim, u prisustvu četiri i više gigabajta radne memorije, to neće biti problem.
Priprema okruženja
Kao virtualnu mašinu može se koristiti lagani i jednostavan program. , koja često nije deo slike za oporavak, pa se mora instalirati odvojeno. Slika za oporavak koju nudimo klijentima zasniva se na , u kojoj se koristi menadžer paketa pacman.
Prvo je potrebno osigurati da slika za oporavak koristi najnovije verzije softvera. Proverite i ažurirajte sve komponente OS-a sledećom komandom:
pacman -Suy
Nakon ažuriranja potrebno je instalirati QEMU. Komanda za instalaciju putem pacmana biće:
pacman -S qemu
Proverimo da li je qemu ispravno instaliran:
root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU emulator verzija 4.0.0
Autorska prava (c) 2003-2019 Fabrice Bellard i developeri QEMU projekta
Ako je sve u redu, slika za oporavak je spremna za rad.
Pokretanje virtuelne mašine
Prvo je potrebno odlučiti koliko resursa će biti dodeljeno VM-u, i utvrditi put do fizičkih diskova. U našem slučaju dodelićemo dva jezgra i dva gigabajta RAM-a virtuelnoj mašini, dok se diskovi nalaze na putu /dev/sda i /dev/sdb. Pokrećemo 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
Malo detaljnije o tome šta svaki parametar znači:
- -m 2048M — dodeljujemo 2 GB RAM-a za VM;
- -net nic -net user — dodajemo jednostavno povezivanje sa mrežom preko hipervizora koristeći NAT (Network Address Translation);
- -enable-kvm — uključujemo potpunu virtualizaciju KVM (Kernel Virtual Machine);
- -cpu host — kažemo virtuelnom procesoru da preuzme sve funkcionalnosti procesora servera;
- -M pc — tip opreme PC;
- -smp 2 — virtuelni procesor treba da bude dvojezgarni;
- -vga std — biramo standardnu grafičku kartu koja ne podržava velika ekran rezolucije;
- -drive file=/dev/sda,format=raw,index=0,media=disk
- file=\/dev\/sdX — put do blok uređaja koji predstavlja disk servera;
- format=raw — označavamo da su svi podaci u navedenom fajlu u "sirom" obliku, tj. kao na disku;
- index=0 — broj diska, mora se povećavati za jedan za svaki sledeći disk;
- media=disk — virtuelna mašina treba da prepozna ovu jedinicu kao disk;
- -vnc :0, password — pokrećemo VNC server podrazumevano na 0.0.0.0:5900, koristeći lozinku za autorizaciju;
- -monitor stdio — komunikacija administratora sa qemu odvijaće se kroz standardne ulazno-izlazne tokove.
Ako je sve u redu, pokrenuće se QEMU monitor:
QEMU 4.0.0 monitor - upišite 'help' za više informacija
(qemu)
Navedeno je da autorizacija ide putem lozinke, ali nismo naveli samu lozinku. To se može uraditi slanjem komande change vnc password u QEMU-monitor. Važna napomena: lozinka ne može biti duža od osam simbola.
(qemu) promjena vnc lozinke
Lozinka: ******
Nakon toga možemo se povezati bilo kojim VNC klijentom, poput Remmina, putem IP adrese našeg servera i navedenom lozinkom.


Sada ne samo da vidimo moguće greške tijekom pokretanja, već se također možemo boriti protiv njih.
Nakon završenih radova potrebno je isključiti virtualnu mašinu. To se može učiniti unutar operativnog sustava, slanjem signala za isključivanje, ili putem naredbe system_powerdown u QEMU monitoru. To će biti ekvivalentno jednom pritisku tipke za isključivanje: operativni sustav unutar virtualne mašine će se glatko isključiti.
Instalacija operativnog sustava
Virtualna mašina ima potpun pristup diskovima servera i stoga se može koristiti za ručnu instalaciju operativnog sustava. Jedino ograničenje odnosi se na količinu radne memorije: ISO slika ne može uvijek stati u radnu memoriju. Dodijelit ćemo četiri gigabajta u radnu memoriju za pohranu slike u /mnt:
mount -t tmpfs -o size=4G tmpfs /mnt
Također ćemo preuzeti instalacijski obraz operativnog sustava 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
Sada možemo pokrenuti 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
Oznaka -boot d postavlja pokretanje s CD pogona. Povezujemo se VNC klijentom i vidimo bootloader FreeBSD-a.

Budući da je za pristup internetu korišteno dobivanje adrese putem DHCP-a, možda će nakon postavljanja biti potrebno podići upravo instalirani sustav i ispraviti mrežne postavke. U nekim slučajevima može biti potrebna instalacija drajvera mrežnog adaptera, jer se mrežna kartica instalirana na serveru i emulirana u VM-u razlikuju.
Zaključak
Ovaj način organizacije daljinskog pristupa konzoli servera troši dio resursa servera, ali ne postavlja nikakve posebne zahtjeve prema hardverskoj konfiguraciji servera, pa se može izvoditi u gotovo svakim uvjetima. Korištenje takvog rješenja značajno olakšava dijagnostiku softverskih grešaka i obnovu funkcionalnosti udaljenog servera.
Izvor: habr.com
