Virtualizacija poslužitelja - KVM
Preuzeo temu: Marko Ivandić
Sadržaj |
Razvoj virtualizacije
Današnje vrijeme razvoja moderne ICT tehnologije promijenilo je način poslovanja mnogih tvrtki koje su pomoću tih tehnologija unaprijedile svoje poslovanje. Ta međusobna ovisnost ICT tehnologije i poslovanja tvrtki stvara proces u kojem tvrtke sa svojm zahtjevima stimuliraju daljnji razvoj tehnologije, a koja zatim stvara nove poslovne mogućnosti za tvrtke. Jedan od takvih novih IT trendova koji se u velikoj mjeri već koristi je koncept virtualizacije, a stanje na tržištu te IT zahtjevi stvaraju tendenciju daljnjeg njegovog razvoja. To je relativno nov koncept, iako početke njegovog razvoja možemo naći u 60-im godinama 20. stoljeća. Sam pojam virtualizacije označava stvaranje virtualnog okružja unutar nekog stvarnog sustava. Ta osobina je otvorila mnoge mogućnosti u IT industriji.
Potreba za virtualizacijom
Razvoj virtualizacije u 60-im godinama prošlog stoljeća, započeo je u IBM-u. U tom projektu cilj je bio da se logički podijeli fizički sustav na različite virtualne strojeve kako bi se poboljšala iskorištenost sklopovlja. Želja je bila da se dobije sustav koji će istovremeno podržavati izvođenje većeg broja procesa i programa. U to vrijeme programska oprema i sklopovlje je bilo veoma skupo pa je izgradnja takvog sustava značilo omogućavanje velikih financijskih ušteda za korisnika. IBM je u slijedećih dvadesetak godina razvio niz računala koja su podržavala stvaranje virtualnih sustava. Daljnjim napretkom i razvojem računala te složenosti programa rasla je i iskorištenost računala te se izgubila potreba za virtualizacijom. Ponovni uspon virtualizacije počinje početkom 21. stoljeća sa novim x86 arhitekturama gdje se počinje opet javljati problem neiskorištenosti poslužitelja i potreba za virtualizacijom.
Glavnim razlozima za uvođenje virtualizacije smatraju se :
- neiskorištenost hardvera – stručnjaci su izračunali da se od 10 do 20 posto procesorkog vremena uglavnom koristi, sve ostalo ostaje neiskorišteno te je ovaj razlog jedan od najvažnijih za razvoj virtualizacije
- nedostatak prostora u podatkovnim centrima – velikom potrebom za poslužiteljima koji su radili razne zadatke nastale su velike sobe u koje su smještani ti poslužitelji te se pojavljuje problem sa njihovim smještajem
- zelene inicijative zahtjevaju bolju energetsu efikasnost –već smo spomenuli problem s prostorom, a slijedeći problem je energija koju su koristili ti poslužitelji. Spomenuli smo da su oni uglavnom manji dio vremena stvarno aktivni no količina energije koju su trošili je bila konstantna te su s tog gledišta vrlo neefikasni
- nakupljanje troškova administracije sustava – održavanje velikog broja tih poslužitelja je zahtjevalo i određen broj stručanjaka koju su vodili brigu oko tih sustava te na taj način stvarali dodatan trošak
Prednosti uvođenje virtualizacije
Poslovanje znatnog dijela tvrtki ovisi u potpunosti o informatičkoj infrastrukturi. Desi li se kod takvih tvrtki da padne neki od neki od ključnih IT servisa, poslovanje staje. Taj zastoj je za tvrtku najčeće vrlo skup te tvrtke teže da pronađu kritične točke svojeg poslovanja te se osiguraju od spomenutih rizika. Osim IT servisa čiji pad znači trenutni prekid poslovanja, bitni su i ostali servisi poput e-maila čiji pad neće prouzrokovati zastoj poslovanja, ali će ga znatno otežati Spomenuti razlozi su ralog okretanja IT inženjena prema korištenju virtualizacije. Tom tehnologijom se omogućuje visoka razina dostupnosti IT serverske infrastrukture na način da se u jednoj fizičkoj jedinici omogućuje stvaranje više virtualnih jedinica koje su neovisne jedna o drugoj. Server kao fizička jedinica tada ima zadaću samo pogonjenja virtualiziranih poslužitelja te nije zadužen za pohranu podataka. Postavljenjem dvije ili više takovih serverskih jedinica stvaramo okružje u kojem se virtualizirani poslužitelji mogu dinamički seliti sa jedne fizičke jedinice na drugu što omogućuje brojne prednosti:
• ukoliko dođe do kvara bilo koje fizičke jedinice, ostale fizičke jedinice automatski preuzimaju virtualizirane poslužitelje odnosno opterećenje, te ne dolazi do kritičnih zastoja u poslovanju
• ukoliko je pojedina fizička jedinica preopterećana, ostale jedinice mogu preuzeti neke virtualizirane poslužitelje i tako efektivno distribuirati opterećenje.
• u slučaju da moramo isključiti neku jedinicu radi popravka, nadogradnje, zamjene ili slično, jednostano ručno migriramo virtualizirane poslužitelje na druge fizičke jedinice što nam omogućuje gašenje fizičke jedinice bez zastoja funkcionalnosti.
• znatno je pojednostavljen backup i restauracija čitavih poslužitelja. Virtualizirani poslužitelji omogućuju da se izradi njihova preslika u radu, a ta se preslika može po potrebi iznimno brzo uspostaviti i na drugoj opremi.
Vrste virtualizacija
Virtualizacijska tehnologija koristi više nekoliko različitih koncepata virtualizacije.
VPN
VPN ( eng. Virtual private network) označava virtualnu privatnu mrežu. Ta vrsta virtualizacije stvara u javnom okružju kakav je Internet privatno okruženje da bi se omogućila privatna komunikacija između računala koja su unutar te mreže. Da bi se to ostvarilo koristi se tzv. IP tuneliranje. Za komunikaciju se koriste IP paketi virtualne mreže koji se enkapsuliraju i koji se šalju u javnu mrežu
Virtualizacija memorije
Virtualizacije memorije je postupak kojim se u clusterima računala stvara jedinstveni bazen RAM memorije kojem mogu pristupati sva računala. Na taj način sva povezana računala imaju veće RAM kapacitete što omogućuje povećanje učinkovitosti i lakše dijeljenje resursa. Realizacija ove vrste virtualizacije se obavlja na način da se fizički adresni prostori preslikavaju u virtualne adresne prostore preko kojih se pristupa stvarnim memorijskim adresama u raznim spremnicima. Zbog korištenja udaljene memorije može se dogoditi da padne brzina izvođenja korištene memorije.
Osim virtualizacije memorije, moguća je i virtualizacija memorijskih spremnika. Virtualizacijom se stvara virtualna memorija većeg kapaciteta na način da se spajaju razdvojene lokacije fizička memorije u jednu logičku memorijsku cijelinu većeg kapaciteta. Na taj način se omogućuje bolja iskoristivost memorije, no isto tako za dohvat podataka se koristi prevoditelj koji adrese logičke memorije pretvara u adrese fizičke memorije te se zbog toga može usporiti izvođenje. Složenost izvedbe prevoditelja ili neusklađenost različitih programskih izvedbi je također jedna od negativnosti ove vrste virtualizacije.
Virtualizacija programa
Virtualizacija programa je vrsta virtualizacije koja omogućava stvaranje virtualnog okruženja na nekom operacijskom sustavu i pokretanja određenog programa. Često je korištenja klijenata za neki mrežni protokol pomoću kojeg se koriste datoteke i sredstva nekog udaljenog računala odnosno distribuiranog sustava. Na taj način se omogućuje izvođenje programa na sustavima za koje nisu izravno oblikovani te se izbjegava virtualizacija cijelog OS-a na klijentskom računalu. Virtualizacijom programa računalo ustvari preusmjerava zahtjeve za pristup datotekama u druge posebno oblikovane datoteke preko kojih se dobivaju podaci.
Virtualizacija računalnog sustava
Virtualizacija računalnog sustava se ostvaruje stvaranjem virtualnog okruženja koje omogućava da se opreracijski sustavi pokreću neovisno o platformi na kojoj se nalaze. Virtualni operacijski sustavi se ponašaju kao da su izravno povezani na sklopovlje, no u stvarnosti oni se izvode unutar virtualne okoline koja im omogućuje izvršavanje.
Postoji nekoliko tipova virtualizacija:
Potpuna virtualizacija
Potpuna virtualizacija omogućuje izvršavanje nepromijenjenog operacijskog sustava na virtualnom računalu. Sklopovsko okruženje uključuje procesor, radnu memoriju te ododatne memorijske i periferne uređaje. Da bi se omogućila ta vrsta virtualizacije procesor mora podržavati poseban skup naredbi koja su uključena u novijim AMD-V i Intel-VT sklopovlju. Naredbe koje mijenjaju konfiguraciju računalnih sustava ili čije ponašanje ovisi o konfiguraciji računalnih sustava se presreću i zamjenjuju sa skupom sigurnih naredbi . Uglavnom se to radi binarnim prevođenjem naredbi. Veza između sklopovlja i operacijskih sustava osvaruje se putem Virtual machine monitora.
Potpuna virtualizacija uključuje ispunjavanje slijedeća tri zahtjeva:
1. Ekvivalencija – programi pokrenuti na virtualnom sustavu ponašaju se potpuno jednako kao što bi se ponašali na odgovarajućem realnom sustavu
2. upravljanje sredstvima – virtualizacijska podrška potpuno upravlja virtualnim sredstvima i
3. učinkovitost – većina strojnih instrukcija može se izvoditi izvan virtualne okoline
Djelomična virtualizacija
Povijesna preteća potpune virtualizacije je bila djelomična virtualizacija.Ona uključuje virtualizaciju samo određenog dijela sklopovlja. Najčešće se radi o memorijskom prostoru koji se odvaja i dodjeljuje pojedinoj virtualnoj komponenti. Korisnici tog memorijskog prostora su uglavnom programi koji se pokreću u virtualnom okruženju.
Uz dijelomičnu virtualizaciju postoji i paravirtualizacija. To je metoda koja omogućuje simuliranje operacijskih sustava, ali za razliku od potpune virtualizacije ne simulira se izravan rad sa sklopovljem već se komunikacija obalja preko posebnog Hypervizora.
Sklopovski potpomognuta virtuallizacija
Ova vrsta virtualizacije je ustvari podrška potpunoj virtualizaciji. Već smo spomenuli da je za ostvarenje potpune virtualizacije važno omogućiti da se posebnim naredbama presreću važne sustavske naredbe kako bi se osigurala konzistentnost sustava. Radi toga su razvijeni procesori sa skupom naredbi koji to omogućuju. Primjer takvih tehnologija su Intel VT i AMD-V. Virtualne okoline koje koriste sklopovsku podršku su Wmware, Xen, Linux KVM i Mycrosoft Hyper-V.
Virtualizacija na razini OS-a
Virtualzacija na razini operacijskog sustava je virtualizacijska metoda kod koej jezgra operacijskog sustava omogućuje pokretanje više izoliranih instancij prostora korisničkih aplikaccija umjesto jedne. Svaka od tih instanci, iz pozicije korisnika unutar nje izgleda kao stvarni poslužitelj.
Sigurnosni problemi vezani za virtualizaciju
Virtualizacija zbog svojih značajki daje određene mogućnosti koje mogu zadovoljavati sigurnosne ciljeve te se smatra kvalitetnim rješenjem u tom pogledu. Ona može ogrančiti procesorska, memorijska i druga računalna sredstva koja se koriste, a to uključuje i ograničavanje okruženja u kojem se izvode razni sustavi. Šteta koju može prouzročiti virus ili crv ostaje ograničena na pojedini virtualni sustav koji je pod napadom dok su drugi virtualni sustavi netaknuti. Također se omogućuje veća dostupnost sustava jer se sustavi koji su relativno nestabilni mogu odvojiti od ostalih te u slučaju njihovog rušenja ostali sustavi normalno rade. Primjer sigurnosne tehnologije koja se može zasnivati na virtulalizacije je Sandbox. Riječ je o zaštiti računala i podataka od neželjenih i štetnih programa koja se provodi tako da se ograničavaju računalna sredstva dostupna tim programima.
To mogu biti:
- procesorsko vrijeme i memorija
- mrežni pristup
- pristup datotekama na lokalnom ili nekom drugom poslužitelju i
- učitavanje datoteka s udaljenog poslužitelja
Primjeri takvih alata su appleti.
KVM virtualizacija
Osnovne značajke
Kernel-based Virtual Machine (KVM) je jedna od novijih generacija open source virtualizacije. Cilj je bio da se stvori moderan hypervizor na iskustvima prošlij generacija a koji će omogućiti u punoj mjeri iskorištenje modernog hardvera.
KVM je implementiran kao loadable jezgreni modul koji pretvara Linux jezgru u pravi snažni hypervizor. Nekoliko je razloga zašto se KVM smatra vrlo kvalitetnim rješenjem za virtualizaciju. Kao prvo, napravljen je nekon što je nastao koncept sklopvljem potpomognute virtualizacije. Upravo zato KVM koristi Intel VT-X ili AMD-V jezgre koje omogućuju bolji rad. Kao drugo, s obzirom da za hypervizora možemo reći da je zbog svojih komponenti za baratanje s memorijom, procesima, mrežom i drugim stvarim mali operacijski sustav, KVM koristi Linuxovu jezgru za rad. Alati koji se nalaze u toj jezgri su vrlo kvalitetni jer su razvijani mnogo godina te došli do visokog stupnja kvalitete. KVM je dio Linux jezgre od 2007. godine odnosono od 2.6.20 verzije jezgre.
KVM arhitektura
U KVM arhitekturi virtualna mašina je implementirana kao običan Linux proces. To omogućuje KVM- u da koristi sve pogodnosti koje omogućuje Linux jezgra. Za komunikaciju s uređajima se koristi alat QEMU koji brine za njihovo funkcioniranje. Za rad s memorijom KVM nasljeđuje snažne karakteristike Linux-a. Memorijom za virtualnu mašinu se barata kao sam svakom drugom memorijom koju koristi Linux proces. Koriste se također najnovije Intelove EPT i AMDove RVI mogućnosti koje su stigle sa novim jezgrama.
Praktični primjer
Kao praktični primjer koristit ćemo instalaciju KVM na Fedoru 16
1. Instalacija KVM na Fedoru zahtjeva nekoliko koraka, a ukratko možemo reći da je potrebno :
- instalirati hypervizor
- kreirati virtualnu mašinu
- instalirati operacijski sustav
Podrška za KVM je ugrađena u Fedora Linux ljusku od verzije 7 nadalje, no alati koji se koriste za održavnje i korištenje virtualnog sustava, nisu. Ovdje ćemo koristiti četiri vrste programskih alata.
- qemu-kvm
- virt-manager
- virt-viewer
- python-virtinst
Na početku se moramo osigurati da su ovi alati instalirani na našem sustavu. Naredbe za to su:
rpm – q qemu-kvm virt-manager virt-viewer python-virtinst
Ukoliko nam sustav javi da traženi alati nisu instalirani možemo ih instalirati koristeći yum alat za instaliranje
Prijavimo se kao root korisnik
su –
te instaliramo potrebne pakete
rpm install qemu-kvm virt-manager virt-viewer python-virtinst
2. Slijedeći korak bit će pokretanje alata Virtual Machine Manager kojeg ćemo koristiti za kreiranje virtualnog okruženja. Kod pokretanja programa potrebno će biti unijeti root password te se zatim prikazuje slijedeći ekran.
Na slici se prikazuju virtualne mašine koje su pokrenute u sustavu. Na početku popis se sastoji od samo jedne na kojeg je VMM spojen, a to je operativni sustav domaćina.
Na slici je prikazan status virtualne mašine koji bi trebao biti Active, ukoliko nije, povezati se može klikom na Connect.
Za kreiranje nove virtualne mašine kliknemo na Create a new virtual machine.
3. Otvara nam se novi prozor koji od nas traži da upišemo naziv nove virtualne mašine. Takođe je prikazana konekcija koju koristimo te mogućnost odabira medija s kojeg ćemo instalirati novi operacijski sustav koji nazivamo, gost sustav. Uobičajeno je to CD ili DVD no možemo instalirati koristeći FTP preko interneta. Zatim ćemo morati popuniti konkretn podatke poput točne lokacije s koje instaliramo operacijski sustav. Pogotovo razne Linux distribucije.
4. Na slijedećem ekranu ćemo definirati i vrstu operacijskog sustava koji instaliramo te njegovu verziju.
5. Slijedeći korak je određivanje veličine fizičke memorije koja će se koristiti te broj jezgi koji varira ovisno o računalu koje se koristi. Ovdje se treba voditi računa o drugim virtualnim mašinama koje su na sustavu te se izvode paralelno s mašinom koju konfiguriramo.
6. Slijedi postavljanje veličine memorijskog prostora koji će operacijski sustav koristiti. Na raspolaganju nam je slobodan prostor koji koisti operacijski sustav domaćina, a virtualna mašina ovim odabirom stvara prividnu sliku na podatkovnom sustavu te dobija na raspolaganje traženi prostor.
7. Nakon što smo unijeli sve tražene postavke, pojavljuje se posljdnji ekran na kojem se nalazi specifikacija svega što smo odabrali. Zatim slijedi poznati slijed instalacije operativnog sustava.
Također, treba naglasiti da je ova instalacija napravljena korištenjem Grafičkog sučelja, no također se mogla napraviti i pokretanjem virt-install –era u command-noj liniji te definiranjem istih postavki preko commandne linije pokrenuti.
Literatura
-BUG: Duh u mašini. Dostupno 12.01.2012. na [1]
-Carnet: Virtualizacija računala. Dostupno 12.01.2012. na [2]
-IT Sistemi: Virtualizacija. Dostupno 12.01.2012. na [3]
-Loginet: Konsolidacija i virtualizacija. Dostupno 12.01.2012.na [4]
-Microsoft: Konsolidacija servera virtualizacijom Dostupno 12.01.2012. na [5]
-S&T: Konsolidacija i virtualizacija servera. Dostupno 12.01.2012. na [6]
-S&T : Virtualizacija donosi značajne troškovne uštede. Dostupno 12.01.2012. na [7]
-Technotopia: Installing and Configuring Fedora KVM Virtualizatio. Dostupno 12.01.2012. na [8]
-Wikipedia: KVM, Dostupno 21.12.2011. na [9]
-Wikipedia: Full virtualization, Dostupno 21.12.2011. na [10]
-Wikipedia: Virtualzation, Dostupno 21.12.2011. na [11]
-Wikipedia: QEMU, Dostupno 21.12.2011. na [12]
--mivandic 15:44, 16. siječnja 2012. (CET)