OpenVZ je tehnologija virtualizacije koja omogućava kreiranje mnoštva izlovanih instanci virtualnih privatnih servera(Virtual Private Server ili skraćeno VPS) koji zajedno dele hardver jednog servera, čime se postiže efikasnost i centralizacija upravljanja. Containers (Kontejneri), Virtual Environments (VE-s) su često korišćeni sinonimi za VPS instance.

OpenVZ  virtualizacija se bazira na Linux kernelu i operativnom sistemu, što znači da sam host, kao i guest operativni sistemi moraju biti Linux orjentisani. Svaki VPS deluje kao samostalni server koji poseduje sopstveni fajl sistem, korisnike, memoriju, procese, aplikacije, sistemske biblioteke konfiguracione fajlove itd. OpenVZ je open source rešenje. OpenVZ kernel je pod GNU GPL v2 licencom, a korisnički alati (vzctl, vzquota i vzpkg) su licencirani pod QPL licencom. Više podataka o ovoj licenci možete videti na adresi http://openvz.org/documentation/licenses/qpl.

Rešenje je podržano i sponzorisano od strane Parallels-a i predstavlja osnovu za njihov Virtuozzo Containers komercijalno rešenje. Naravno, Parrallels ne obezbeđuje komercijalnu korisničku podršku za OpenVZ.

Primena

OpenVZ predstavlja odlično rešenje za hosting provajdere, jer im omogućava upotrebu stotine VPS instanci na fizički jednom serveru. Za svakog korisnika njihovih usluga postoji zagarantovan Quality of Service, kao i lako i brzo prebacivanje VPS-ova između servera bez ikakve dodatne promene konfiguracije. Takođe, za administrator koji održavaju više Linux dedicated servera OpenVZ  pruža mogućnost centralizacije svih tih servera na jednom mestu. IT edukacija je takođe sfera potencijalne primene, pa tako na primer možemo svakom studentu nekog univerziteta omogućiti njegov personalni Linux server. Razvoj, testiranje softvera, održavanje treninga i razne IT obuke su samo još neke od mogućih oblasti primene.

OpenVZ tehnologija i njenje specifičnosti

OpenVZ  koncept je specifičan po tome što sve VPS instance koriste isti jedinstveni kernel host sistema (hardverski nod ili domaćin). Ovaj sistem virtualizacije se naziva  „shared kernel virtualization”, što znači da guest sistemi(VPS instance) koriste deljeni kernel hardverskog noda(host sistem), a nemaju svoj kernel. Pored činjenice da svi VPS-ovi koriste isti deljeni kernel, svaki je apsolutno nezavistan i ne možemo ga razlikovati od bilo kog uobičajenog Linux sistema.  Tu nezavisnost omogućava virtualizacioni sloj u kernelu host sistema. Zanemarljiv deo procesora (1-2%), upotrebljava se na rad samog virtualizacionog sloja.

OpenVZ

Svaki VPS poseduje standardne startne skripte, a softver bilo kog proizvođača može raditi unutar VPS-a. Korisnici mogu takođe menjati konfiguraciju, kao i instalirati dodatne aplikacije. Svi VPS-ovi su međusobno izolovani, što znači da svaki poseduje sopstveni fajl sistem, procese, IPC (Inter Process Communication), sysctl promenjive. Procesi korišćeni od strane bilo kog kontejnera se raspoređuju za sve prisutne procesore na serveru, tako da je CPU iskorišćenost procesora maksimalna.

Mrežni virtualizacioni sloj služi da međusobno izoluje VPS instance, a takođe I VPS instance od host sitema. Ono što je karakteristično za mrežni sloj, da svaki VPS poseduje IP adresu, kao i da je dozvoljeno posedovanja više IP adresa po kontejneru.  Na host i guest sistemu postoji venet0 mrežni interfejs nemenjen međusobnoj komunikaciji putem point to point protokola. Mrežni saobraćaj je izolovan između kontejnera, što znači da je onemogućen snooping. Unutar kontejnera moguće je korišćenje firewall za restrikciju pristupa određenim servisima, odnosno aplikacijama.

Templajti (šabloni) operativnih sistema omogućuju da u OpenVZ uvezemo već unapred pripremljene popularne Linux distribucije sa predefinisanim paketima sa kojima dolaze. Obično se šablonima isporučuju distribucije sa najosnovnijim paketima, a sve što nam je potrebno možemo naknadno instalirati preko paket menadžera date distribucije.

Upravljanje resursima omogućava nam da kontrolišemo resurse koje možemo izložiti na raspolaganje VPS instancama. Pod resursima podrazumevamo procesorsku snagu, prostor na disku, memorijske parametre itd. Upravljanje resursima je krucijalno za OpenVZ, jer je korišćenje resursa na takvom sistemu znatno veće nego na klasičnom samostalnom računaru.

openvz_layers

Na slici je podrazumevano prikazano da je za OpenVZ rezervisano više fizičkih servera u mreži. U stvari neophodan je samo jedan server, a ukoliko ih je više potrebno je da budu srodne arhitekture. Koristeći OpenVZ terminologiju, takvi serveri se nazivaju hardverski nodovi (Hardware Nodes). Na njihov hardver se instalira operativni sistem. Zvanično su podržane Red Hat-ove distribucije Fedora, CentOS i Red Hat Enterprise Linux. Posle instalacije potrebno je pri procesu bootovanja servera izabrati novoinstalirani kernel sa OpenVZ podrškom. Dakle VPS-ovi dele sam hardverski nod i kernel host-a kojeg smo upravo izabrali prilikom bootovanja sistema. Da bi kreirali i startovali prvi VPS potrebno je instalirati bar jedan OS templejt (šablon) ili napraviti svoj.

Instalacija i sistemska zahtevnost

Pošto na harverskom nodu (host sistem) treba da radi istovremeno mnogo VPS instanci, što znači mnogo kritičnih servisa, treba dosta pažnje obratiti na izbor harvera (više se misli na kvalitet, nego na zahtevnost).

Zato u korisničkom uputstvu postoje neke smernice:

  • Koristiti uvek RAID i to po mogućnosti hardverski. Softverski uzeti u razmatranje, jedino ako hardverski nije ostvariva solucija
  • Ne koristiti nikakve servise/aplikacije na hardverskom nodu sem ssh, a sve potrebne servise (bind, ftp, httpd, itd.) instalirati na VPS-ovima
  • Ne kreirati korisnike na hardverskom nodu

Harverska zahtevnost za 32-bitnu verziju podrazumeva:

  •         IBM PC kompatibilni računar
  •         Intel Celeron, Pentium II/III/IV, Xeon, ili AMD Athlon CPU
  •         Minimum 128 MB RAM memorije
  •         Mrežnu kartu

Uz ovo treba napomenuti da hardverski nod mora da zadovolji i Red Hat hardverske zahteve (Red Hat Enterprise Linux, Fedora, CentosOS zahtevnosti). Namena servera je bitan faktor prilikom izbora servera.

Treba imati sledeće smernice prilikom planiranja:

  • Što više VPS istovremenih instanci planirate da koristite to Vam treba više procesora.
  • Što više memorije imate, utoliko više VPS instanci možete istovremeno startovati.

Naravno, mnogo toga zavisi od prirode servisa/aplikacija koje će biti aktivne na VPS-ovima, ali preporučen je minimum 1 GB RAM memorije za 20 do 30 virtualnih privatnih servera Neki osnovni templejt operativnog sistema sa apache web serverom zauizima 400-600 MB prostora, tako da Vam po jednom VPS-u treba najmanje toliko prostora. Naravno sve pomnožite sa brojem VPS-ova koje planirate.

Proces instalacije nije previše komplikovan. Potrebno je preuzeti kernel sa adrese http://wiki.openvz.org/Download/kernel i ručno ga instalirati ili jednostavnije omogućiti openvz repozitoriju softvera.
Pomoću yum-a (paket menadžer), a uzimajući u obzir arhitekturu servera, instaliramo odgovarajuću verziju OpenVZ kernela (vzkernel paket). Potrebno je instalirati i pakete vzctl, vzpkg i vzquota i proveriti, da li je u boot manadžeru dodat novoinstalirani kernel. Provera sadržaja i eventualno neke izmena fajlova /etc/sysctl.conf i /etc/vz/vz.conf i možemo ponovo pokrenti sistem i pri bootu izabrati opciju OpenVZ kernela. Ako je sve prošlo bez ijedne greške, potrebno je još instalirati prvi templejt, a najlakše je preuzeti neki od predefinisanih šablona popularnih distribucija sa adrese http://wiki.openvz.org/Download/template/precreated i prekopirati ga u /vz/template/cache direktorijum.

