subota, 20 aprila, 2024
Sam svoj majstor

oVirt – Veb aplikacija za upravljanje platformom za virtuelizaciju

Autor: Ivan Bulatović

IT administratorima je činjenica da nikada na raspolaganju nemaju dovoljno procesorskog vremena, RAM memorije i prostora na disku, veoma poznata. Iako su cene servera i komponenti sada razumnije nego što je to bilo deceniju ranije, ekonomska kriza i smanjenje budžeta za IT odeljenja nas forsiraju da raspoložive resurse maksimalno iskoristimo. Pođimo od toga da nam je neophodan visoko dostupan servis, bez SPOF-a (engl. Single Point Of Failure) sa kompletno redudantnim sistemom. Na listi će se naći dva servera sa redudantnim napajanjima, uređaji za masovno skladištenje podataka, uređaj za rezervno napajanje električnom energijom, redudantna mrežna oprema i softversko rešenje za visoku dostupnost servisa koji se instalira. Početna ulaganja su ogromna i progresivno se smanjuju sa brojem servisa koji su neophodni, ali je i dalje neophodno ulagati u nove servere čiji kapaciteti vrlo verovatno neće biti potpuno iskorišćeni. Troškovi zbog uvećane potrošnje električne energije, odgovarajućeg hlađenja prostorije, održavanja samih sistema, njihove zamene u nekom narednom vremenskom periodu i komplikovanog upravljanja, podrazumevaju se tokom eksploatacije.

Sa ovim problemima se IT industrija efektivno izborila ponudom i implementacijom rešenja za virtuelizaciju hardvera. Umesto dodavanja novih servera svaki put kada je neophodno instalirati neki od softverskih servisa, moguće je postojeće hardverske kapacitete spojiti i takav udruženi resurs podeliti između servisa, tako da se on maksimalno iskoristi. Najpoznatija rešenja za virtuelizaciju nam dolaze od kompanija VMWare, Citrix, Microsoft i Red Hat. Iako VMWare drži lidersku poziciju, sve više kompanija želi da se okrene rešenjima koja su bazirana na otvorenom kôdu, za šta je čist primer OpenStack, iza koga se nalaze kompanije kao što su Red Hat, HP, IBM, Cisco, AT&T i mnoge druge.

Ovom prilikom predstavljamo vam oVirt, aplikaciju otvorenog kôda za upravljanje virtuelizacijom. Kao i kod većine drugih aplikacija slične namene, neophodan je jedan server za upravljanje jednim ili više nodova koji servisiraju virtuelne mašine. oVirt zahteva dvojezgarni server sa minimalno 4 [GB] RAM-a i 25 [GB] prostora na disku. Na slici je prikazana arhitektura na kojoj se zasniva oVirt.

Centralna komponenta oVirt servera je njegov pokretač tj. „ovirt-engine” koji je baziran na Java programskom jeziku i koji preko REST aplikativnog programskog interfejsa pruža mogućnost dodavanja alata za upravljanje virtuelnim mašinama. Servis je mrežnog karaktera, što se postiže pomoću Jboss aplikativnog servera, i može mu se pristupiti preko bilo kog web pregledača. Podaci se skladište u Postgres bazi podataka, čime je olakšan pristup i kreiranje rezervnih kopija. Instalacija je maksimalno pojednostavljena i pripremljeni paketi postoje za Fedora i CentOS Linux distribucije. Dovoljno je dodati odgovarajuće skladište programskih paketa, ažurirati sistem, instalirati ovirt-engine paket i pokrenuti instalaciju komandom engine-setup, pri čemu je neophodno uneti nekoliko podataka, poput podrazumevanog servisa za skladištenje podataka, zatim lozinku i port za pristup aplikaciji i bazi podataka itd.

Sledeći korak je priprema nodova koji će servisirati virtuelne mašine. Nodovi mogu takođe biti bazirani na Fedora ili CentOS distribucijama, a potrebno je samo instalirati vdsm paket, pomoću kojeg se obavlja XML-RPC komunikacija na relaciji nod – oVirt server. VDSM je libvirt orijentisan servis koji za hipervizor koristi KVM (Kernel-based Virtual Machine). Sva dalja podešavanja obavljate pomoću oVirt aplikativnog interfejsa putem web pregledača. Prvo morate kreirati svoj Datacenter. Datacenter se sastoji od tri komponente: skladišta podataka, mreže i klastera.

