RASPOREĐIVANJE VIRTUALIZIRANIH USLUGA U RAČUNALNOM … · ili odabranim rezervacijama, ID-u...

40
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

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.

17

Slika 8 Sekvencijski dijagram: Dohvat svih rezervacija

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