RASPOREĐIVANJE VIRTUALIZIRANIH USLUGA U RAČUNALNOM … · ili odabranim rezervacijama, ID-u...
Transcript of RASPOREĐIVANJE VIRTUALIZIRANIH USLUGA U RAČUNALNOM … · ili odabranim rezervacijama, ID-u...
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
ZAVRŠNI RAD br. 5147
APLIKACIJA ZA REZERVACIJU I
RASPOREĐIVANJE VIRTUALIZIRANIH
USLUGA U RAČUNALNOM OBLAKU
Renato Orgulan
Zagreb, lipanj 2017
Zahvala
Veliku zahvalnost iskazujem svojoj mentorici prof. dr. sc. Lei Skorin-Kapov na iskazanom
povjerenju, vodstvu i svim pruženim informacijama.
Zahvaljujem se na strpljenju, odvojenom vremenu, kao i na svim savjetima koji su mi
pomogli prilikom izrade ovog završnog rada.
Sadržaj
Uvod ...................................................................................................................................... 1
1. Virtualizacija ................................................................................................................. 2
1.1 Povijest virtualizacije .............................................................................................. 3
1.2 Funkcioniranje i arhitektura virtualizacije .............................................................. 3
1.3 Područja virtualizacije ............................................................................................ 5
2. Virtualizacija poslužitelja .............................................................................................. 7
2.1 Nadzornik ................................................................................................................ 8
2.2 Virtualni strojevi ..................................................................................................... 8
2.3 Karakteristike poslužitelja ...................................................................................... 8
2.4 XenServer virtualizacijska platforma ..................................................................... 9
3. Funkcionalni zahtjevi aplikacije .................................................................................. 12
3.1 Arhitektura sustava ............................................................................................... 12
3.2 Dijagram obrasca uporabe: registrirani korisnik .................................................. 13
3.3 Sekvencijski dijagrami .......................................................................................... 15
4. Implementacija aplikacije: Rezervacijski poslužitelj i raspoređivač ........................... 18
4.1 Arhitekturni obrazac MVC ................................................................................... 18
4.2 Baza podataka ....................................................................................................... 19
4.3 Programska podrška .............................................................................................. 21
4.3.1 Zahtjevi za rezervaciju virtualnih strojeva .................................................... 21
4.3.2 Pokretanje i zaustavljanje virtualnih strojeva ................................................ 23
4.4 Primjer korištenja aplikacije Rezervacijski poslužitelj i raspoređivač ................. 26
Zaključak ............................................................................................................................. 28
Literatura ............................................................................................................................. 29
Sažetak ................................................................................................................................. 31
Summary .............................................................................................................................. 32
Skraćenice ............................................................................................................................ 33
Privitak ................................................................................................................................ 34
1
Uvod
Potreba za učinkovitim i elastičnim uvođenjem usluga programske podrške u računalnom
oblaku (engl. Software as a Service - Saas), u današnje vrijeme uvodi korištenje tehnologije
virtualizacije. Cilj ovog rada je izrada aplikacije za rezervaciju i raspoređivanje
virtualiziranih usluga na udaljenom virtualizacijskom poslužitelju i proučavanje tehnologija
upravljanja virtualizacijskim poslužiteljem na daljinu.
Rad je usmjeren na virtualizaciju poslužitelja, ali obuhvaća sva glavna područja
virtualizacije. Glavna poglavlja posvećena su opisu izrade aplikacije Rezervacijski
poslužitelj i raspoređivač (skraćeno VMposlužitelj) i njezinim funkcionalnostima.
VMposlužitelj namijenjen je za rezervaciju i raspoređivanje virtualiziranih usluga u
računalnom oblaku. Na temelju rezervacija, na virtualizacijskom poslužitelju se prema
rasporedu pokreću i zaustavljaju virtualni strojevi (engl. Virtual Machine - VM).
Glavni cilj je oblikovati prototip sustava za igranje zasnovano na računalnom oblaku s
primjenom u školama, s ciljem modernizacije učenja. Sustav je izgrađen od klijentske
aplikacije za korisničku autorizaciju implementirane u radu [1]. Aplikacija komunicira s
VMposlužiteljem koji je implementiran u ovom radu, za potrebe slanja zahtjeva rezervacije
virtualnih strojeva. Korisnici klijentske aplikacije su profesori koji su jedinstveni po svojem
ID-u i odgovorni za svoje studente, pri čemu je svaki student određen oznakom ID-a svog
mentora. Registrirani korisnik putem klijentske aplikacije šalje zahtjeve za rezervaciju
poslužitelju, a od poslužitelja može zatražiti i informacije o svim postojećim rezervacijama
ili odabranim rezervacijama, ID-u profesora ili popisu studenata, ali i IP adresama računala
[1].
Prvo poglavlje objašnjava razvoj virtualizacije kroz povijest, opisana je arhitektura i način
na koji funkcionira tehnologija virtualizacije, kao i popis područja primjene virtualizacije.
U drugom poglavlju glavni fokus je na virtualizaciji poslužitelja, njegovim karakterističnim
segmentima poput nadzornika i virtualnih strojeva. Prikazane su pozitivne i negativne strane
koje nosi tehnologija virtualizacije, a završni dio odnosi se na XenServer virtualizacijsku
platformu na kojoj se bazira rad aplikacije. U trećem poglavlju opisani su funkcionalni
zahtjevi aplikacije. Četvrto poglavlje objašnjava izradu aplikacije i korištene tehnologije.
Završni dio odnosi se na sažeti opis aplikacije, korištenu literaturu i zaključak.
2
1. Virtualizacija
Virtualizacija je proces stvaranja softverske (ili virtualne) verzije stvari poput operacijskog
sustava, uređaja za pohranu, poslužitelja ili mrežnih resursa. Podrazumijeva apstrakciju i
enkapsulaciju navedenih sredstava. Virtualizacijom se postiže bolja iskoristivost računalnih
infrastruktura jer se omogućuje njihovo istovremeno korištenje u različitim sustavima. Za
običnog korisnika može se definirati kao rad više logičkih ili aplikacijskih procesa koji se
izvode na nekom fizičkom uređaju s namjerom sigurnog i pouzdanog dijeljenja resursa
između raznih virtualnih okruženja.
Pojam „virtualizacija“ predstavlja apstraktni prikaz pojedinih funkcionalnosti i resursa. Za
korisnika nema razlike između stvarnog i virtualnog ostvarenja funkcionalnosti, ali u
virtualnoj izvedbi se stvarne vrijednosti i aktivnosti razlikuju od onih prikazanih korisniku.
U praksi stvarni operacijski sustav (engl. operating system - OS) komunicira izravno sa
sklopovljem računala (engl. hardware), za razliku od virtualnog OS-a koji ima za korisnika
sva obilježja stvarnog sustava, ali komunikaciju obavlja s drugim sustavom. Pritom taj drugi
sustav predstavlja sklopovlje u komunikaciji s virtualnim sustavom. Sklopovlje se simulira
programski, pa je zapravo riječ o virtualnom sklopovlju. Slika 1 demonstrira situaciju gdje
korisnik skup računala koristi kao jedino računalo preko virtualnog sučelja, kao i simulaciju
rada nekoliko sustava na jednom računalu [2][3].
Slika 1 Virtualizacija računalnog sustava (preuzeto s [2])
3
1.1 Povijest virtualizacije
Sredinom 1960-ih IBM Watson Research Center bio je sjedište M44/44X projekta kojemu
je cilj bio logički podijeliti fizički sustav na različite virtualne strojeve u namjeri poboljšanja
iskoristivosti sklopovlja. Glavni stroj bio je IBM 7044 (M44), a svaki virtualni stroj (44X)
bio je njegova eksperimentalna slika. Adresni prostor 44X-a bio je definiran u hijerarhiji
memorije stroja M44, implementiran putem virtualne memorije i multi programiranja. Zbog
skupog sklopovlja i veće iskoristivosti računala, ovakav sustav osigurao je financijsku
uštedu.
Na IBM-ovim računalima razvio se kompatibilni sustav CTSS (engl. Compatible Time
Sharing System) na MIT-u koji omogućuje dijeljenje sredstava računalnog sustava između
različitih korisnika. Kasnije se razvijao čitav niz računala čije je sklopovlje podržavalo
virtualne sustave odgovarajućih virtualnih platformi poput CP-40 i CP-67. IBM-ovi virtualni
strojevi simulirali su identično IBM-ovo sklopovlje na kakvom su se izvodili, a VMM (engl.
Virtual Machine Monitor) sučelje izvodilo se izravno na sklopovlju.
Virtualizacija je uvođenjem 32-bitnih arhitektura te porastom složenosti i zahtjevnosti
programa bila u padu popularnosti, da bi uvođenjem x86 arhitektura ponovo izašla kao
rješenje za problem neiskorištenosti poslužitelja. Osim mogućnosti sklopovski
potpomognute virtualizacije, pojavljuju se platforme za virtualizaciju poput VMvare, Xen,
VirtualBox, Hyper-V i druge [2][5].
1.2 Funkcioniranje i arhitektura virtualizacije
Virtualizacija opisuje tehnologiju u kojoj se aplikacija, gostujući OS ili pohrana podataka
daleko odvlače od pravih temeljnih dijelova sklopovlja ili programske podrške. Ključna
uporaba virtualizacijske tehnologije je virtualizacija poslužitelja, koja koristi sloj
programske podrške pod nazivom nadzornik (engl. hypervisor) kao sredstvo oponašanja
temeljnog sklopovlja. U praksi to često uključuje CPU memoriju, I/O, mrežni promet. OS
namijenjen za gosta obično u interakciji s pravim sklopovljem, sada komunicira emuliranjem
programske podrške tog sklopovlja, pri čemu gostujući OS nema saznanje da je na
virtualiziranom sklopovlju. Sustav ovakve izvedbe ne pruža jednake performanse kao
izvedba na stvarnom sklopovlju, ali koncept je efikasan i funkcionalan jer gostujući OS nema
4
potrebu za potpunu upotrebu osnovnog sklopovlja. Uklanjanjem ovisnosti za danu
sklopovsku platformu omogućena je veća fleksibilnost, kontrola i izoliranost. Isprva
namijenjen za virtualizaciju poslužitelja, koncept se proširio na aplikacije, mreže i podatke.
Arhitektura virtualizacije je konceptualni model koji određuje raspored i međusobne odnose
pojedinih komponenti koje su uključene u isporuku virtualne verzije OS-a, poslužitelja,
uređaja za pohranu ili mrežnih resursa. Slika 2 prikazuje razliku između tradicionalne
arhitekture računarstva i arhitekture virtualizacije. Virtualizirana arhitektura razlikuje se po
tome što može imati više OS-a (OS) i aplikacija (APP), za razliku od tradicionalne
arhitekture, pri čemu se obje izvode na jednom fizičkom računalu.
Virtualizacija se obično temelji na nadzornicima čija je zadaća izolirati OS i aplikacije tako
da korisnik fizičkog stroja može pokrenuti više VM-ova koji dijele fizičke računalne resurse
sustava poput memorijskog prostora, ciklusa procesora i propusnosti mreže. Postoje
nadzornici tipa 1 koji se izravno pokreću na sklopovskom sustavu domaćina. Osiguravaju
izravno pokretanje na sklopovskom sustavu domaćina, pružaju visoku dostupnost i
upravljanje resursima. Takav izravan pristup omogućuje bolje performanse, skalabilnost i
stabilnost. Primjeri su Citrix XenServer, VMware ESXi, Microsoft Hyper-V. Nadzornici
tipa 2 poznati su kao nadzornici domaćini, direktno ugrađeni na sustav domaćina, za razliku
od prethodnog tipa koji „sjede“ na vrhu sklopovlja. Svaki gostujući OS ili VM radi iznad
nadzornika. Primjeri su Vmware Workstation, Virtual PC i Oracle VM VirtualBox [6].
5
Slika 2 Tradicionalna i virtualna arhitektura (preuzeto s [6])
1.3 Područja virtualizacije
Mrežna virtualizacija je metoda koja koristi svu raspoloživu fizičku opremu za
umrežavanje u jedan resurs. To je proces dijeljenja širine pojasa u više neovisnih kanala, od
kojih se svaki može dodijeliti poslužiteljima i uređajima u stvarnom vremenu. Ideja je da
virtualizacija prikrije istinsku složenost mreže razdvajanjem u dijelove koji se mogu
upravljati, poput tvrdog diska koji upravlja datotekama. Uz distribuirane kanale propusnost
mreže se dramatično povećava, što omogućuje bržu isporuku usluga i aplikacija.
Virtualizacija pohrane obuhvaća sastavljanje fizičkih tvrdih diskova u jedan klaster. Ovaj
način virtualizacije je ekonomičan i vrlo jednostavan za izvedbu. Vrlo je praktično za
planiranje oporavka od oštećenja, jer se podaci pohranjeni na virtualnom spremniku mogu
replicirati i pohraniti na drugo mjesto. Kvalitetnom pohranom u centralizirani sustav mogu
se eliminirati poteškoće i troškovi upravljanja višestrukim uređajima za pohranu.
Virtualizacija radne površine odvaja okruženje radne stanice od fizičkog uređaja i
konfigurira kao „virtualni površinsku infrastrukturu“ (VDI). Glavna prednosti ove metode
je korisnički pristup svim osobnim datotekama i aplikacijama s bilo kojeg mjesta i na bilo
kojem računalu.
6
Virtualizacija aplikacije proces je u kojem se aplikacije virtualiziraju i isporučuju se s
poslužitelja na krajnji korisnikov uređaj, poput tableta, prijenosnog računala i pametnog
telefona. Omogućen je pristup aplikaciji s bilo kojeg mjesta uz prisutnu internetsku vezu.
Virtualizacija poslužitelja predstavlja najčešći tip virtualizacije. Predstavlja prikrivanje
poslužiteljskih resursa od korisnika poslužitelja. Virtualizaciju obavlja virtualni stroj,
nadzornik, koji stvara virtualne verzije računala i operacijskih sustava te ih zajedno ubacuje
u jedan veliki fizički poslužitelj s namjerom učinkovitog korištenja sklopovskih resursa.
Također omogućuje korisnicima istovremeno pokretanje različitih operacijskih sustava na
istom stroju [3][7].
7
2. Virtualizacija poslužitelja
U prethodnom poglavlju spomenuto je da virtualizacija poslužitelja obuhvaća kreiranje
virtualnih verzija računala i instalaciju instanci operacijskih sustava na veliki fizički
poslužitelj. Memorija, procesor, mrežne veze i ostali resursi na poslužitelju, programski se
racionalno raspoređuju.
Slika 3 prikazuje komponente arhitekture XenServer poslužitelja, koji predstavlja samo
jednu od različitih virtualizacijskih tehnologija o čijem govoru će biti riječi u narednim
poglavljima. Kontrolna domena (A) predstavlja Linux VM s većim prioritetima pristupu
sklopovlju nego gostujući operacijski sustavi. Upravlja mrežom i I/O skladištem svih
gostujućih virtualnih strojeva. Xen nadzornik (B) je tanki sloj programske podrške koji radi
na vrhu sklopovlja. Pruža sloj apstrakcije koji omogućuje svakom fizičkom poslužitelju
pokretanje jednog ili više virtualnih poslužitelja, razdvajanje operacijskog sustava i njegovih
aplikacija od osnovnog sklopovlja. Sloj sklopovlja (C) sadrži komponente fizičkog servera,
uključujući memoriju, CPU, diskove. Linux VM (D) putem kontrolne domene pristupa
pohrani i mrežnim resursima, dok pristup memoriji i CPU ostvaruje putem Xen-a. Windows
VM (E) jednako tako ostvaruje pristup putem kontrolne domene, a Xen osigurava podršku
za Intel VT i AMD-V virtualizacijsku tehnologiju [8].
Slika 3 Komponente arhitekture XenServer poslužitelja (preuzeto s [8])
8
2.1 Nadzornik
Nadzornik ili virtualni monitor stroja predstavlja virtualizacijski sloj koji odvaja operacijski
sustav i virtualni stroj. Prednosti nadzornika temelje se u sposobnosti pokretanja više
virtualnih strojeva, pri čemu svaki stroj koji je upravljan nadzornikom ima privid da su svi
resursi dodijeljeni samo za njega. Apstrakcija koja se odvija u nadzorniku čini virtualni stroj
neovisan o temeljnom sklopovlju. To omogućuje da se bilo koji virtualni stroj prebaci
između lokalnih ili udaljenih virtualiziranih poslužitelja, koji ima potrebne i dostupne
resurse, bez neželjenih situacija poput prekida. To svojstvo često se naziva „live migration“.
Virtualni strojevi međusobno su izolirani iako svi rade na istom fizičkom poslužitelju. Prekid
rada ili pad sustava na jednom virtualnom stroju nema utjecaja na druge strojeve, što čini
model nadzornika izuzetno sigurnim [9].
2.2 Virtualni strojevi
Virtualni stroj je operacijski sustav OS-a ili aplikacijsko okruženje instalirano na
programsku podršku koja oponaša hardware. Na virtualnom stroju za krajnjeg korisnika
nema razlike u odnosu na korištenje fizičkog računala. Za upravljanje virtualnim strojevima
koriste se različite virtualizacijske tehnologije. U ovom radu koristi se platforma Citrix
XenServer, optimizirana za virtualizaciju aplikacije, radne površine i poslužitelja. Za rad s
virtualnim strojevima, Citrix je izbacio platformu i nadzornu ploču XenCenter putem koje
se prati i upravlja rad sa XenServerom. Na virtualne strojeve moguće je instalirati različite
operacijske sustave poput Windows verzije 7, 8, 10, Arch Linux, Ubuntu, Debian i drugih.
Imenovanje, tip i dodjela resursa, kao što su GPU, CPU, memorija, obavlja se prilikom
kreiranja virtualnog stroja. Moguće je odabrati već postojeće predloške operacijskih sustava
pri čemu je rad strojeva međusobno neovisan [10].
2.3 Karakteristike poslužitelja
Virtualizacijska tehnologija u znatnom je porastu zadnjih godina. Snažan kapacitet,
migracija radnog opterećenja, proširene mogućnosti za oporavak od kvarova, bolja uporaba
resursa među glavnim su prednostima tehnologije virtualizacije poslužitelja.
9
Prednost virtualizacije poslužitelja očituje se kroz neovisan rad virtualnih strojeva na
različitim operacijskim sustavima, gdje prekid rada jednog stroja ne utječe na ostale.
Upravljanje infrastrukturom omogućuje odvajanje razvoja od opterećenja proizvodnje i
izdvajanje izoliranih resursa za testiranje ažuriranja. Virtualizacija smanjuje potrebne
resurse kabliranja, izgradnje podatkovnog centra, broj uređaja mrežne opreme i njihovo
održavanje. Zbog toga se izrada mrežne infrastrukture mnogo pojednostavljuje, samim time
su manje potrošnje električne energije. U slučaju kvara fizičkog poslužitelja, snimke
virtualnih strojeva i virtualnog poslužitelja omogućuju preslikavanje na drugi poslužitelj u
kratkom roku, bez većeg utjecaja na rad krajnjih korisnika. Prelazak na virtualne strojeve
pruža mogućnosti stvaranja snažne infrastrukture temeljene na oblaku.
Jednako tako virtualizacija ima svoje nedostatke. Nedostaci se najviše očituju kroz uvećane
fizičke kvarove, primjer je neispravan disk za pohranu podataka koji povlači prekid fizičkog
poslužitelja, a samim time i cijele virtualne infrastrukture. Problem mogu predstavljati
zahtijevanja za dodatnim sklopovskim resursima koja se unaprijed teško mogu procijeniti,
zato što se svaka programska potpora ponaša drugačije u virtualiziranom okruženju. Sve to
povlači nova znanja i vještine bez kojih administriranje virtualnih poslužitelja postaje
zahtjevno i pogubno za čitavu infrastrukturu. Za poslove migracije, kloniranja, snimki
potrebno je koristiti odgovarajuće alate XenCenter, Hyper-V Manager i druge [11][12].
2.4 XenServer virtualizacijska platforma
Virtualizacijske tehnologije postaju sastavni dio upravljanja i održavanja IT okruženja. Prije
porasta njihove popularnosti, mnogi su podatkovni centri imali poslužitelje i pohranu na
razini iskorištenosti 10% do ukupnog kapaciteta. Primjenom virtualizacije iskoristivost se
povećava i do 8 puta. U svrhu ove aplikacije koristi se platforma Citrix XenServer, a postoje
i druge poput VMware, Microsoft Hyper-V, Red Hat, Oracle.
Citrix Systems, Inc je američka multinacionalna softverska tvrtka koja pruža virtualizaciju
poslužitelja, aplikacija, umrežavanje, programsku potporu kao uslugu (SaaS) i tehnologije
računalnog oblaka. Citrixovi proizvodi uključuju i XenServer.
XenServer je kompletna platforma za virtualizaciju poslužitelja. Paket XenServer sadrži sve
što je potrebno za stvaranje i implementaciju virtualnih x86 računala koji rade na Xen-u,
10
paravirtualiziranom nadzorniku otvorenog koda. XenServer je optimiziran i za Windows i
Linux virtualne poslužitelje. Radi izravno na sklopovskom poslužitelju bez potrebe za
operacijskim sustavom, što rezultira učinkovitim i skalabilnim sustavom. XenServer
funkcionira apstrahiranjem elemenata iz fizičkog poslužitelja (resursi, tvrdi diskovi,
priključci...) tako da ih dodjeljuje virtualnim strojevima koji su na njemu pokrenuti.
Korištenje XenServer-a smanjuje troškove kroz:
Konsolidiranje više VM na fizičke poslužitelje
Smanjenje broja slika zasebnih diskova kojima treba upravljati
Dopuštanje jednostavne integracije s postojećim infrastrukturama za umrežavanje i
pohranu
Administriranje XenServer-a se obavlja na dva načina. Prva metoda je XenCenter, grafičko
korisničko sučelje temeljeno na Windows operacijskom sustavu. Omogućuje upravljanje
XenServer bazenima i zajedničkom pohranom, implementaciju i praćenje virtualnih
strojeva. XenServer Command-Line Interface (CLI) omogućuje administriranje pomoću xen
naredbi [13].
XenServer zahtijeva najmanje dva odvojena fizička x86 računala: jedan za XenServer
poslužitelj i drugi za pokretanje XenCenter aplikacije. XenCenter poslužitelj potpuno je
posvećen pokretanju virtualnih strojeva i ne koristi se za druge aplikacije. Računalo koje
pokreće XenCenter može biti bilo koje računalo opće namjene koje zadovoljava potrebno
sklopovlje i može se koristiti za pokretanje drugih aplikacija. XenServer poslužitelj mora
biti 64-bitni x86 stroj namijenjen služenju virtualnim strojevima.
Na slici 4 prikazano je grafičko sučelje XenCenter putem kojeg se ostvaruje pristup
XenServer poslužitelju. Sučelje se može podijeliti na 4 veće cjeline označene slovima. U
djelu A nalaze se poslužitelji s pripadnim virtualnim strojevima. U sklopu ovog rada, koristi
se poslužitelj rookie, s 4 virtualna stroja (PC 1 – PC 4). Za upravljanje rookie-jem, kao i
svim ostalim poslužiteljima potrebno se spojiti, desnim klikom miša i odabirom Connect. U
novootvorenom prozoru unose se podaci za uspostavljanje sesije, Server: IP adresa, User
name: ime poslužitelja, Password: lozinka. Pod B se nalazi traka s izbornikom koja pruža
sljedeće mogućnosti: Add New Server za povezivanje s poslužiteljima XenServer-a i
dodavanje na popis upravljanih resursa u XenCenter-u, New Storage za izradu spremišta za
pohranu koje se može dijeliti između upravljanih poslužitelja, New Pool za grupiranje
11
upravljanih poslužitelja u zajedničku bazu resursa s dijeljenom pohranom, New VM za
stvaranje novih virtualnih strojeva. U sklopu upravljačkog centra postoje i XenServer alati
koji se instaliraju na svakom Windows virtualnom stroju s ciljem izvođenja sljedećih radnji:
čisto isključivanje, ponovno podizanje sustava, obustava stroja, pregled performansi stroja,
migracija, izrada snimki i druge. C dio koristi se za prikaz pojedinosti vezanih za željeni
prikaz područja označenog slovom A. Može se ostvariti vremenski prikaz radnji kroz trajanje
sesije, prikaz po prethodnim pretraživanjima i slično. D dio odnosi se popis karakteristika
stroja vezanih uz instalirani operacijski sustav, prostor pohrane, sučelja mrežne kartice,
potrošnju procesora i radne memorije i drugih.
Slika 4 Grafičko sučelje XenCenter
12
3. Funkcionalni zahtjevi aplikacije
Cilj ovog rada proizašao je iz potrebe za učinkovitim uvođenjem usluga programske podrške
u računalnom oblaku. Aplikacija Rezervacijski poslužitelj i raspoređivač ima zadaću
rezerviranja i raspoređivanja virtualiziranih usluga na virtualizacijskom poslužitelju
(rookie). Rad se zasniva na arhitekturi klijent-poslužitelj, gdje korisnici putem klijentske
aplikacije šaju zahtjeve VMposlužitelju, koji zatim obrađuje upite i šalje odgovore. Primjena
je uvođenje interaktivnih usluga u školstvo, koje se baziraju na računalnom oblaku. Upiti
mogu biti zahtjev za dohvatom odabranih ili svih rezervacija, popisa studenata pojedinog
profesora, ID profesora, rezervacija prijavljenog korisnika ili IP adrese računala. Svaki novi
zahtjev za rezervaciju prolazi provjeru slobodnog termina i broja računala, nakon kojeg
slijedi odgovor o uspješnosti rezervacije.
3.1 Arhitektura sustava
Slika 5 prikazuje arhitekturu sustava koji je izgrađen od Klijentske aplikacije za autorizaciju
i Rezervacijskog poslužitelja i raspoređivača. Implementacija korisničkog pristupa
klijentskoj aplikaciji i poveznica na AAI@EduHr putem kojeg se pristupa LDAP imeniku
detaljno je obrađena u radu [1]. Spomenuti rad opisuje provedbu korisničke autorizacije
potrebne za pristup klijentskoj aplikaciji. Glavna veza za funkcioniranje sustava je između
klijentske aplikacije i VMposlužitelja. Putem te veze zahtjevi klijenata prosljeđuju se na
VMposlužitelj koji provjerava upite za rezervaciju i šalje odgovor o uspješnosti rezervacije
virtualnih strojeva. Paralelno je ostvarena veza između VMposlužitelja i Virtualizacijskog
poslužitelja na kojem su kreirani virtualni strojevi PC 1 – PC N. Pokretanje i zaustavljanje
virtualnih strojeva obavlja se na prethodno pohranjene termine rezervacije. Registrirani
korisnik od VMposlužitelja može dohvatiti podatke o IP adresama računala na koja se spaja
za korištenje usluge GamingAnywhere i igranje u računalnom oblaku.
13
Slika 5 Arhitektura sustava
3.2 Dijagram obrasca uporabe: registrirani korisnik
Dijagram obrazaca uporabe prikazuje ponašanje sustava, dijelova sustava ili konkretne klase
na način vidljiv korisniku sustava. Ponašanje sustava opisano je pomoću ciljeva i sudionika
koji predstavljaju apstrakciju korisnika sustava. Za ovu aplikaciju definiran je sudionik:
registrirani korisnik, koji je direktno povezan sa sustavom i inicijator je svih akcija. Slučaj
korištenja (engl. Use Case) predstavlja apstraktni zadatak kojeg izvode sudionici, pri čemu
je izvršavanje svakog slučaja neovisno od drugih slučajeva korištenja.
U nastavku je opisan UC dijagram, slika 6 koja prikazuje zahtjev za rezervaciju virtualnih
strojeva od strane registriranog korisnika. Zahtjevi na VMposlužitelj dolaze od korisnika
koji obavlja proces registracije na drugom servisu, ali je pohranjen u bazi podataka. Korisnik
u zahtjevu prosljeđuje datum pokretanja virtualnih strojeva, kao i vremena od kada do kada
14
želi koristi strojeve. Također, prenosi se ID korisnika koji je poveznik s tablicom podataka
korisnika. Korisnik je obaviješten porukom o uspješnosti rezervacije.
ELEMENT OPIS
Redni broj UC1
Namjena Rezerviracija virtualnih strojeva
Naziv Zahtjev za rezervaciju virtualnih strojeva
Glavni aktor Registrirani korisnik
Preduvjeti Registracija, prijava u sustav
Pokretač Registrirani korisnik
Opis osnovnog tijeka Registrirani korisnik šalje zahtjev za rezervaciju
poslužitelju
Opis mogućih odstupanja -
Tijek događanja:
1. Registrirani korisnik ispunjava obrazac i šalje zahtjev poslužitelju.
2. Poslužitelj obrađuje upit.
3. U ovisnosti o uspješnosti zahtjeva, podaci se pohranjuju u bazu podataka.
4. Šalje se povratna informacija korisniku o uspješnosti zauzeća virtualnih
strojeva.
15
Slika 6 Dijagram obrasca uporabe
3.3 Sekvencijski dijagrami
Za razliku od use-case dijagrama, kod kojih vremenska komponenta nije važna, sekvencijski
dijagram daje naglasak na vremenskom redoslijedu kojim se odvija međudjelovanje
sudionika u sustavu. Sekvencijski dijagram pripada skupini ponašajnih dijagrama. U
nastavku su prikazana dva primjera sekvencijskih dijagrama: zahtjev za rezervaciju i dohvat
svih rezervacija.
U prvom slučaju, slika 7 promatra se slanje zahtjeva registriranog korisnika za rezervaciju
virtualnih strojeva. Obrazac s podacima se šalje na poslužitelj, koji radi obradu zahtjeva.
Ako upit korisnika zadovoljava slobodan termin, rezervacija se pohranjuje u bazu podataka
i korisniku se šalje informacija o zaprimljenoj rezervaciji. U protivnom, korisnik dobiva
poruku o neuspjeloj rezervaciji.
16
Slika 7 Sekvencijski dijagram: Zahtjev za rezervaciju
Slika 8 prikazuje drugi primjer sekvencijskog dijagrama. Registrirani korisnik šalje zahtjev
poslužitelju o popisu svih rezervacija za zadani datum. Poslužitelj radi obradu zahtjeva,
dohvaća podatke iz baze podataka i šalje korisniku na ispis.
18
4. Implementacija aplikacije: Rezervacijski
poslužitelj i raspoređivač
U procesu izrade aplikacije Rezervacijski poslužitelj i raspoređivač (skraćeno
VMposlužitelj) korišteno je integrirano razvojno okruženje Visual Studio 2015 tvrtke
Microsoft, kao i njihova SQL (engl. Structured Query Language) Server relacijska baza
podataka. Za programski pristup XenServer poslužitelju potreban je API (engl. Application
programming interface) XenServer SDK (engl. Software Development Kit) za programski
jezik C#.
4.1 Arhitekturni obrazac MVC
Izgrađena web aplikacija bazira se na jednom od najčešće korištenih arhitekturnih obrazaca,
MVC (engl. Model-View-Controller). MVC je arhitekturni obrazac koji razdvaja aplikaciju
na tri odvojena dijela: model (engl. model), pogled (engl. view) i kontroler (engl. controller).
Arhitekturni obrazac MVC je u današnje vrijeme gotovo standard u razvoju razne
programske podrške. Glavna prednost MVC obrasca je jednostavno testiranje aplikacije te
odvajanje zaduženja pojedinog dijela (engl. Separation of Concerns). Jednostavno testiranje
aplikacije kreirane MVC obrascem znači kako su dijelovi aplikacije velikim dijelom
nezavisni i odvojeni te ih je kao takve i jednostavnije testirati. Odvajanje zaduženja (engl.
Separation of Concerns) zapravo prikazuje da je svaki od pojedinih dijelova aplikacije
zadužen za jednu ili više operacija, koje su između pojedinih dijelova nezavisne. U nastavku
su objašnjena zaduženja pojedinih dijelova (Slika 9) arhitekturnog obrasca MVC [14]:
Model (engl. model) – model upravlja ponašanjem i podacima same aplikacije. U
njega su ugrađena poslovna pravila te logika (engl. business logic). Model je najčešće
reprezentacija samih relacija baze podataka.
Pogled (engl. view) – pogled možemo promatrati kao samo korisničko sučelje
programa. Glavna zadaća pogleda je korisniku prikazati sve relevantne podatke kroz
strukturiran i jednostavan format. Također, kroz pogled se vrši sva interakcija
korisnika sa samim sustavom, ali u smislu korištenja sustava bez potrebne
programske naobrazbe, jer sav posao obavlja kontroler.
19
Kontroler (engl. controller) – glavna zadaća kontrolera je odgovaranje na akcije koje
inicira korisnik preko pogleda te prijenos podataka modela u pogled i obrnuto.
Kontroler je također zadužen i za svu drugu interakciju između ovih dvije
komponenata.
Slika 9 Obrazac MVC (preuzeto s [14])
4.2 Baza podataka
Za potrebe rada VMposlužitelja nužna je baza podataka s temeljnom zadaćom pohrane
zahtjeva za rezervaciju virtualnih strojeva. U procesu izrade aplikacije korištena je Microsoft
SQL Server 2016 relacijska lokalna baza podataka. U bazi se nalaze 3 tablice:
Korisnik – osnovni podaci registriranog korisnika,
Rezervacija – ključna tablica potrebna za rezervaciju virtualnih strojeva,
Racunalo – osnovne informacije o pojedinom virtualnom stroju.
Model baze podataka prikazan je na slici 10. Svaka tablica ima svoj primarni ključ (engl.
Primary Key - PK), a Korisnik i Racunalo dodatno imaju strani ključ (engl. foreign key -
20
FK) id_ korisnika odnosno id_racunala koji im omogućuje da su međusobno povezane s
tablicom Rezervacija. Korisnik-Rezervacija i Racunalo-Rezervacija imaju odnos veze 0..1-
*, što predstavlja situaciju da svaki korisnik ili računalo može koristiti više rezervacija,
odnosno da uz jednu rezervaciju ne možemo vezati više od jednog korisnika i računalo.
Registrirani korisnik u zahtjevu može tražiti više računala, ali se traženi broj računala
rastavlja na jednako toliko zahtjeva, čime se objašnjava prethodna tvrdnja o vezi 0..1-*.
U tablici Korisnik, PK predstavlja id_korisnika, dok su ostali podaci ključni za rad klijentske
aplikacije za korisničku autorizaciju [1].
Tablica Rezervacija koristi PK id_rezervacije koji ima postavljeno automatsko povećanje za
generiranje jedinstvenog broja kada se novi zapis pohrani u tablicu baze podataka. Polja
tablice vrijeme_od, vrijeme_do, datum i id_korisnika glavni su atributi koje registrirani
korisnik šalje u zahtjevu za rezervaciju. Parametar tablice id_racunala računa se u procesu
provjere zahtjeva i dodjeljuje iz liste slobodnih računala. Ostali atributi koriste se za siguran
način rada te efikasan rad algoritma za pokretanje virtualnih strojeva.
U tablici Racunalo nalaze se osnovne informacije o pojedinom računalu. PK je id_racunala,
s osnovnim atributima ip_adresa i ime pojedinog računala, odnosno virtualnog stroja.
Glavni zadaci baze podataka su:
Provjera podataka zaprimljenog zahtjeva za rezervaciju,
Pohrana podataka uspješno zaprimljenog zahtjeva, te
Provjera pohranjenih termina rezervacije za pokretanje i zaustavljanje virtualnih
strojeva.
21
Slika 10 Model baze podataka
4.3 Programska podrška
Aplikacija Rezervacijski poslužitelj i raspoređivač sastoji se od dijelova vezanih za
zaprimanje zahtjeva i pokretanje virtualnih strojeva. Prvi dio obavlja zadaću obrade zahtjeva
pristiglih putem protokola HTTP, vezanih za pohranu zahtjeva ili ispis informacija o
atributima tablica baze podataka. Drugi dio odnosi se na izvedbu algoritma za pokretanje
rezervacija i paralelno ostvarivanje veze s virtualizacijskim poslužiteljem i pripadnim
virtualnim strojevima.
4.3.1 Zahtjevi za rezervaciju virtualnih strojeva
VMposlužitelj radi na principu HTTP zahtjeva koji dolaze na kontroler naziva
ReservationController.cs. Na klijentskoj aplikaciji za autorizaciju definiran je URL putem
kojeg se kroz zadani put i upit referencira na ReservationController i njegove metode.
Kontroler odgovara na akcije tako da kao rezultat predaje objekt tipa string, pri čemu se
koristi samo model ReservationQuery.cs. Model upravlja ponašanjem i podacima aplikacije
i predstavlja reprezentaciju relacije baze podataka. ReservationQuery.cs uključuje
vrijeme_od, vrijeme_do, datum i id_korisnika.
22
Jedan od HTTP zahtjeva prema VMposlužitelju je i GetAllReservations. Slika 11 prikazuje
kod koji prezentira dohvaćanje rezervacija iz baze za trenutni dan. Iz baze se dohvaća lista
rezervacija koje su taj dan zakazane. Atributi tablice Rezervacija putem metode Serialize
pretvaraju se u format podataka tipa JSON (engl. JavaScript Object Notation), gdje se
objekti pohranjuju u obliku parova atribut-vrijednost. Podaci u JSON formatu vračaju se
klijentskoj aplikaciji kao rezultat.
public ActionResult GetAllReservations() { using (var ctx = new HTTPServerReservationEntities5()) { var query = (from obj in ctx.Rezervacija where (obj.datum == DateTime.Today) select new { id_rezervacije = obj.id_rezervacije, vrijeme_od = obj.vrijeme_od.ToString(), vrijeme_do = obj.vrijeme_do.ToString(), datum = obj.datum.ToString(), id_racunala = obj.id_racunala, id_korisnika = obj.id_korisnika }); var serializer = new JavaScriptSerializer(); var serializedResult = serializer.Serialize(query.ToList()); return Content(serializedResult); } }
Slika 11 Metoda GetAllReservation klase ReservationController.cs
Registrirani korisnik u procesu kreiranja zahtjeva referencira se na metodu
RequestReservation. Metoda se također nalazi u klasi ReservationController.cs. Podaci o
zahtjevu za rezervaciju dolaze u JSON formatu, a u metodi se pretvaraju u listu upita. Iz baze
podataka izvlače se sve rezervacije koje imaju datum izvođenja jednak dospjelom zahtjevu.
Za svaku rezervaciju koja zadovoljava prethodni uvjet provodi se algoritam koji provjerava
postoji li preklapanje oko termina izvođenja s novo pridošlim zahtjevom. Slika 12 prikazuje
isječak koda kojim se prezentira korištenje metode compare za usporedbu potencijalnih
preklapanja atributa vrijeme_od i vrijeme_do. Moguća je situacija „lijevo preklapanje“ koje
se odnosi na vrijeme_od, „desno preklapanje“ za vrijeme_do ili „puno preklapanje“ za
vrijeme_od i vrijeme_do. Za svako uočeno preklapanje povećava se brojač preklapanja i
uklanja računalo iz liste slobodnih računala. Ako je broj slobodnih računala veći od broja
23
upita u bazu podataka se upisuje rezervacija i vrača poruka o potvrdi rezervacije, a u
protivnom poruka o neuspjeloj rezervaciji.
using (var ctx = new HTTPServerReservationEntities5()) //provjera koliko ima slobodnih mjesta taj dan u to vrijeme { List<Rezervacija> tajDan = (from obj in ctx.Rezervacija where (obj.datum == datum)
select obj).ToList(); if (tajDan.Count != 0) { foreach (Rezervacija rez in tajDan) { TimeSpan t1 = rez.vrijeme_od.Value; TimeSpan t2 = rez.vrijeme_do.Value; if (TimeSpan.Compare(vrijeme_od, t1) >= 0 && TimeSpan.Compare(vrijeme_do, t2) <= 0) { //puno preklapanje brPreklapanja++; slobodniPCId.Remove(rez.id_racunala.Value); } else if (TimeSpan.Compare(vrijeme_do, t1) == 1 && TimeSpan.Compare(vrijeme_od, t1) == -1) { //lijevo preklapanje brPreklapanja++; slobodniPCId.Remove(rez.id_racunala.Value); } else if (TimeSpan.Compare(vrijeme_od, t2) == -1 && TimeSpan.Compare(vrijeme_do, t1) == 1) { //desno preklapanje brPreklapanja++; slobodniPCId.Remove(rez.id_racunala.Value); } } } }
Slika 12 Isječak metode RequestReservation klase ReservationController.cs
4.3.2 Pokretanje i zaustavljanje virtualnih strojeva
Za rad s virtualnim strojevima postoji kontroler naziva VMRunController.cs. Unutar
kontrolera stvaraju se zadaci (engl. Task) [15] u koje se predaju objekti klase XenMachines,
a nad kojima se poziva metoda startVM za pokretanje virtualnih strojeva s parametrom prve
sljedeće rezervacije. Zadaci se izvode asinkrono, što omogućuje paralelno izvršavanje
zahtjeva tako da se rezervacije izvode neovisno jedna o drugoj. Odmah nakon poziva
startVM računa se razlika u milisekundama između vrijeme_od i trenutnog vremena koje se
24
predaje objektu tipa Timer. Timer po završetku isteka vremena pokreće metodu
startMachine u kojoj se traži rezervacija iz baze podataka s id_rezervacije jednakom
primljenom parametru. Slika 13 prikazuje pokretanje dohvaćene rezervacije pozivom
metode startVM iz klase XenConfig s parametrom imena virtualnog stroja. Sve rezervacije
u ReservationController.cs imaju postavljene atribut status vrijednosti Next, process
vrijednosti Useme i zastavica vrijednosti Not. Po pokretanju rezervacije status se mijenja u
Process i pohranjuje u bazu podataka.
protected static void startMachine(Rezervacija vm) { // Dohvacamo trazenu rezervaciju i pokrecemo sesiju sa XenServer var s = db.Rezervacija.Where(y => y.id_rezervacije == vm.id_rezervacije).First(); XenConfig.startVM(s.Racunalo.ime); s.status = "Process"; db.SaveChanges(); //poziv funkcije za odbrojavanje do pocetka izvrsavanja zahtjeva new XenMachines().stopVM(s); }
Slika 13 Metoda startMachine
Unutar metode startVM uspostavlja se sjednica sa XenServer virtualizacijskim
poslužiteljem. Slika 14 prikazuje uspostavu sjednice stvaranjem objekta Session koji kao
parametre prima IP adresu poslužitelja i port. Autentifikacija sjednice provodi se pozivom
metode login_with_password nad sjednicom te parametrima username, password i verzijom
API-ja za upravljanje XenServer poslužiteljem. Parametar pc koji predstavlja ime virtualnog
stroja pronalazi se iteriranjem po svim virtualnim strojevima na poslužitelju. Poziv metode
VM.start klase XenMachines pokreće virtualni stroj. Za potrebe zaustavljanja virtualnog
stroja koristi se metoda VM.shutdown. Nakon uspješnog pokretanja virtualnog stroja poziva
se metoda za stopVM kojoj se za parametar šalje objekt trenutne rezervacije.
25
public static void startVM(string pc) {
string hostname = "192.168.1.10"; int port = 443; // default string username = "server"; string password = "posluzitelj123";
// Uspostava sjednice ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Session session = new Session(hostname, port); // Autentifikacija sa username i password i API verzijom
session.login_with_password(username, password, API_Version.API_1_3); XenRef<VM> chosenRef = null; foreach (KeyValuePair<XenRef<VM>, VM> kvp in VM.get_all_records(session)) { VM vm = kvp.Value; if (vm.name_label.Equals(pc)) { chosenRef = kvp.Key; System.Console.WriteLine(chosenRef); VM.start(session, chosenRef, false, false); } } }
Slika 14 Metoda startVM
StopVM funkcionira na isti način kao i startVM. Kada Timer istekne poziva se metoda
stopMachine u kojoj se traži rezervacija iz baze podataka čija je vrijednost atributa status
jednaka Process, a atributa proces Useme. Za usklađen rad taskova, kada dođe vrijeme za
zaustavljanje virtualnog stroja, vrijednost atributa proces mijenja se u Taken, dok se atribut
status postavi na End nakon što je ugašen virtualni stroj. Korištenje taskova pruža uslugu
natjecanja između dretvi za uzimanje nove rezervacije. Slobodna dretva periodički
provjerava u bazu ako postoji nova rezervacija s atributom status vrijednosti Next, proces
Useme i zastavica Not. Ona dretva koja prva uzme zahtjev mijenja stanje atributa zastavica
na Used, i tako obavještava ostale dretve s namjerom da ne dođe do višestrukog zauzimanja
istog zapisa.
26
4.4 Primjer korištenja aplikacije Rezervacijski poslužitelj
i raspoređivač
Slika 15 prikazuje bazu podataka s pohranjene 4 rezervacije koje čekaju na svoje
izvođenje. Atribut status koji je postavljen na Next definira da su to rezervacije koje čekaju
na pokretanje virtualnih strojeva, dok proces postavljen na Useme dozvoljava da pojedina
dretva preuzme rezervaciju. Slika 16 prikazuje upravljanje virtualizacijskim poslužiteljem
iz XenCenter grafičkog sučelja. Sučelje prikazuje stanja virtualnih strojeva u trenucima
kada su dvije rezervacije u tijeku. Pokrenuti su strojevi PC 1 i PC 2 označeni zelenom
bojom i nalaze u stanju Start.
Slika 15 Pregled postojećih rezervacija u bazi podataka
Slika 16 Grafičko sučelje XenCenter tijekom pokretanja strojeva
U trenucima kada su svi virtualni strojevi pokrenuti atribut status u tablici Rezervacija
označen je sa Process. Slika 17 prikazuje XenCenter sučelje u trenutku kada su računala PC
2 i PC 4 u stanju Shut Down. Virtualni stroj PC 3 u procesu je zaustavljanja, pri čemu su
moguća odstupanja od nekoliko sekundi zbog samog trajanja uspostavljanja sesije sa
virtualizacijskim poslužiteljem.
27
Slika 17 Grafičko sučelje XenCenter tijekom zaustavljanja strojeva
Slika 18 i Slika 19 prezentiraju stanje nakon što su virtualni strojevi zaustavljeni. Nakon
obavljanja svih rezervacija, u tablici Rezervacija baze podataka status kod svih rezervacija
postavljen je na End, dok pod proces je zapisano Taken uz svaku rezervaciju neposredno
prije poziva metode stopVM kako bi svaka aktivna dretva mogla prepoznati koju rezervaciju
smije uzeti kao referentu prilikom zaustavljanja virtualnog stroja.
Slika 18 Grafičko sučelje XenCenter u trenutku završetka
Slika 19 Pregled gotovih rezervacija u bazi podataka
28
Zaključak
Potreba za učinkovitim i elastičnim uvođenjem usluga programske podrške u računalnom
oblaku, u današnje vrijeme uvodi korištenje tehnologije virtualizacije. Virtualizacija
predstavlja tehnologiju u kojoj se aplikacijski i logički procesi odvajaju od temeljnih dijelova
sklopovlja. U skupu različitih virtualizacijskih tehnologija, za potrebe ovoga rada naglasak
je na virtualizaciji poslužitelja.
Glavni cilj predstavlja izrada aplikacije za rezervaciju i raspoređivanje virtualiziranih usluga
na udaljenom virtualizacijskom poslužitelju, koja je dio zamišljenog sustava za igranje
zasnovano u računalnom oblaku s primjenom u školama. Aplikacija Rezervacijski
poslužitelj i raspoređivač na temelju rezervacija pokreće i zaustavlja virtualne strojeve koji
se nalaze na virtualizacijskom poslužitelju. Sustav upotpunjuje klijentska aplikacija za
korisničku autorizaciju, putem koje registrirani korisnici šalju zahtjeve HTTP protokolom
na poslužitelj.
Ovaj sustav je namijenjen kao prototip i u budućnosti ima potencijal za daljnji razvoj i
puštanje u produkciju, konkretno za uvođenje u škole kako bi se provodilo modernizirano i
kvalitetno učenje. Prije takvih aktivnosti potrebno je povezati aplikacije zajedničkom bazom
i utvrditi ispravan rad sustava.
29
Literatura
[1] Tomislav Šipušić, Klijentska aplikacija za korisničku autorizaciju i pristup usluzi
igara zasnovanih na računanom oblaku, (2017), preuzeto 02.05.2017
[2] CARNet Nacionalni CERT, Virtualizacija računala, CCERT-PUBDOC-2009-12-
285, URL: http://sigurnost.lss.hr/documents/LinkedDocuments/NCERT-PUBDOC-2009-
12-285.pdf , preuzeto 02.05.2017
[3] Margaret Rouse, SearchVirtualizaton, URL:
http://searchservervirtualization.techtarget.com/definition/virtualization , preuzeto
30.04.2017
[4] Wmware, Inc URL: http://www.vmware.com/solutions/virtualization.html ,
preuzeto 30.04.2017
[5] Amit Singh, An introduction to virtualization, (2004), URL:
http://www.kernelthread.com/publications/virtualization/ , preuzeto 02.05.2017
[6] Margaret Rouse, Virtualization architecure, URL:
http://whatis.techtarget.com/definition/virtualization-architecture , preuzeto 02.05.2017
[7] TechAdvisory.org, (2016), http://www.techadvisory.org/2016/01/5-different-types-
of-virtualization/ , preuzeto 10.05.2017
[8] Vikas Kumar Roy, (2010), http://vikashkumarroy.blogspot.hr/2010/07/little-about-
xenserver-architectural.html , preuzeto 10.05.2017
[9] Margaret Rouse, Search Virtualization, URL:
http://searchservervirtualization.techtarget.com/definition/hypervisor , preuzeto 10.05.2017
[10] Margaret Rouse, Search Virtualization, URL:
http://searchservervirtualization.techtarget.com/definition/virtual-machine, preuzeto
14.05.2017
[11] Jack Wallen, TechRepublic, (2013), URL: http://www.techrepublic.com/blog/10-
things/10-benefits-of-virtualization-in-the-data-center/ , preuzeto 15.05.2017
[12] Michael Pietroforte, 4sysops, URL: https://4sysops.com/archives/seven-
disadvantages-of-server-virtualization/ , preuzeto 15.05.2017
[13] Citrix Systems. Inc, (2016), URL: http://docs.citrix.com/content/dam/docs/en-
us/xenserver/xenserver-7-0/downloads/xenserver-7-0-installation-guide.pdf , preuzeto
16.05.2017
30
[14] Grupa123, OPP_ProjektnaDokumentacija_v3, (2016), URL:
https://gitlab.com/ktopolovec/grupa123/blob/master/Dokumentacija/OPP_2016_grupa123_
v2.0.pdf, preuzeto 20.05.2017
[15] Task Class, https://msdn.microsoft.com/en-
us/library/system.threading.tasks.task(v=vs.110).aspx, preuzeto 21.05.2017.
31
Sažetak
Naslov: Aplikacija za rezervaciju i raspoređivanje virtualiziranih usluga u računalnom
oblaku
Ovaj rad obuhvaća opis pojmova vezanih uz virtualizaciju i virtualizacijske tehnologije s
naglaskom na tehnologiju virtualizacije poslužitelja, ali objašnjava i arhitekturu
virtualizacije. Detaljnije su objašnjeni virtualni strojevi i nadzornik, koji predstavljaju
ključne elemente virtualizacije poslužitelja. Opisana je i virtualizacijska platforma
XenServer koja se koristi za potrebe aplikacije, a uvod u praktični dio definiran je
funkcionalnim zahtjevima i arhitekturom sustava. Za poglavlje vezano uz implementaciju
prikazana je tehnologija MVC arhitekture i korištena baza podataka. Također, poseban dio
namijenjen je za programsku podršku u kojoj su prikazani glavni dijelovi za rad s
rezervacijama i povezivanje na virtualizacijski poslužitelj.
Ključne riječi: virtualni stroj, XenServer, nadzornik, virtualizacijske tehnologije,
virtualizacijski poslužitelj
32
Summary
Title: Application for reservation and scheduling virtualized services in the Cloud
This final work cover the description od virtualization and virtualization technologies, with
an emphasis on server virtualization, but also explains the architecture of virtualization.
More detailed explanations are given of the virtual machines and the hypervisor, which
represent key elements of server virtualization. The XenServer virtualization platform that
is used for the application is also described, while the introduction to the practical part is
defined by the functional requirements and the architecture of the system. The chapter on
deployment shows the MVC architecture technology and database. Also, a special part is
intended for software support that shows the main parts for work with reservations and
connection to a virtualized server.
Keywords: virtual machine, XenServer, hypervisor, virtualization technology, virtualization
server
33
Skraćenice
SaaS Software as s Servise programska podrška kao usluga
VM Virtual Machine virtualni stroj
IP Internet Protocol mrežni protokol
OS Operating System operativni sustav
IBM International Business Machines američka tvrtka
VMM Virtual Machine Monitor upravitelj virtualnih strojeva
CPU Central Processing Unit središnja procesorska jedinica
VDI Virtual Desktop Infrastructure virtualizacija radne površine
GPU Graphics Processing Unit grafička procesorska jedinica
IT Information Technology informatička tehnologija
CLI Command-line Interface sučelje naredbenog retka
UC Use Case obrazac uporabe
LDAP Lightweight Directory Access Protocol protokol za čitanje i pisanje
SQL Structured Query Language strukturirani jezik upita
API Application Programming Interface sučelje programiranja aplikacija
SDK Software Development Kit komplet za razvoj softvera
MVC Model View Controller arhitekturalni obrazac
PK Primary Key glavni ključ
FK Foreign Key strani ključ
34
Privitak
U ovom poglavlju dane su upute za instalaciju i pokretanje aplikacije. Za ispravan rad
aplikacije potrebno je instalirati Microsoft Visual Studio 2015 razvojno okruženje. Za
korištenje baze podataka treba instalirati Microsoft SQL Server Management Studio.
Poželjno je koristit XenCenter grafičko sučelje za praćenje stanja i korištenje virtualnih
strojeva.
Instalacija alata Visual Studio 2015
Razvojni alat Visual Studio potrebno je instalirati sa stranice
https://www.visualstudio.com/thank-you-downloading-visual-
studio/?sku=Enterprise&rel=15. Nakon što se prvi puta pokrene Visual Studio, odaberu se
postavke razvojnog okruženja. Detaljnije upute za rad i razvoj programske podrške u Visual
Studio 2015 nalaze se na stranici https://msdn.microsoft.com/en-
us/library/dn762121(v=vs.140).aspx.
Instalacija alata SQL Server Management Studio
Za povezivanje aplikacije za bazom podataka potrebno je instalirati alat SQL Server
Management Studio koji služi za konfiguriranje, upravljanje i administriranje svih
komponenti unutar sustava Microsoft SQL Server. Zadnja verzija Server Management
Studio dostupna je na stranici https://docs.microsoft.com/en-us/sql/ssms/download-sql-
server-management-studio-ssms. Detaljne upute za korištenje alata nalaze se na
https://docs.microsoft.com/en-us/sql/tools/sql-server-management-studio/tutorial-sql-
server-management-studio.
Upute za korištenja programske podrške
Nakon prethodno instaliranih alata, potrebno je raspakirati datoteku s izvornim kodom koja
se nalazi na cd-u. Unutar alata Visual Studio u izborniku odaberemo File – Open –
Project/Solution. Nakon toga odaberemo putanju do projekta i učitamo Rezervacijski
poslužitelj i raspoređivač.sln. Kada otvorimo projekt, u mapi StartStopVM potrebno je
odabrati klasu XenConfig.cs. Slika 20 prikazuje isječak klase koja sadrži postavke za
35
spajanje na XenServer virtualizacijski poslužitelj. Slika funkcije prikazuje primjer
parametara hostname, username, password koje je potrebno izmijeniti s podacima
poslužitelja na kojeg se spajamo. Za pokretanje aplikacije potrebno je odabrati zelenu ikonu
Start s nazivom preglednika u navigacijskoj traci Visual Studio-a.
string hostname = "192.168.1.10"; int port = 443; // default string username = "server"; string password = "posluzitelj123"; // Establish a session ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; // Trust all certificates: DO NOT USE IN PRODUCTION CODE! ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; Session session = new Session(hostname, port);
Slika 20 Isječak klase XenConfig.cs
Za upravljanje i pregled aktivnih virtualnih strojeva poželjno je instalirati XenCenter
grafičko sučelje. XenCenter mora biti instaliran na udaljenom Windows računalu s kojeg se
možemo povezati na XenServer virtualizacijski poslužitelj. Uz to je potrebno imati
minimalno verziju 3.5 .NET radnog okvira, koju je moguće preuzeti sa stranice
https://www.microsoft.com/en-us/download/details.aspx?id=21. XenCenter je instalacijski
medij kojeg se može preuzeti s Citrix XenServer stranice
https://www.citrix.com/downloads/xenserver/product-software/. Nakon pokretanja
XenCenter alata, u glavnom izborniku odaberemo željeni poslužitelj desnim klikom i poljem
Connect. Nakon toga otvara se prozor za unos parametara prikazan na slici 21. Uspješnim
spajanjem, u lijevom izborniku pojavljuju se virtualni strojevi za pripadni poslužitelj.
Slika 21 Uspostavljanje veze s poslužiteljem