NVMM und HAXM: NetBSD mit neuen Hypervisoren
NetBSD bekommt zwei neue Schnittstellen zur Virtualisierung: NVMM und Intels HAXM bilden potente Alternativen zum klassischen NetBSD/Xen.
- Michael Plura
- Moritz Förster
Um mehr über Virtualisierung zu lernen, begann NetBSD-Entwickler Maxime Villard vor sechs Monaten damit, einen auf NetBSD laufenden kleinen Hypervisor für eine alte AMD-CPU zu entwickeln. Daraus ist laut Villard nun eine komplette, schnelle und flexible Virtualisierungsschnittstelle geworden: Der NetBSD Virtual Machine Monitor, kurz NVMM.
Für die hardwarebeschleunigte Virtualisierung zu ermöglichen benötigt die Software grundsätzlich einen Kernel-Treiber. Er schaltet den Prozessor in einen sicheren Modus, um nativ die Maschinenbefehle der virtuellen Maschine (VM) auszuführen. Hinzu kommt ein Frontend im Usermode, über das ein Endnutzer VMs einrichten, starten und verwalten kann. Das Frontend interagiert dazu mit dem Backend, also dem Kernel-Treiber.
NVMM auf NetBSD optimiert
Das Backend hat Villard in klassischer NetBSD-Manier in einen maschinenunabhängigen Teil und einen möglichst kleinen maschinenspezifischen Teil aufgeteilt. Das gesamte Backend ist in der libnvmm-Bibliothek zusammengefasst und stellt alle Funktionen über eine API zur Verfügung. NVMM unterstützt bis zu 128 virtuelle Maschinen, von denen jede bis zu 256 vCPUs und 128 GByte RAM haben kann. Das Backend benötigt auf der x86-Plattform entweder SVM für AMD-CPUs oder VMX für Intel-CPUs.
Ein eigenes Frontend für NVMM existiert (noch) nicht, jedoch kann eine angepasste Version von QEMU auf die libnvmm-API zugreifen. Die Parameter -accel nvmm oder -enable-nvmm entsprechen der Hardware-Beschleunigung mit KVM.
(Bild: The NetBSD Foundation, Inc.)
Im NetBSD-Blog zeigt Maxime Villard, dass Windows und Linux bereits unter NVMM laufen und wie einfach Anwendungen mit Hilfe der NVMM-API als VM aufgebaut sind. Da Villard die Sicherheitprobleme der letzten Zeit beim Design von NVMM berücksichtigte, eignet sich der NetBSD-Hypervisor für Anwendungen in Form einer abgesicherten Sandbox. Darüber hinaus lässt sich NVMM leicht auf andere Architekturen portieren, zum Beispiel umfangreichere IoT-Geräte auf ARM-Basis. Mit dem kommenden NetBSD 9 soll ZFS stabil laufen, was für den Einsatz im Cloud-Rechenzentrum abseits der x86-Plattform (aarch64) gedacht ist.
Intel HAMX für NetBSD
Bereits Anfang des Jahres portierte außerdem Kamil Rytarowski Intels Hardware Accelerated Execution Manager (HAXM) auf NetBSD. Ursprünglich für Windows und macOS entwickelt, veröffentlichte Intel den Code unter der BSD-Lizenz und portierte ihn später auf die GNU/Linux-Plattform. HAXM ist auf Intel-Hardware zugeschnitten und wird auch künftig ausschließlich x86 unterstützen. Darüber hinaus ist die Software nicht auf den NetBSD-Kernel zugeschnitten.
Für NetBSD gibt es somit drei hardwarebeschleunigte Hypervisoren: Neben dem plattformunabhängigen NVMM das seit 2004 stabile NetBSD/Xen für i386/amd64 und Intels HAXM. Vielleicht schafft es NetBSD 9 mit NVMM und ZFS, ein wenig aus seinem Nischendasein herauszufinden. Allerdings arbeiten auch FreeBSD und OpenBSD an ihren eigenen Hypervisoren. (fo)