790 pregleda

Proxmox VE 4.x – novosti (prvi dio)

0

U nekoliko članaka donosimo pregled najnovijeg izdanja Proxmox VE platforme za virtualizaciju i Linux kontejnere. Za početak je dobro podsjetiti se što je virtualizacija i Linux kontejneri.

 

Već dulje vrijeme nismo spominjali Proxmox VE platformu za virtualizaciju i Linux kontejnere, točnije od posljednjeg predavanja iz lipnja 2016. godine. Budući da je naš tehnološki partner Proxmox Server Solutions GmbH od tada napravio mnoge promjene vrijeme je, a jednim dijelom i naša obaveza, upoznati vas s novostima.

Za one koji su ostali na verziji 3.x preporuka je prelazak na novu generaciju 4.x. Namjerno ne govorimo o verziji 4.x. jer se radi o prelasku na potpuno novu platformu. I dalje je hipervizor za virtualke Linux QEMU/KVM, ali se s OpenVZ Linux kontejnera prešlo na LXC Linux kontejnere. Sve ostale sličnosti su u novoj generaciji sve manje.

Naime, stara generacija 3.x. je nasljeđivale razne tehnologije još od ranije, a s novom generacijom 4.x. prešlo se na nove tehnologije ili na novije verzije starih tehnologija koje u pravilu više nisu unatrag kompatibilne. Jedna od tih tehnologija je poznati corosync klaster koji se unutar Proxmox VE platforme koristi za dodavanje Proxmox VE poslužitelja u Proxmox klaster, te za sve poslove koji su vezani uz klasterski rad. Sve ovo ne bi bilo moguće bez dodatno razvijenog tzv. Proxmox Cluster File System.

Ovaj transakcijski klasterski datotečni sustav donosi sljedeće mogućnosti (uz dodatne funkcionalnosti koje objedinjuje Proxmox klaster):

  • stabilnan je (u produkcijskoj je upotrebi čitav niz godina),
  • pouzdan je i otporan na ispade bilo kojeg poslužitelja (ili više njih – ovisno o njihovom broju),
  • distribuiran – svi poslužitelji imaju pristup svim konfiguracijskim datotekama u svakom trenutku,
  • repliciranje promjena između poslužitelja u klasteru se izvodi transakcijski (pouzdano),
  • sve promjene na bilo kojoj konfiguracijskoj datoteci su vidljive svim Proxmox VE poslužiteljima u klasteru, trenutno – čim se promjena dogodila.

 

Vezano za sam rad klastera i njegove mogućnosti novi Proxmox VE 4.x. ima novi klaster koji podržava rad do 32 fizička poslužitelja u klasteru, a i sam klaster radi puno jednostavnije i brže. Sve to zahvaljujući prelasku na novu generaciju corosynca (koji je, naravno, nekompatibilan sa starom generacijom).

Prelaskom na novi klaster poboljšana je i HA (High Availability) funkcionalnost za virtualna računala i/ili Linux kontejnere. Dakle, nova sposobnost Proxmox VE klastera očituje se u slučajevima gdje imamo vrlo važne virtualke ili linux kontejnere (one koje označimo kao HA), a koji stalno moraju biti pokrenuti, da se sustav brine o njihovom “zdravlju”. Za takve virtualke ili linux kontejnere u slučaju kvara ili gašenja fizičkog Proxmox VE poslužitelja HA komponenta sustava ih automatski pokreće na drugom dostupnom (živom) fizičkom poslužitelju.

 

Zbog čega prelazak s OpenVZ na LXC kontejnere?

OpenVZ Linux kontejneri su stara i pouzdana te u produkciji provjerena tehnologija kontejnera koja se koristi desetak godina. Problem je što su OpenVZ kontejneri zahtijevali modifikaciju samog kernela, te su bile potrebne i neke druge (doduše sitne) komponente i promjene. Budući je Proxmox VE baziran na Debian Linux distribuciji, to je značilo kako se kod svake nove nadogradnje koja je došla od strane Debiana prvo morao rekompajlirati kernel, nakon čega su se morale napraviti ostale dodatne promjene. Osim toga, ova tehnologija je zaslužila umirovljenje, barem prema odluci razvojnog tima Proxmox VE ali i brojnih ljudi koji su open source (volonteri) programeri za Proxmox VE ili su aktivni u Proxmox VE zajednici.

Odluka je bila očita: LXC kontejnerska tehnologija je integrirana u novije linux kernele. Sve što je bilo potrebno od strane kernela sada se već nalazilo u njemu. Prošlo je neko vrijeme i određene stvari su se ispeglale u samom kernelu vezano za LXC. Razumljivo, prve verzije Proxmox VE 4.x nisu imale sve funkcionalnosti LXC linux kontejnera, kao što su imale za OpenVZ, ali to je bila stvar razvoja samih LXC kontejnera i podrške unutar kernela. Velika prednost odnosno jednostavnost LXC kontejnera je upotreba tzv. Linux kernel namespaces tehnologija (unutar samog kernela).

Ovdje se radi o tehnologijama za izolaciju:

  1. procesa i njihovih mehanizama komunikacije (IPC – Interprocess Communication),
  2. PID (Process ID)  – (PID namespace) – izolacija PID-ova pokrenutih procesa,
  3. mreže i mrežnih sustava (koji se oslanjaju na tzv. network namespace),
  4. korisnika i njihovog rada (user namespace),
  5. kontrolnih grupa (cgroups) – za izolaciju pripadnosti kontrolnih grupa pokrenutih procesa (kontrolne grupe su zadužene za dodjeljivanje, ograničavanje i izolaciju resursa : CPU, RAM, disk I/O, mreža, …),
  6. mount namespace – zaduženih za mountanje unutar izoliranog prostora (LXC kontejnera konkretno),
  7. UTS namespace – omogućava promjene hostname i domainname unutar izolacije za različite procese.

 

Pogled na LXC kontejner iz perspektive Linuxa iz kojeg je pokrenut (Proxmox VE):

 

 

Pregled ostalih osnovnih tehnologija koje su već dugo podržane u Proxmox VE platformi:

  • Linux Bonding (Agregacija/Teaming) i VLANovi – od srpnja 2008. (Proxmox VE v. 0.9),
  • live migracija KVM (Virtualke) i  OpenVZ (linux kontejneri) – od lstopada 2008. (Proxmox VE v. 1),
  • podrška za VIRTIO uz dodanu podršku za  virtio_blk  (para-virtualized block devices) – od svibnja 2009. (Proxmox VE v.1.2),
  • novi storage model, koji podržava razne vanjske i interne storage – od rujna 2009. (Proxmox VE v.1.4. beta 1):
    • iSCSI
    • NFS
    • LVM
    • DRBD
  • mogućnost dodjeljivanje CPU Socketa ili jezgri (postao je svjestan NUMA arhitekture) za virtualke  – od rujna 2009. (Proxmox VE v.1.4. beta 2),
  • uvodi se SCST podrška (na razini kernela i softvera) a koja daje brži rad te podržava više protokola : iSCSI, FC. Dodatno uvodi podršku za više storage interface-a prema virtualkama (SCSI pass-through, block I/O i file I/O) – od 10.2009.g (Proxmox VE v.1.4),
  • prelazak na qemu-kvm (KVM) za virtualizaciju (brži i optimiziraniji od QEMU) – od siječnja 2010. (Proxmox VE v.1.5) – u novije vrijeme su oba projekta spojena u jedan – QEMU,
  • osim linux bond (agregacija/team),  bridge i VLAN podrške (od 2008.) dodana je podrška za Open vSwitch, koji je znatno napredniji i prilagođen virtualizaciji. Preko njega  su podržane iste tehnologije (bond, bridge, i VLANovi) ali i mnoge druge napredne mogućnosti – od 03.2014.g. (Proxmox VE v.3.2 ),
  • itd.

 

Migracija virtualke (ID: 103) s jednog (fizičkog) Proxmox VE poslužitelja na drugi

 

Za više detalja o osnovnim i naprednijim stvarima koje nudi Proxmox VE platforma, pogledajte retrospektivu predavanja.

 

 

Što je još zanimljivo kod Proxmox VE platforme?

Za većinu funkcionalnosti nije otkrivana “topla voda” već su odabrane provjerene i dokazane tehnologije i rješenja iz open source svijeta. Veliki naglasak je uvijek bio i biti će na optimalnoj upotrebi tih tehnologija, bez puno kompliciranja. Štoviše, cilj je svaku potrebnu tehnologiju iskoristiti na najbolji mogući inženjerski način, uz što manje komponenti, što jednostavniji dizajn i što bolje performanse.

Ako samo pogledamo mrežni model – dizajn je jednostavan, pouzdan, brz i bez puno komplikacija i filozofija. Bez obzira koristi li se Linux model: bond, bridge, VLAN ili open vSwitch model s istim komponentama. Način funkcioniranja je nevjerojatno jednostavan za rad i održavanje ali i debuggiranje:

 