Skladište podataka se sastoji od samo jednog skladišta za ISO slike, pomoću kojih možete instalirati neki od podržanih operativnih sistema, jednog skladišta za eksport virtuelnih mašina i jednog ili više skladišta koji će sadržati same slike virtuelnih mašina. Ovim skladištima možete pristupiti preko optičke FC veze, iSCSI ili NFS protokola, GlusterFS domena ili lokalnog skladišta (na tvrdom disku samog noda).

Mrežu možete podesiti iz oVirt aplikacije ili na samom oVirt serveru, pri čemu će pokretač sam prepoznati mrežna podešavanja. Mreža može biti premošćena na već postojeću fizičku mrežu, ili možete kreirati sopstveni VLAN i podesiti oVirt tako da obavlja funkciju DHCP servera i automatski dodeljuje IP adrese virtuelnim mašinama u VLAN-u. Podrazumevani naziv mreže je ovirtmgmt.

Klasteri se mogu sastojati od jednog ili više servera koji imaju ulogu nodova. Istorodne servere je preporučljivo implementirati u jedan klaster, i ukoliko pravilno podesite upravljanje napajanjem servera pomoću „fence” agenata, moguće je unutar istog klastera instalirati visoko dostupne virtuelne mašine sa automatskim „failover” mehanizmom. Ukoliko mašina nije visoko dostupna, uvek vam preostaje funkcija žive migracije između nodova unutar istog klastera. Ne postoji ograničenje po broju klastera unutar jednog Data centra.

Prilikom kreiranja virtuelne mašine na nekim od nodova, definišete naziv virtuelne mašine, broj procesorskih jezgara/podnožja koji su joj dostupni, količinu RAM memorije i koliko od tog iznosa joj se fizički garantuje, koji tip operativnog sistema se instalira (Windows, RedHat ili Other Linux), prioritet uređaja prilikom bootstrap procesa kao i instalacionu ISO sliku. Možete podesiti i tip keširanja diska, da li će virtuelna mašina biti visoko dostupna ili želite da zabranite bilo kakav vid migracije te mašine (pinning). Zatim dodajete virtuelne mrežne interfejse i definišete jedan ili više virtuelnih diskova. Moguće je dodati već pripremljeni LUN preko iSCSI ili FC protokola, ili ga kreirati na odabranom skladištu podataka. Prostor rezervisan za diskove može biti prealociran ili tanko alociran (Thin Provisioned). Kada je prostor prealociran, on je unapred pripremljen i zauzima onoliko prostora na skladištu koliko mu je dodeljeno, dok kod tanke alokacije prostor se dinamički alocira. U prvom slučaju prednost je brzina rada, dok je u drugom moguće na skladištu sa 300 [GB] prostora dodati deset diskova od 100 [GB], a kasnije proširiti skladište kada se za to steknu uslovi.

Mogućnosti oVirt aplikacije se ne završavaju ovde. Moguće je kreirati žive snimke virtuelnih mašina (Live Snapshots) koje vam omogućuju da napravite backup virtuelne mašine bez prekida u radu servisa ili isključivanja mašine. RAM memoriju je moguće tanko alocirati pomoću KSM (Kernel SamePage Merging), čime se prednosti ovakvog algoritma u slučaju diskova prenose i na radnu memoriju, ali zahteva dosta procesorskog vremena, što može predstavljati problem. Za migraciju fizičkih i virtuelnih mašina koje su kreirane pomoću drugih hipervizora, možete koristiti virt-v2v koji je deo libguestfs projekta i koji podržava oVirt format. Iz web pregledača možete direktno pokrenuti i pristupiti virtuelnoj mašini putem SPICE ili VNC protokola.

Šlag na tortu predstavlja činjenica da je Red Hat Enterprise Virtualization (RHEV), komercijalno podržana aplikacija za upravljanje virtuelnim mašinama, bazirana na oVirt aplikaciji; izgleda i funkcioniše potpuno isto. Ipak, u „enterprise” okruženjima, treba se odlučiti za RHEV zbog podrške i nekoliko „nagaznih mina” koje ćemo spomenuti u nastavku članka.

Ono što će vas oduševiti kod oVirt-a, ukoliko se odlučite da ga testirate, neverovatno je jednostavan i intuitivan korisnički interfejs. Budući da oVirt arhitektura verno preslikava realno/virtuelno okruženje, to u mnogome pomaže i IT administratorima prilikom upravljanja istog. Jednom kada se instalira i podesi da funkcioniše, radi besprekorno stabilno na enterprise nivou.

