NetBSD projekts izstrādā jaunu NVMM hipervizoru

NetBSD projektu izstrādātāji paziņoja par jauna hipervizora un saistītās virtualizācijas steka izveidi, kas jau ir iekļautas eksperimentālajā NetBSD-current atzarā un tiks piedāvātas NetBSD 9 stabilajā izlaidumā. NVMM pašlaik aprobežojas ar x86_64 arhitektūras atbalstīšanu un nodrošina divas aizmugursistēmas iespējot aparatūras virtualizācijas mehānismus: x86-SVM ar atbalstu AMD un x86-VMX CPU virtualizācijas paplašinājumiem Intel CPU. Pašreizējā formā vienā resursdatorā ir iespējams darbināt līdz 128 virtuālajām mašīnām, katrai no kurām var atvēlēt līdz 256 virtuālā procesora kodoliem (VCPU) un 128 GB RAM.

NVMM ietver draiveri, kas darbojas sistēmas kodola līmenī un koordinē piekļuvi aparatūras virtualizācijas mehānismiem, un Libnvmm steku, kas darbojas lietotāja telpā. Kodola komponentu un lietotāja telpas mijiedarbība tiek veikta, izmantojot IOCTL. NVMM iezīme, kas to atšķir no hipervizoriem, piemēram, KVM HAXM un Bhyve, kodola līmenī tiek veikta tikai minimālā nepieciešamā saišu kopa ap aparatūras virtualizācijas mehānismiem un viss aparatūras emulācijas kods tiek pārvietots no kodola lietotāja telpā. Šī pieeja ļauj samazināt ar paaugstinātām privilēģijām izpildītā koda daudzumu un samazināt risku apdraudēt visu sistēmu gadījumā, ja tiek uzbrukts hipervizora ievainojamībām. Turklāt ir ievērojami vienkāršota projekta atkļūdošana un izplūdes testēšana.

Tomēr pats Libnvmm nesatur emulatora funkcijas, bet nodrošina tikai API, kas ļauj integrēt NVMM atbalstu esošajos emulatoros, piemēram, QEMU. API aptver tādas funkcijas kā virtuālās mašīnas izveide un palaišana, atmiņas piešķiršana viesu sistēmai un VCPU piešķiršana. Lai uzlabotu drošību un samazinātu iespējamos uzbrukuma vektorus, libnvmm nodrošina tikai tās funkcijas, kas ir tieši pieprasītas — pēc noklusējuma sarežģīti apstrādātāji netiek izsaukti automātiski un tos var neizmantot vispār, ja no tiem var izvairīties. NVMM cenšas padarīt lietas vienkāršas, nesarežģītos un ļaujot jums kontrolēt pēc iespējas vairāk sava darba aspektu.

NetBSD projekts izstrādā jaunu NVMM hipervizoru

NVMM kodola līmeņa daļa ir diezgan cieši integrēta ar NetBSD kodolu un ļauj uzlabot veiktspēju, samazinot konteksta slēdžu skaitu starp viesu OS un resursdatora vidi. Lietotāju telpas pusē libnvmm mēģina apkopot parastās I/O darbības un izvairīties no nevajadzīgiem sistēmas izsaukumiem. Atmiņas piešķiršanas sistēma ir balstīta uz pmap apakšsistēmu, kas ļauj izlikt viesu atmiņas lapas uz mijmaiņas nodalījumu, ja sistēmā trūkst atmiņas. NVMM ir bez globālām slēdzenēm un mērogiem, ļaujot vienlaikus izmantot dažādus CPU kodolus, lai darbinātu dažādas viesu virtuālās mašīnas.

Ir sagatavots uz QEMU balstīts risinājums, kas izmanto NVMM, lai iespējotu aparatūras virtualizācijas mehānismus. Notiek darbs, lai sagatavotos ielāpus iekļautu QEMU galvenajā struktūrā. QEMU+NVMM kombinācija jau ir pieļauj veiksmīgi palaist viesu sistēmas ar FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 un citām OS x86_64 sistēmās ar AMD un Intel procesoriem (pats NVMM nav piesaistīts konkrētai arhitektūrai, piemēram, ja ir izveidota atbilstošā aizmugursistēma , tas varēs darboties ARM64 sistēmās). Starp NVMM turpmākās pielietošanas jomām tiek atzīmēta arī atsevišķu lietojumu smilškastes izolācija.

NetBSD projekts izstrādā jaunu NVMM hipervizoru

Avots: opennet.ru

Pievieno komentāru