Ovakav model je najjednostavniji mogući (ne postoji jednostavniji način povezivanja virtualnog računala i Linux hipervizora od ovog. Kako ne bi mislili da se išta mora konfigurirati ručno, pogledajte dio konfiguracije mreže za virtualku:

 

 

S time kako možemo mijenjati model virtualizirane mrežne kartice:

 

 

LXC

Model kod upotrebe LXC Linux kontejnera je vrlo sličan samo što se ne koriste tap (virtualni interface) već veth (također posebna vrsta virtualnog interface-a ) koji se kreira u paru (na slici dolje je par: veth A1 i veth A2), poput tunela – jedna strana je unutar Linuxa ili open vSwitcha, a druga unutar LXC kontejnera (koji zapravo završava unutar network namespace-a unutar LXC kontejnera).  Ovakav par veth interaface-a se doslovno ponaša kao prolazni tunel – sve što uđe s jedne strane izađe na drugu stranu i obratno. Ovo je jedini mogući način komunikacije između Linuxa i Linux kontejnera, barem što se mreže tiče. Istu metodu koristi i docker. Možda zvući komplicirano, ali nema druge ili barem jednostavnije metode komunikacije od i prema Linux kontejneru, preko mreže.

Pogledajmo i logičku shemu ovakvog scenarija, s jednom fizičkom mrežnom karticom (LAN1- eth0) na poslužitelju:

 

 

Pogledajmo konfiguraciju mreže LXC kontejnera:

 

 

Vratimo se na virtualke

Ako pogledamo i druge funkcionalnosti, od samog pokretanja virtualnih računala, također se ne koriste nikakvi među slojevi (npr. libvirt ili sl.), kako bi se i ovdje rad pojednostavnio i ubrzao. Naime, Proxmox VE pokreće virtualna računala i to direktno iz KVM/QEMU hipervizora. Pogledajmo kako Proxmox VE pokreće jednu virtualku:

(Ovo naravno nije vidljivo iz GUI-a iz kojega je zamišljeno da isključivo i radite).

Ovakvim načinom, bez posrednika, dobilo se na jednostavnosti, brzini ali i mogućnosti dodatnih optimizacija za svaku pojedinu virtualku. Konfiguracijski parametri svake virtualke se nalaze u zasebnoj datoteci na Proxmox VE Linuxu tako da je uključivanje i onih parametara ili opcija koje nisu dostupne preko GUI sučelja, jednostavno – editiranjem konfiguracijske datoteke od željene virtualke. Dodatno ako imamo Proxmox VE klaster – sve ove (i sve druge) konfiguracijske datoteke se repliciraju na sve Proxmox VE poslužitelje u klasteru (preko već spomenutog Proxmox klastersog datotečnog sustava [pmxcfs]).

Ovime se dobilo i na pouzdanosti – nisu razvijane neke posebne metode ili programi koji su potrebni za pokretanje, praćenje i druge mogućnosti rada virtualki, već se koriste dostupne metode koje nam daje QEMU/KVM.

Linux kontejneri i docker (kontejner) nisu isto! Linux kontejneri (OpenVZ ili LXC) su kontejneri koji sadrže kompletan izolirani linux (točnije specifičnu, željenu distribuciju Linuxa). Ovakav Linux kontejner se ponaša slično kao bilo koja Linux virtualka  (ili računalo na koje je instaliran Linux). Razlika između Linux kontejnera i virtualke je u tome što Linux kontejner troši drastično manje resursa od virtualke te nema cijeli niz slojeva virtualizacije. Dakle, na Linux kontejner možete normalno instalirati programe kao što bi ih instalirani na bilo koji linux.

S druge strane, docker (kontejner) je kontejner za aplikacije, unutar njega se pokreću aplikacije/programi, kojima je Linux koji se vrti negdje “ispod haube” nevidljiv. Docker također koristi istih sedam (7) tehnologija za izolaciju (cgroups, i namespaces) kao i LXC. Dakle iz dockera ne vidite izvršne linux datoteke, servise, linux biblioteke (engl. librarys) ili datotečni sustav sa strukturom datoteka i direktorija već docker “daje” sve potrebno aplikaciji koja se pokreće unutar dockera.

 

Iste metode koriste se i za svaku drugu komponentu sustava – od Storage sustava za pohranu virtualnih diskova, snapshote istih, do storage sustava za backup te drugih komponenti. KISS principi razvoja, implementacije i rada uvijek i svugdje.

Pogledajte izbornik vrste virtualiziranog disk kontrolera:

 

 

U idućem nastavku detaljno govorimo o konkretnim razvojnim mogućnostima koje donosi Proxmox 4.x.

 

Autor: Hrvoje Horvat

Članak preuzet, uređen i objavljen uz izričito dopuštenje autora.

Izvor: Open Source Osijek

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Povezani članci:

Predavanje - Virtualizaci...
Osnove NAS i SAN sustava ...
Osnove NAS i SAN sustava ...
Osijek Mini Maker Faire 2...
Proxmox VE 4.x – novosti ...

Ostavi komentar

© 2017 Linux Za Sve. | Impressum | Sadržaj je licenciran pod CC-SA-3.0 ako nije drugačije naznačeno.
Proudly designed by Theme Junkie.