Virtualizacija korištenjem KVM-a i QEMU-a - GASERI


Virtualizacija je okvir ili metodologija dijeljenja resursa računalnog hardvera u više izvršnih okruženja, primjenom jednog ili više koncepata ili tehnologija poput hardverskog i softverskog particioniranja, dijeljenja vremena, djelomične i...



Onion Details



Page Clicks: 0

First Seen: 03/15/2024

Last Indexed: 09/18/2024

Domain Index Total: 397



Onion Content



Virtualizacija korištenjem KVM-a i QEMU-a - Virtualizacija je okvir ili metodologija dijeljenja resursa računalnog hardvera u više izvršnih okruženja, primjenom jednog ili više koncepata ili tehnologija poput hardverskog i softverskog particioniranja, dijeljenja vremena, djelomične ili potpune strojne simulacije, emulacije, kvalitete usluge, i mnogih drugih. Pojednostavljeno rečeno, moderna virtualizacija omogućava da se više instanci operacijskih sustava izvodi istovremeno na jednom računalu, što ima čitav niz primjena. Nekoliko kratkih videoklipova o primjenama virtualizacije objavio je Red Hat u serijalu pod imenom Real tech iz 2007. godine. Radi se o reklami i zato ne zahtijeva posebno predznanje. Virtualizacija je tijekom 2000-ih godina ubrzano razvijala i bila jedna od najpopularnijih tema u području informacijske tehnologije, a danas je dovoljno zrela da je koristimo gotovo rutinski. Interes za virtualizacijom je nastao prvenstveno zato što omogućuje: Virtualizacija se danas koristi gotovo svuda, ili se namjerava preći na nju kod sljedeće nadogradnje. Primjerice, posebna vrsta virtualnog stroja zvana virtualni privatni poslužitelj (engl. virtual private server , kraće VPS) omogućava pristup ovom web sjedištu putem Tor onion usluge (adresu .onion možete pronaći u podnožju stranice). Porast snage računala, specifično povećanje broja jezgara procesora i količine memorije, učinio je da jedno računalo ima dovoljno resursa za izvođenje više operacijskih sustava te je, usputno s razvojem tehnologije virtualizacije koja omogućuje takvo dijeljenje računala u više njih, razvijena i ekonomija iznajmljivanja virtualnih računala (u "oblaku") po potrebi. Potreba za virtualizacijom - Potreba za virtualizacijom proizlazi iz 4 osnovna razloga: Povećanjem snage i padom cijene računala došlo se do točke kada je postalo neisplativo imati više poslužitelja koji većinu vremena stoje neiskorišteni jer imaju previše resursa za zadaće koje su im dodijeljene. Moguće je više usluga podržati jednim poslužiteljem, ali to otvara niz mogućih sigurnosnih problema, pa je virtualizacijom omogućeno da se na svakom računalu pokrene nekoliko izdvojenih "podračunala" koja dijele njegove resurse i svako od njih funkcionira neovisno. Virtualizacija je također omogućila IT odjeljenjima da se riješe prastarih računala i njih nepromijenjene pokrenu u virtualnom obliku na jednom od novih računala. To štedi električnu energiju, a time i novac. Osnovni pojmovi virtualizacije - Virtualni stroj, često i virtualna mašina (engl. virtual machine ), je softversko okruženje koje simulira stvarni hardver i unutar kojeg se može izvršavati određeni operacijski sustav. Gostujući operacijski sustav (engl. guest operating system ) je operacijski sustav koji se izvršava unutar virtualnog stroja. Operacijski sustav domaćina (engl. host operating system ) je operacijski sustav fizičkog računala na kojem se izvršavaju monitor virtualnih strojeva i virtualni strojevi. Primjerice, ukoliko korisnik koristi Windows Virtual PC da bi pokrenuo Windows XP Mode na Windowsima 7, tada je Windows 7 operacijski sustav domaćina, a Windows XP gostujući operacijski sustav. Monitor virtualnih strojeva (engl. virtual machine monitor ), ponekad nazvan hipervizor (engl. hypervisor ), upravlja hardverskim resursima i prilagođava ih zahtjevima više gostujućih operacijskih sustava i aplikacijskih stogova. Na temelju fizičkog hardvera nad kojim se izvršavaju virtualni strojevi on predstavlja virtualni skup procesorskih, memorijskih, ulazno/izlaznih i diskovnih resursa koji su dostupni svakom virtualnom stroju. Popekovi i Goldbergovi uvjeti - Gerald J. Popek i Robert P. Goldberg su 1974. godine objavili rad Formal Requirements for Virtualizable Third Generation Architectures u kojem formaliziraju uvjete računalne arhitekture za podršku virtualizaciji , a koji se i u današnje vrijeme smatra referentnim polazištem pri dizajniranju monitora virtualnih strojeva. Uvjeti/značajke koje oni navode su: Vrste virtualizacije - Osnovne vrste virtualizacije su: Potpuna virtualizacija - Potpuna virtualizacija podrazumijeva simulaciju hardvera fizičkog stroja što omogućava softverima (gostujućem operacijskom sustavu i njegovim programima) da se pokreću bez promjene. Neka od rješenja za potpunu virtualizaciju su: Mi ćemo u nastavku koristiti QEMU, KVM i Virtual Machine Manager. Na operacijskom sustavu Microsoft Windows možete koristiti Oracle VirtualBox. Hardverski potpomognuta virtualizacija - Hardverski potpomognuta virtualizacija, ponekad nazvana i izvorna virtualizacija, je pristup koji omogućuje efikasnu potpunu virtualizaciju korištenjem mogućnosti hardvera na kojem radi, prvenstveno procesora. Podrška za hardverski potpomognutu virtualizaciju dodana je u obliku procesorskih ekstenzija za x86 procesore koje su neovisno implementirali Intel i AMD. Tako su nastale dvije tehnologije: Iako su one po specifikacijama različite, obje postižu isti cilj: omogućuju izvođenje virtualnih mašina s nepromijenjenim OS-ovima brzinom koja je vrlo slična situaciji kada se OS pokreće direktno na računalu. Prije uvođenja tih ekstenzija za virtualnu mašinu procesor je bilo potrebno emulirati, što je činilo da je virtualizirani OS u izvođenju bio bitno sporiji od onoga koji se izravno pokretao na računalu. Rješenje koje na Linuxu omogućuje hardverski potpomogntu virtualizaciju naziva se KVM . Razvila ga je tvrtka Qumranet, koju je kasnije kupio Red Hat . Kernel-based Virtual Machine (KVM) - KVM sustav omogućuje pokretanje virtualnih mašina na x86 sustavima koji podržavaju hardverski potpomognutu virtualizaciju. KVM koristi već spomenuti alat za potpunu virtualizaciju QEMU; QEMU podržava emulaciju brojnih platformi , a na x86 procesorima podržava emulaciju i BIOS-a i UEFI firmwarea . Linux jezgra podržava Intel VT-x od verzije 2.6.15, a AMD-V od verzije 2.6.16. KVM podržava obje tehnologije i dio je jezgre od verzije 2.6.20 , a sastoji se od 3 modula: Ima li procesor u našem računalu podršku za hardverski-potpomognutu virtualizaciju možemo provjeriti tako da u /proc/cpuinfo tražimo zastavice: KVM podržava i druge arhitekture osim x86(-64), specifično ARM, PowerPC i S/390 , a bilo je i pokušaja podrške IA-64 . Virtualizacija ulazno/izlaznih jedinica - Virtualizacija ulazno/izlaznih jedinica omogućuje virtualnim mašinama izravno korištenje perifernih uređaja (npr. mrežnih adaptera i grafičkih procesora, diskovnih kontrolera i slično) na računalu na kojem rade. Imena dvaju tehnologija koje omogućuju virtualizaciju upravitelja ulaznim/izlaznim jedinicama (IOMMU) na x86 procesorima su: Obje tehnologije proširenje su postojećih tehnologija za hardverski potpomognutu virtualizaciju. Todo - Ovdje treba dodati opise za Intel VT-c i SR-IOV . QEMU i KVM - Hint - Za dodatne primjere naredbi proučite stranicu QEMU na ArchWikiju . Kako bismo pokrenuli QEMU kao običan korisnik, moramo biti član grupe kvm . U slučaju da to nismo, možemo svojeg korisnika (npr. u primjeru korisnik ) dodati u tu grupu naredbom: Nakon pokretanja naredbe potrebna je odjava i ponovna prijava da bi postavka imala utjecaja. Za stvaranje slika diskova za QEMU-ove virtualne strojeve iskoristit ćemo QEMU-e pomoćne alate , specifično naredbu qemu-img ( dokumentacija ). Parametrom -f naznačit ćemo da želimo sliku tipa qcow2, što je druga verzija formata QEMU Copy On Write ( više detalja na Wikipediji ). Za stvaranje slike diska veličine 50 gigabajta, naredba je oblika: Više informacija o korištenju alata qemu-img moguće je pronaći u odjeljku Creating a hard disk image stranice QEMU na ArchWikiju . Recimo da smo odlučili instalirati Arch Linux na taj disk. Nakon preuzimanja instalacijskog medija archlinux-2023.04.01-x86_64.iso , instalaciju Arch Linuxa unutar QEMU-a možemo pokrenuti naredbom: Ovom naredbom smo pokrenuli QEMU koji stvara virtualni stroj arhitekture x86_64 (dakle, iste kao domaćin pa ne vrši emulaciju) i: Više detalja možemo pronaći u man stranici qemu(1) (naredba man 1 qemu ) ili u dijelu Invocation službene dokumentacije . Zadatak - Paravirtualizacija - Paravirtualizacija, za razliku od potpune virtualizacije, je virtualizacijska tehnika koja s ciljem poboljašanja performansi ne emulira sav hardver računalnog sustava i stoga očekuje da je gostujući operacijski sustav prilagođen radu u virtualnoj mašini. Najznačajnije rješenje u ovom području je Xen ( Wikipedia ), čiji razvoj financira Linux Foundation . Xen je ranije bio u vlasništu tvrtke Citrix Systems , koja je kupila XenSource . Informacije o konfiguriranju Xena na Arch Linuxu moguće je pronaći na stranici Xen na ArchWikiju . Ovu vrstu virtualizacije spominjemo samo radi potpunosti i ovdje se detaljnije njome nećemo baviti. Virtualizacija na razini operacijskog sustava - virtualizacija na razini operacijskog sustava je virtualizacijska metoda kod koje jezgra operacijskog sustava omogućuje pokretanje više izoliranih instanci prostora korisničkih aplikacija umjesto samo jedne. Svaka od tih instanci, koje se često nazivaju kontejneri (engl. containers ) ili zatvori (engl. jails ), iz pozicije korisnika unutar nje izgleda kao stvarni poslužitelj. Linux Containers (LXC) ( Wikipedia , ArchWiki ) je virtualizacija na razini operacijskog sustava namijenjena za Linux koja koristi: Popularnija rješenja temeljena na kontrolnim grupama jezgre i izolaciji imenika su systemd-nspawn ( ArchWiki ) i Docker ( Wikipedia , ArchWiki ). Alternativna rješenja koja se u praksi sreću su Linux-VServer i OpenVZ za Linux, Jails za FreeBSD i Solaris Containers/Zones za Oracle Solaris. Svakodnevna primjena virtualizacije - Virtualizacija se relativno brzo preselila sa poslužitelja na radne stanice i desktope običnih korisnika. Korisnicima je omogućen istovremeni rad s dva ili više operacijskih sustava, što otvara čitav niz primjena, primjerice: VirtualBox - VirtualBox je najfleksibilnije besplatno i djelomično slobodno rješenje za potpunu virtualizaciju. Može se instalirati i koristiti na većini modernih operacijskih sustava današnjice , a podrška za gostujuće operacijske sustave je također prilično dobra . VirtualBox se najviše koristi kod desktop korisnika. Jedna od značajki koja se često ističe je to što omogućuje korisniku da integrira radnu površinu operacijskog sustava domaćina s radnom površinom gostujućeg operacijskog sustava i na isti način radi s programima oba sustava. To se naziva bešavni (engl. seamless ) način rada. Baratanje modulima jezgre - Kako procesor računala na kojem demonstriramo rad s VirtualBoxom ima podršku za hardverski potpomognutu virtualizaciju, moramo prvo odčitati automatski učitane KVM-ove module. U protivnom VirtualBox neće imati pristup hardverski-potpomognutoj virtualizaciji koju procesor podržava. Za učitavanje i odčitavanje modula koris...