Проект NetBSD развива нов нов хипервизор NVMM

Разработчиците на проекта NetBSD обявиха за създаването на нов хипервизор и свързания с него стек за виртуализация, които вече са включени в експерименталната версия на NetBSD-current и ще бъдат предложени в стабилната версия на NetBSD 9. NVMM засега е ограничен до поддръжка на архитектура x86_64 и предоставя два бекенда за активиране на хардуерните механизми за виртуализация: x86-SVM с поддръжка на разширения за виртуализация на AMD и x86-VMX за Intel. В текущата версия е възможно стартиране на до 128 виртуални машини на един хост, като на всяка от тях могат да бъдат предоставени до 256 виртуални процесорни ядра (VCPU) и 128 ГБ RAM.

NVMM включва драйвер, работещ на ниво ядро на системата и координиращ достъпа до хардуерните механизми за виртуализация, и стек Libnvmm, изпълняван в пространство на потребителя. Взаимодействието между компонентите на ядрото и пространството на потребителя се осъществява чрез IOCTL. Характеристика на NVMM, която го отличава от хипервизори като KVM, HAXM и Bhyve, е, че на ниво ядро се изпълнява само минималният необходим набор от обвивки около хардуерните механизми за виртуализация, а целият код за емулиране на оборудването е преместен от ядрото в пространството на потребителя. Такъв подход позволява да се намали обемът на кода, който се изпълнява с повишени привилегии, и да се намали рискът от компрометиране на цялата система в случай на атаки върху уязвимости в хипервизора. Освен това, значително се опростява отстраняването на грешки и тестовете за fuzzing на проекта.

В същото време Libnvmm сам по себе си не съдържа функции на емулация, а просто предоставя API, позволяващ интегрирането на поддръжката на NVMM в съществуващи емулатори, например в QEMU. API обхваща функции като създаване и стартиране на виртуална машина, разпределение на памет за гостоприемната система, разпределение на VCPU. За повишаване на сигурността и намаляване на възможните вектори за атаки libnvmm предоставя само явно поисканите функции — по подразбиране сложни обработчици не се извикват автоматично и изобщо може да не се прилагат, ако без тях може да се мине. NVMM се опитва да се справя с прости решения, без да се впуска в усложнения и позволява контрол над възможно най-много аспекти на работата.

Проект NetBSD развива нов нов хипервизор NVMM

Част от NVMM, работеща на ядрото, е плътно интегрирана с ядрото на NetBSD и позволява увеличаване на производителността чрез намаляване на броя на контекстните превключвания между гостуващата операционна система и хост-околната среда. На страната на потребителското пространство libnvmm се стреми да агрегира типични операции за вход-изход и да не се обръща към системни повици, освен при необходимост. Системата за управление на паметта е базирана на подсистемата pmap, което позволява извеждането на страниците на паметта на гостуващите системи в свалящата памет при недостиг на памет в системата. NVMM е освободен от глобални блокировки и се мащабира добре, позволявайки едновременното използване на различни ядра на CPU за изпълнението на различни виртуални машини.

На базата на QEMU е подготвено решение, което използва NVMM за включване на хардуерни механизми за виртуализация. Работи се по включването на подготвените пачове в основния проект на QEMU. Връзката QEMU+NVMM вече позволява успешно стартира гостуващи системи с FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 и други операционни системи на системи x86_64 с процесори AMD и Intel (самият NVMM не е свързан с определена архитектура, например, при създаване на съответния бекенд би могъл да работи на системи ARM64). От областите за бъдеща употреба на NVMM също така се бележи изолация на определени приложения в пясъчник.

Проект NetBSD развива нов нов хипервизор NVMM

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster