NetBSD projekat razvija novi NVMM hipervizor

NetBSD Project Developers najavljeno o kreiranju novog hipervizora i povezanog virtuelizacionog steka, koji su već uključeni u eksperimentalnu NetBSD-trenutnu granu i biće ponuđeni u stabilnom izdanju NetBSD 9. NVMM je trenutno ograničen na podršku x86_64 arhitekturi i obezbeđuje dva pozadina za omogućavanje mehanizama virtuelizacije hardvera: x86-SVM sa podrškom za AMD i x86-VMX proširenja virtuelizacije CPU-a za Intel CPU. U svom sadašnjem obliku, moguće je pokrenuti do 128 virtuelnih mašina na jednom hostu, od kojih se svakoj može dodijeliti do 256 virtualnih procesorskih jezgara (VCPU) i 128 GB RAM-a.

NVMM uključuje drajver koji radi na nivou sistemskog kernela i koordinira pristup mehanizmima virtuelizacije hardvera i Libnvmm stog koji radi u korisničkom prostoru. Interakcija između komponenti kernela i korisničkog prostora se vrši preko IOCTL-a. Karakteristika NVMM-a koja ga razlikuje od hipervizora kao što je KVM jeste HAXM i Bhyve, je da se na nivou kernela izvodi samo minimalni potrebni skup veza oko mehanizama virtuelizacije hardvera, a sav kod za emulaciju hardvera se premešta iz kernela u korisnički prostor. Ovaj pristup vam omogućava da smanjite količinu koda koji se izvršava sa povišenim privilegijama i smanji rizik od kompromitovanja čitavog sistema u slučaju napada na ranjivosti u hipervizoru. Osim toga, otklanjanje grešaka i fuzzing testiranje projekta je značajno pojednostavljeno.

Međutim, sam Libnvmm ne sadrži funkcije emulatora, već samo pruža API koji vam omogućava da integrirate NVMM podršku u postojeće emulatore, na primjer, QEMU. API pokriva funkcije kao što su kreiranje i pokretanje virtuelne mašine, dodeljivanje memorije gostujućem sistemu i dodeljivanje VCPU-a. Da bi poboljšao sigurnost i smanjio moguće vektore napada, libnvmm pruža samo funkcije koje su eksplicitno tražene—podrazumevano, složeni rukovaoci se ne pozivaju automatski i ne mogu se uopće koristiti ako se mogu izbjeći. NVMM pokušava da stvari održi jednostavnim, bez da se previše zakomplikuje, i omogućava vam da kontrolišete što više aspekata svog rada.

NetBSD projekat razvija novi NVMM hipervizor

Dio NVMM-a na nivou kernela je prilično čvrsto integriran sa NetBSD kernelom i omogućava poboljšane performanse smanjenjem broja prebacivanja konteksta između gostujućeg OS-a i domaćinskog okruženja. Na strani korisničkog prostora, libnvmm pokušava agregirati uobičajene I/O operacije i izbjeći nepotrebne sistemske pozive. Sistem dodjele memorije je baziran na pmap podsistemu, koji vam omogućava da izbacite gostujuće memorijske stranice na swap particiju u slučaju nedostatka memorije u sistemu. NVMM je bez globalnih zaključavanja i dobro skala, omogućavajući vam da istovremeno koristite različite CPU jezgre za pokretanje različitih gostujućih virtuelnih mašina.

Pripremljeno je rješenje zasnovano na QEMU koje koristi NVMM za omogućavanje mehanizama virtuelizacije hardvera. U toku je rad na uključivanju pripremljenih zakrpa u glavnu strukturu QEMU. Kombinacija QEMU+NVMM već postoji dozvoljava uspješno pokrenuti gostujuće sisteme sa FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 i drugim OS na x86_64 sistemima sa AMD i Intel procesorima (NVMM sam po sebi nije vezan za određenu arhitekturu, na primjer, ako je kreiran odgovarajući backend , moći će da radi na ARM64 sistemima). Među područjima dalje primjene NVMM-a, također se ističe izolacija sandbox-a pojedinačnih aplikacija.

NetBSD projekat razvija novi NVMM hipervizor

izvor: opennet.ru

Dodajte komentar