Корисник:Vujinjovana12/Radionica

С Википедије, слободне енциклопедије

Šta je OpenStack[уреди | уреди извор]

OpenStack je IaaS cloud projekat, iniciran od strane „Rackspace Cloud“-a i „NASA“-e. Projekat je besplatan open source softver, objavljen pod uslovima Apache Licence. Projektom rukovodi OpenStack fondacija, neprofitna korporativna firma koja promoviše , štiti i rukovodi OpenStack softverom. Trenutno se preko 150 kompanija pridružilo ovom projektu, a najznačajnije od njih su: AMD, Intel, Canonical, SUSE Linux, Red Hat, Cisco, Citrix, Dell, HP, IBM, Yahoo!. Projekat predstavlja Linux open source rešenje. OpenStack je napisan u Python-u i razvijen je pod Apache licencom. Tehnologija se sastoji od niza povezanih projekata koji kontrolišu velike skupove resursa (pools) za izračunavanje, skladištenje i umrežavanje resursa u celom centru podataka. OpenStack-om se upravlja preko kontrolne tabele koja pruža administratorima kontrolu, a sve to kako bi se korisnicima obezbedili resursi putem veb interfejsa.[8]


Istorija[уреди | уреди извор]

U julu 2010 Rackspace Hosting i NASA su zajednički pokrenuli novu inicijativu otvorenog koda (open source) poznatog kao OpenStack. Zadatak OpenStack projekta je da omogući organizacijama da na sopstvenoj IT infrastrukturi samostalno kreiraju, koriste i upravljaju Cloud Computing platformom i servisima. Prvi zvanični objavljeni kod su nazvali Austin, i bio je dostupan nakon 4 meseca od udruživanja, sa planom da se softver ažurira svakih par meseci. Početni kod zasnivao se na kodu platformi NASA Nebula i Rackspace's Cloud Files. Linux distribucije Ubuntu i Red Hat u svoj repozitorijum softvera uključili su OpenStack. [9]

Komponente[уреди | уреди извор]

OpenStack ima modularnu arhitekturu koja obuhvata više komponenti. [10]

OpenStack Compute (Nova)[уреди | уреди извор]

Nova (Compute Service) predstavlja osnovni kontroler OpenStack Cloud-a. Sve aktivnosti potrebne za životni ciklus instanci su kontrolisane od strane Nova-e, tako da ona predstavlja upravljačku platformu za kontrolu i upravljanje računarskim resursima, mrežom, autorizacijom, skalabilnošću. Nova sama po sebi nema ugrađenu virtualizacionu funkcionalnost, već se oslanja na libvirt API, koji je zadužen za komunikaciju sa virtualizacionim hipervizorom. Ona izlaže svoje funkcionalnosti putem API web servisa, koji su kompatibilni sa poznatim Amazon EC2 standardom. Osnovne funkcionalnosti koje Nova treba da obezbedi su: upravljanje životnim ciklusom instanci, upravljanje računarskim resursima, mrežom i autorizacijom, asinhrona komunikacija i virtualizacija (komunikacija sa postojećim hipervizorom korišćenjem libvirt API-ja). Podržana su sledeća virtualizaciona rešenja: Xen, KVM, UML, Vmware vSphere i Hyper-V.

Nova se sastoji od sledećih komponenti: • API Server (nova-api) • Message Queue (rabbit-mq server) • Compute Workers (nova-compute) • Network Controller (nova-network) • Volume Worker (nova-volume) • Scheduler (nova-scheduler)

Nova – Compute Service i komponente[уреди | уреди извор]

API Server predstavlja interfejs koji obezbeđuje interakciju spoljašnjeg sveta sa Cloud infrastukturom. Cloud korisnici jedino komuniciraju sa API Serverom, a on dalje komunicira sa odgovarajućim komponenatama OpenStack infrastrukture koristeći Message Queue. Komunikacija sa spoljnjim svetom odvija se pozivanjem web servisa korišćenjem EC2 API-ja. Kao alternativa EC2 API-ju može se koristiti i originalni OpenStack API.

