Projekt NetBSD razvija novi NVMM hipervizor

Programeri NetBSD projekta najavio o stvaranju novog hipervizora i pridruženog virtualizacijskog stoga, koji su već uključeni u eksperimentalnu NetBSD-trenutačnu granu i bit će ponuđeni u stabilnom izdanju NetBSD-a 9. NVMM je trenutno ograničen na podršku arhitekturi x86_64 i pruža dva backenda za omogućavanje mehanizama hardverske virtualizacije: x86-SVM s podrškom za AMD i x86-VMX CPU virtualizacijske ekstenzije za Intel CPU-e. U trenutnom obliku moguće je pokrenuti do 128 virtualnih strojeva na jednom hostu, od kojih se svakom može dodijeliti do 256 virtualnih procesorskih jezgri (VCPU) i 128 GB RAM-a.

NVMM uključuje upravljački program koji radi na razini jezgre sustava i koordinira pristup hardverskim mehanizmima virtualizacije te Libnvmm stog koji radi u korisničkom prostoru. Interakcija između komponenti kernela i korisničkog prostora odvija se kroz IOCTL. Značajka NVMM-a koja ga razlikuje od hipervizora kao što je KVM je HAXM i Bhyve, je da se na razini kernela izvodi samo minimalni potrebni skup povezivanja oko hardverskih virtualizacijskih mehanizama, a sav hardverski emulacijski kod premješta se iz kernela u korisnički prostor. Ovaj pristup vam omogućuje da smanjite količinu koda koji se izvodi s povišenim privilegijama i smanjite rizik od ugrožavanja cijelog sustava u slučaju napada na ranjivosti u hipervizoru. Osim toga, debugging i fuzzing testiranje projekta je znatno pojednostavljeno.

Međutim, sam Libnvmm ne sadrži funkcije emulatora, već samo pruža API koji vam omogućuje integraciju NVMM podrške u postojeće emulatore, na primjer, QEMU. API pokriva funkcije poput stvaranja i pokretanja virtualnog stroja, dodjele memorije sustavu za goste i dodjele VCPU-a. Kako bi poboljšao sigurnost i smanjio moguće vektore napada, libnvmm pruža samo funkcije koje su izričito tražene—prema zadanim postavkama složeni rukovatelji se ne pozivaju automatski i možda se uopće ne koriste ako se mogu izbjeći. NVMM nastoji stvari održati jednostavnima, bez previše kompliciranja i dopuštajući vam da kontrolirate što više aspekata svog rada.

Projekt NetBSD razvija novi NVMM hipervizor

Dio NVMM-a na razini jezgre prilično je čvrsto integriran s NetBSD jezgrom i omogućuje poboljšane performanse smanjenjem broja kontekstnih prebacivanja između OS-a za goste i okruženja glavnog računala. Na strani korisničkog prostora, libnvmm pokušava agregirati uobičajene I/O operacije i izbjeći nepotrebne pozive sustava. Sustav dodjele memorije temelji se na pmap podsustavu, koji vam omogućuje izbacivanje gostujućih memorijskih stranica na swap particiju u slučaju nedostatka memorije u sustavu. NVMM nema globalnih zaključavanja i dobro se skalira, što vam omogućuje da istovremeno koristite različite CPU jezgre za pokretanje različitih gostujućih virtualnih strojeva.

Pripremljeno je rješenje temeljeno na QEMU-u koje koristi NVMM za omogućavanje mehanizama hardverske virtualizacije. U tijeku je rad na uključivanju pripremljenih zakrpa u glavnu strukturu QEMU-a. Kombinacija QEMU+NVMM već postoji to omogućuje uspješno pokreću gostujuće sustave s FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 i drugim OS-om na x86_64 sustavima s AMD i Intel procesorima (sam NVMM nije vezan uz određenu arhitekturu, na primjer, ako je stvoren odgovarajući backend , moći će raditi na ARM64 sustavima ). Među područjima daljnje primjene NVMM-a navodi se i sandbox izolacija pojedinih aplikacija.

Projekt NetBSD razvija novi NVMM hipervizor

Izvor: opennet.ru

Dodajte komentar