Osegi
Software·2 Min. Lesezeit

kmorph: Open-Source-Tool holt Linux nach Kernel-Absturz in Sekunden zurück

Das Multikernel-Team stellt kmorph vor: Ein Ersatzkernel übernimmt nach einem Absturz oder für Updates, ein nginx-Server läuft laut Tests nach rund zwei Sekunden wieder.

Server rack with a terminal showing a Linux kernel switching to a standby kernel after a crash.
Bild: Хабр

Das Team hinter Multikernel hat mit kmorph ein Open-Source-Projekt veröffentlicht, das Linux-Systeme nach einem Kernel-Absturz schnell wiederherstellt. Zudem lässt sich damit der laufende Kernel ohne vollständigen Neustart austauschen. Entwickelt wird kmorph von Cong Wang, dem Maintainer des Traffic-Control-Subsystems (TC) im Linux-Kernel.

In Tests der Entwickler nahm ein Server mit nginx etwa zwei Sekunden nach einem Kernel-Ausfall die Arbeit wieder auf. Langfristig will das Team die Umschaltung so beschleunigen, dass angeschlossene Clients sie nicht bemerken.

So funktioniert die Umschaltung

Bei einem Kernel-Absturz dauert ein Neustart von PCs oder Servern bislang bis zu mehrere Minuten: Hardware wird initialisiert, die Systemumgebung geladen und der Speicherabzug per kdump gesichert. Bei kdump bootet das System faktisch zweimal – zuerst lädt kexec einen separaten Kernel zum Sichern des Dumps, danach startet der eigentliche Kernel samt Diensten.

kmorph lädt stattdessen vorab einen Ersatzkernel samt minimaler Systemumgebung in den Speicher, gebunden an einen eigenen Prozessorkern. Diese Umgebung überwacht den Hauptkernel. Hängt er oder gerät in eine Panic, übernimmt der Ersatz, sichert den Speicherabzug und schaltet Prozessorkerne, Speicher, Geräte, Netzwerkkonfiguration und Dateisystem auf sich um.

Koordiniert wird das von zwei Programmen: kmorph läuft in der aktiven Umgebung, baut die Ersatzumgebung auf und synchronisiert den Netzwerkzustand. kmorphd läuft in der Ersatzumgebung und überwacht die aktive. Dienste wie nginx können dort bereits im Wartezustand laufen und nach der Umschaltung sofort Anfragen bearbeiten.

Updates und Plattformen

Dasselbe Verfahren eignet sich für Kernel-Updates ohne klassischen Neustart. Im Linux-Kernel gibt es bereits Kexec HandOver (KHO) und den Live Update Orchestrator (LUO), die einen neuen Kernel aus dem alten starten, ohne den Systemzustand zu verlieren. Nach einem Absturz helfen sie jedoch nicht, da sie den Zustand des laufenden Kernels brauchen, und sie sind langsamer, weil sie weiter einen kexec-Neustart erfordern.

kmorph unterstützt derzeit x86_64 und ARM64; an RISC-V wird gearbeitet. Die Integration in Distributionen folgt dem Vorbild von kdump über dracut, initramfs-tools, kernel-install und systemd.

Apps, die sich lohnen

SUMO: das Zahlenrätsel

Tippe die richtigen Felder, addiere, triff das Ziel. Leicht zu lernen, schwer zu meistern. Kostenlos, für jedes Alter.

Schlagwörter:linuxkmorphmultikernelkernelkdumpopen source

Mehr von diesem Tag

Alle anzeigen →

Mehr aus: Software

Alle anzeigen →