A NetBSD projekt egy új NVMM hipervizort fejleszt

NetBSD projektfejlesztők bejelentett egy új hypervisor létrehozásáról és a hozzá tartozó virtualizációs veremről, amelyek már benne vannak a kísérleti NetBSD-current ágban, és a NetBSD 9 stabil kiadásában lesznek elérhetők. Az NVMM jelenleg az x86_64 architektúra támogatására korlátozódik, és két háttérrendszert biztosít hardveres virtualizációs mechanizmusok engedélyezése: x86-SVM AMD támogatással és x86-VMX CPU virtualizációs bővítmények Intel CPU-khoz. Jelenlegi formájában akár 128 virtuális gép futtatására van lehetőség egy gazdagépen, amelyek mindegyikéhez legfeljebb 256 virtuális processzormag (VCPU) és 128 GB RAM foglalható.

Az NVMM tartalmaz egy illesztőprogramot, amely a rendszermag szintjén fut, és koordinálja a hardveres virtualizációs mechanizmusokhoz való hozzáférést, valamint egy Libnvmm-vermet, amely a felhasználói térben fut. A kernel összetevői és a felhasználói terület közötti interakció az IOCTL-n keresztül történik. Az NVMM egy olyan tulajdonsága, amely megkülönbözteti az olyan hipervizoroktól, mint a KVM HAXM és Bhyve, hogy kernel szinten csak a minimálisan szükséges kötéskészlet kerül végrehajtásra a hardver virtualizációs mechanizmusok körül, és az összes hardveremulációs kód kikerül a kernelből a felhasználói térbe. Ez a megközelítés lehetővé teszi a megnövelt jogosultságokkal végrehajtott kódok mennyiségének csökkentését, és csökkenti annak kockázatát, hogy a hypervisor sebezhetőségei elleni támadások esetén az egész rendszert veszélyeztetik. Ezenkívül a projekt hibakeresése és fuzzing tesztelése észrevehetően leegyszerűsödik.

Maga a Libnvmm azonban nem tartalmaz emulátor funkciókat, csak olyan API-t biztosít, amely lehetővé teszi az NVMM támogatás integrálását a meglévő emulátorokba, például a QEMU-ba. Az API olyan funkciókat fed le, mint a virtuális gép létrehozása és elindítása, memória lefoglalása a vendégrendszer számára és VCPU-k kiosztása. A biztonság javítása és a lehetséges támadási vektorok csökkentése érdekében a libnvmm csak kifejezetten kért funkciókat biztosít – alapértelmezés szerint az összetett kezelők nem hívódnak automatikusan, és egyáltalán nem használhatók, ha elkerülhetők. Az NVMM igyekszik egyszerűvé tenni a dolgokat anélkül, hogy túl bonyolulttá válna, és lehetővé teszi, hogy a munkája lehető legtöbb aspektusát irányítsa.

A NetBSD projekt egy új NVMM hipervizort fejleszt

Az NVMM kernelszintű része meglehetősen szorosan integrálva van a NetBSD rendszermaggal, és jobb teljesítményt tesz lehetővé a vendég operációs rendszer és a gazdagép környezet közötti kontextusváltások számának csökkentésével. A felhasználói tér oldalán a libnvmm megpróbálja összesíteni a gyakori I/O műveleteket, és elkerülni a szükségtelen rendszerhívásokat. A memóriafoglalási rendszer a pmap alrendszeren alapul, amely lehetővé teszi a vendég memórialapok kiürítését a swap partícióba, ha a rendszerben memóriahiány van. Az NVMM jól mentes a globális zárolásoktól és skálázásoktól, ami lehetővé teszi, hogy egyidejűleg különböző CPU-magokat használjon különböző vendég virtuális gépek futtatásához.

Elkészült egy QEMU-alapú megoldás, amely NVMM-et használ a hardver virtualizációs mechanizmusainak lehetővé tételére. Folyamatban van a munka annak érdekében, hogy az elkészített javításokat beépítsék a QEMU fő szerkezetébe. A QEMU+NVMM kombináció már lehetővé teszi a vendégrendszerek sikeres futtatása FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 és más operációs rendszereken x86_64 rendszereken AMD és Intel processzorokkal (maga az NVMM nincs egy adott architektúrához kötve, ha például létrejön a megfelelő háttérrendszer , képes lesz működni ARM64 rendszereken). Az NVMM további alkalmazási területei között megemlítjük az egyedi alkalmazások homokozós elkülönítését is.

A NetBSD projekt egy új NVMM hipervizort fejleszt

Forrás: opennet.ru

Hozzászólás