NetBSD-projektet er ved at udvikle en ny NVMM hypervisor

NetBSD projektudviklere annonceret om oprettelsen af ​​en ny hypervisor og den tilhørende virtualiseringsstak, som allerede er inkluderet i den eksperimentelle NetBSD-aktuelle gren og vil blive tilbudt i den stabile udgivelse af NetBSD 9. NVMM er i øjeblikket begrænset til at understøtte x86_64-arkitekturen og giver to backends til muliggør hardwarevirtualiseringsmekanismer: x86-SVM med understøttelse af AMD og x86-VMX CPU virtualiseringsudvidelser til Intel CPU'er. I sin nuværende form er det muligt at køre op til 128 virtuelle maskiner på én vært, som hver kan tildeles op til 256 virtuelle processorkerner (VCPU) og 128 GB RAM.

NVMM inkluderer en driver, der kører på systemkerneniveau og koordinerer adgang til hardwarevirtualiseringsmekanismer, og en Libnvmm-stak, der kører i brugerrummet. Interaktion mellem kernekomponenter og brugerrum udføres gennem IOCTL. En funktion ved NVMM, der adskiller den fra hypervisorer som KVM er HAXM og Bhyve, er, at på kerneniveau udføres kun det mindst nødvendige sæt af bindinger omkring hardwarevirtualiseringsmekanismer, og al hardwareemuleringskode flyttes ud af kernen til brugerrummet. Denne tilgang giver dig mulighed for at reducere mængden af ​​kode, der udføres med forhøjede privilegier og reducere risikoen for at kompromittere hele systemet i tilfælde af angreb på sårbarheder i hypervisoren. Derudover er fejlfinding og fuzzing-test af projektet mærkbart forenklet.

Libnvmm i sig selv indeholder dog ikke emulatorfunktioner, men leverer kun en API, der giver dig mulighed for at integrere NVMM-understøttelse i eksisterende emulatorer, for eksempel QEMU. API'en dækker funktioner som at oprette og starte en virtuel maskine, allokere hukommelse til gæstesystemet og allokere VCPU'er. For at forbedre sikkerheden og reducere mulige angrebsvektorer, leverer libnvmm kun funktioner, der er eksplicit anmodet om - som standard kaldes komplekse handlere ikke automatisk og kan slet ikke bruges, hvis de kan undgås. NVMM forsøger at holde tingene enkle, uden at blive for komplicerede, og giver dig mulighed for at kontrollere så mange aspekter af dit arbejde som muligt.

NetBSD-projektet er ved at udvikle en ny NVMM hypervisor

Kerneniveaudelen af ​​NVMM er ret tæt integreret med NetBSD-kernen og giver mulighed for forbedret ydeevne ved at reducere antallet af kontekstskift mellem gæste-OS og værtsmiljøet. På brugerpladssiden forsøger libnvmm at samle almindelige I/O-operationer og undgå at foretage unødvendige systemkald. Hukommelseallokeringssystemet er baseret på pmap-undersystemet, som giver dig mulighed for at fjerne gæstehukommelsessider til swap-partitionen i tilfælde af hukommelsesmangel i systemet. NVMM er fri for globale låse og skalerer godt, hvilket giver dig mulighed for samtidigt at bruge forskellige CPU-kerner til at køre forskellige virtuelle gæstemaskiner.

Der er udarbejdet en QEMU-baseret løsning, der bruger NVMM til at aktivere hardwarevirtualiseringsmekanismer. Der arbejdes på at inkludere de forberedte patches i QEMU's hovedstruktur. QEMU+NVMM-kombinationen er allerede Det gør det muligt med succes køre gæstesystemer med FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 og andre OS på x86_64-systemer med AMD- og Intel-processorer (NVMM selv er ikke bundet til en specifik arkitektur, for eksempel hvis den relevante backend er oprettet , vil den kunne fungere på ARM64-systemer). Blandt områderne for yderligere anvendelse af NVMM bemærkes også sandkasseisolering af individuelle applikationer.

NetBSD-projektet er ved at udvikle en ny NVMM hypervisor

Kilde: opennet.ru

Tilføj en kommentar