Proxmox Virtual Environment - Open source virtualizacija za svakog
U vrijeme cloud computinga, open source virtualizacija grabi sve više zamaha. Što dobivamo brakom dvije popularne virtualizacijske platforme – KVM-a i LXC-a – u lijepo upakirani management GUI? – Proxmox VE?
Proizvođač | Proxmox Server Solutions GmbH |
Tip | Virtualizacijska platforma |
Minimalna konfiguracija | Single-Core CPU, 1 GB RAM, 4 GB HDD |
Preporučena konfiguracija | Quad-Core Xeon,16 GB RAM, 1 TB HDD |
Dojam | Solidno i besplatno rješenje za svaku vrstu virtualizacije |
Proxmox VE (skraćeno za Virtual Environment) – dolazi iz gotovo susjedne nam Austrije, a kombinira dva moćna open source virtualizacijska rješenja – LXC i KVM. LXC nastao je na bazi starog OpenVZ-a, i radi se o tzv. kontejnerizacijskom pristupu virtualizaciji, odnosno izolaciji mikroservisa u izdvojene “virtualne strojeve”, koji to zapravo nisu – s hostom dijele memoriju, kernel i sistemske pozive. Kontejnerizacija je posljednji krik mode cloud computinga, a bazira se na razbijanju monolitnih servisa na mikroservise i njihovom pakiranju u svojevrsne mini servere, tzv. kontejnere. Kontejnere je vrlo lako kreirati, instancirati i uništavati, a višestrukim instanciranjem istovjetnih kontejnera postiže se lateralna skalabilnost servisa unutar privatnog clouda. Treba priznati da LXC nije najpopularnije rješenje na tom polju – ta titula svakako pripada kombinaciji Docker/Kubernetes.
Izolacija
LXC koristi tzv. kernel namespaces za izolaciju procesa, chrooting za izolaciju filesystema, te AppArmor za sigurnosnu izolaciju procesa i programa. KVM (Kernel-based Virtual Machine) s druge je strane, zrela, enterprise-grade potpuna virtualizacija, slično kao i Hyper-V, VMware i slična rješenja. KVM modul je dio Linux kernela još od verzije 2.6 , a iza njega stoje Red Hat i IBM. Možemo ga naći u data centrima Googlea, Digital Oceana, Linodea, IBM-a i mnogih drugih. Oba rješenja su open-source, baš kao i cijeli Proxmox VE – možete ga slobodno potražiti i forkati s Gita. Baš kao i mnoge druge open-source kompanije, nudi svoj softver potpuno besplatno – ali i bez ikakve podrške, odnosno, uz godišnju licencu koja obuhvaća pristup na stabilne enterprise repozitorije i support softvera u slučaju problema. Ako se odlučite za opciju 0 kuna, nećete imati pristup enterprise, već samo community repozitorijima, koji su manje stabilni i slabije testirani – moguće je na njima pokupiti i poneki bug koji još nije ispravljen. Licence počinju od community pa do premium verzija i uglavnom se razlikuju prema vremenu odziva i broju support ticketa koje možete otvoriti godišnje. Standard i premium licence također obuhvaćaju i udaljenu podršku spajanjem Proxmox tehničara na vaše servere i direktan troubleshoot problema. Licenciranje je za današnje doba poprilično standardno, i plaća se godišnje po CPU socketu.
Osim bazičnog virtualizacijskog softvera, Proxmox VE koristi i mnoge druge open source tehnologije kako bi postigao koherenciju i sklop funkcionalnosti koje nudi, a sve zajedno upakirano je u dopadljivi i moderan web-interface pomoću kojeg možemo upravljati svojim privatnim cloudom. Tako se Proxmox VE pozicionira prema privatnom cloudu male do srednje veličine – dakle, prema korisnicima kojima trebaju on-premise moderna rješenja iz oba svijeta (i kontejneri i puna virtualizacija), a koji su ipak dovoljno “mali” da nisu prerasli limitacije koje ovakvo rješenje pruža.
Ali, krenimo redom.
Open-source ispod haube
Proxmox VE baziran je na distribuciji Linuxa Debian, i u posljednjoj, 6. verziji, bazira se na Buster releaseu Debian 10. S 10. inačicom Debiana, i inače vrlo stabilnoj i zreloj distribuciji Linuxa, dolazi i vrlo moderan 5.0 kernel, sa svim novim driverima i featurevima. Na tu bazu, nadalje, dolaze LXC verzije 3.1 i QEMU KVM 4.0. Proxmox hostovi podržavaju i cluster i high-availability s failoverom, a za što se koristi Corosync 3.0. Na Linuxu filesystema ne nedostaje pa tako možete birati između klasičnih EXT4/LVM rješenja, vječnog i neuništivog NFS-a, pa do malo egzotičnijih, kao što su ZFS ili GlusterFS, ili, pak, distribuiranih storage sistema poput Cepha. S Cephom čvorovima na samim Proxmox hostovima (da se razumijemo, uvijek može i na decidiranim) potencijalno dobivate tu “hiperkonvergenciju”, trend vraćanja svih distribuiranih cloud resursa (network, storage, compute) natrag u istu kutiju.
Ako, pak, želite izdvojeni, zajednički storage, na raspolaganju vam je LVM (i LVM-thin) i ZFS preko iSCSI-a. Sama instalacija vrlo je jednostavna, i sastoji se od svega nekoliko ekrana, kao što su odabir diska za instalaciju (Proxmox VE ima svoje standardne particije, tako da samo birate disk ili polje), mrežne postavke i vremensku zonu. Vrijeme instalacije također je poprilično kratko, i nakon otprilike 10-ak minuta i reboota bit ćete spremni za rad. Treba napomenuti da Proxmox ne podržava tzv. fake RAID (odnosno on-board BIOS RAID), pa ćete u nedostatku decidiranog RAID kontrolera moći izabrati ZFS softverski RAID. Ako planirate instalaciju clustera, također treba pripaziti na postavke vremena (gotovo obaveznu sinkronizaciju preko NTP-a), mrežne postavke i ispravan FQDN za server. Preko GUI-a moći ćete upravljati skoro svime, osim što ćete ponekad morati zaroniti u Linuxov shell, i ovdje su vam granice zapravo samo vlastito znanje i snalažljivost.
S obzirom na to da je Proxmox VE mozaik postojećih open-source tehnologija i skripti, uvijek ste u mogućnosti nešto nadograditi, promijeniti ili ukalupiti u kakvu već arhitekturu imate ili tek planirate. Ovo posebno dolazi do izražaja prilikom konfiguracije mrežnih adaptera i storage sustava. Iako je u novim verzijama moguće, barem teoretski, konfigurirati mrežni stack preko GUI-a, u praksi ćete htjeti rezervirati pojedine mrežne adaptere za cluster komunikaciju, decidirani VM promet, podatkovni promet za Ceph ili prema SAN-u, itd. Dodamo li cijeloj priči i NIC bonding (odnosno Link Aggregation), VLAN-ove, routing i slično, morat ćete gotovo sigurno posegnuti za manualnim uređivanjem interfaces datoteke – standardnog mjesta za konfiguraciju statičke mreže na Debian distribuciji – sve što možete zamisliti na sustavu Debian uglavnom možete implementirati i na Proxmoxu. Također je bitno napomenuti da gotovo svaka izmjena ove datoteke zahtjeva restart cijelog hosta, a ne samo mrežnog servisa, što je nezgodno i treba unaprijed planirati. S druge, pak, strane, imate cijeli Debian network stack na raspolaganju i možete posložiti gotovo bilo kakvu priču koja vam padne na pamet.
Storage, bilo kakav
Slična priča vrijedi i za storage. Možete koristiti lokalni, distribuirani, udaljeni, zajednički ili bilo kakav treći storage model koji je podržan na Debianu. Proxmox VE podržava određen broj filesystema, iako vrlo vjerojatno možete implementirati i neki drugi. U svakom slučaju, ako ste ga kadri prezentirati hostu (odnosno mountati), dodat ćete ga kasnije preko GUI-a jednostavno kao novi odredišni direktorij za vaše virtualke. Proxmox ne mari previše o kojem se filesystemu radi, osim ako se radi o shared storage modelu (recimo da imate SAN na koji spremate virtualne strojeve). I u tom se slučaju morate sami pobrinuti za to da svaki server vidi udaljeni storage (i manualno konfigurirati multipath ako ga koristite), samo ćete na kraju priče morati takav LUN formatirati filesystemom koji podržava dijeljenje , jer ćete u protivnom vrlo brzo korumpirati podatke. U svakom slučaju, vrlo je korisno konzultirati Proxmox Wiki kako biste lakše odabrali model koji odgovara vašim potrebama. Jedna od posljednjih stvari koju treba podesiti tipkajući naredbe je kreiranje clustera. Procedura je zaista brza i bezbolna – u svega nekoliko naredbi – ali ipak pripazite da ste zadovoljili sve preduvjete za uspješnu komunikaciju čvorova u clusteru, jer rekreiranje clustera u pravilu traži i reinstall hostova.
Kreiranje clustera u pravilu treba planirati unaprijed, i to s praznim hostovima – dodavanje hostova s postojećim virtualnim strojevima nije moguće (zbog mogućih konflikata ID-eva strojeva koji moraju biti unikatni unutar samog clustera). Sve navedeno možda zvuči odveć komplicirano, no uz malo prakse konfigurira se dosta bezbolno, bez obzira na to što dio treba odraditi u mračnom podrumu zvanom shell. Za znalce ovo će svakako biti i prednost, jer se sve može dosta jednostavno automatizirati i skriptirati, pa ide na ruku i nešto većim deploymentima. Za sve ostale, tu je GUI.
Nakon što podesite topologiju, skoro sve upravljanje možete obavljati preko web-interfacea. Ovdje su stvari poprilično standardne, kao i kod sličnih rješenja ostalih proizvođača. Virtualke možete kreirati, uništavati, mijenjati im parametre, proširivati im diskove, dodjeljivati ih poolevima, backupirati ih, klonirati, aktivirati im firewalle ili pretvarati u template. KVM se ovdje ponaša kao i klasična virtualizacija na ostalim hipervizorima, što znači da instalacija traje kao i na fizičkom stroju, boot također, promjene hardvera zahtijevaju restart, a bolje vam je instalirati i guest toolse. KVM, iako ne toliko razvikan i popularan kao, primjerice, Hyper-V ili VMware, nudi zaista odličnu stabilnost, performanse i podržava gotovo sve verzije Windowsa i Linux OS-a, uključujući i posljednji Windows Server 2019. Pri odabiru konzole za upravljanje virtualnim strojevima možete birati onu baziranu na klasičnom VNC-u ili, pak, odličnom Red Hatovom protokolu SPICE. Sama instalacija stroja ne razlikuje se previše od konkurentnih rješenja – konfigurirat ćete virtualni hardver, odabrati guest OS, podmetnuti instalacijski disk i odklikati instalaciju preko spomenute konzole. Kao što smo već napomenuli, KVM je poprilično popularno rješenje u public i private cloudu, gdje je open source prednost, a ne mana. Primjera radi, čak 81% anketiranih korisnika OpenStacka (OpenStack Survey 2018) koristi KVM kao odabrano virtualizacijsko rješenje.
Home lab scenariji
Proxmox VE je softver koji je poprilično popularan u (home)lab scenarijima jer je u osnovi besplatan, a nudi podršku za obje vrste virtualizacije i podržava virtualizaciju svih popularnih OS-eva. Moguće ga je za probu instalirati i na virtualnom stroju, uz caveat da za KVM treba postojati podrška za nested virtualizaciju. U datacentru egzistira negdje između klasičnih enterprise rješenja poput VMwarea i velikih open source baziranih cloud stackova. U svojoj sadašnjoj inačici gotovo da je spreman za oboje, iako tu i tamo pati od nedostatka enterprise ready značajki, a nije posve sigurno koliko daleko se može skalirati na značajno velik broj hostova.
Ono što je možda i najbitnije jest to da je projekt vrlo aktivan, od 2008. do danas, zajedno sa svim upstream komponentama. Ostaje pitanje koliko LXC dugoročno može parirati vrlo popularnoj Kubernetes/Docker kombinaciji u cloudu i koliko će se projekt pokazati izdržljivim na duge pruge. S druge strane, za manje i srednje deploymente nudi sve što treba – kvalitetnu virtualizaciju i kontejnerizaciju koja može pokriti gotovo svaki razuman use-case scenarij koji možete zamisliti, uz minimalne početne investicije.
Proxmox Virtual Environment 4.0
- Virtualizacija i kontejnerizacija u istom paketu
- Cijena
- Performanse
- Customizabilnost
- Povremeni bugovi
- LXC ne podržava live migracije
- Docker je popularnije rješenje
- Tu i tamo zahtijeva pristup shellu
NAPOMENA: Ovaj tekst je izvorno objavljen u časopisu Mreža.