Projekt NetBSD vyvíja nový hypervízor NVMM

Vývojári projektu NetBSD oznámili o vytvorení nového hypervízora a s ním súvisiaceho stacku virtualizácie, ktorý je už zahrnutý v experimentálnej vetve NetBSD-current a bude ponúknutý v stabilnej verzii NetBSD 9. NVMM je zatiaľ obmedzený na podporu architektúry x86_64 a poskytuje dva backendy pre využitie hardvérových mechanizmov virtualizácie: x86-SVM s podporou rozšírení virtualizácie CPU AMD a x86-VMX pre CPU Intel. V súčasnej podobe je možné na jednom hostiteľskom počítači spustiť až 128 virtuálnych strojov, z ktorých každému môže byť pridelených až 256 virtuálnych procesorových jadier (VCPU) a 128 GB RAM.

NVMM obsahuje ovládač, ktorý pracuje na úrovni jadra systému a koordinuje prístup k hardvérovým mechanizmom virtualizácie, a stack Libnvmm, ktorý beží v užívateľskom priestore. Interakcia medzi komponentmi jadra a užívateľského priestoru prebieha prostredníctvom IOCTL. Osobitosťou NVMM, ktorá ho odlišuje od hypervízorov ako KVM, HAXM a Bhyve, je to, že na úrovni jadra sa vykonáva len minimálny potrebný súbor obalov okolo hardvérových mechanizmov virtualizácie, pričom celý kód emulácie hardvéru je presunutý z jadra do užívateľského priestoru. Takýto prístup umožňuje znížiť objem kódu bežiaceho s vyššími privilégiami a znižuje riziko kompromitácie celého systému v prípade útokov na zraniteľnosti v hypervízore. Okrem toho sa podstatne zjednodušuje ladenie a fuzzing testovanie projektu.

Preto Libnvmm sám o sebe neobsahuje funkcie emulátora, ale len poskytuje API, ktoré umožňuje integrovať podporu NVMM do existujúcich emulátorov, ako je QEMU. API pokrýva také funkcie ako vytváranie a spúšťanie virtuálnych strojov, pridelovanie pamäte hostiteľskému systému, rozdeľovanie VCPU. Na zvýšenie bezpečnosti a zníženie možných vektorov útoku libnvmm poskytuje iba výslovne požadované funkcie — predvolene sa zložené obslužné programy nevyvolávajú automaticky a môžu sa dokonca nepoužiť, ak je možné sa bez nich zaobísť. NVMM sa snaží obchádzať zložitými riešeniami a umožniť kontrolu čo možno najväčšieho počtu aspektov práce.

Projekt NetBSD vyvíja nový hypervízor NVMM

Časť NVMM pracujúca na úrovni jadra je úzko integrovaná s jadrom NetBSD a umožňuje zvýšiť výkon znížením počtu prechodov medzi hosťujúcou OS a hostiteľským prostredím. Na strane užívateľského priestoru sa libnvmm snaží agregovať typické operácie vstupu a výstupu a bez potreby sa neobracať na systémové volania. Systém prideľovania pamäte je založený na subsystéme pmap, čo umožňuje vytesnenie strán pamäte hosťujúcich systémov do výmenného súboru v prípade nedostatku pamäte v systéme. NVMM je zbavený globálnych zámkov a dobre sa škáluje, čo umožňuje súčasné využívanie rôznych jadier CPU na vykonávanie rôznych hosťujúcich virtuálnych strojov.

Na báze QEMU bolo pripravené riešenie využívajúce NVMM na aktívnu až hardware mechanizmy virtualizácie. Prebieha práca na zahrnutí pripravených záplat do hlavného zloženia QEMU. Sväzok QEMU+NVMM už umožňuje úspešne spúšťať hosťujúce systémy s FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 a inými OS na systémoch x86_64 s procesormi AMD a Intel (sám NVMM nie je viazaný na určitú architektúru, napríklad pri vytvorení príslušného backendu môže fungovať na systémoch ARM64). Medzi oblasti ďalšieho uplatnenia NVMM patrí aj sandbox-izolácia jednotlivých aplikácií.

Projekt NetBSD vyvíja nový hypervízor NVMM

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster