CloudEx rešenje se zasniva na generičkom Openstack-u sa visokom dostupnošću (High Availability) sa integrisanim billing-om i monitoringom. Može se koristiti u širokom spektru namena, od jednostavnih virtualnih instanci (VPS), preko cloud skladišta podataka (backup i sharing), pa sve do obimnih IaaS, PaaS i virtualnih data centara. CloudEx platformu čine osnovne komponente:
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 i 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 komaptibilni 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 virtalizaciona rešenja: KVM bazično, ESXi, HyperV i XenServer, qemu i docker kontejneri.
Nova se sastoji od sledećih komponenti:
- API Server (nova-api)
- Message Queue (rabbit-mq server)
- Compute Workers (nova-compute)
- Scheduler (nova-scheduler)
Nova – Compute Service i komponenete – opis
API Server predstavlja interfejs koji obezbeđuje interakciju spoljašnjeg sveta sa Cloud infrastrukturom. Cloud korisnici jedino komuniciraju sa API Serverom, a on dalje komunicira sa odgovarajućim komponentama OpenStack infrastrukture koristeći Message Queue. Komunikacija sa spoljnim svetom odvija se pozivanjem web servisa korisšćenjem EC2 API-ja. Kao alternativa EC2 API-ju može se koristiti i originalni OpenStack API.
Message Queue, služi da obezbedi inteernu 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 procesiraju. 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), implementaciju sigurnosnih grupa i mrežna podešavanja računarskih instanci.
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 Worker“ 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 Disk Storage (Cinder)
Cinder je komponenta sistema zadužena za storage. Ona omogućava distribuciju volume-a (disk prostora) instancama. Tehnologija na koju se cinder oslanja u slučaju CloudEx platforme je CEPH.
Ceph je softverska platforma za skladištenje podataka dizajnirana za objekte, blok i čuvanje podataka iz jednog distribuiranog kompjuterskog klastera . Glavne prednosti CEPH-a su da je u potpunosti distribuiran bez jedinstvene tačke kvara, skalabilnom na nivou eksabajta. Podaci se repliciraju u 3 kopije, što ga čini veoma otpornim na kvarove.
CEPH softver radi prepleteno sa OpenStack platformom. Sistem je dizajniran da sam popravlja kvarove u smislu replikacije podataka na zdrave diskove na zdravim nodovima u slučaju kvara jednog ili više njih, kao i u slučaju ispada dela sistema iz produkcije.
Ceph upošljava četiri odvojene vrste sistemskih procesa:
- Monitori klastera (CEPH-mon) koji prate aktivne i neaktivne klaster nodove
- Metadata servere (CEPH-MDS) koji skladište metapodatke, nodove i direktorijume
- Uređaju za skladištenje objekata (CEPH-OSD) koji zapravo čuvaju sadržaje fajlova.
- Resftul gejtvej (CEPH-RGV) koji izlažu sloj za skladištenje objekata u interfejsu kompatibilnim sa Amazon S3 ili OpenStack Swift API-jem
Svi ovi servisi su potpuno distribuirani, i mogu da rade na istom skupu servera. Klijenti direktno komuniciraju sa svima njima.
CEPH radi segmentiranje individualnih fajlova na više nodova za postizanje većih protoka, slično tome kako RAID0 raspoređuje podatke kroz više hard diskova. Adaptive load balance podržava sistem kojim će se često pristupani objekti replicirati preko više nodova.
OpenStack Object Storage
OpenStack Object Storage (Swift – kompatibilan CEPH radosGW) predstavlja virtualni storage prostor za smeštanje OpenStack objekata. Postoji analogija sa Amazon – Simple Storage Service (S3). CEPH ima kapacitet za skladištenje biliona objekata distribuiranih na nodovima.
Osnovne CEPH 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
- Bekap i arhiviranje
- Skalabilnost
OpenStack Networking (Neutron)
OpenStack Networking (Umrežavanje) (Neutron) 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 efikasnost data centra. OpenStack Networking osigurava da mreža neće biti usko grlo ili ograničavajući faktor u primeni cloud-a, i opsluživanju korisnika servisima, čak i nad svojim mrežnim konfiguracijama. Takođe Neutron predstavlja osnovu za softverski definisanu mrežu (SDN). Takav sistem omogućava korisnicima da kreiraju svoje mreže, rutere i pravila na njima potpuno izolovani od drugih korisnika CloudEx sistema i Interneta. Takođe, omogućuje i dodatne servise u sistemu kao što su VPNaaS i LBaaS.
OpenStack Dashboard (Horizon)
OpenStack Dashboard pruža administratorima i korisnicima grafički interfejs za pristup, upotrebu i automatizaciju cloud resursa. Prilagodljivi 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 web interfejs za upravljanje i administraciju OpenStack-a. Možemo ga koristiti za: upravljanje instancama (kreiranje, izmene i recikliranje), 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 web aplikacija koja omogućava administratorima i korisnicima cloud-a kojima će kontrolisati raspoložive računarske resurse. 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 resursa za te projekte. Dashboard pruža korisnicima samouslužni portal kojim omogućava organizovanje ličnih resursa u okviru granica postavljenih od strane administratora.
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 su 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)
Komponenete iz kojih se Glance sastoji su: Glance-control i Glance-registry
Servis za merenje (Ceilometer)
Ovaj servis je zadužen na pouzdano merenje iskorišćenosti resursa kao i za beleženje događaja na platformi. Servis je potreban da bi se uspešno povezao sistem za naplatu (billing) sa CloudEx Openstack platformom.
Billing servis
Ovaj servis je poseban sistem koji koristi API OpenStack-a za pristup Keystone i Ceilometer servisu. Njegova osnovna dužnost je prikupljanje podataka i obrada potrošnje korisnika. U pitanju je rešenje kompanije Talligent, a proizvod se zove Openbook. Glavna prednost ovog rešenja je reselerski program sa mogućnošću rebrendiranja interfejsa. To omogućava kreiranje preprodavaca platforminih resursa i potpunu međusobnu izolaciju korisnika. Openbook omogućava naplatu servisa po potrošnji resursa kao i naplatu statičkih događaja kao što su na primer instanciranje Windows servera iz image-a i slične akcije.