Letztes Jahr haben wir hier im Blog einen Vorschlag von ByteDance (den Machern von TikTok) für ein Tool namens Parker (PARTitioned KERnel) besprochen. Diese experimentelle Technologie ermöglicht es, mehrere Linux-Kernel gleichzeitig auszuführen. Nun, gut anderthalb Jahre später, wurde ein neues öffentliches Tool des Projekts veröffentlicht: „Multikernel Linux (mklinux-v7.0-mk2)“.
Diese Entwicklung stellt eine spezielle Variante des Linux-Kernels vor, die die gleichzeitige Ausführung mehrerer unabhängiger Kernel-Instanzen auf einem einzigen physischen Server ermöglicht. Durch den direkten Betrieb auf der Hardware (Bare Metal) entfällt die Notwendigkeit von Hypervisoren oder Virtualisierungsschichten vollständig, wodurch jede Instanz direkten Zugriff auf zugewiesenen Speicher, CPU und Geräte erhält.
Basierend auf dem kürzlich veröffentlichten Linux-7.0-Kernel ermöglicht das Projekt die Aktivierung dieser Funktion über den Konfigurationsparameter CONFIG_MULTIKERNEL . Ist diese Option deaktiviert, entspricht der resultierende Kernel exakt dem Standard-Linux-7.0-Kernel. Aktuell unterstützt diese erste Version (v7.0-mk2) ausschließlich x86_64-Architekturen und soll die Leistungs- und Sicherheitslücke zwischen traditioneller Virtualisierung und Container-Isolation schließen.
Isolation ohne Leistungseinbußen
Das größte Problem der Virtualisierung ist der Leistungsverlust durch Hypervisoren. Multikernel Linux hingegen eliminiert Übergänge beim Beenden virtueller Maschinen , Speicherübersetzungen zweiter Ebene und den durch Gerätemodelle verursachten Overhead.
Laut den nach Tests auf Xeon Gold 5418Y-Prozessoren (Sapphire Rapids) veröffentlichten Leistungsdaten weist das Multikernel-System im Vergleich zu KVM-Gastsystemen eine deutlich höhere Ausführungsgeschwindigkeit auf. So erfolgt beispielsweise der Kontextwechsel zwischen Prozessen 2,5-mal schneller, die Pipe-Latenz wird um mehr als die Hälfte (2,18x) reduziert, und grundlegende Systemaufrufe wie Lese- und Schreibvorgänge reagieren über 25 % schneller.
Im Vergleich zu herkömmlichen Docker-Containern bietet Multikernel einen überlegenen Schutz , da die Container denselben Host-Kernel nutzen. Schwachstellen auf Kernel-Ebene, Systemabstürze oder interne Sperrüberlastungen betreffen daher alle Mandanten. Im Multikernel-Ökosystem verfügt jede Umgebung über einen eigenen, unabhängigen Kernel . Das heißt, selbst bei einem kritischen Ausfall einer Instanz arbeiten die anderen unbeeinträchtigt weiter. So wird eine isolierte Umgebung gewährleistet, die sich ideal für den Betrieb verschiedenster Anwendungen eignet – von Webservern bis hin zu rechenintensiven KI-Trainings-Workloads (maschinelles Lernen) – auf derselben Hardware.
Dynamische Zuweisung und Orchestrierung mit Kerf
Multikernel Linux arbeitet mit einem Host-Kernel , der einen großen Ressourcenpool (CPUs, RAM und PCI-Geräte) verwaltet . Der Kernel nutzt die bestehende Gerätebaumstruktur (zugänglich unter /sys/fs/multikernel/), um diesen Pool zu erstellen und „Child-Kernel“ über das native kexec_file_load()-Subsystem zu starten. Dank der Hotplug-Funktionalität von Linux können diese Ressourcen dynamisch zwischen Instanzen verschoben werden, ohne dass ein Serverneustart erforderlich ist. Dies gewährleistet eine vorhersehbare und in Echtzeit anpassbare Leistung.
Zur Steuerung dieses Ökosystems haben die Entwickler das Kommandozeilentool Kerf eingeführt . Dieses Tool verwaltet den gesamten Lebenszyklus von Instanzen und nutzt dabei komplementäre Open-Source-Module. Eines davon ist Lazy CMA, das zusammenhängenden physischen Speicher zur Laufzeit zuweist, ohne dass eine Konfiguration vor dem Systemstart erforderlich ist.
Die andere Säule ist DAXFS, ein Modul, das es Instanzen ermöglicht, Dateisysteme direkt im Speicher gemeinsam zu nutzen; dank dessen kann Kerf einen Kindkernel direkt innerhalb eines Docker-Container-Images booten und dessen Dateisystem nutzen, ohne dass Emulationsschichten erforderlich sind, und In-Memory-Deskriptoren für die Netzwerkverbindung verwenden, ohne Daten zu kopieren.
Erwähnenswert ist, dass diese erste Version intensive Stabilitätstests unter 5-stufigen Paging-Architekturen und aktivem KASLR bestanden hat, was beweist, dass die Ressourcenwiederherstellung auch dann völlig sicher ist, wenn ein untergeordneter Kernel abstürzt.
Durch die Möglichkeit, Arbeitslasten, die aufgrund von Systemsperren kollidieren (z. B. eine große Anzahl von Unlink- oder Rename-Prozessen auf demselben Cache), auf separate, mit den physischen Prozessorsockeln ausgerichtete Kernel aufzuteilen, demonstriert Multikernel Linux die Fähigkeit, über die Leistungsgrenze eines einzelnen monolithischen Kernels hinaus zu skalieren und eröffnet damit eine neue Ära der Serverkonsolidierung und des Hochleistungs-Cloud-Computing.
Sollten Sie mehr erfahren wollen, finden Sie die Details unter folgendem Link.