Naravno, tu je i druga strana novčića. Instalacija ume da bude problematična. Upravljanje greškama je katastrofalno i zahteva od vas mnogo utrošenog vremena i kopanja po log datotekama koje su sve podrazumevano na DEBUG nivou. Čak i da odlučite da nivo prebacite na INFO, gomila izlaza na INFO nivou je zagarantovana jednom porukom koja se ponavlja na svakih nekoliko minuta, a koju možete isključiti, samo ako imate nalog na Red Hat korisničkom portalu, tj. pretplaćeni ste na RHEV proizvod pa možete pristupiti bazi znanja. Ne postoji „garbage collection”, tj. svaka greška prilikom uklanjanja virtuelnih mašina ili spajanja živih snimaka sistema uzrokuje da objekat ostane prikazan u aplikaciji i može se ukloniti samo ručno, pristupom postgresql bazi, što nikako nije preporučljivo.

Ništa u toku administracije oVirt aplikacije (ne samih virtuelnih mašina) vam neće olakšati posao. Dokumentacija kao da ne postoji, više ćete naučiti sa oVirt dopisnih lista i Red Hat bugzilla portala, pa čak i YouTube je od veće pomoći nego li zvanična dokumentacija. Toplo preporučujemo instalaciju oVirt-a pod virtuelnom mašinom (npr. pomoću virt-manager aplikacije) i da pre svakog ažuriranja uradite kloniranje virtuelne mašine, zlu ne trebalo. Želite da uradite konverziju Windows fizičkih mašina? To nećete moći bez virtio-win paketa koji ne postoji za CentOS distribuciju, a ako pokušate da iskoristite onu iz Fedora skladišta programskih paketa, razočaraćete se drugačijim putanjama do upravljačkih programa, nego što je to slučaj kod RHEV rešenja. Jednostavno, Red Hat je jasno stavio do znanja svima nama da je oVirt tvrd kolačić za upotrebu u enterprise okruženju i da može da posluži isključivo kao razvojno okruženje za RHEV ili upoznavanje sa RHEV aplikacijom pre kupovine iste, mada je moguće doći do probne verzije registracijom na Red Hat portalu. Ipak, ne bi bilo pravedno izostaviti da ste ranije mogli testirati oVirt samo na Fedora distribuciji, a da su sada dostupni paketi i za CentOS koji je mnogo stabilniji i koji se može uzeti u obzir za produkcioni rad. Da li je ovo vezano za pomeranje fokusa na OpenStack, niko ne može sa sigurnošću da potvrdi, ali u svakom slučaju ovakav korak treba pozdraviti.

Virtuelizacija koja se bazira na otvorenom kôdu ima mnogo prednosti. oVirt je jedna od mnogobrojnih aplikacija koja se oslanja na libvirt i KVM, pa je migracija olakšana na neko drugo rešenje, u slučaju da ste prinuđeni na takav korak. Većina njih je besplatna i bez ikakvih funkcionalnih ograničenja, osim u slučaju da vam je neophodna podrška, pa novac možete uložiti u unapređenje postojeće IT infrastrukture. Sve probleme u radu možete prijaviti i na portalima za prijavljivanje grešaka projekata koji se nalaze „upstream”, budući da se sve ove aplikacije pokreću na Linux distribucijama a ne na nekom zatvorenom, vlasničkom rešenju, a API je određenim delom zajednički.

oVirt je pravi pravcati dijamant, nudi potpunu funkcionalnost koju nude i ostala „paprena” rešenja za virtuelizaciju, kada se jednom konfiguriše, neverovatno je stabilan (dok god „ne čačkate backend”) i ako ste spremni da se izborite sa nešto lošijom dokumentacijom, može predstavljati izuzetno bitan servis u vašem informacionom sistemu; ako niste – kupite RHEV, nećete zažaliti. Ako vas je ovaj članak zainteresovao za oVirt, na YouTube-u možete pronaći nekoliko odličnih video tutorijala koji će vam pokazati šta sve oVirt može.

Korisni linkovi :

[1] http://www.ovirt.org/Home

[2] http://lists.ovirt.org/

[3] http://resources.ovirt.org/releases/

[4] http://www.youtube.com/watch?v=C4gayV6dYK4