GUI nadogradnja

OpenVZ dolazi sa setom naredbi koje se izvršavaju korišćenjem komandne linije (shell-a). Kreiranje nove instance, dodeljivanje resursa, razna konfigurisanja, startovanje,  zaustavljanje, brisanje, listanje postojećih instanci, startovanje komandi na VPS instancama, sve ovo obavlja se korišćenjem komandne linije, a procedure su dobro propraćene kroz raspoloživu dokumentaciju. Za one koji se slabije snalaze sa konzolom ili ih ovaj način rada usporava, postoje web kontrol paneli drugih proizvođača. Parellels Plesk Panel je preporučeno komercijalno rešenje, a OVZ Web panel besplatno.

Kontrola resursa

Kontrola resursa dodeljenih virtualnim privatnim serverima se ostvaruje pomoću resursnih parametara. Ti parametri se definišu na globalnom nivou, a moguće je za svaku instancu definisati posebna ograničenja. Promene se vrše editovanjem tekst fajlova, upotrebom OpenVZ komandi ili eventualno pomoću web kontrolnog panela. Resursna ograničenja mogu se kategorisati na mrežna, procesorska, uopšteno sistemska i ograničenja koja se odnose na kapacitet diska.

Ukratko, možemo ograničiti prostor na disku koji je rezervisan za jedan VPS, a možemo plus postaviti ograničenja prema korisnicima i grupama unutar samog kontejnera. Na primer VPS je ograničen na 4 GB, svaki korisnik sme da iskoristi 300 MB prostora za sebe, a korisnik koji pripada određenoj grupi nema ograničenja.

Procesorska ograničenja se sastoje u postavljanju parametara koji definišu koliko će procesorskog vremena biti zagarantovano hardverskom nodu (preporučeno 5-10%), koliko zagarantovanog procesorskog vremena dobija svaka VPS ponaosob , da li i do koje mere može da nadvisi ovu vrednost, ukoliko procesor nije opterećen.

Možemo determinisati maksimalan broj procesa i thredova po kontejneru, broj ostvarivih TCP konekcija, količinu zagarantovane memorije kao i kernelske memorije, broj otvorenih/kreiranih fajlova od strane svih VPS instanci, broj ssh, screen i xterm sesija (pseudo-terminal sesije) i još mnogo toga.

Ograničenja i još zanimljivih funkcionalnosti

Limitacije postoje kada je u pitanju IPsec VPN tehnologija koja nije podržana unutar kontejnera, ali to možemo nadomestiti upotrebom TUN/TAP VPN rešenja kao što su OpenVPN i Virtual TUNel. Ovo ograničenje ne postoji kod Parallels komercijalnog rešenja.  Ograničenje same tehnologije je da i hardverski nod i sve VPS instance moraju koristiti Linux operativni sistem (VPS Instance istina mogu koristiti razne Linux distribucije). Ovo ograničenje se zato donekle kompezuje odličnim performansama, koje su samo 1 do 3% lošije u poređenju sa klasičnim(standalone) serverima.

Takođe neke funkcionalsnosti moramo eksplicitno omogućiti. Da bi, na primer, iptables modul bio dostupan svim VPS instancama, mora biti učitan na hardverskom nodu. Takođe eksplicitno treba dozvoliti određenim VPS instancama direktan pristup mrežnom adapteru hardverskog noda, kao i direktan pristup njegovim diskovima.

itmogul-logoTekst je preuzet sa ugašenog bloga IT modul i originalni autor ovog teksta je Vladimir Blagojević. Kompjuteraš IT blog će objavljivati tekstove sa tog bloga kako riznica znanja sa te lokacije ne bi otišla u zaborav.