Команда NetBSD разрабатывает новый гипервизор NVMM.

Разработчики проектов NetBSD недавно объявила о создании нового гипервизора и связанный с ним стек виртуализации, который уже включены в экспериментальную ветку NetBSD-current и будет предлагаться в стабильной версии NetBSD 9.

НВММ все еще ограничивается поддержкой архитектуры x86_64 и предлагает две версии для использования механизмов виртуализации оборудования.

Один из них - x86-SVM с поддержкой виртуализации ЦП AMD и расширений x86-VMX для ЦП Intel.

В текущем виде на хосте может быть загружено до 128 виртуальных машин., каждому из которых может быть выделено до 256 виртуальных процессорных ядер (VCPU) и 128 ГБ оперативной памяти.

О гипервизоре NVMM

В презентации этого гипервизора разработчики проекта NetBSD объясняют, что NVMM включает драйвер, который работает на уровне ядра системы.

И это тоже координирует доступ к аппаратным механизмам виртуализации и стеку Libnvmm, который выполняется в пользовательском пространстве.

Взаимодействие компонентов ядра и пользовательского пространства осуществляется через IOCTL.

 Одна из особенностей NVMM, которая отличает его от гипервизоров, таких как KVM, HAXM и Bhyve, заключается в том, что на уровне ядра выполняется только минимально необходимый набор механизмов виртуализации оборудования, а весь код эмуляции компьютера удаляется из ядра в то время. Пространство пользователя .

Этот подход сокращает объем кода, выполняемого с повышенными привилегиями, и снижает риск что вся система скомпрометирована в случае атаки на уязвимости в гипервизоре.

Кроме того, значительно упрощается отладка проекта и смешанное тестирование.

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

API виртуализации

API охватывает такие функции, как создание и запуск виртуальной машины, выделение памяти гостевой системе и распределение VCPU.

Для повышения безопасности и уменьшения возможных векторов атак libnvmm предоставляет только явно запрошенные функции.

По умолчанию сложные контроллеры не вызываются автоматически и вообще не могут использоваться, если от них можно отказаться.

NVMM пытается найти простые решения, не впадая в сложности и позволяя себе контролировать как можно больше аспектов работы.

Часть уровня ядра NVMM довольно хорошо интегрирована с ядром NetBSD. и позволяет достичь более высокой производительности за счет уменьшения количества переключений контекста между гостевой операционной системой и средой хоста.

В пространстве пользователя libnvmm пытается добавить типичные операции ввода-вывода и без необходимости не прибегает к системным вызовам.

Производительность

В отличие от других кроссплатформенных драйверов псевдо ядра, например VirtualBox или HAXM, NVMM хорошо интегрирован в ядро ​​NetBSD и это позволяет оптимизировать изменения контекст между гостями и хозяином, чтобы избежать дорогостоящих операций в определенных случаях.

Безопасность

Система распределения памяти основан на подсистеме pmap, что позволяет перемещать страницы из гостевой памяти в раздел подкачки в случае нехватки памяти в системе.

NVMM не требует блокировок и глобальных масштабов, что позволяет одновременно использовать разные ядра ЦП для запуска разных гостевых виртуальных машин.

На основе QEMU было подготовлено решение с использованием NVMM для включения механизмов аппаратной виртуализации.

Ведутся работы по интеграции подготовленных патчей в основное оборудование QEMU..

Эль Пакет QEMU + NVMM уже позволяет успешно запускать гостевые системы с FreeBSD, OpenBSD, Linux, Windows. XP / 7 / 8.1 / 10 и другие операционные системы в системах x86_64 с процессорами AMD и Intel (сам NVMM не привязан к конкретной архитектуре).

Бэкэнд сможет работать в системах ARM64). Из дополнительных областей приложения NVMM также рассматривал изоляцию в отдельной области тестирования приложения.

источник: http://blog.netbsd.org


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.