The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Проект NetBSD развивает новый гипервизор NVMM"
Отправлено opennews, 15-Апр-19 14:34 
Разработчики проекта NetBSD объявили (http://blog.netbsd.org/tnf/entry/from_zero_to_nvmm) о создании нового гипервизора и связанного с ним стека виртуализации, которые уже включены в состав экспериментальной ветки  NetBSD-current и будут предложены в стабильном релизе NetBSD 9. NVMM пока ограничен поддержкой архитектуры x86_64 и предоставляет два бэкенда для задействования аппаратных механизмов виртуализации: x86-SVM с поддержкой расширений виртуализации CPU AMD и x86-VMX для CPU Intel. В текущем виде возможен запуск на одном хосте до 128 виртуальных машин, каждой из которых может выделять до 256 виртуальных процессорных ядер (VCPU) и 128 Гб ОЗУ.

NVMM включает драйвер, работающий на уровне ядра системы и координирующий доступ к аппаратным механизма виртуализации, и стек Libnvmm, выполняемый в пространстве пользователя. Взаимодействие компонентов ядра и пространства пользователя осуществляется через IOCTL. Особенностью NVMM, отличающей его от таких гипервизоров, как KVM, HAXM (https://github.com/intel/haxm) и Bhyve, является то, что на уровне ядра выполняется только минимальной необходимый набор обвязок вокруг аппаратных механизмов виртуализации, а весь код эмуляции оборудования вынесен из ядра в пространство пользователя. Подобный подход позволяет сократить объем кода, выполняемого с повышенными привилегиями, и снизить риск компрометации всей системы в случае атак на уязвимоcти в гипервизоре. Кроме того, заметно упрощается отладка и fuzzing-тестирование проекта.

При этом Libnvmm сам по себе не содержит функции эмулятора, а лишь предоставляет API, позволяющий интегрировать поддержку  NVMM в существующие эмуляторы, например, в QEMU.  API охватывает такие функции как создание и запуск виртуальной машины, выделение памяти гостевой системе, распределение VCPU. Для повышения безопасности и снижения возможных векторов атаки libnvmm предоставляет только явно запрошенные функции - по умолчанию сложные обработчики не вызываются автоматически и вообще могут не применяться, если без них можно обойтись. NVMM пытается обходиться простыми решениями, не впадая в усложнения и позволяя контролировать как можно больше аспектов работы.


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

На базе QEMU подготовлено решение, использующее NVMM для задействования аппаратных механизмов виртуализации. Ведётся работа по включению подготовленных патчей в основной состав QEMU. Связка QEMU+NVMM уже позволяет (http://m00nbsd.net/4e0798b7f2620c965d0dd9d6a7a2f296.html) успешно запускать гостевые системы с FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 и другими ОС на системах x86_64 с процессорами AMD и Intel (сам NVMM не привязан к определённой архитектуре, например, при создании соответствующего бэкенда сможет работать на системах ARM64). Из областей дальнейшего применения  NVMM также отмечается sandbox-изоляция отдельных приложений.

URL: http://blog.netbsd.org/tnf/entry/from_zero_to_nvmm
Новость: https://www.opennet.ru/opennews/art.shtml?num=50518

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру