PunchSenate probes telecom firms over failed calls, airtime deductionsThe Jerusalem PostHow to uncover your family's Holocaust history when the stories were never toldInquirerBasilan, CDO scrap holiday parties to redirect funds for El NiñoBollywood HungamaEXCLUSIVE: Rs. 300 crore blockbuster Hanuman Ansh to have a UNIQUE success bash in Mumbai; guests to be served ONLY pure veg, satvik foodDaily MaverickSPOTLIGHT: El Niño is here — are KwaZulu-Natal clinics ready?ZDF heuteEntdecken Sie das ZDF-NachrichtenstudioSportstarBangladesh vs Sri Lanka LIVE Score, SAFF Championship: BAN 1 - 0 SL; Shome gives Bengal Tigers the lead in first halfVanguard2027: Learn from Jonathan, don’t rely on governors, group tells TinubuIl Fatto QuotidianoNon lo vedono arrivare per le prove a teatro e lanciano l’allarme: il tenore Antonello Palombi trovato morto a 58 anni nella sua camera d’albergo a Magonza, indagini in corsoESPN DeportesCómo Harry Kane ganó el Balón de Oro y ya es el mejor inglés de la historiaStraits Times SportSki jumping-Poland rules out visas for Russian ski jumpers at World Cup eventsESPNBracketology: A new data point, a new metrics darling and Memphis
The Daily Newsstand · Free, Always
Wednesday, November 11, 2026

Kernel Panic, aber kein Neustart: Kmorph hält Linux am Laufen

Translate

Unter dem Namen Kmorph hat Linux-Entwickler Cong Wang ein praktisches, aber noch experimentelles Werkzeug vorgestellt: Ein bereits gestarteter zweiter Kernel soll nach einem Absturz das System übernehmen, ohne den Rechner neu zu starten. Über denselben Mechanismus lassen sich auch geplante Kernelupdates einspielen.

In seiner Ankündigung gibt Wang rund eine Sekunde von der Fehlererkennung bis zum laufenden Nachfolger an. Ein vorbereiteter Nginx-Dienst habe in Tests binnen zwei Sekunden nach dem Kernelabsturz wieder Anfragen beantwortet. Laut der Projektbeschreibung auf GitHub benötigt Kmorph einen Kernel mit Multikernel-Erweiterungen. Unterstützt werden derzeit x86-64 und ARM64.

Grundlage sind die Multikernel-Erweiterungen für Linux. Mit ihnen laufen mehrere Linux-Kernel parallel auf derselben Maschine, jeweils mit eigenen CPUs, Speicherbereichen und Geräten. Ein Hypervisor ist dafür nicht nötig. Kmorph startet den Reservekernel vorab auf wenigen, frei konfigurierbaren CPUs und einem Teil des Arbeitsspeichers. Dort überwacht der Daemon kmorphd den bisherigen Kernel über vsock.

Bleiben die Antworten wiederholt aus, beginnt die Übernahme. Zunächst stoppt der Nachfolger die CPUs des bisherigen Kernels und lässt sich bestätigen, dass sie tatsächlich angehalten haben. Dieses Fencing verhindert, dass beide Kernel auf dieselben Ressourcen zugreifen. Kann der Nachfolger eine CPU nicht sicher stoppen, setzt er die Übernahme nicht fort. Anschließend übernimmt er die Geräte, setzt sie soweit möglich zurück und stellt die Netzwerkkonfiguration wieder her. Die übrigen CPUs und den verfügbaren Speicher bindet er per Hotplug ein.

Auf Wunsch sichert Kmorph außerdem einen kdump-kompatiblen vmcore mit dem Speicherinhalt, CPU-Registern und VMCOREINFO des abgestürzten Kernels. Erst nach dem Schreiben des Dumps gibt es den dafür zurückgehaltenen Speicher zur Nutzung frei. Anders als beim üblichen kdump-Ablauf muss dafür weder ein Capture-Kernel nach dem Absturz starten noch anschließend die Maschine erneut ins Produktionssystem booten.

Die laufenden Prozesse des alten Kernels setzt Kmorph nicht fort. Im Normalfall startet der Userspace nach der Übernahme neu. Um diese Wartezeit für ausgewählte Dienste zu vermeiden, kann Kmorph sie schon im Reservekernel starten. Die Dokumentation zu Standby-Diensten zeigt dafür beispielsweise die Konfiguration standby = nginx.service.

Der Dienst läuft dann bereits, bevor der bisherige Kernel ausfällt. Seine Ports kann er an die vorgesehenen IP-Adressen binden, obwohl der Nachfolger noch keine Netzwerkkarte besitzt. Bei der Übernahme bekommt der Reservekernel die Netzwerkkarte und stellt unter anderem MAC-Adresse, IP-Adressen und Routen wieder her. Danach wechselt er mit pivot_root auf das reguläre Root-Dateisystem. systemd startet die übrigen Dienste; der vorbereitete Nginx-Prozess muss dafür nicht anhalten. Ein vollständig unterbrechungsfreier Betrieb ist laut Wang ein Entwicklungsziel.

Jedoch hat das Verfahren Grenzen: Standby-Dienste müssen zunächst ohne Datenträger und Netzwerkzugriff auskommen. Sie dürfen in dieser Phase keinen Zustand schreiben, der dauerhaft erhalten bleiben muss. Dienste mit eigenen Mount-Namespaces, etwa durch PrivateTmp= oder ProtectSystem=, muss Kmorph nach dem Wechsel neu starten, sofern kein Drop-in ihre Sandbox lockert. Für sie entfällt damit der Vorteil des vorgezogenen Starts.

Mit kmorph upgrade lässt sich die Übernahme auch gezielt auslösen, solange der bisherige Kernel noch funktioniert. Kmorph übermittelt dafür nochmals die aktuelle Netzwerkkonfiguration, synchronisiert die Dateisysteme und friert beschreibbare Dateisysteme auf Blockgeräten ein. Anschließend fordert es den Nachfolger zur Übernahme auf. Dieser kann bereits eine neuere Kernelversion ausführen. Bei einem geplanten Wechsel entsteht kein Crash-Dump.

Der neue Kernel kann anschließend selbst einen weiteren Nachfolger bereitstellen. Die Distributionsintegration nutzt dafür unter anderem dracut oder initramfs-tools, Kernel-Installations-Hooks und einen systemd-Dienst. Der Dienst übernimmt auch das erneute Bereitstellen des Reservekernels nach einem Wechsel.

Kmorph selbst koordiniert diese Abläufe mit zwei C-Programmen. Die Mechanismen für Fencing, Geräte- und IOMMU-Übernahme sowie Ressourcen-Hotplug stecken in den Multikernel-Erweiterungen.

Einen zusätzlichen Praxistest hat Clement Verna im Fedora-Projektforum vorgestellt. Seine Integration baut ein Fedora-45-bootc-Image mit Multikernel-Kernel und Kmorph. Das Hilfsprogramm kmorph-bootc bereitet den Nachfolger aus einem bootc-Deployment vor. Terminalaufzeichnungen dokumentieren sowohl die Übernahme nach einem per SysRq ausgelösten Kernel-Absturz als auch den Wechsel auf ein neues Image mit neuer Kernelversion.

Die Testumgebung und Reproduktionsschritte sind ebenfalls frei verfügbar. Verna testete in einer KVM-VM mit zwei vCPUs und 16 GByte RAM auf einer Graviton3-Maschine. SELinux war deaktiviert. In dieser Integration kann der Nachfolger nach der Übernahme bislang keinen weiteren Reservekernel starten, sie erlaubt deshalb nur einen Wechsel pro Boot. Verna bezeichnet den Aufbau ausdrücklich als Proof of Concept und warnt vor einem Einsatz im Produktivbetrieb.

View the original on heise online →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.