univerza v mariboru - connecting repositories · components. openstack the platform can be expanded...
TRANSCRIPT
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Gregor Kocmut
Izgradnja projekta Sahara v okolju Mirantis 8.0
Diplomsko delo
Maribor, Avgust 2016
i
Izgradnja projekta Sahara v okolju Mirantis 8.0
Diplomsko delo
Študent: Gregor Kocmut
Študijski program: INFORMATIKA IN TEHNOLOGIJE KOMUNICIRANJA
Smer: SISTEMSKA PODPORA INFORMATIKI IN TEHNOLOGIJAM
KOMUNICIRANJA
Mentor: viš. pred. dr. Bojan Novak, univ. dipl. inž. el
ii
iii
Izgradnja projekta Sahara v okolju Mirantis
8.0
Ključne besede: računalništvo v oblaku, OpenStack, Mirantis, Sahara
UDK 004.2:004.4'22(043.2)
Povzetek:
Distribucija Mirantis OpenStack ponuja nabor orodij in komponent za delo z arhitekturo
oblačnega sistema. Distribucija ponuja implementacijo orodij in vtičnikov na platformi
OpenStack. Oblak, sestavljen je iz več samostojnih komponent. Sahara ponuja uporabniku
preprost način za obdelavo podatkov v OpenStack okolju, zaradi enostavnega razširjanja,
dodajanja in upravljanja najdemo veliko število samostojnih komponent. OpenStack
platformo lahko razširimo s komponentami, ki so opcijsko na voljo. Fuelov uporabniški
vmesnik, nam nudi podporo pri upravljanju z OpenStack platformo, vgrajen REST API ter
vtičniki izboljšujejo kakovost distribucije. OpenStack ponuja ogromno možnosti za različne
nastavitve, Mirantis OpenStack pa doda elastičnost komponent, ki zaradi medsebojnega
povezovanja pomagajo končnemu uporabniku pri upravljanju.
iv
Izgradnja projekta Sahara v okolju Mirantis
8.0
Key words: Cloud Computing, OpenStack, Mirantis, Sahara
UDK 004.2:004.4'22(043.2)
Abstract:
Distribution, Mirantis OpenStack offers a set of tools and components for working with the
architecture of the cloud system. Distribution offers implementation tools and plug-ins on
the platform of OpenStack. Cloud, it consists of several independent components. Sahara
offers the user a simple method for data processing in OpenStack environment, due to its
easy dissemination, adding and managing are found a large number of independent
components. OpenStack the platform can be expanded with components that are
optionally available. Fuel user interface, us provides support in the management of the
OpenStack platform, built-in REST API and plug-ins improve the quality of distribution.
OpenStack offers tremendous options for a variety of settings, Mirantis OpenStack,
however, added to the elasticity of the components, which, due to the mutual integration
to help the end user in the management.
v
Zahvaljujem se mentorju dr. Bojanu Novaku za
pomoč in vodenje pri opravljanju diplomskega dela.
Posebna zahvala gre staršem, ki so mi omogočili
študij, ter me podpirali tekom študija kakor tudi za
njihovo potrpežljivost ter podporo med izdelavo
diplomske naloge.
vi
Kazalo vsebine
1 UVOD ........................................................................................................................................ 1
2 RAČUNALNIŠTVO V OBLAKU ........................................................................................... 2
2.1 Definicija ........................................................................................................................................ 2
2.1.1 Javni oblak ........................................................................................................................................ 3
2.1.2 Zasebni oblak ................................................................................................................................... 3
2.1.3 Hibridni oblak ................................................................................................................................... 3
2.1.4 Skupinski oblak ali oblak skupnosti .................................................................................................. 4
2.2 5 Temeljnih značilnosti računalništva v oblaku ............................................................................... 4
2.2.1 »Samopostrežba na zahtevo« .......................................................................................................... 4
2.2.2 Širok mrežni dostop ......................................................................................................................... 4
2.2.3 Združevanje sredstev ....................................................................................................................... 4
2.2.4 Visoka elastičnost ............................................................................................................................. 5
2.2.5 Plačilo na osnovi uporabe ................................................................................................................ 5
2.3 Ponudniki ....................................................................................................................................... 5
2.4 Predstavitveni modeli oblačnih storitev ......................................................................................... 6
2.4.1 Infrastruktura kot storitev (IaaS)...................................................................................................... 6
2.4.2 Platforma kot storitev (PaaS) ........................................................................................................... 7
2.4.3 Programska oprema kot storitev (SaaS) .......................................................................................... 8
2.4.4 Primerjava predstavitvenih modelov ............................................................................................... 9
3 OPENSTACK ........................................................................................................................ 11
3.1 Zgodovina .................................................................................................................................... 11
3.2 Arhitektura ................................................................................................................................... 13
3.3 Fuel .............................................................................................................................................. 13
3.4 Glavne komponente ..................................................................................................................... 16
vii
3.4.1 OpenStack Compute (Nova) ........................................................................................................... 16
3.4.2 Block Storage (Cinder).................................................................................................................... 17
3.4.3 OpenStack Networking (Neutron) ................................................................................................. 17
3.4.4 Identity Storitev (Keystone) ........................................................................................................... 18
3.4.5 Image storitev (Glance) .................................................................................................................. 19
3.4.6 Object Storage (Swift) .................................................................................................................... 20
3.4.7 HORIZON –Dashboard .................................................................................................................... 21
3.4.8 CEILOMETER –Telemetry ............................................................................................................... 21
3.5 Izbirne storitve ............................................................................................................................. 22
3.5.1 HEAT-Orchestration ....................................................................................................................... 23
3.5.2 TROVE-Database ............................................................................................................................ 24
3.5.3 SAHARA -Elastic Map Reduce ........................................................................................................ 24
3.5.4 IRONIC-Bare-Metal Provisioning .................................................................................................... 24
3.5.5 ZAQAR – Storitev sporočanja ......................................................................................................... 25
3.5.6 MANILA -Shared Filesystems ......................................................................................................... 26
.................................................................................................................................................................... 27
3.5.7 DESIGNATE -DNS Storitev .............................................................................................................. 27
3.5.8 BARBICAN -Key Management ........................................................................................................ 28
3.5.9 MAGNUM –Containers .................................................................................................................. 28
3.5.10 MURANO -Application Catalog .................................................................................................. 29
3.5.11 CONGRESS –Governance ........................................................................................................... 29
4 SAHARA ................................................................................................................................ 30
4.1 Definicija ...................................................................................................................................... 30
4.2 Zgradba Sahare po komponentah: ............................................................................................... 31
4.3 Delovanje ..................................................................................................................................... 32
4.3.1 Delovni tok Sahara ogrodja (Slika 4.2) ........................................................................................... 32
4.4 Glavne značilnosti: ....................................................................................................................... 33
4.5 Predloge ....................................................................................................................................... 33
4.5.1 Urejanje predloga skupine vozlišč.................................................................................................. 34
4.5.2 Urejanje predloge gruče ................................................................................................................ 35
4.6 Podpora z drugimi OpenStack storitvam: ..................................................................................... 36
viii
4.7 Funkcije projekta Sahara .............................................................................................................. 37
4.7.1 Blokovna hramba ........................................................................................................................... 37
4.7.2 Prilagoditev gruče .......................................................................................................................... 37
4.7.3 Lokalnost podatkov ........................................................................................................................ 37
4.7.4 Porazdeljen način ........................................................................................................................... 38
4.7.5 Hadoop HDFS razpoložljivost ......................................................................................................... 38
4.7.6 Omrežna podpora .......................................................................................................................... 38
4.7.7 Sistem za skupno rabo datotek ...................................................................................................... 39
4.7.8 Orkestracijska podpora – Heat ...................................................................................................... 39
4.7.9 Možnost vključitve vtičnikov .......................................................................................................... 40
4.7.10 Upravljanje varnostnih skupin ................................................................................................... 40
4.7.11 Pomoč pri deljenju in zaščiti virov ............................................................................................. 41
4.8 Integracija z Swift ......................................................................................................................... 41
4.9 Vtičniki ......................................................................................................................................... 41
4.9.1 Vanilla vtičnik ................................................................................................................................. 41
4.9.2 Ambari vtičnik ................................................................................................................................ 42
4.9.3 Spark vtičnik ................................................................................................................................... 42
4.9.4 MapR Distribution vtičnik .............................................................................................................. 42
4.9.5 Cloudera vtičnik ............................................................................................................................. 42
4.10 Elastic Data Processing (EDP)........................................................................................................ 43
4.11 Sahara REST API ........................................................................................................................... 44
4.12 Kreiranja nove gruče .................................................................................................................... 45
5 MIRANTIS ............................................................................................................................ 46
5.1 Definicija ...................................................................................................................................... 46
5.2 Zgradba ........................................................................................................................................ 47
5.2.1 Compute – Nova ............................................................................................................................ 47
5.2.2 Storage –Cinder ............................................................................................................................. 47
5.2.3 Networking - Neutron .................................................................................................................... 48
5.3 Izvedba testov .............................................................................................................................. 48
5.3.1 Testi funkcionalnosti ...................................................................................................................... 49
ix
6 NAMESTITEV MIRANTIS SAHARA PROJEKTA V OKOLJE OPENSTACK .......... 51
7 SKLEP .................................................................................................................................... 72
8 VIRI ........................................................................................................................................ 73
Kazalo slik
Slika 2.1 Diagram oblačnega računalništva ...................................................................................................... 2
Slika 2.2 Modeli oblačnih storitev ...................................................................................................................... 6
Slika 2.3 Primerjava abstrakcije in upravljanje z viri ....................................................................................... 10
Slika 3.1 OpenStack programska infrastruktura .............................................................................................. 13
Slika 3.2 Fuel arhitektura ................................................................................................................................ 14
Slika 3.3 OpenStack glavne komponente......................................................................................................... 16
Slika 3.4 Nova arhitektura ............................................................................................................................... 16
Slika 3.5 Cinder arhitekturna zgradba ............................................................................................................. 17
Slika 3.6 Neutron omrežna arhitektura ........................................................................................................... 18
Slika 3.7 OpenStack Keystone arhitektura ....................................................................................................... 19
Slika 3.8 Glance arhitektura ............................................................................................................................ 20
Slika 3.9 Swift nivojska arhitektura ................................................................................................................. 21
Slika 3.10 OpenStack izbirne storitve .............................................................................................................. 22
Slika 3.11 Heat arhitektura .............................................................................................................................. 23
Slika 3.12 Throve arhitektura .......................................................................................................................... 24
Slika 3.13 Ironic arhitektura ............................................................................................................................ 25
Slika 3.14 Zaqar arhitektura ............................................................................................................................ 26
Slika 3.15 Manila arhitektura .......................................................................................................................... 27
Slika 3.16 Designate arhitektura ..................................................................................................................... 27
Slika 3.17 Barbican komponenta ..................................................................................................................... 28
Slika 3.18 Magnum delovni tok ....................................................................................................................... 29
Slika 4.1 Sahara komponente .......................................................................................................................... 31
Slika 4.2 Delovni tok Sahara ............................................................................................................................ 33
Slika 4.3 Tok uporabe predlog ......................................................................................................................... 34
Slika 4.4 Delovni tok predloge vozlišč .............................................................................................................. 35
Slika 4.5 Delovni tok predloge gruče ............................................................................................................... 35
Slika 4.6 sodelovanje z drugimi komponentami .............................................................................................. 36
Slika 4.7 Cloudera tok delovnega procesa ....................................................................................................... 43
Slika 4.8 EDP delovni tok ................................................................................................................................. 44
x
Slika 4.9 koraki kreiranje nove gruče ............................................................................................................... 45
Slika 5.1 Mirantis arhitektura .......................................................................................................................... 47
Slika 5.2 Cinder arhitektura ............................................................................................................................. 48
Slika 5.3 testiranje funkcionalnosti okolja 1.del .............................................................................................. 49
Slika 5.4 testiranje funkcionalnosti okolja 2.dels ............................................................................................. 50
Slika 6.1 Fuel prijava ........................................................................................................................................ 51
Slika 6.2 vnos imena ter izbira OpenStack različice ......................................................................................... 52
Slika 6.3 izbira nastavitev Compute ................................................................................................................. 52
Slika 6.4 izbera omrežnih nastavitev ............................................................................................................... 53
Slika 6.5 nastavitev hrambe objektov .............................................................................................................. 53
Slika 6.6 Izbira dodatnih storitev ..................................................................................................................... 54
Slika 6.7 Prijava v nadzorno ploščo Horizon .................................................................................................... 55
Slika 6.8 Horizon nadzorna plošča ................................................................................................................... 56
Slika 6.9 Kreiranje slike .................................................................................................................................... 57
Slika 6.10 Omrežna struktura .......................................................................................................................... 58
Slika 6.11 Registracija slike .............................................................................................................................. 59
Slika 6.12 Ustvarjanje predloge glavnega vozlišča 1. korak ............................................................................ 60
Slika 6.13 Ustvarjanje predloge glavnega vozlišča 2. korak ........................................................................... 60
Slika 6.14 Ustvarjanje predloge glavnega vozlišča 3. korak ............................................................................ 61
Slika 6.15 Ustvarjanje predloge glavnega vozlišča 4. korak ............................................................................ 61
Slika 6.16 Ustvarjanje predloge podrejenega vozlišča 1. korak ....................................................................... 62
Slika 6.17 Ustvarjanje predloge podrejenega vozlišča 2. korak ....................................................................... 63
Slika 6.18 Ustvarjanje predloge podrejenega vozlišča 3. korak ....................................................................... 64
Slika 6.19 Ustvarjanje predloge podrejenega vozlišča 4. korak ....................................................................... 64
Slika 6.20 Kreiranje predloge gruče 1. korak ................................................................................................... 65
Slika 6.21 Kreiranje predloge gruče 2. korak ................................................................................................... 66
Slika 6.22 Kreiranje predloge gruče 3.korak .................................................................................................... 67
Slika 6.23 Kreiranje predloge gruče 4. korak ................................................................................................... 68
Slika 6.24 Kreiranje predloge gruče 5. korak ................................................................................................... 68
Slika 6.25 Kreiranje predloge gruče 6. korak ................................................................................................... 69
Slika 6.26 Zagon gruče 1. korak ....................................................................................................................... 69
Slika 6.27 Zagon gruče 2. korak ....................................................................................................................... 70
Slika 6.28 Seznam ustvarjenih (zagnanih) primerkov ...................................................................................... 71
Slika 6.29 Možnosti izgrajenih primerkov ........................................................................................................ 71
xi
Kazalo tabel
Tabela 3.1 Verzije in izdaje OpenStack ............................................................................................................ 12
Tabela 4.1 Kompatibilnost komponent z vtičniki ............................................................................................. 40
xii
Seznam uporabljenih kratic:
IaaS – Infrastruktura kot storitev,
PaaS – Platforma kot storitev,
SaaS – Programska oprema kot storitev,
AMD - Advanced Micro Devices
IBM - International Business Machines Corporation
IT – Informacijske tehnologije
NASA - National Aeronautics and Space Administration
HA – visoka razpoložljivost
I/O – Vhodno-e / izhodo-e
DaaS – Shramba kot storitev
VLAN - logična razpršitvena domena
IP - Internet Protocol – Internetni protokol
SSH - Secure Shell
EDP – prilagodljivo procesiranje pdoatkov
REST - representational state transfer
API- apliaktivni programski vmesnik
HDSF- Hadoop Swift filesystem
SQL- strukturirani povpraševalni jezik
DNS- Domain Name System
1
1 UVOD
Računalništvo v oblaku je storitev, ki v zadnjem času beleži visoko rast uporabe v javne in
zasebne namene. Je evolucija tehnologij virtualizacije in storitveno naravnane arhitekture
ter računalništva na zahtevo, kar je sprožilo gradnjo javnih in zasebnih oblakov na različnih
platformah.
Računalništva v oblaku ne moremo opisati kot le eno tehnologijo, saj je sestavljena iz
skupka tehnologij, principov ter storitev. V grobem ga lahko delimo na tri poslovne modele:
IaaS (Infrastructureas a Service), PaaS (Platform as a Service), Saa (Softwareas a Service)
ter na tri modele nameščanja: oblak skupnosti, javni oblak in hibridni oblak.
Osnovne značilnosti oblaka so: merljivost storitve, deljenje virov, samopostrežnost na
daljavo, širokopasovni dostop do interneta ter visoka prilagodljivost (na programskem in
strojnem nivoju). Temelji na deljenih virih, programski opremi – shemi ter podatkih. Med
največjimi ponudniki storitev v oblaku najdemo Google, Microsoft, Amazon, IBM, HP, …
OpenStack je programska shema za oblikovanje javnih in zasebnih oblakov, ki je obenem
še odprtokodna in jo podpira vedno več podjetij širom sveta, med njimi pa je tudi nekaj
vodilnih, kot so: Intel, AMD, VMware, HP, IBM. Mirantis verzije 8.0 (kot ponudnik integracije
OpenStack okolja) je s projektom Sahara omogočil delo z Hadoop distribucijo in
prilagodljivo delo s podatki (podobno kot Amazon Elastic MapReduce za upravljanje
predlog, ki se pojavijo ob postavitvi vozlišč oziroma instanc
2
2 RAČUNALNIŠTVO V OBLAKU
2.1 Definicija
Enotne definicije računalništva v oblaku ni mogoče najti. Izraz »oblak« se večinoma
uporablja kot metafora za internet, medmrežje.
»Računalništvo« je tako rekoč veda o računalnikih in o njihovi uporabi (slovar, b.l.). Na
spletu lahko najdemo različne definicije oziroma opredelitve računalništva v oblaku.
Računalništvo v oblaku (Slika 2.1) »slog, pri katerem so dinamično razširljiva in pogosto
virtualizirana računalniška sredstva na voljo kot storitev preko interneta« in kjer so masovno
razširljive IT zmogljivosti dostavljene zunanjim odjemalcem kot storitev, z uporabo
internetnih tehnologij. Združuje nabor disciplin, tehnologij in poslovnih modelov za prikaz IT
virov z pristopom deljenja bazena nastavljivih deljivih virov (npr. omrežij, strežnikov,
podatkovne hrambe, aplikacij ali storitev), ki so lahko hitro dodeljeni in dani na uporabo z
minimalnim potrebnim posegom s strani ponudnika storitev. [28]
(Vir:https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Cloud_computing.svg/35
0px-Cloud_computing.svg.png, dostopno 17.8.2016)Vrste namestitve oblaka
Slika 2.1 Diagram oblačnega računalništva
3
2.1.1 Javni oblak
Predstavlja najbolj standarden model računalništva v oblaku. Razne internetne storitve, ki
so na voljo vsem uporabnikom, so postale sestavni del poslovanja določenih ponudnikov,
uporabniki pa se pri tem ne zavedajo, da uporabljajo storitve v računalniškem oblaku.
Javni oblak uporabniku zaradi varnosti zaupnih podatkov ne nudi nadzora nad viri v oblaku,
zmogljivostjo omrežja in nad interoperabilnostjo. Javni oblak, ki se sicer nahaja na lokaciji
ponudnika, je tako lahko v lasti administratorja, s katerim upravlja podjetje, lahko pa je v
akademski lasti ali v lasti vladne organizacije. [28]
2.1.2 Zasebni oblak
Zmanjšuje tveganja, ki se pojavijo pri javnem oblaku. Uporabnik si lasti vso opremo oblaka,
ima nadzor nad informacijami in je odgovoren za varnost vseh podatkov. Informacijski viri
se zbirajo in združujejo, da so uporabniku na voljo podobne zmogljivosti, kot so v javnem
oblaku.
Upravljanje zasebnega oblaka in vzpostavitev pa zahteva določeno znanje o strojni in
programski opremi, virtualizaciji in omrežjih. Zasebni oblak pa lahko upravlja tako
organizacija kot tudi neka tretja oseba ali pa gre za kombinacijo naštetega, zaradi česar je
tudi njegova fizična lokacija enaka lokaciji organizacije ali kateri drugi lokaciji. [28]
2.1.3 Hibridni oblak
Ta oblak je kombinacija javnega in zasebnega oblaka. Zunanje vire priskrbi tisti, ki je
ponudnik določene storitve v oblaku, notranji viri pa ostanejo pod nadzorom uporabnika.
Na takšen način lahko podjetja rešujejo zadeve, ki zadevajo predvsem varnost, hkrati pa
izkoriščajo nekatere prednosti javnega oblaka. [28]
4
2.1.4 Skupinski oblak ali oblak skupnosti
Je dan v uporabo posebni skupini uporabnikov iz določene organizacije, ki imajo nek skupni
interes, torej skupne cilje, probleme ali naloge (npr. varnostne zahteve, politika, itd.). Ta
oblak se lahko nahaja na lokaciji ene ali več organizacij ali pa na neki oddaljeni lokaciji (npr.
upravne enote celotne Slovenije). [28]
2.2 5 Temeljnih značilnosti računalništva v oblaku
2.2.1 »Samopostrežba na zahtevo«
Kadar uporabnik sklene pogodbo s ponudnikom ter dobi v zakup in v uporabo del njihove
arhitekture, to pomeni, da uporablja strojno opremo gostitelja ter njihovo ali lastno
aplikativno opremo za izvajanje aktivnosti v oblaku. Uporabnik si deli procesorski čas,
omrežno arhitekturo in hitrost ter pomnilnik, ki jih lahko kadarkoli razširi, tj. najame več
strojne moči. [3]
2.2.2 Širok mrežni dostop
Delo na oblaku si je nemogoče predstavljati brez omrežnega dostopa, ki pa mora biti hiter
in širok, saj vsa komunikacija in delo potekata preko nadzorovane mreže, z odjemalci in
aplikacijami preko spleta ter preko različnih vtičnikov. Odjemalcev je lahko več in več tipov
(odvisno od našega namena in arhitekture). [3]
2.2.3 Združevanje sredstev
V oblaku si več različnih uporabnikov lahko deli delovno moč in vire. Do pred kratkim je to
veljalo za ločeno, saj je imel vsak svoj ločen del opreme. S tem je ponudnik storitev pridobil
večji nadzor nad sistemom in njegovim delovanjem (lažje posodabljanje, odkrivanje napak
ter njihovo odpravljanje na enem mestu). [3]
5
2.2.4 Visoka elastičnost
Storitev se lahko uporabniku prilagaja bodisi z zakupom dela opreme bodisi z zmanjšanjem
trenutne kapacitete glede na potrebe delovanja. Prej je veljalo, da si moral dokupiti strojne
kapacitete, postaviti platformo ter nato nadaljevati z delom, zdaj pa se to uredi z nekaj kliki
in v bistveno krajšem času. Pri vsem tem so najbolj pomembni manjši stroški nakupa, saj
arhitekturo ter aplikacije najamemo za čas uporabe in arhitekturo omejimo/reduciramo ali
odjavimo, ko je več ne potrebujemo. [3]
2.2.5 Plačilo na osnovi uporabe
Vrednotenje porabe in obračunavanje se v oblačnem sistemu meri avtomatično s pomočjo
telemetrije in avtomatičnih sistemov za nadzor in optimizacijo virov, ki jih uporabljamo.
Porabo in delovanje lahko spremljamo v realnem času, pri čemer sledimo morebitnim
potrebam po večjih kapacitetah, zmogljivosti ali nadgradnji virov in slednje glede na te
potrebe tudi razporejamo. [3]
2.3 Ponudniki
Trenutno se na trgu nahaja veliko število ponudnikov (Slika 2.2) oblačnih storitev in še
večji je boj za njihovo prevlado na trgu najbolj prepoznavni trenutno so:
Amazon,
Google,
Microsoft,
IBM,
HP,
AWS,
Azure,
CloudSigma,
6
2.4 Predstavitveni modeli oblačnih storitev
Poznamo 3 predstavitvene modele (Slika 2.2) storitev v oblaku, in sicer IaaS, PaaS, ter
SaaS.
(Vir:http://pbxl.co.jp/en/saas-paas-iaas, 17.8.2016)
2.4.1 Infrastruktura kot storitev (IaaS)
Uporabnik dobi dostop do temeljnih računalniških zmogljivosti, kot so procesor, pomnilnik,
prenos podatkov, prostora na disku, itd. S pomočjo slednjih uporabnik na infrastrukturo
samodejno postavlja programsko opremo, ki jo potrebuje. V to lahko vključi tako operacijski
sistem kot tudi različne aplikacije. Kljub vsemu uporabnik še nima popolnega nadzora nad
zaledno infrastrukturo, ima pa popoln nadzor nad operacijskim sistemom, aplikacijami, ki
jih je namestil, in nad razporejanjem podatkovne hrambe. Nad mrežnimi kapacitetami ima
uporabnik le delni nadzor (npr. Amazon Web Services).[29]
Slika 2.2 Modeli oblačnih storitev
7
Najbolj razširjene IaaS platforme so:
Amazon AWS
OpenStack
OpenNebula
Eucalyptus
VMware vCloud
Microsoft Hypre-V Cloud
Apache VCL
Nimbus
Xen Cloud Platform
OpenQRM
RedHat CloudForms
IBM SmartCloud
Oracle IaaS
2.4.2 Platforma kot storitev (PaaS)
Uporabniku omogoča, da so zmogljivosti na voljo tako, da lahko na ponujeni platformi
omogoči uporabljanje svojih lastnih storitev v oblaku. Uporabnik ustvari lastno rešitev z
uporabo programskih jezikov, orodij, itd., ki jih podpira ponudnik, in jih nato da v uporabo v
oblak. Tudi tu uporabnik ne upravlja z zaledno infrastrukturo, ima pa nadzor nad aplikacijami
in delni nadzor nad omrežno infrastrukturo (npr. požarni zid). Primer take plarforme je
Google App Engine. [29]
8
Najbolj razširjeni ponudniki PaaS platform:
Amazon Elastic Beanstalk
RedHat OpenShift
Google App Engine
Windows Azure
IBM SmartCloud
Oracle PaaS
Vmware vFabric / Cloud Foundry
Force.com
CloudBees
AppScale
2.4.3 Programska oprema kot storitev (SaaS)
Programska storitev uporabniku ponuja vire, ki tečejo na oblačni infrastrukturi. Preko
različnih odjemalskih naprav, kot so npr. odjemalci (internetni brskalniki) ali namenski
programski vmesniki, lahko dostopamo do aplikacij. Uporabnik ne upravlja z zaledno
oblačno infrastrukturo kot tudi ne z aplikacijami. Obstajajo sicer izjeme, kjer uporabnik s
posebnimi uporabniškimi nastavitvami dostopa do možnosti, ki so mu dovoljena oziroma,
ki mu jih ponuja programska storitev. Prednosti te platforme so bogati vmesniki, brezplačna
uporaba ali uporaba z plačilom in dostop preko medmrežja. Slabost je v nezmožnosti
prilagajanja po meri in malo funkcij. Ena od takih programskih oprem je denimo Gmail
(Google). [29]
9
Najbolj razširjene SaaS storitve so:
Google Gmail,
Yahoo! Mail,
Hotmail,
Facebook,
Twitter,
LinkedIn ,
Salesforce CRM,
Oracle CRM on Demand ,
IBM WebSphere Online,
Oracle Fusion Application Storitevs ,
Google Documents,
Microsoft Office 365,
SpringCM,
Microsoft SharePoint Online
2.4.4 Primerjava predstavitvenih modelov
Vsak namestitveni model (Slika 2.4) ima svoj nivo abstrakcije, ki je prepuščena končnemu
uporabniku. Pri namestitvenih modelih ima uporabnik največjo izbiro in možnost
prilagoditve, če najame le infrastrukturo, saj platformo kakor tudi programsko opremo
določa sam. Pri najeti platformi ponudnik storitve zagotavlja in vzdržuje tako infrastrukturo
kot tudi platformo. Kadar govorimo o programski opremi kot storitvi, pa je zakupljena
arhitektura pripravljena na uporabo z že nameščenimi aplikacijami, saj za vse poskrbi
ponudnik storitve s svojimi komponentami ter infrastrukturo.
10
Slika 2.3 Primerjava abstrakcije in upravljanje z viri
(Vir: https://blogs.technet.microsoft.com/kevinremde/2011/04/03/saas-paas-and-iaas-oh-
my-cloudy-april-part-3/, dostopno 16.8.2016)
11
3 OPENSTACK
3.1 Zgodovina
Začetki OpenStacka so se pričeli Julija 2010, ko sta NASA in RockSpace Hosting najavila
idejo o sistemu za pomoč organizacijam pri ponujanju njihovih oblačnih storitvenih
produktov na strojni opremi.
Prva verzija (Tabela 3.1) OpenStack se je skrivala pod kodnim imenom Austin, ki so jo izdali
oktobra leta 2010. Septembra 2011 so izdelali uporabi namenjen model pod kodnim
imenom "Diablo", ki je vseboval naslednje komponente: Nova, Glance in Swift v takratni
verziji. Septembra 2012 so ustanovili OpenStack fundacijo, aprila 2013 pa sta se pojavili
dve veliki novosti, in sicer Ceilometer ter Heat.
Procesiranje podatkov s Saharo se je pričelo oktobra 2014 z različico Juno. Trenutno zadnja
verzija se imenuje »Mitaka«. Prišlo je do nekaj sprememb poimenovanja komponent.
Projekt Quantum se sedaj imenuje Neutron, medtem ko je Sahara bila včasih poimenovana
Savanna, Designate je bil prej Moniker, Zaqar pa Marconi.[30]
12
Tabela 3.1 Verzije in izdaje OpenStack
Verzija Datum izdaje
Ocata TBD
Newton 2016-10-06
Mitaka 7.04.2016
Liberty 15.10.2015
Kilo 30.04.2015
Juno 16.10.2014
Icehouse 17.04.2014
Havana 17.10.2013
Grizzly 4.04.2013
Folsom 27.09.2012
Essex 5.04.2012
Diablo 22.09.2011
Cactus 15.04.2011
Bexar 3.02.2011
Austin 21.10.2010
Med večje in razširjene OpenStack distribucije štejemo:
Bright Computing
Canonical
HP
IBM
Mirantis
Oracle OpenStack for Oracle Linux, ali O3L
Oracle OpenStack for Oracle Solaris
Platform9 Managed OpenStack
Red Hat
SUSE
VMware Integrated OpenStack (VIO)
13
3.2 Arhitektura
OpenStack je sestavljen iz več manjših komponent za delo z oblakom, ki omogočajo
popolno upravljanje sistemov z infrastrukturo (Slika 3.1), tj. modelom IaaS. Ta ima za vsako
komponento vtičnik za I/O operacije in za pretok podatkov med komponentami. Vsi vtičniki
znajo komunicirati in sodelovati med seboj, obstaja pa možnost lastne izdelave, ki mora biti
kompatibilna z ostalimi OpenStack vtičniki platforme. [7]
Slika 3.1 OpenStack programska infrastruktura
(Vir: https://www.openstack.org/software,)dostopno 13.8.2016
3.3 Fuel
Je odprtokodno orodje za upravljanje in postavitev OpenStack platforme. Razvit je bil s
prizadevanjem širše skupnosti zagotoviti intuitiven grafični vmesnik za izgradnjo ter
upravljanje in postavitev projektov, ki imajo široko podporo skupnosti ter vtičnikov za
enostavno povezovanje z drugimi komponentami. Zagotavlja racionalizacijo postavitve ter
odpravo kompleksnih napak, ki se dogajajo med procesom izgradnje, testiranja in
vzdrževanja po vzpostavljenem projektu. Predstavlja vodilni projekt (Slika 3.2) OpenStack
platforme, saj stremi k avtomatizaciji procesa postavitve in testiranja, obenem pa ponuja
veliko drugih možnosti za povezovanje z drugimi zunanjimi ogrodji in aplikacijami. [13]
14
Glavne značilnosti:
odkrivanje strojne opreme,
konfiguracija strojne opreme v vodenem grafičnem vmesniku,
možnost sočasne podpore več gručam,
ponuja podporo za HA ter tudi brez HA konfiguracije,
v ogrodje vgrajena pred postavitvena testiranja ter omrežna preverjanje,
v ogrodje vgrajena po postavitvena testiranja ter vgrajene skupine testov za
testiranje postavljene konfiguracije OpenStack,
pregled dnevnikov v realenm času z pomočjo grafičnega vmesnika,
podpora mnogim UNIX distribucija,
podpora mnogim OpenStack distribucijam.
(Vir: https://wiki.openstack.org/wiki/Fuel,dostopno 11.8.2016)
WEB UI je aplikacija, ki ponuja v programskem jeziku JavaScript razvit uporabniški
vmesnik. Za delovanje uporablja Bootstrap ter njegovo hrbtenično ogrodje.
Slika 3.2 Fuel arhitektura
15
Nailgun je glavna komponenta Fuel projekta, ki je bila razvita v programskem jeziku python,
v katerega so implementirali REST API vtičnik in upravljanje ter nadzor vzpostavitvenih
podatkov ogrodja. Upravlja velikosti diskovnih kapacitet, omrežne nastavitve in druge
specifične podatke, potrebne za delovanje projekta. Skrbi za pravilno zaporedje izvajanja
vzpostavitvenih delov, uporablja SQL podatkovno zbirko za shranjevanje podatkov ter
AMQP storitev za komunikacijo z gradniki postavitvenega ogrodja. CLI omogoča veliko več
akcij in izvedb, kot nam jih ponuja standardni grafični vmesnik.
Astute je komponenta, ki izvršuje akcije, posredovane od glavne komponente projekta.
Sestavlja jo več plasti, ki enkapsulira akcije in ponuja asinhron vmesnik drugim storitvam,
kot so Cobbler, Puppet in Shell skriptne datoteke.
Cobbler se uporablja kot rezervacijska storitev.
Puppet je namestitvena storitev, ki ima možnost kreiranja Mcollertive instanc za upravljanje
konfiguracij drugih ogrodij, kot so Chef, SaltStack in drugi.
Mcollective nam omogoča izvajanje posebnih akcij, kot so čiščenje trdega diska, testiranje
omrežne povezljivosti.
OSTF omogoča hitro in enostavno preverjanje izvedbe izgradnje postavitve in odkrivanje
napak.
Fuel arhitektura (Slika 3.2) sestavljata dve vozlišči. Pomembnejše oziroma vodilno je Fuel
Master vozlišče, sestavljenega iz strežnika in nameščenih Fuel aplikacij. Te izvajajo
konfiguracijo, oskrbovanje ter PXE zagon Slave vozlišč, ki jim določa IP naslov. Fuel Slave
vozlišče je nadzorovano od Fuel Master vozlišča, Slave vozlišče lahko predstavlja
controller, compute, ali storage vozlišče.[14]
16
3.4 Glavne komponente
Openstack glavne komponente (Slika 3.3) so:Compute, Block Storage, Networking, Image
Service, Object Storage ter Idetity Service
Slika 3.3 OpenStack glavne komponente
(Vir:http://docs.openstack.org/security-guide/introduction/introduction-to-
openstack.html,dostopno 6.8.2016)
3.4.1 OpenStack Compute (Nova)
Komponenta, ki omogoča uporabniku avtomatizacijo pri upravljanju in ustvarjanju virtualnih
strežnikov z uporabo slik naprav (»machine images«). Nova arhitektura (Slika 3.4) in njeno
delovanje pa predstavlja jedro oziroma glavni del oblaka za delovanje in upravljanje z
velikim številom skupin navideznih strojev. [21]
Slika 3.4 Nova arhitektura
(Vir: http://docs.openstack.org/developer/nova/architecture.html,dostopno 16.8.2016 )
17
3.4.2 Block Storage (Cinder)
Komponenta nudi blokovno shranjevanje vzpostavljenim instancam navideznih strojev,
fleksibilnost arhitekture (Slika 3.5) pa omogoča enostavno ustvarjanje novih in upravljanje
obstoječih blokov. [2] Za razliko od komponente Swift nam Cinder dovoljuje upravljanje
hrambe. Glavna prednost komponente je integracija s standardnimi sistemi za shranjevanje
podatkov
Slika 3.5 Cinder arhitekturna zgradba
(Vir: http://www.slideshare.net/mirantis/openstack-architecture-43160012, dostopno
13.8.2016)
3.4.3 OpenStack Networking (Neutron)
Je vtičniško prilagodljiv in izdelan sistem za upravljanje omrežnih mrež virtualnih sistemov
za upravljanje VLAN omrežij, IP naslovov ter požarnih zidov komponent, ki uporabljajo
Neutron omrežno arhitekturo (Slika 3.6). [2]
18
Slika 3.6 Neutron omrežna arhitektura
(Vir:http://docs.openstack.org/security-guide/networking/architecture.html,dostopno
13.8.2016)
3.4.4 Identity Storitev (Keystone)
Keystone arhitektura (Slika 3.7) mogoča platformi centralni imenik uporabnikov, vključenih
v storitve OpenStack, ter se uporablja za zagotavljanje storitev za preverjanje pristnosti in
odobritev drugim storitvam. Keystone integrira LDAP, da zagotavlja centralni direktorij
uporabnikov in omogoča administratorju nastavljanje pravil in politik, ki nadzirajo vire
uporabnikov. [2]
19
Slika 3.7 OpenStack Keystone arhitektura
(Vir: http://ken.pepple.info/openstack/2012/09/25/openstack-folsom-architecture/,dostopno
20.8.2016)
3.4.5 Image storitev (Glance)
Je arhitektura (Slika 3.8) tipa odjemalec-strežnik, ki za končnega uporabnika zagotavlja
REST API, preko katere pošlje strežniku zahtevo za izvedbo akcije. Domain Controller
upravlja notranje v več plasti deljene strežniške operacije, vsaka od teh pa je
implementirana na določenem nivoju. Vse datotečne operacije so izvedene z uporabo
knjižnice glance_Story, ki je hkrati odgovorna za komunikacijo z zunanjo hrambo ali z
lokalnim datotečnim sistemom in nudi vmesnik za dostop do hrambe. Uporablja centralno
podatkovno zbirko, ki je dodeljena vsem ostalim komponentam v sistemu in je grajena na
osnovi sql podatkovne zbirke. Podpira tudi druge vrste podatkovnih zbirk, vendar te niso
priporočene za stabilno delovanje. [2]
20
Slika 3.8 Glance arhitektura
(Vir: http://docs.openstack.org/developer/glance/architecture.html,dostopno 16.8.2016)
3.4.6 Object Storage (Swift)
Je standard objektnega shranjevanja podatkov na različnih nivojih (Slika 3.9) v Openstack
okolju, rezultat storitve pa je Hadoop na OpenStack platformi za obdelavo podatkov točno
tam, kjer so ti shranjeni.
Obstaja kar nekaj izboljšav, ki nam lahko pomagajo pri delu s podatki. Integraciji Swift in
Hadoop sta pomembni za nadaljnje delo in povezovanje storitev. Ključ integracije je bila
implementacija Hadoop Swift datotečnega sistema na platformo, kasneje je bila
implementacija združena v izvajanje projekta Hadoop, Sahara nenehno vzdržuje različice
21
z najnovejšimi funkcijami in nadgradnjami, ki so trenutno na razpolago v OpenStack okolju.
[2]
(Vir: http://www.slideshare.net/servers-com/openstack-swift-tailored-for-highload-duties
,dostopno 13.8.2016)
3.4.7 HORIZON –Dashboard
Uporabniku ponuja, portal za nadzor nad storitvami in delovanjem ter konfiguracijo nad
OpenStack komponentami, zgrajen je kot spletni vmesnik in zelo pregleden ter enostaven
za uporabo in delo. Spletni grafični vmesnik daje možnost lažje predstavitve in upravljanja
avtomatiziranih storitev. [2]
3.4.8 CEILOMETER –Telemetry
Storitev spremlja in meri vire oblaka, ki so na voljo, ter predvsem, koliko se jih uporablja za
namen zaračunavanja storitev, analize in primerjave ter za statistične namene pregleda
delovanja in učinkovitosti virov. [2]
Slika 3.9 Swift nivojska arhitektura
22
3.5 Izbirne storitve
Izbirne storitve OpenStack predstavlja diagram komponent (Slika 3.10), ki prikazuje
delovanje okolja.
Slika 3.10 OpenStack izbirne storitve
(Vir:http://docs.openstack.org/juno/install-guide/install/apt/content/ch_overview.html,dostopno
16.8.2016)
23
Izbirne storitve v okolju so:
Heat,
Horizon,
Neutron,
Cinder,
Nova,
Swift,
Glance,
Ceilometer,
Keystone
3.5.1 HEAT-Orchestration
HEAT z svojo arhitekturo (Slika 3.11) nadzoruje več oblačnih komponent z uporabo REST
API vtičnika in vtičnika AWS CloudFormation-compatible Query API. [2]
Slika 3.11 Heat arhitektura
(Vir: https://wiki.openstack.org/wiki/Heat/Vision , dostopno 15.8.2016)
24
3.5.2 TROVE-Database
Zagotavlja prilagodljivo arhitekturo (Slika 3.12) in zanesljivo oblačno funkcionalnost
DaaS(Database-as-a-Storitev), tj. bazo kot storitev, za relacijske kot tudi za ne-relacijske
baze podatkov. [2]
3.5.3 SAHARA -Elastic Map Reduce
Je spletna storitev/komponenta, ki omogoča enostavno in hitro obdelavo velikih količin
podatkov na stroškovno učinkovit način (le z določanjem nekaj parametrov). EMR v nekaj
minutah izgradi gručo, ki z upravljanjem ustreznih vozlišč na zahtevo uporabnika med
izgraditvijo bodisi z dodajanjem ali odvzemanjem vozlišč. [4]
3.5.4 IRONIC-Bare-Metal Provisioning
Je skupek projektov, ki preko RESTful vtičnika (Slika 3.13) omogočajo oskrbo in z njo
povezane aktivnosti. To pomeni, da lahko stranka uporabi strojno opremo neposredno, na
način da izvaja delovni proces ter z njim nastalo obremenitev na dejanski fizični in ne zgolj
na navidezni napravi, kot je to denimo Hypervizor. [17]
Slika 3.12 Throve arhitektura
(Vir: https://www.mirantis.com/blog/enterprise-openstack-dbaas,dostopno 16.8.2016)
25
(Vir:http://docs.openstack.org/developer/ironic/deploy/user-guide.html,dostopno,4.8.2016)
3.5.5 ZAQAR – Storitev sporočanja
Gre za arhitekturo (Slika 3.15), ki predstavlja sporočevalno storitev za spletne in mobilne
razvijalce. Je skupek ideje Amazon SQS z dodano semantiko, ki podpira oddajanje
dogodkovnih sporočil. Podpira celoten RESTful API, ki ga lahko razvijalci uporabijo za
pošiljanje sporočila med različnimi komponentami programskih storitev in mobilnih aplikacij
s pomočjo različnih komunikacijskih vzorcev. Za pravilno delovanje vtičnika skrbi okolje za
sporočanje, zgrajeno s poudarkom na varnosti in z možnostjo razširitev, kar je bilo že
upoštevano pri zasnovi projekta.[27]
Slika 3.13 Ironic arhitektura
26
(Vir: https://wiki.openstack.org/wiki/Zaqar/old-home,dostopno 20.8.2016)
3.5.6 MANILA -Shared Filesystems
Je koncept in vizija vzpostavitve enotnega datotečnega sistema OpenStack storitvam, ki
temelji na Cinder komponenti. Ponuja storitev deljenja datotek deljenim datotečnim
sistemom. Ima modularno arhitekturo (Slika 3.16) in je na voljo kot samostojna komponenta.
Prvič je bila predstavljena v »Juno« izdaji. [18]
Slika 3.14 Zaqar arhitektura
27
3.5.7 DESIGNATE -DNS Storitev
Je komponenta, ki (Slika 3.17) zagotavlja delovanje DNSaaS storitve v OpenStack okolju.
Ima implementirano integracijo s Keystone za načine avtentikacije. Ponuja ogrodje za
povezavo z izmenjavo obvestil komponent Nova in Neutron, dodano ima tudi podporo za
PowerDNS in Bind9. [12]
Slika 3.15 Manila arhitektura
(Vir: https://solutionizeit.com/tag/openstack/,dostopno 13.8.2016)
Slika 3.16 Designate arhitektura
(Vir: http://blogs.rdoproject.org/6351/dnsaas-with-designate-powerdns-and-nsd4,
dostopno 5.8.2016
28
3.5.8 BARBICAN -Key Management
Je zasnovan kot REST API komponenta (Slika 3.18) za varno skladiščenje ter nadzor in
zagotavljanje ključev, gesel ter certifikatov, kakor tudi za upravljanje z njimi. Namenjen je
raznim različnim okoljem in oblačnim sistemom. [9]
3.5.9 MAGNUM –Containers
Storitev Magnum je bila razvita s strani OpenStack Containers skupine, ki razvija
orkestracijska ogrodja, kot so Docker Swarm, Kubernetes in Apache Mesos njihovo
delovanje (Slika 3.19). Ta ogrodja predstavljajo najpomembnejša sredstva v platformi. [26]
Slika 3.17 Barbican komponenta
(Vir:http://docs.openstack.org/developer/barbican/contribute/architecture.html,dostopno 16.8.2016)
29
3.5.10 MURANO -Application Catalog
Projekt predstavlja aplikacijski nabor elementov za platformo OpenStack. Zagotavlja
enostaven vmesnik ter vtičnik, ki omogoča kompozicijo in uporabo kompozitnih okolij na
nivoju aplikativne rabe in aplikativnega življenjskega cikla.
3.5.11 CONGRESS –Governance
Omogoča PaaS (policy as a storitev) za vse storitve v oblaku, da bi lahko zagotovili celotno
upravljanje skladnosti za izgrajene dinamične infrastrukture. [8]
Slika 3.18 Magnum delovni tok
(Vir: https://wiki.openstack.org/wiki/Magnum,dostopno 17.8.2016)
30
4 SAHARA
4.1 Definicija
Namen Sahare je zagotoviti dinamičen sistem za obdelavo podatkov na skladu ter
zagotavljanje učinkovitega delovanja skladov ter upravljanja z njimi, kakor tudi načrtovanje,
upravljanje in procesiranje podatkov na skladu.
Sahara je eden izmed glavnih komponent OpenStack arhitekture. Razvita je bila s strani
vodilnih pri Apache in OpenStack s sodelovanjem skupnosti Mirantis, Hortonworks in Red
Hat. Ponuja prilagodljivo podatkovno procesiranje (EDP) in ustvarjanje predlog na podlagi
naslednjih atributov[22]:
:
kreiranje in upravljanje gruč
izgradnjo in zagon analitičnih nalog
voden programski grafični vmesnik- spletna konzola
Uporabnik z pomočjo Sahare upravlja le z tremi večjimi entitetami ki so:
Predloge vozliščnih skupin,
predloge gruč
gruče
Vtičniki, ki nam omogočajo predloge:
Cloudera
Spark
Vanilla Apache Hadoop
31
4.2 Zgradba Sahare po komponentah:
Komponente Sahare (Slika 4.1):
Cluster Configuration Manager – upravlja konfiguracijo gruče
Auth component – skrbi za odjemalčevo avtentikacijo ter avtorizacijo s pomočjo
Identity storitve.
DAL - Data Access Layer – odpravljena navzočnost notranjih modelov podatkovnih
zbirk
VM Provisioning – komponenta, odgovorna za komunikacijo med: OpenStack
Compute (nova), Orchestration-(heat), Block Storage (cinder) in Image (glance)
storitvami
Deployment Engine
REST API – razširja funkcionalne lastnosti projekta preko REST http vmesnika
Python Sahara Client – projektu lasten python odjemalec
Sahara pages – zagotavlja grafični vmesnik v OpenStack Dashboard
Slika 4.1 Sahara komponente
(Vir: http://docs.openstack.org/developer/sahara/overview.html,dostopno 13.8.2016)
32
4.3 Delovanje
Namen Sahare je zagotoviti uporabnikom preprost način upravljanja s Hadoop Spark ter
Storm gručami. To dosega z določitvijo večjega števila parametrov, kot so: verzija,
topologija, strojne opreme idr. Sahara omogoča upravljanje z dodajanjem in odvzemanjem
vozlišč na daljavo.[22]
Projekt funkcionalno uporaben za:
Hitre obdelave in zagotavljanje podatkov za procesiranje Hadoop gručah na
OpenStack platformi za razvijanje, testiranje ter zagotavljanje kakovosti.
Učinkovito koriščenje neuporabljene računske moči oblaka za namene
infrastrukture kot storitve tipa oblaka
AaaS - Analytics as a Storitev za ad-hoc ali sočasne analitične operacije
(podobno kot AWS EMR)
4.3.1 Delovni tok Sahara ogrodja (Slika 4.2)
1. Izbira Hadoop različice
2. Izberemo bazno sliko z ali brez pred-nameščenega ogrodja za procesiranje podatkov
3. Določimo arhitekturno obliko gruče, ki vključuje velikost gruče, topologijo ter parametre
programske arhitekture.
4. Sahara zagotovi navidezne naprave, namestitev ter konfiguracijo ogrodja za
procesiranje podatkov
5. Izvajanje operacij nad vozlišči, kot so kreiranje in odstranjevanje vozlišč
6. Zaključek življenjskega cikla gruče, ko ta ni več potreben.
[22]
33
Slika 4.2 Delovni tok Sahara
4.4 Glavne značilnosti:
Sahara je bila zasnovana kot OpenStack komponenta, ki se upravlja z REST vtičnikom
preko uporabniškega vmesnika ki je na voljo na OpenStack nadzorni plošči.
Predstavlja podporo za različne Hadoop distribucije:
ponuja vtičniški sistem za Hadoop namestitvene sisteme;
ponuja integracijo s proizvajalci namenskih upravljalnih orodij, kot so Apache
Ambari ali Cloudera Managment Console;
Ponuja vnaprej definirane predloge Hadoop gručnih konfiguracij z možnostjo
spreminjanja parametrov, podporo mnogo podatkovnoprocesnih ogrodij, kot so:
Apache, Spark in Storm ter vtičniški mehanizem za namestitev Hadoop gruč. [16]
4.5 Predloge
Za poenostavljeno upravljanje je Sahara vključila sistem predlog, ki uporabniku močno
zmanjšajo delo ter prihranijo ogromno časa, potrebnega za ponavljajoča se dejanja.
Predloge delimo v dve skupini: predloge vozlišč ter predloge gruč. Prve se uporabljajo za
lažje kreiranje gruč. S tem so nam prihranili ogromno časa: vsakič ko smo želeli izgraditi
novo gručo, smo morali vedno znova vnašati parametre, ki so sedaj že ob prvi konfiguraciji
shranjeni v predlogi; slednjo lahko potem znova uporabimo (Slika 4.3) ali pa prilagodimo
brez spreminjanja vseh parametrov.
34
Slika 4.3 Tok uporabe predlog
(Vir: https://wiki.openstack.org/wiki/Sahara/Templates,dostopno 13.8.2016)
4.5.1 Urejanje predloga skupine vozlišč
Predloge nam s svojim delovanjem (slika 4.4) v ozadju omogočajo, da se izognemo
ponovnemu nastavljanju parametrov ob ponovni uporabi za kreiranju gruče. Nastavimo
število instanc vsakega nivoja za kreiranje, vrsto strojnih zmogljivosti, ki jih bomo vozlišču
dodelili ter tip omrežnih nastavitev in nastavitev skupine za upravljanje varnosti.
35
Slika 4.4 Delovni tok predloge vozlišč
(vir:http://wiki.openstack.org/wiki/Sahara/ModifyNodeGroupTemplate,dostopno21.8.2016)
4.5.2 Urejanje predloge gruče
Predloge gruč nam s svojim delovanjem (Slika 4.5) omogočajo ponovno uporabljivost. Z
delovanjem predloge za vozlišča, ki smo jih predstavili v poglavju 4.5.1, nastavimo gruči
osnovne nastavitve in nastavitve vozlišč, upravljamo varnostno skupino, nastavitve
vtičnikov ter ostalih povezanih komponent.
Slika 4.5 Delovni tok predloge gruče
(Vir: https://wiki.openstack.org/wiki/Sahara/ModifyClusterTemplate,dostopno 20.8.2016)
36
4.6 Podpora z drugimi OpenStack storitvam:
Sahara se povezuje z drugimi komponentami (Slika 4.6) kot so:
Dashboard (horizon) preko REST API
Identity (keystone)
Compute (nova)
Orchestration (heat)
Image (glance)
Object Storage (swift)
Block Storage (cinder)
Networking (neutron)
Telemetry (ceilometer)
Shared file systems (manila)
Slika 4.6 sodelovanje z drugimi komponentami
(Vir: http://docs.openstack.org/developer/sahara/overview.html,dostopno 17.8.2016)
37
4.7 Funkcije projekta Sahara
4.7.1 Blokovna hramba
Uporabimo jo lahko kot alternativo za pogone na instancah, saj nam poveča zanesljivost
hranjenih podatkov, kar je zelo pomembno za HDFS storitve. Uporabnik ima možnost
upravljanja in nastavljanja obsega hrambe, dodeljene vsaki instanci v skupini vozlišč, lahko
pa določa tudi velikost vsake hrambe ločeno od ostalih. Vse hrambe so dodeljene med
kreiranjem gruče ter med njegovim skaliranjem.
Če uporabljamo HDFS hrambo, se je pomembno osredotočiti na linearne bralno-pisalne
operacije in poskrbeti, da je stopnja IOpS dovolj velika za upravljanje in nadziranje
obremenitev med delovanjem, s čimer preprečimo morebitna ozka grla na tej stopnji in
zadovoljimo zmogljivosti oblaka. V nekaterih primerih se lahko obseg hrambe podpre z
komponento, ki podpira porazdeljeno hrambo, kot je Ceph. Pri tej namestitvi moramo biti
pozorni, da mrežne latence in hitrost mreže ne postanejo ozko grlo za HDFS. Porazdeljena
hramba običajno ponuja svoje mehanizme replikacije. HDES replikacija je v tem primeru
onemogočena, da ne generira redundantnega omrežnega prometa skozi oblak. [16]
4.7.2 Prilagoditev gruče
Omogoča uporabniku, da spremeni večje število izvajanih instanc v klastru brez potrebe po
vnovičnem kreiranju le-tega. Uporabnik ima na voljo povečanje ali zmanjšanje števila
instanc v vozliščni skupini ali doda nov vozliščno skupino obstoječi gruči. V primeru, da se
to spremembe ne uveljavijo pravilno, se vse spremembe povrnejo v začetno stanje pred
spreminjanjem ali dodajanjem. [16]
4.7.3 Lokalnost podatkov
Za optimalno zmogljivost je najbolje, da aplikacije, ki skrbijo za obdelavo podatkov, delajo
s podatki lokalno na istem nivoju. Hadoop podpira možnost lokalnega procesiranja
podatkov in razporejanje nalog s sledenjem opravilom vseh vozlišč, ki obdelujejo podatke
na lokalnem nivoju. To pomeni da lahko sledilna vozlišča sledijo in komunicirajo direktno
lokalnim vozliščem. Sahara podpira tudi konfiguracijo topologije HDFS in objektnega
hranjenja podatkovnih virov. [16]
38
4.7.4 Porazdeljen način
Sahara ima možnost konfiguracije delovanja v porazdeljenem načinu, ki kreira ločitev med
API in delovnimi procesi. To tudi omogoča API procesom, da ostanejo relativno enostavni
za upravljanje zahtev, medtem ko se izvajajo zahtevni engine procesi. V pomoč nam je
sahara-api, ki deluje kot front-end in streže uporabniške zahteve. Če Saharo poganjamo na
več kot enem gostitelju, se lahko API ukazi enakomerno porazdelijo med gostitelji, ki
uporabljajo storitev uravnavanja obremenitve, ni pa to potrebno izvajati med različnimi
sahara-engine gostitelji, saj se to avtomatično zgodi z pomočjo message broker-ja. [16]
4.7.5 Hadoop HDFS razpoložljivost
Ponuja arhitekturo za zagotavljanje HDFS-ovega delovanja tudi v primeru napake
namenode objekta. Uporablja dve namenodes v aktivno-pasivnih spremembah
konfiguracije HDFS in drugih storitvah, ki uporabljajo HDFS. [16]
4.7.6 Omrežna podpora
V privzetem načinu Sahara uporablja nova-network implementacijo OpenStack arhitekture.
Za dinamično upravljanje z IP naslovi med postavitvijo gruče mora Sahara imeti možnost
dostopa in upravljanja z Secure shell (SSH) bodisi preko statičnega bodisi dinamičnega IP
naslova instance. Privzeto delovanje Sahare je nastavljeno na dinamične naslove za
dostop, nadzor in upravljanje. Uporabnik lahko izbere, da vsi primerki uporabljajo dinamične
IP naslove, če pa se zanje ne odloči, ima še vedno na voljo statične IP naslove. V kolikor
uporabljamo Nutron komponento za upravljanje omrežnih aktivnosti, ima uporabnik
možnost določiti statične naslove vse instancam v klastru. V obeh primerih izbire moramo
zagotoviti, da imajo vsi primerki, na katerih se izvaja Sahara, dostop do statičnega IP
omrežja. [16]
39
4.7.7 Sistem za skupno rabo datotek
Sahara uporablja NFS(Network File System) deljenje preko OpenStack Shared Fylesystem
service – manila za shranjevanje binarnih in podatkovnih storitev. Zagotavlja usklajen
dostop do deljenih in skupnih datotečnih sistemov, medtem ko je primarna poraba datotek
v krogu OpenStack Compute instanc. [16]
4.7.8 Orkestracijska podpora – Heat
Je vodilni del OpenStack arhitekture, glavni projekt OpenStack orkestracije za
implementacijo delovanja sistema za zagon mnogih oblačnih aplikacij na osnovi tekstovno
datotečnih predlog, ki se lahko smatrajo za programsko kodo. Ob zelo hitrem in
pospešenem razvoju kreirnih predlog je še vedno prisotna skrb za kompatibilnost z AWS
CloudFormation formatom, kar pomeni, da lahko uporabimo že obstoječe CloudFormation
predloge za uveljavitev konfiguracije.
Podpira tako OpenStack-native ReST API in CloudFormation-compatible Query API. Viri
Heat infrastrukture so sestavljeni iz: strežnikov, dinamičnih IP naslovov, shrambe,
varnostnih skupin, uporabnikov. Hkrati Heat ponuja telemetrijo za prilagajanje skupini, ki se
lahko vključi kot vir v predlogo (template). Predloge lahko določijo povezavo med viri, kar
omogoča Heat-u uporabo OpenStack API za izgradnjo vse potrebne infrastrukture v
pravilnem zaporedju za pripravo aplikacije.
Upravlja s celotnim življenjskim ciklom aplikacije, to pomeni od začetka do konca izgradnje.
Ko začutimo potrebo po spremembi infrastrukture, uporabljeno predlogo pred začetkom
izgradnje ustrezno spremenimo in tako posodobimo naš stack. Arhitektura zna poskrbeti za
potrebne spremembe, kar vključuje izbris vseh datoteke in virov po uporabi aplikacije.
Glavna naloga je upravljanje infrastrukture, kjer pridejo do izraza predloge (Templates), ki
so zelo dobro integrirane z drugimi orodji za upravljanje konfiguracij, kot sta Puppet in Chef.
Nadaljni razvoj komponente je orientiran na okrepitev povezave med programsko opremo
in infrastrukturo za še učinkovitejše delovanje in boljšo stabilnost. [16]
40
4.7.9 Možnost vključitve vtičnikov
Tabela prikazuje kompatibilnost lastnosti z vtičniki (Tabela 4.1)
Tabela 4.1 Kompatibilnost komponent z vtičniki
Lastnost Vtičnik
Vanilla HDP Cloudera Spark
Nova and Neutron network x x x x
Cluster Scaling x Novejše verzije
x x
Swift Integration x x x x
Cinder Support x x x x
Data Locality x x N/A x
EDP x x x x
4.7.10 Upravljanje varnostnih skupin
Varnostne skupine so IP filtri, ki so določeni omrežju instance. Specifični so za vsak projekt
ločeno, uporabnik pa ima možnost urejanja privzetih nastavitev dodajanja in odstranjevanja.
Vsak projekt ima na začetku določeno privzeto varnostno skupino, ki se kasneje določi
instanci brez kakor koli drugače definirane varnostne skupinske politike. [16]
Sahara uporabnikom omogoča izbiro varnostne politike za vsako instanco posebej, kar je
mogoče storiti preko security_groups parametra. Omogočena je tudi nastavitev zaprtega
tipa omrežja, ki v oddaljenem izvajanju konfiguracij preprečuje zunanje grožnje med
inkubacijo in postavitvijo oblaka. [16]
41
4.7.11 Pomoč pri deljenju in zaščiti virov
Sahara dovoljuje kreiranje in določanje virov, ki so deljeni med uporabniki/najemniki
arhitekture in so zaščiteni pred spremembami. Za uporabo pred spremembami se dostopa
preko Sahara REST API z nastavitvijo parametrov logičnega tipa; privzeto so parametri
nastavljeni na false. Če so parametri nastavljeni na true, potem to pomeni, da ne morejo
biti spremenjeni med izvajanjem s tem so možnosti posodabljanja, manjšanja, preklica in
brisanja onemogočene. Javni objekti funkcij, kreirani iz ene predloge, se lahko prenašajo v
drugo predlogo, kar pomeni da je lahko klaster, ki je bil kreiran iz javne predloge gruče,
kreiran v drugem razdelku. [16]
4.8 Integracija z Swift
Storitev Swift je standard objektnega shranjevanja v OpenStack okolju. S tem pridobimo
Hadoop na OpenStack platformi za obdelavo podatkov, kjer so ti shranjeni. Integracija s
Swift in Hadoop je pomembna za nadaljnje delo in povezovanje. Ključ te integracije je
implementacija Hadoop Swift datotečnega sistema, pri čemer sta bila razvoj in
implementacija združena v izvajanje projekta Hadoop. Sahara vzdržuje različice s trenutno
najnovejšimi funkcijami.[22]
4.9 Vtičniki
4.9.1 Vanilla vtičnik
Vanilla vtičnik omogoča končnemu uporabniku nadzor in upravljanje gruče z Apache
Hadoop. Vnaprej konfigurirane slike lahko prenesemo z Mirantis spletnega repozitorija ali
jih kreiramo sami. Za uporabo vtičnika potrebujemo nameščen ssh odjemalec, okolje Java
verzije 6.0 ali novejše, nameščen Apache Hadoop ter kreiranega uporabnika Hadoop Oozie
verzije 4 (ali novejše), MySql ter hive [25]
42
4.9.2 Ambari vtičnik
Ambari vtičnik nam omogoča izgradnjo gruče s platformo Hortonworks Data Platform v
OpenStacku, kjer nam je na voljo uporaba predloge, ki je zelo enostavna in pripravljena za
ponovno uporabo. Saharin krmilnik omogoča povezavo med Hadoop in OpenStack, med
katerima upravlja zahteve Ambari vtičnik, ki razporeja in konfigurira Hadoop na OpenStack
platformo. Ambari vtičnik uporablja Ambari Blueprints za oskrbo gruče.[1]
4.9.3 Spark vtičnik
Spark vtičnik zagotavlja Apache Spark gručna na OpenStack platformi z enostavno
uporabo ter s ponovno uporabljivostjo. [24]
4.9.4 MapR Distribution vtičnik
MapR vtičnik zagotavlja MapR gruče na OpenStack platformi z zelo enostavnim, hitrim ter
učinkovitim načinom izgradnje. [19]
4.9.5 Cloudera vtičnik
Cloudera s svojim delovanjem (Slika 4.3) uporabnikom omogoča razvoj in delovanje gruč
s Cloudera Manager-jem. Cloudera ima možnost prilagajanja nastavitev delovanja preko
nastavitev konfiguracije, ki se nahaja v konfiguracijski datoteki projekta Sahara ter je ob
izgradnji že privzeto vključena in omogočena.[11]
43
Slika 4.7 Cloudera tok delovnega procesa
4.10 Elastic Data Processing (EDP)
Elastic Data Processing (Slika 4.8) uporabniku daje možnost izvršitev opravil na gruči, ki je
bil kreiran z pomočjo Sahara EDP modula.
44
Sahara Elastic Data Processing omogoča:
Uporabo Hive, Pig, MapReduce, MapReduce.Streaming, Java ter izvršbo Shell
ukazov na Hadoop gručah,
Spark paketna opravila na Spark standalone gručah, MapR spark gruče in
CDH gruče,
Hrambo binarnih del v OpenStack Object Storage storitev (Swift) ter
OpenStack Shared file systems storitev (manila) ali v lastni Sahara podatkovni
zbirki,
Dostop do vnosa in iznosa podatkov na:
HDFS
Swift
Manila
Konfiguracijo opravil
Izvršitev opravil na obstoječih ali na predhodno definiranih gručah
[15]
4.11 Sahara REST API
Namenjen je izvrševanju MapReduce opravil na Hadoop clustrih. Na njem so podatkovni
viri sestavljeni iz: Swift, HDFS ter Ceph arhitekture. Podpira vtičniško arhitekturo Oozie ter
Spark. Vključeno ima podporo za Hadoop verziji 1, ki poganjata enega od naslednjih
procesov: jobtracker, namenode, oozie, tasktracker, datanode; in prav tako tudi verziji 2, ki
morata vsebovati enega izmed naslednjih procesov: namenode, datanode,
resourcemanager, nodemanager, historyserver ali oozie. Pri avtentikaciji in avtorizaciji
OpenStack uporablja storitev Identity za privzeti način avtentikacije in avtorizacije. Ko
uporabnik pošlje zahtevo, se preveri avtentikacija, kadar je Identity prisoten v glavi zahtevka
preko posebnega parametra. [23]
Slika 4.8 EDP delovni tok
45
4.12 Kreiranja nove gruče
Kreiranje nove gruče je sestavljeno iz korakov (Slika 4.9):
1. Validacija
2. Infrastrukturne posodobitve
3. Vzpostavitev
4. Čakanje na zagon navideznih računalnikov
5. Priprava
6. Konfiguracija
7. Hadoop zagon
8. Zagon gruče
Slika 4.9 koraki kreiranje nove gruče
46
5 MIRANTIS
5.1 Definicija
OpenStack je odprtokodna platforma, ki se uporablja izključno za postavitev programske
infrastrukture razvijajočega se računalništva v oblaku. Je edina platforma, ki deluje na vseh
operacijskih sistemih, vključno z Red Hat, CentOS ter Ubuntu Linux. Nadzorovana je s
strani podjetja OpenStack Foundation, ustvarjenega za promocijo razvoja in za distribucijo
platforme OpenStack.
Distribucija Mirantis trenutno prispeva največ k razvoju slednje: s pomočjo priporočil
uporabnikov skuša dvigniti platformo OpenStack na nivo, ki bo zadovoljil potrebe vseh
uporabnikov. Za delovanje uporablja odprtokodne komponente in rešitve, ki jih podaja
OpenStack platforma. Mirantis hkrati prodaja komercialno verzijo programa z možnostjo
testiranja programa, njegove izboljšave in nadgraditve.
Podjetje Mirantis je za razliko od drugih konkurenčnih programov (podjetij Red Hat, Hewlett-
Packard idr.) oktobra 2013 predstavilo lastno distribucijo OpenStack platforme. Skozi nekaj
let razvoja in z izdajo številnih različic in komponent se je uveljavila v OpenStack
platformi.[6]
47
5.2 Zgradba
Platforma Mirantis OpenStack je zgrajena (Slika 5.1) iz OpenStack jedra, ki je združljivo s
compute, storage in networking komponentami za kar največjo elastičnost in prilagodljivost
uporabniku. V primerjavi z drugimi platformami Mirantis ne omejuje uporabnikov, ne
zaklepa dostopa do glavnih komponent, ima široko podporo vtičnikov in dodatkov ter je med
ponudniki storitev, ki jih lahko upravljamo z lastnimi orodji, v samem vrhu. [6]
5.2.1 Compute – Nova
Upravlja z življenjskim ciklom compute primerkov v OpenStack okolju. Njegove
odgovornosti vključujejo ustvarjanje novih instanc, prilagajanje časovnega izvajanja ter
terminiranje primerkov.[21]
5.2.2 Storage –Cinder
Zagotavlja neprekinjeno blokovno shrambo za vse vzpostavljene instance. Je vtičniško
(Slika 5.2) naravnana arhitektura za kreiranje in upravljanje različnih naprav z blokovno
hrambo. [10]
Slika 5.1 Mirantis arhitektura
(Vir: https://www.mirantis.com/products/mirantis-openstack-software/what-is-new-in-8-
0/,dostopno 16.8.2016 )
48
Slika 5.2 Cinder arhitektura
(Vir: https://www.mirantis.com/blog/openstack-cinder-first-look/,dostopno 19.8.2016)
5.2.3 Networking - Neutron
Omogoča omrežje kot Connectivity as a Service (CaaS) drugim OpenStack storitvam (npr.
Openstack Compute) ter zagotavlja API za uporabnike, ki so definirani v omrežju. Ima
vtičniško arhitekturo, ki podpira mnogo priljubljenih ponudnikov omrežnih storitev in
tehnologij. [20]
5.3 Izvedba testov
Za okolje lahko izvedemo teste (Slika 5.3),(Slika 5.4) funkcionalnosti, ki lahko odkrijejo
zgodnje napake v nastavitvah okolja.
49
5.3.1 Testi funkcionalnosti
Slika 5.3 testiranje funkcionalnosti okolja 1.del
50
Slika 5.4 testiranje funkcionalnosti okolja 2.dels
51
6 NAMESTITEV MIRANTIS SAHARA PROJEKTA V OKOLJE OPENSTACK
Po uspešni namestitvi okolja se prijavimo v Fuel nadzorno ploščo (Slika 6.1) z
uporabniškim imenom in geslom, ki ga zaradi varnosti našega okolja ob prvi prijavi
tudi spremenimo
Slika 6.1 Fuel prijava
52
Sledi izgradnja OpenStack okolja, ki mu določimo parametre, kot je prikazano
(Slika 6.2). Spodaj izberemo ime okolja ter OpenStack različico.
.
Slika 6.2 vnos imena ter izbira OpenStack različice
Izberemo nastavitve Compute modula (Slika 6.3) z izbiro QEMU-KVM ali vCenter.
Slika 6.3 izbira nastavitev Compute
Nato z izbiro segmentacije prikazano na sliki izberemo omrežne nastavitve (Slika
6.4).
53
Slika 6.4 izbera omrežnih nastavitev
V naslednjem koraku nastavimo konfiguracijo blokovnega in objektnega
shranjevanja podatkov (Slika 6.5). Pri blokovni hrambi izbiramo med LVM ter Ceph
arhitekturo. Za objektno hrambo, hrambo slik ter kratkotrajno hrambo nam je na
voljo Ceph komponenta.
Slika 6.5 nastavitev hrambe objektov
54
V naslednjem koraku izberemo izbirne/dodatne storitve, ki jih želimo vključiti v naše okolje,
in tukaj izberemo naš projekt SAHARA (Slika 6.6). V okolje bi lahko vključili še aplikacijski
katalog Murano ter orodji za nadzor in telemetrijo Ceilometer ter Ironic.
Po uspešnem kreiranju okolja pridobimo dostop do nadzorne plošče (Slika 6.7) za
upravljanje nastavitev ter virov. V okolju dodelimo prosta vozlišča Compute, Storage ter
Networking komponentam za delovanje ter strojne vire potrdimo, da se prične postopek
namestitve osnovnih operacijskih sistemov na vozlišča in namestitev OpenStack platforme
ter dodatnih storitev, ki smo jih izbrali v kreiranju okolja. Popravimo nastavitve omrežja ter
hrambe, dodamo ali odstranimo komponente. Pridobimo dostop do poročil oz. trenutnega
stanja integracije okolja. Možnost izvedbe testov pripomore k hitremu odkrivanju napak pri
izbiri namestitev.
Slika 6.6 Izbira dodatnih storitev
55
Kadar uveljavimo spremembe in nastavitve vozlišč, sledi upravljanje z vozlišči, a še prej je
potrebna avtorizacija (Slika 6.8) na Horizon nadzorni plošči.
Slika 6.7 Prijava v nadzorno ploščo Horizon
56
Po uspešni prijavi v nadzorno stran preko spletnega vmesnika (Slika 6.9 ) vidimo pregled
nad uporabo virov. Na levi strani imamo navigacijo med sekcijami: projekt, skrbnik, sistem
ter identiteta.
V naslednjem koraku izberemo zavihek projekt (Slika 6.10) ter podkategorijo slike
(»Images«), kjer izberemo gumb ustvari sliko (»create image«). Pojavi se nam formular za
vnos parametrov: ime, opis, izbira vira, izbira direktorija shranjene slike ali spletni naslov
(opcijsko glede na izbiro vira slike), izberemo tip formata slike, ki jo bomo uporabili.
Določimo lahko tudi minimalne zahteve za kreirano sliko, kot so arhitektura, najniža
kapaciteta shranjevalnega prostora ter najnižja velikost delovnega pomnilnika. Na izbiro
imamo še dva atributa, ki nista tako ključnega pomena za delovanje, sliko lahko naredimo
javno (»public«), jo delimo z drugimi v platformi ali pa jo označimo kot zaščiteno/zasebno
(»protected«), tj. nevidno drugim. Nato izberemo »Create Image«, s čimer se prične proces
nalaganja, če izberemo prenos iz spletnega naslova se prične prenos iz spletnega imenika,
pri prenosu slike iz lokalnega imenika je čas nalaganja in shranjevanja dolg nekje 3-5 minut,
pri prenosu iz spletnega imenikab ima največji vpliv hitrost povezave (v mojem poskusu je
nalaganje slike velikosti 913MB ter shranjevanje je trajalo 7 minut).
Slika 6.8 Horizon nadzorna plošča
57
Slika 6.9 Kreiranje slike
Izgrajena gruča za dostop in upravljanje potrebuje omrežni dostop, zato moramo tudi
določiti omrežje (in možnosti dosptopa), ki mu bodo pripadale instance. Za upravljanje in
nastavljanje omrežja so nam na voljo nastavitve pod zavihkom omrežje »Network« (Slika
6.11), v katerem smo nastavili tri omrežja ter jih preko navideznega usmerjevalnika
povezali, da lahko dostopamo do virov iz enega v drugo omrežje.
58
Sledi registracija slike (Slika 6.12), kjer shranjeno sliko uporabimo. Za uspešen vpis slike v
imenik slik je potrebno izbrati s seznama sliko, ki smo jo prenesli v direktorij, nato izberemo
uporabniško ime ter opis. Na voljo imamo tudi vtičniške oznake, ki jih lahko za kasnejši lažji
nadzor in upravljanje morebitnih popravkov pripnemo registrirani sliki. Ko so vsi atributi
izbrani in vneseni, izberemo končano »done«.
Slika 6.10 Omrežna struktura
59
Slika 6.11 Registracija slike
Sledi kreiranje predloge vozliščne skupine (Slika 6.13), kjer izberemo naziv vtičnika, ki ga
bomo uporabili, ter verzijo izbranega vtičnika. Velja opozoriti, da je med različicami najbolje
izbrati zadnje, tj. različice označene z najvišjim nivojem, saj te vsebujejo popravke. V našem
primeru smo izbrali sliko z Apache Spark vtičnikom verzije 1.3.1 ter nato izbrali naprej
»next«.
60
Slika 6.12 Ustvarjanje predloge glavnega vozlišča 1. korak
Sledijo nastavitve konfiguracije (Slika 6.14) naše predloge. Za konfiguracijo imamo
naslednje atribute: naziv predloge, opis predloge, OpenStack predlogo, območje
razpoložljivosti, lokacijo shranjevanja ter omrežne nastavitve.
Slika 6.13 Ustvarjanje predloge glavnega vozlišča 2. korak
61
Sledi nastavitev vozliščnih procesov (Slika 6.15), kjer določimo atributa HDFS proces ter
Spark proces. Tukaj se nastavitve razlikujejo glede na to, ali izdelujemo glavno »master«
predlogo ali podložniško »slave« predlogo. Pri glavni predlogi smo izbrali HDFS proces
»namenode« ter Spark proces »master«.
Slika 6.14 Ustvarjanje predloge glavnega vozlišča 3. korak
Za tem sledi nastavitev (Slika 6.16) varnostne politike predloge in s tem tudi instanc, za
katere bomo uveljavili predlogo pri izgradnji. Predloga bo primerke umestila v privzeto
»default« varnostno skupino. Po nastavitvi vseh atributov izberemo ustvari »Create«.
Slika 6.15 Ustvarjanje predloge glavnega vozlišča 4. korak
62
Postopek se skorajda ponovi, le da za podložniško »slave« predlogo (Slika 6.17) veljajo
drugačni parametri. Ne smemo pozabiti, da morata imeti obe predlogi (»master« in »slave«)
enak vtičnik ter verzijo vtičnika, sicer lahko pride do nekompatibilnosti predloge ali do napak
med kreiranjem predloge gruče. Zatem izberemo Apache Spark verzije 1.3.1 ter izberemo
naprej »Next«.
Slika 6.16 Ustvarjanje predloge podrejenega vozlišča 1. korak
Naslednji korak (Slika 6.18) ponovno nastavimo nastavitve konfiguracije naše predloge, a
sedaj za podložniško »slave« predlogo. Za konfiguracijo imamo naslednje atribute: naziv
predloge, opis predloge, OpenStack predlogo, območje razpoložljivosti, lokacijo
shranjevanja ter omrežne nastavitve.
63
Slika 6.17 Ustvarjanje predloge podrejenega vozlišča 2. korak
64
V naslednjem zavihku (Slika 6.19) »Node Processes« pri HDFS procesu izberemo
»datanode«, pri Spark procesu pa izberemo »slave«
Slika 6.18 Ustvarjanje predloge podrejenega vozlišča 3. korak
V zavihku (Slika 6.20) varnost »Security« dodelimo instancam predloge privzeto »default«
varnostno skupino.
Slika 6.19 Ustvarjanje predloge podrejenega vozlišča 4. korak
65
V naslednjem koraku sledi kreiranje gručne predloge (Slika 6.21), v kateri bomo uporabili
do sedaj ustvarjene predloge. Spet izberemo vrsto vtičnika ter verzijo, ki morata biti identični
prejšnjima predlogama, ko smo kreirali predloge vozlišč »node template« Izberemo Spache
Spark ter v našem primeru različico 1.3.1.
Predlogi določimo parametre (Slika 6.22): naziv in morebiten opis. Nato opcijsko izberemo
tip predloge, bodisi javen ali zaseben.
Slika 6.20 Kreiranje predloge gruče 1. korak
66
Slika 6.21 Kreiranje predloge gruče 2. korak
Sledi korak, kjer uporabimo kreirane predloge vozlišč (Slika 6.23) iz prejšnjih korakov. Iz
spustnega seznama izberemo tip vozlišča ter kliknemo dodaj (simbol +), ki nam na seznam
doda predlogo izbranega vozlišča iz seznama. Dodamo obe (»master« in »slave«) predlogi
ter izberemo število primerkov, ki jih po predlogi izgradimo za vsako vrsto predloge. V naši
konfiguraciji bodo izgrajeni trije primerki podložniškega (»slave«) vozlišča ter en primerek
glavnega vozlišča (»master«).
67
V naslednjem zavihku splošni parametri (Slika 6.24) »general parameters«
izberemo/vnesemo splošne atribute, kot je prikazano na konfiguraciji na sliki spodaj.
V zavihku HDFS parametri (Slika 6.25) lahko pustimo privzete nastavitve, ki jih določi
predloga, ali jih prilagodimo kot v našem primeru na sliki.
Slika 6.22 Kreiranje predloge gruče 3.korak
68
Slika 6.23 Kreiranje predloge gruče 4. korak
Slika 6.24 Kreiranje predloge gruče 5. korak
69
V zavihku Spark parametri (Slika 6.26) nastavimo vrata za dostop do »master« grafičnega
vmesnika ter vrata za dostop do grafičnega vmesnika »worker« ter dodelimo ves
razpoložljiv spomin »worker«-ja.
Slika 6.25 Kreiranje predloge gruče 6. korak
Sledi končni korak kjer bomo po konfiguraciji (Slika 6.27) parametrov gruče dobili primerke,
ki so nastavljeni po uveljavljenih parametrih naših ustvarjenih predlog. Pri zagonu gruče
izberemo naziv ter različico vtičnika. Naše predloge temeljijo na Apache Spark vtičniku
različice1.3.1 ter izberemo naprej »next«.
Slika 6.26 Zagon gruče 1. korak
70
Pri vzpostavitvi (Slika 6.28) izberemo naziv gruče in morebiten dodaten opis, ki pa ni
obvezen parameter. Izberemo predlogo s konfiguracijo Apache Spark različice 1.3.1 in
izberemo število primerkov gruče, ki jo bo izgradilo (v našem primeru je to 1, kar pomeni da
bo ustvarilo štiri primerke: 1 glavni »master« primerek, ter 3 podrejene »slave« primerke).
Izberemo osnovno sliko, na kateri bodo izgrajeni primerki. Opcijsko za dostop lahko
izberemo že kreirane pare ključev »Keypair« ali jih kreiramo v tem koraku s klikom na »+«
simbol. Izberemo še omrežje, ki mu bodo primerki dodeljeni. Ko so vse nastavitve
konfiguracije izbrane, izberemo zagon »Launch«.
Slika 6.27 Zagon gruče 2. korak
71
Prične se postopek izgraditve (Slika 6.29) instanc, nastavljenih po nastavitvah/parametrih
v kreiranih predlogah. Takoj po zagonu izgraditve vidimo, da sta se izgradila dva primerka
(od štirih), ki sta kreirana po predlogi z generičnim imenom ter z zaporedno številko, ki sta
bile izgrajeni iz izbrane osnovne slike, ter sta dodeljeni konfiguriranemu omrežju z nazivom
»private«.
Slika 6.28 Seznam ustvarjenih (zagnanih) primerkov
Za vsak primerek imamo na voljo veliko število akcij (Slika 6.30), ki jih lahko izvedemo na
izbranem primerku, kot je prikazano na naslednji sliki.
Slika 6.29 Možnosti izgrajenih primerkov
72
7 SKLEP
V nalogi smo predstavili namestitev komponente Sahara, ki je del distribucije Mirantis
OpenStack. Za analizo je bila uporabljena distribucija OpenStack Mirantis 8.0 (pod kodnim
imenom Liberty), ki je bila postavljena na linux operacijskem sistemu Ubuntu različice 14.04.
Med namestitvijo Fuel okolja ni bilo zaznati nobene napake, prav tako ne med konfiguracijo
osnovnih komponent OpenStack okolja (z izjemo grafičnega vmesnika Horizon). Sam
vmesnik se je sicer izkazal za nastavitveno precej izpopolnjenega, saj nas je v korakih vodil
skozi postopek nastavitve parametrov in nam pomagal pri upravljanju konfiguracije vozlišč,
gruč, omrežja ter drugih nastavitev okolja.
V naši raziskavi je Horizon občasno zastal pri obvestilu “Waiting”, prav tako pa kljub
izdanemu obvestilu, da so bile nastavitve uspešno shranjene, mestoma ni zaznal
sprememb. Nadalje so se pojavile težave pri zavihku “Flavors”, ki predstavlja predloge
strojnih virov primerkov. Spreminjanje le-teh se ni najbolje obneslo, saj grafični vmesnik
spremenjene predloge včasih ni več našel in nato javil njeno odstranitev, čeprav je bila le
spremenjena. Tudi pri kreiranju predlog za vozlišča je bilo zaznati, da obrazec s parametri
ni bil pravilno poslan, in je bilo potrebno vse nastavitve nastaviti znova (ena od možnih
rešitev za to bi bilo shranjevanje obrazca v začasni pomnilnik, s čimer bi parametre v
primeru napake lahko obnovili in tako bistveno skrajšali čas njihovega vnašanja).
Okolje Mirantis je odrazilo stabilnost in reakcijsko konstantnost, saj med njegovo uporabo
ni bilo zaznanih zaustavitev in preprek. Distribucija OpenStack je pokazala svojo
funkcionalnosti tako za večja kot manjša podjetja in primernost za vse vrste oblakov. Na
drugi strani so se določena mesta spletni dokumentaciji OpenStack platforme zdela
vendarle preveč splošno opisana.
Zaradi Saharinih razsežnosti upravljanja z oblačno arhitekturo in z njenimi konfiguracijami
je bil v tej nalogi predstavljen samo del zmogljivosti te komponente, kar je obenem odkrilo
spoznavni potencial prihodnjih raziskav s tega področja
73
8 VIRI
[1] OpenStack. Ambari Plugin. Dostopno na:
http://docs.openstack.org/developer/sahara/userdoc/ambari_plugin.html [13.8.2016].
[2] Cloudify. A Quick Guide to Open Cloud. Dostopno na:
http://getcloudify.org/2014/07/18/openstack-wiki-open-cloud.html [18.8.2016].
[3] Florentine, S. What are the top five cloud features every exec should know?. Dostopno
na: http://www.cloudcomputing-news.net/news/2012/oct/04/top-5-cloud-features-every-
exec-should-know/ [16.8.2016].
[4] IBM. Deploy an OpenStack private cloud to a Hadoop MapReduce environment.
Dostopno na: http://www.ibm.com/developerworks/cloud/library/cl-openstack-
deployhadoop/ [8.8.2016].
[5] Mirantis. Mirantis OpenStack. Dostopno na:
https://www.openstack.org/marketplace/distros/distribution/mirantis/mirantis-openstack
[29.8.2016].
[6] Mirantis. OpenStack Software. Dostopno na:
https://www.mirantis.com/products/mirantis-openstack-software/ [11.8.2016].
[7] Wikipedia. OpenStack. Dostopno na: https://en.wikipedia.org/wiki/OpenStack
[3.8.2016].
[8] OpenStack. Congress. Dostopno na: https://wiki.openstack.org/wiki/Congress
[9.8.2016].
[9] OpenStack. Barbican. Dostopno na: https://wiki.openstack.org/wiki/Barbican
[15.8.2016].
[10] OpenStack. Cinder. Dostopno na: https://wiki.openstack.org/wiki/Cinder [16.8.2016].
[11] OpenStack. Cloudera Plugin. Dostopno na:
http://docs.openstack.org/developer/sahara/userdoc/cdh_plugin.html [15.8.2016].
[12] OpenStack. Designate, a DNSaaS component for OpenStack. Dostopno na:
http://docs.openstack.org/developer/designate [17.8.2016].
[13] OpenStack. Fuel Instalation Guide. Dostopno na: https://wiki.openstack.org/wiki/Fuel
[25.7.2016].
74
[14] OpenStack. Introduction to Fuel. Dostopno na:
http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-
guide/intro/intro_fuel_intro.html [18.6.2016].
[15] OpenStack. Elastic Data Processing (EDP). Dostopno na:
http://docs.openstack.org/developer/sahara/userdoc/edp [13.7.2016].
[16] OpenStack. Features overview. Dostopno na:
http://docs.openstack.org/developer/sahara/userdoc/features.html [17.8.2016].
[17] OpenStack. Ironic. Dostopno na: https://wiki.openstack.org/wiki/Ironic [3.8.2016].
[18] OpenStack. Manila. Dostopno na: https://wiki.openstack.org/wiki/Manila [17.8.2016].
[19] OpenStack. MApR Distribution Plugin. Dostopno na:
http://docs.openstack.org/developer/sahara/userdoc/mapr_plugin.html [6.8.2016].
[20] OpenStack. Neutron. Dostopno na: https://wiki.openstack.org/wiki/Neutron
[19.6.2016].
[21] OpenStack. Nova. Dostopno na: https://wiki.openstack.org/wiki/Nova [16.8.2016].
[22] OpenStack. Rationale-Sahara. Dostopno na:
http://docs.openstack.org/developer/sahara/overview.html [25.8.2016].
[23] OpenStack. Sahara REST API v1.0. Dostopno na:
http://docs.openstack.org/developer/sahara/restapi/rest_api_v1.0.html [4.8.2016].
[24] OpenStack. Spark Plugin. Dostopno na:
http://docs.openstack.org/developer/sahara/userdoc/spark_plugin.html [3.8.2016].
[25] OpenStack. Vaničča Plugin. Dostopno na:
http://docs.openstack.org/developer/sahara/userdoc/vanilla_plugin.html [6.8.2016].
[26] OpenStack. Magnum. Dostopno na: https://wiki.openstack.org/wiki/Magnum
[5.6.2016].
[27] OpenStack. Zaqar. Dostopnno na: https://wiki.openstack.org/wiki/Zaqar [18.6.2016].
[28] Wikipedija. Računalništvo v oblaku. Dostopno na:
https://sl.wikipedia.org/wiki/Ra%C4%8Dunalni%C5%A1tvo_v_oblaku [14.8.2016].
[29] Wikipedia. Cloud computing. Dostopno na:
https://en.wikipedia.org/wiki/Cloud_computing [17.8.2016].
[30] Wikipedia. OpenStack. Dostopno na: https://en.wikipedia.org/wiki/OpenStack
[15.6.2016].
75
IZJAVA O ISTOVETNOSTI TISKANE IN ELEKTRONSKE VERZIJE ZAKLJUČNEGA
DELA IN OBJAVI OSEBNIH PODATKOV DIPLOMANTOV Ime in priimek avtorja:
Gregor Kocmut
Vpisna številka:
E1064241
Študijski program:
INFORMATIKA IN TEHNOLOGIJE KOMUNICIRANJA
Naslov zaključnega dela:
Izgradnja projekta Sahara v okolju Mirantis 8.0
Mentor:
viš. pred. dr. Bojan Novak , univ. dipl. inž. el
Somentor:
/
Podpisani-a Gregor Kocmut izjavljam, da sem za potrebe arhiviranja oddal elektronsko verzijo zaključnega dela v Digitalno knjižnico Univerze v Mariboru. Zaključno delo sem izdelal-a sam-a ob pomoči mentorja. V skladu s 1. odstavkom 21. člena Zakona o avtorskih in sorodnih pravicah dovoljujem, da se zgoraj navedeno zaključno delo objavi na portalu Digitalne knjižnice Univerze v Mariboru. Tiskana verzija zaključnega dela je istovetna z elektronsko verzijo elektronski verziji, ki sem jo oddal za objavo v Digitalno knjižnico Univerze v Mariboru.
Zaključno delo zaradi zagotavljanja konkurenčne prednosti, varstva industrijske lastnine ali tajnosti podatkov naročnika: ne sme biti javno dostopno do (datum odloga javne objave ne sme biti daljši kot 3 leta od zagovora dela).
Podpisani izjavljam, da dovoljujem objavo osebnih podatkov, vezanih na zaključek študija (ime, priimek, leto in kraj rojstva, datum zaključka študija, naslov zaključnega dela), na spletnih straneh in v publikacijah UM. Datum in kraj: Podpis avtorja-ice: Podpis mentorja: (samo v primeru, če delo ne sme biti javno dostopno)
Podpis odgovorne osebe naročnika in žig: (samo v primeru, če delo ne sme biti javno dostopno)
76
I Z J A V A O A V T O R S T V U
Spodaj podpisani
Gregor Kocmut
z vpisno številko
E1064241
sem avtor diplomskega dela z naslovom:
Izgradnja projekta Sahara v okolju Mirantis 8.0
Deployment of project Sahara in Mirantis 8.0
(naslov diplomskega dela)
S svojim podpisom zagotavljam, da:
sem diplomsko delo izdelal/-a samostojno pod mentorstvom (naziv, ime in priimek)
viš. pred. dr. Bojan Novak, univ. dipl. inž. el
in somentorstvom (naziv, ime in priimek)
/
so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek (slov., angl.) ter ključne besede (slov., angl.) identični s tiskano obliko diplomskega dela.
soglašam z javno objavo elektronske oblike diplomskega dela v DKUM.
V Mariboru, dne
Podpis avtorja/-ice:
77
IZJAVA O USTREZNOSTI ZAKLJUČNEGA DELA
Podpisani mentor :
viš. pred. dr. Bojan Novak, univ. dipl. inž. el
(ime in priimek mentorja)
in somentor (eden ali več, če obstajata):
_____________/________________________________
(ime in priimek somentorja)
Izjavljam , da je študent
Ime in priimek: Gregor Kocmut
Vpisna številka: E1064241
Na programu: INFORMATIKA IN TEHNOLOGIJE KOMUNICIRANJA
izdelal zaključno delo z naslovom:
______ Izgradnja projekta Sahara v okolju Mirantis 8.0________________________
(naslov zaključnega dela v slovenskem in angleškem jeziku)
__________Deployment of project Sahara in Mirantis 8.0 _______________________
v skladu z odobreno temo zaključnega dela, Navodilih o pripravi zaključnih del in mojimi (najinimi oziroma našimi) navodili. Preveril (-a, -i) in pregledal (-a, -i) sem (sva, smo) poročilo o plagiatorstvu. Datum in kraj: Podpis mentorja: Datum in kraj: Podpis somentorja (če obstaja): Priloga:
- Poročilo o preverjanju podobnosti z drugimi deli.