OpenStack je IaaS cloud projekat, iniciran od strane Rackspace Cloud-a i NASA-e. Projekat je besplatan projekat otvorenog koda (engl. open source), objavljen pod uslovima Apache Licence. Projektom rukovodi OpenStack[1] fondacija, neprofitna korporativna firma koja promoviše, štiti i rukovodi OpenStack softverom.

OpenStack
Najnovija
verzija
Rocky (2018.08.30)
August 30, 2018
Tipopen source softver
LicencaApache 2.0
Veb-sajtopenstack.org
NASA

Trenutno se preko 150 kompanija[2] 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 rešenje otvorenog koda. 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 (engl. 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 mrežnog interfejsa.[3]

Istorija

уреди
 
Cisco Cloud Computing CTO

U julu 2010 Rackspace Hosting i NASA su zajednički pokrenuli novu inicijativu otvorenog koda, poznatog kao OpenStack. Zadatak OpenStack projekta je da omogući organizacijama da na sopstvenoj IT infrastrukturi samostalno kreiraju, koriste i upravljaju platformom računarstva u oblaku (engl. Cloud Computing) i uslugama. 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.

Komponente

уреди
 
 

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

  • OpenStack Compute (code-name Nova)[5]
  • OpenStack Object Storage (code-name Swift)[6]
  • OpenStack Image Service (code-name Glance)[7]
  • OpenStack Identity (code-name Keystone)[8]
  • OpenStack Dashboard (code-name Horizon)[9]
  • OpenStack Networking (code-name Quantum)[10]
  • OpenStack Block Storage (code-name Cinder)[11]

Neke komponente su dodate u sledećem izdanju:[4]

  • Metering (Ceilometer)
  • Basic Cloud Orchestration & Service Definition (Heat)

OpenStack Compute (Nova)

уреди

Nova[12] 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.[13] Ona izlaže svoje funkcionalnosti putem API mrežne usluge (engl. web servis), koji su kompatibilni sa poznatim Amazon EC2[14] 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 usluge 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 usluge 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[15]). “Nova” koristi asinhroni način rada, što znači da kada stigne bilo kakav zahtev (engl. request), on se izvršava negde u pozadini – asinhrono. Odgovor (engl. response) šalje se tek po dobijanju odgovarajućeg povratnog (engl. 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 slanje (engl. upload) imidža 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 pokrenuti, 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[16], 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 uređajima za skladištenje. „Volume“ se u LVM terminologiji odnosi na disk drajv ili particiju. „Volume Workers“ su zaduženi za kreiranje, brisanje i pridruživanje (engl. attaching) LVM kapaciteta instancama.

Scheduler, služi da preusmeri pristigle API Server pozive ka odgovarajućim OpenStack komponentama. Na sistemu je „scheduler“ prisutan kao usluga. Scheduler pravi izbor najmanje opterećene „compute workers“ usluge 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.[17]

OpenStack Object Storage (Swift)

уреди

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

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 setova podataka
  • Kontejneri podataka za virtualne mašine i Cloud aplikacije
  • Mogućnost prenosa media podataka
  • Sigurno smeštanje objekata
  • Podrška i arhiviranje
  • Skalabilnost

Komponente iz kojih se sastoji Swift su:

  • Swift Account Server
  • Swift Container Server
  • Swift Object Server
  • Swift Proxy Server
  • Ring

Swift - Komponente

уреди

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

Swift Container Server sadrži listu objekata sadržanih u kontejneru. Lista je pohranjena u vidu SQL liste datoteka (engl. file). Container Server takođe vodi statistiku, odnosno evidenciju o broju objekata koji su sadržani u kontejeneru, kao i veličini koju zauzimaju.

Swift Object Server je zadužen za rad sa skladištenjem, odnosno za pronalaženje i brisanje objekata na lokalnom prostoru za skladištenje. Objekti su obično binarne datoteke, smeštene na sistemu za skladištenje datoteka, zajedno sa metapodacima koji su smešteni kao produženi datoteka atribut (xattr). Linux sistemi za skladištenje datoteka 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 uslugama za indeksiranje, jer prvo pronalazimo optimizovanom indeksiranom pretragom lokaciju neke datoteke na osnovu njegovog imena.[19]

OpenStack Networking (Quantum)

уреди

OpenStack Networking (Quantum) (engl. Umrežavanje) je proširiv, 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 centra podataka. OpenStack Networking osigurava da mreža neće biti usko grlo ili ograničavajući faktor u primeni cloud-a, i opsluživanju korisnika uslugama, čak i nad svojim mrežnim konfiguracijama.[20]

OpenStack Dashboard (Horizon)

уреди

OpenStack Dashboard pruža administratorima i korisnicima grafički interfejs za pristup, upotrebu 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 takođe pogodna za pružaoce usluga i druge komercijalne prodavce koji žele da ga koriste. To je mrežni 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 mrežnog interfejsa. Takođe Horizon poseduje posebnu konzolu koja služi za uspostavljanje VNC konekcija ka instancama.

Dashboard je proširiva mrežna aplikacija koja omogućava administratorima i korisnicima cloud-a kojima će kontrolisati raspoložive računarske resurse. 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.[21]

OpenStack Shared Service - Deljene usluge

уреди

OpenStack ima nekoliko zajedničkih usluga koje obahvataju skladištenje i umrežavanje, što olakšava implementaciju cloud-a. Ove usluge koje uključuju Identity Service i Image Service, integrišu OpenStack komponente i obezbeđuju korisnicima jedinstven doživljaj, zbog toga što su u interakciji sa različitim cloud resursima.

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 usluga: Token, Catalog i Policy usluga.

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

Catalog Servis sadrži spisak svih usluga, koji su na raspolaganju korisnicima.

Policy Servis sadrži skup prava pristupa uslugama, odnosno koji korisnici i grupe mogu koristiti neku uslugu i do kog nivoa.[22]

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 sistem datoteka
  • OpenStack Object Store
  • S3 skladište direktno
  • S3 skladište u kombinaciji sa Object Store-om
  • HTTP (read-only)

Komponente iz kojih se Glance sastoji su:

  • Glance-control
  • Glance-registry[22]

Vidi još

уреди

Reference

уреди

Spoljašnje veze

уреди