NetBSD projektas kuria naują NVMM hipervizorių

NetBSD projektų kūrėjai paskelbė apie naujo hipervizoriaus ir susieto virtualizavimo krūvos sukūrimą, kurie jau yra įtraukti į eksperimentinę NetBSD-current šaką ir bus pasiūlyti stabilioje NetBSD 9 laidoje. Šiuo metu NVMM palaiko tik x86_64 architektūrą ir suteikia dvi užpakalines programas įgalinantys aparatinės įrangos virtualizavimo mechanizmus: x86-SVM su AMD palaikymu ir x86-VMX procesoriaus virtualizacijos plėtiniais, skirtais Intel procesoriams. Esant dabartinei formai, viename pagrindiniame kompiuteryje galima paleisti iki 128 virtualių mašinų, kurių kiekvienai galima skirti iki 256 virtualių procesorių branduolių (VCPU) ir 128 GB RAM.

NVMM apima tvarkyklę, kuri veikia sistemos branduolio lygiu ir koordinuoja prieigą prie aparatinės įrangos virtualizavimo mechanizmų, ir Libnvmm krūvą, kuris veikia vartotojo erdvėje. Sąveika tarp branduolio komponentų ir vartotojo erdvės vykdoma per IOCTL. NVMM bruožas, išskiriantis jį iš hipervizorių, tokių kaip KVM HAXM ir Bhyve, yra tai, kad branduolio lygiu atliekamas tik minimalus privalomas aparatinės įrangos virtualizacijos mechanizmų susiejimo rinkinys, o visas aparatinės įrangos emuliacijos kodas perkeliamas iš branduolio į vartotojo erdvę. Šis metodas leidžia sumažinti su padidintomis privilegijomis vykdomo kodo kiekį ir sumažinti riziką pakenkti visai sistemai atakų prieš hipervizoriaus pažeidžiamumą atveju. Be to, pastebimai supaprastėja projekto derinimas ir neryškus testavimas.

Tačiau pačiame „Libnvmm“ nėra emuliatoriaus funkcijų, o pateikiama tik API, leidžianti integruoti NVMM palaikymą į esamus emuliatorius, pavyzdžiui, QEMU. API apima tokias funkcijas kaip virtualios mašinos kūrimas ir paleidimas, atminties paskirstymas svečių sistemai ir VCPU paskirstymas. Siekdama pagerinti saugumą ir sumažinti galimus atakų vektorius, libnvmm teikia tik tas funkcijas, kurių aiškiai reikalaujama – pagal numatytuosius nustatymus sudėtingos tvarkyklės nėra iškviečiamos automatiškai ir gali būti visai nenaudojamos, jei jų galima išvengti. NVMM stengiasi, kad viskas būtų paprasta, pernelyg nesudėtinga ir leidžia jums kontroliuoti kuo daugiau savo darbo aspektų.

NetBSD projektas kuria naują NVMM hipervizorių

Branduolio lygio NVMM dalis yra gana glaudžiai integruota su NetBSD branduoliu ir leidžia pagerinti našumą sumažinant konteksto perjungimų tarp svečių OS ir pagrindinio kompiuterio aplinkos skaičių. Vartotojo erdvėje libnvmm bando apibendrinti įprastas įvesties / išvesties operacijas ir išvengti bereikalingų sistemos skambučių. Atminties paskirstymo sistema yra pagrįsta pmap posisteme, kuri leidžia iškeldinti svečių atminties puslapius į apsikeitimo skaidinį, jei sistemoje trūksta atminties. NVMM nėra visuotinių užraktų ir mastelių, todėl galite vienu metu naudoti skirtingus procesoriaus branduolius skirtingoms svečių virtualiosioms mašinoms paleisti.

Parengtas QEMU pagrįstas sprendimas, kuris naudoja NVMM, kad įgalintų aparatinės įrangos virtualizacijos mechanizmus. Vykdomi darbai, siekiant įtraukti paruoštus pleistrus į pagrindinę QEMU struktūrą. QEMU+NVMM derinys jau yra leidžia sėkmingai paleisti svečių sistemas su FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 ir kitomis OS x86_64 sistemose su AMD ir Intel procesoriais (pats NVMM nėra susietas su konkrečia architektūra, pavyzdžiui, jei sukurta atitinkama backend , jis galės veikti ARM64 sistemose). Tarp tolesnio NVMM taikymo sričių taip pat pažymima atskirų pritaikymų smėlio dėžės izoliacija.

NetBSD projektas kuria naują NVMM hipervizorių

Šaltinis: opennet.ru

Добавить комментарий