Projekt NetBSD opracowuje nowy hiperwizor NVMM

Twórcy projektu NetBSD ogłosił o stworzeniu nowego hypervisora ​​i powiązanego stosu wirtualizacji, które są już zawarte w eksperymentalnej gałęzi NetBSD-bieżącej i będą oferowane w stabilnej wersji NetBSD 9. NVMM jest obecnie ograniczony do obsługi architektury x86_64 i zapewnia dwa backendy dla umożliwienie sprzętowych mechanizmów wirtualizacji: x86-SVM z obsługą rozszerzeń wirtualizacji procesorów AMD i x86-VMX dla procesorów Intel. W obecnej postaci na jednym hoście można uruchomić do 128 maszyn wirtualnych, z których każdej można przydzielić aż 256 rdzeni procesorów wirtualnych (VCPU) i 128 GB pamięci RAM.

NVMM zawiera sterownik działający na poziomie jądra systemu i koordynujący dostęp do mechanizmów wirtualizacji sprzętu, a także stos Libnvmm działający w przestrzeni użytkownika. Interakcja między komponentami jądra a przestrzenią użytkownika odbywa się poprzez IOCTL. Cechą NVMM odróżniającą go od hypervisorów takich jak KVM jest HAXM i Bhyve polega na tym, że na poziomie jądra wykonywany jest tylko minimalny wymagany zestaw powiązań wokół mechanizmów wirtualizacji sprzętu, a cały kod emulacji sprzętu jest przenoszony z jądra do przestrzeni użytkownika. Takie podejście pozwala zmniejszyć ilość kodu wykonywanego z podwyższonymi uprawnieniami i zmniejszyć ryzyko naruszenia bezpieczeństwa całego systemu w przypadku ataków wykorzystujących luki w hypervisorze. Ponadto debugowanie i testowanie fuzzingu projektu jest zauważalnie uproszczone.

Jednak sam Libnvmm nie zawiera funkcji emulatora, a jedynie zapewnia API, które pozwala zintegrować obsługę NVMM z istniejącymi emulatorami, na przykład QEMU. Interfejs API obejmuje takie funkcje, jak tworzenie i uruchamianie maszyny wirtualnej, przydzielanie pamięci systemowi gościa i przydzielanie jednostek VCPU. Aby poprawić bezpieczeństwo i ograniczyć możliwe wektory ataków, libnvmm udostępnia tylko funkcje, które są jawnie wymagane — domyślnie złożone procedury obsługi nie są wywoływane automatycznie i mogą w ogóle nie być używane, jeśli można ich uniknąć. NVMM stara się zachować prostotę, bez zbytniego skomplikowania i pozwalając ci kontrolować jak najwięcej aspektów swojej pracy.

 Projekt NetBSD opracowuje nowy hiperwizor NVMM

Część NVMM na poziomie jądra jest dość ściśle zintegrowana z jądrem NetBSD i pozwala na poprawę wydajności poprzez zmniejszenie liczby przełączeń kontekstu pomiędzy systemem gościa a środowiskiem hosta. Po stronie przestrzeni użytkownika libnvmm próbuje agregować typowe operacje we/wy i unikać niepotrzebnego wykonywania wywołań systemowych. System alokacji pamięci oparty jest na podsystemie pmap, który pozwala na eksmisję stron pamięci gościa do partycji wymiany w przypadku braku pamięci w systemie. NVMM jest wolny od globalnych blokad i dobrze się skaluje, co pozwala na jednoczesne używanie różnych rdzeni procesora do uruchamiania różnych maszyn wirtualnych gości.

Przygotowano rozwiązanie oparte na QEMU, które wykorzystuje NVMM do umożliwienia mechanizmów wirtualizacji sprzętu. Trwają prace nad włączeniem przygotowanych poprawek do głównej struktury QEMU. Kombinacja QEMU+NVMM już jest pozwala on pomyślnie uruchomić systemy gościnne z FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 i inne systemy operacyjne na komputerach x86_64 z procesorami AMD i Intel (sama pamięć NVMM nie jest powiązana z konkretną architekturą; na przykład, z odpowiednim zapleczem, może działać na komputerach ARM64). Inne zastosowania pamięci NVMM obejmują tworzenie środowisk testowych dla poszczególnych aplikacji.

 Projekt NetBSD opracowuje nowy hiperwizor NVMM

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster