Projekt NetBSD razvija nov hipervizor NVMM

Razvijalci projektov NetBSD napovedal o izdelavi novega hipervizorja in povezanega virtualizacijskega sklada, ki sta že vključena v eksperimentalno trenutno vejo NetBSD in bosta na voljo v stabilni izdaji NetBSD 9. NVMM je trenutno omejen na podporo arhitekture x86_64 in ponuja dva ozadja za omogočanje mehanizmov za virtualizacijo strojne opreme: x86-SVM s podporo za razširitve virtualizacije procesorjev AMD in x86-VMX za procesorje Intel. V trenutni obliki je mogoče na enem gostitelju poganjati do 128 virtualnih strojev, vsakemu od njih pa je mogoče dodeliti do 256 virtualnih procesorskih jeder (VCPU) in 128 GB RAM-a.

NVMM vključuje gonilnik, ki deluje na ravni sistemskega jedra in usklajuje dostop do mehanizmov za virtualizacijo strojne opreme, in sklad Libnvmm, ki deluje v uporabniškem prostoru. Interakcija med komponentami jedra in uporabniškim prostorom se izvaja prek IOCTL. Značilnost NVMM, ki ga razlikuje od hipervizorjev, kot je KVM, je HAXM in Bhyve, je, da se na ravni jedra izvede samo minimalni zahtevani nabor povezav okoli mehanizmov za virtualizacijo strojne opreme, vsa koda za emulacijo strojne opreme pa se premakne iz jedra v uporabniški prostor. Ta pristop vam omogoča, da zmanjšate količino kode, ki se izvaja s povišanimi privilegiji, in zmanjšate tveganje ogrožanja celotnega sistema v primeru napadov na ranljivosti v hipervizorju. Poleg tega je opazno poenostavljeno testiranje projekta za odpravljanje napak in zamegljenost.

Vendar sam Libnvmm ne vsebuje funkcij emulatorja, ampak ponuja samo API, ki vam omogoča integracijo podpore za NVMM v obstoječe emulatorje, na primer QEMU. API pokriva funkcije, kot so ustvarjanje in zagon virtualnega stroja, dodeljevanje pomnilnika gostujočemu sistemu in dodeljevanje VCPU-jev. Za izboljšanje varnosti in zmanjšanje možnih vektorjev napadov libnvmm zagotavlja samo funkcije, ki so izrecno zahtevane – privzeto se zapleteni upravljalniki ne kličejo samodejno in se morda sploh ne uporabljajo, če se jim je mogoče izogniti. NVMM poskuša ohraniti stvari preproste, ne da bi preveč komplicirali, in vam omogoča nadzor nad čim več vidiki vašega dela.

Projekt NetBSD razvija nov hipervizor NVMM

Del NVMM na ravni jedra je precej tesno povezan z jedrom NetBSD in omogoča izboljšano zmogljivost z zmanjšanjem števila kontekstnih preklopov med gostujočim OS in gostiteljskim okoljem. Na strani uporabniškega prostora skuša libnvmm združiti običajne V/I operacije in se izogniti nepotrebnim sistemskim klicem. Sistem dodeljevanja pomnilnika temelji na podsistemu pmap, ki omogoča izgon gostujočih pomnilniških strani na izmenjalno particijo v primeru pomanjkanja pomnilnika v sistemu. NVMM je brez globalnih zaklepanj in se dobro prilagaja, kar vam omogoča hkratno uporabo različnih jeder CPE za zagon različnih gostujočih virtualnih strojev.

Pripravljena je bila rešitev, ki temelji na QEMU in uporablja NVMM za omogočanje mehanizmov za virtualizacijo strojne opreme. V teku je delo za vključitev pripravljenih popravkov v glavno strukturo QEMU. Kombinacija QEMU+NVMM je že omogoča uspešno zagnati gostujoče sisteme s FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 in drugimi operacijskimi sistemi na sistemih x86_64 s procesorji AMD in Intel (sam NVMM ni vezan na določeno arhitekturo, na primer, če je ustvarjeno ustrezno zaledje , bo lahko deloval na sistemih ARM64 ). Med področji nadaljnje uporabe NVMM je navedena tudi izolacija posameznih aplikacij v peskovniku.

Projekt NetBSD razvija nov hipervizor NVMM

Vir: opennet.ru

Dodaj komentar