Message Queue, kao što smo već rekli služi da obezbedi internu OpenStack komunikaciju, oslanjajući se na AMQP (Advanced Message Queue Protocol). “Nova” koristi asinhroni način rada, što znači da kada stigne bilo kakav zahtev (request), on se izvršava negde u pozadini – asinhrono. Odgovor (response) šalje se tek po dobijanju odgovarajućeg call-back poziva, koji znači da je dati pozadinski posao završen. Ovakav način rada je neophodan, jer postoji dosta vremenski zahtevnih akcija kao što su startovanje neke instance ili image upload na server. Compute Workers se brinu o životnom ciklusu instanci. Oni primaju zahtev od Message Queue-a i dalje ga procesuiraju. Tipično je da u produkcijskom OpenStack okruženju postoji više „compute worker“ servera, mada to nije uslov. Koji „compute worker“ server će se starati o kojoj instanci određuje se na osnovu posebnog algoritma. Network Controller, kao što mu i samo ime kaže zadužen je za mrežnu konfiguraciju. On je zadužen za operacije kao što su alokacija IP adresa, konfigurisanje VLAN-ova (Virtual LAN), implementacija sigurnosnih grupa i mrežna podešavanja računarskih instanci.

Volume Workers, služe za upravljanje LVM (Logical Volume Manager) baziranih instanci. Ukratko LVM služi za upravljanje disk drajvovima i ostalim storage uređajima. „Volume“ se u LVM terminologiji odnosi na disk drajv ili particiju. „Volume Workers“ su zaduženi za kreiranje, brisanje i pridruživanje (attaching) LVM volume kapaciteta instancama.

Scheduler, služi da preusmeri pristigle API Server pozive ka odgovarajućim OpenStack komponentama. Na sistemu je „scheduler“ prisutan kao servis. Scheduler pravi izbor najmanje opterećenog „compute workers“ servera koristeći odgovarajući algoritam, koji uzima u obzir brojne faktore, kao što su: opterećenje sistema, memorija, arhitektura procesora, fizička udaljenost i drugi. Ukratko ima ulogu balansera.

OpenStack Object Storage[уреди | уреди извор]

OpenStack Object Storage (Swift) predstavlja virtualni storage prostor za pohranjivanje OpenStack objekata. Postoji analogija sa Amazon – Simple Storege Service (S3). Swift ima kapacitet za skladištenje biliona objekata distribuiranih na nodovima. [13]

Osnovne Swift funkcionalnosti i mogućnosti su: • Mogućnost skladištenja ogromnog broja objekata • Skladištenje velikih objekata • Redudantnost podataka • Mogućnost arhiviranja korišćenjem velikih datasetova • Data kontejneri za virtualne mašine i Cloud aplikacije • Mogućnost media striminga • Sigurno smeštanje objekata • Backup i arhiviranje • Skalabilnost

Komponente iz kojih se sastoji Swift su: • Swift Account Server • Swift Container Server • Swift Object Server • Swift Proxy Server • Ring

Swift Account Server sadrži listu kontejnera, kao što container server sadrži listu objekata u kontejneru. OpenStack terminlogija pod entitetima podrazumeva: account-e, kontejnere i objekte.

Swift Container Server sadrži listu objekata sadržanih u kontejneru. Lista je pohranjena u vidu SQLite fajlova. Container Server takođe vodi statisku, odnosno evidenciju o broju objekata koji su sadržani u kontejeneru, kao i veličina koju zauzimaju.

Swift Object Server je zadužen za rad sa storage-om, odnosno za pronalaženje i brisanje objekata na lokalnom storage-u. Objekti su obično binarni fajlovi, smešteni na fajl sistemu, zajedno sa metapodacima koji su smešteni kao produženi fajl atribut (xattr). Linux fajl sistemi koji podržavaju xattr su ext3, ext4, XFS, Btrfs, JFS i ReiserFS. Swift Proxy Server, služi da prima zahteve iz spoljašnjeg sveta, locira odgovarajući entitet i rutira zahtev do njega. Proxy predstavlja interaktivni segment između korisnika i Swift-a.

Ring sadrži informaciju o fizičkoj lokaciji objekata unutar Swift-a, neki oblik virtuelnog mapiranja objekata sa njihovom fizičkom lokacijom. Postoji izvesna analogija sa servisima za indeksiranje, jer prvo pronalazimo optimizovanom indeksiranom pretragom lokaciju nekog fajla na osnovu njegov imena.

OpenStack Networking (Quantum)[уреди | уреди извор]

OpenStack Networking (Umrezavanje)(Quantum) je prosiriv, skalabilan i API-pogonski sistem za upravljanje mrežama i IP adresama. Poput drugih aspekata cloud operativnog sistema, može biti korišćen od strane administratora i korisnika kako bi se povećala vrednost sredstava data centra. OpenStack Networking osigurava da mreža neće biti usko grlo ili ograničavajući faktor u primeni clouda, i opsluživanju korisnika servisima, čak i nad svojim mrežnim konfiguracijama. [14]

OpenStack Dashboard (Horizon)[уреди | уреди извор]

OpenStack Dashboard pruža administratorima i korisnicima grafički interfejs za pristup, uporebu i automatizaciju cloud resursa. Prilagodivi dizajn čini lakšim povezivanje i izlaganje proizvoda i usluga, kao što su plaćanje, monitoring i dodatne alatke za upravljanje. Dashboard je takodje pogodna za pružaoce usluga i druge komercijalne prodavce koji žele da ga koriste. To je web interfejs za upravljanje i administraciju OpenStack-a. Možemo ga koristiti za: upravljanje instancama, kreiranje Swift kontejnera, upravljanje korisnicima i dodeljivanje korisničkih kvota, dodavanje odnosno brisanje kontejnera odnosno objekata itd. Kompletna OpenStack administracija i upravljanje se obezbeđuju korišćenjem Horizon web interfejsa. Takođe Horizon poseduje posebnu konzolu koja služi za uspostavljanje VNC konekcija ka instancama.

Dashboard je proširiva veb aplikacija koja omogućava administratorima i korisnicima cloud kojima će kontrolisati raspoložive računarske. Kao cloud administrator, dashboard pruža opšti pogled na veličinu i stanje cloud platforme. Omogućuje kreiranje korisnika i projekata, dodeljivanje projekta korisnicima i postavljanje ograničenja sredstava za te projekte. Dashboard pruža korisnicima samouslužni portal kojim omogućava organizovanje ličnih resursa u okviru granica postavljenih od strane administratora.[15]

Identity Service (Keystone)[уреди | уреди извор]

Keystone (OpenStack Identity Service) modul zadužen je za autentifikaciju i autorizaciju ostalih OpenStack komponenti. On obezbeđuje dva načina autentifikacije. Jedan je autentifikacija korišćenjem korisničkog imena i lozinke, a drugi način se bazira na korišćenju token-a. Shodno tome sastoji se iz sledećih servisa: Token, Catalog i Policy servisa.

Token Servis koji se brine o autorizaciji već autentifikovanih korisnika.

Catalog Servis sadrži spisak svih servisa, koji si na raspolaganju korisnicima.

Policy Servis sadrži skup prava pristupa servisima, odnosno koji korisnici i grupe mogu koristiti neki servis i do kog nivoa.

Image Service (Glance)[уреди | уреди извор]

Image Service (Glance) je OpenStack komponenta koja barata sa imidžima virtualnih mašina. Kao imidž skladište za virtualne mašine mogu se koristiti: • Lokalni fajl sistem • OpenStack Object Store • S3 storage direktno • S3 storage u kombinaciji sa Object Store-om • HTTP (read-only)

Komponente iz kojih se Glance sastoji su: Glance-control i Glance-registry [16]