ОпенСтацк

С Википедије, слободне енциклопедије
ОпенСтацк
Најновија
верзија
Роцкy (2018.08.30)
Аугуст 30, 2018
Типопен соурце софтвер
ЛиценцаАпацхе 2.0
Веб-сајтopenstack.org
НАСА

OpenStack је ИааС cloud пројекат, инициран од стране Rackspace Cloud-а и НАСА-е. Пројекат је бесплатан пројекат отвореног кода (енгл. open source), објављен под условима Apache Licence. Пројектом руководи OpenStack[1] фондација, непрофитна корпоративна фирма која промовише, штити и руководи OpenStack софтвером.

Тренутно се преко 150 компанија[2] придружило овом пројекту, а најзначајније од њих су: AMD, Intel, Canonical, SUSE Linux, Red Hat, Cisco, Citrix, Dell, HP, IBM, Yahoo!. Пројекат представља Linux решење отвореног кода. OpenStack је написан у Python-у и развијен је под Apache лиценцом.

Технологија се састоји од низа повезаних пројеката који контролишу велике скупове ресурса (енгл. pools) за израчунавање, складиштење и умрежавање ресурса у целом центру података. OpenStack-ом се управља преко контролне табеле која пружа администраторима контролу, а све то како би се корисницима обезбедили ресурси путем мрежног интерфејса.[3]

Историја[уреди | уреди извор]

Cisco Cloud Computing CTO

У јулу 2010 Rackspace Hosting и NASA су заједнички покренули нову иницијативу отвореног кода, познатог као OpenStack. Задатак OpenStack пројекта је да омогући организацијама да на сопственој ИТ инфраструктури самостално креирају, користе и управљају платформом рачунарства у облаку (енгл. Cloud Computing) и услугама. Први званични објављени код су назвали Аустин, и био је доступан након 4 месеца од удруживања, са планом да се софтвер ажурира сваких пар месеци. Почетни код заснивао се на коду платформи NASA Nebula и Rackspace's Cloud Files. Linux дистрибуције Ubuntu и Red Hat у свој репозиторијум софтвера укључили су OpenStack.

Компоненте[уреди | уреди извор]

OpenStack има модуларну архитектуру која обухвата више компоненти. [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[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]