Zum Hauptinhalt Zur Navigation Zur Suche

Linux-Kernel: Live-Patching-Methoden Upstream vorgestellt

Sowohl Suse als auch Red Hat arbeiten an Techniken, den Linux-Kernel bei laufendem System zu patchen. Beide stehen den Kernel-Hackern nun offiziell zur Diskussion bereit.
/ Sebastian Grüner
5 Kommentare Auf Google folgen (öffnet im neuen Fenster)
Kpatch und Kgraft stehen zur Diskussion (Bild: Jerzy Strzelecki/CC-BY 3.0)
Kpatch und Kgraft stehen zur Diskussion Bild: Jerzy Strzelecki/CC-BY 3.0

Ende Januar kündigte Linux-Distributor Suse die Technik zum Kernel-Patchen Kgraft(öffnet im neuen Fenster) an, Ende Februar folgte Red Hat mit der Eigenentwicklung Kpatch(öffnet im neuen Fenster). Beide sollen Alternativen zu dem von Oracle bereitgestellten Ksplice werden und das Patchen des Linux-Kernels im laufenden Betrieb erlauben. Der Code der beiden neuen Techniken steht nun offiziell zur Diskussion(öffnet im neuen Fenster) auf der Linux-Kernel-Mailingliste bereit.

Beide Distributoren haben bereits mehrfach betont, dass die Techniken im Upstream-Kernel und damit für jeden Nutzer zur Verfügung stehen sollen, anders als dies mit Oracles Ksplice derzeit der Fall ist. Red-Hat-Entwickler Josh Poimboeuf(öffnet im neuen Fenster) erörtert sogar die Möglichkeit, Kpatch und Kgraft irgendwie zu kombinieren, falls dies nötig sei.

Einige Unterschiede

In seiner E-Mail beschreibt Poimboeuf zudem einige technische Unterschiede. Am auffälligsten ist etwa die wesentlich geringere Anzahl an Code-Zeilen von Kpatch gegenüber Kgraft, sowie die Tatsache, dass Kpatch ein komplett eigenständiges Kernel-Modul bereitstellt und dadurch anders als Kgraft keine Änderungen am Kernel selbst voraussetzt.

Der größte Unterschied der beiden Techniken ist Poimboeuf zufolge, wie gewährleistet wird, dass ein Patch sicher und atomar eingespielt wird. So überprüft Kpatch sämtliche Instanzen einer alten Funktion, ob diese noch verwendet wird, bevor die neue eingespielt wird.

Dies führt allerdings auch zu einer kleinen Latenzzeit des Systems. Kgraft hingegen überprüft nur die Konsistenz pro Funktion, sodass jeder Anweisung entweder nur die alte oder nur die neue Version einer Funktion bereitsteht. Dabei würden aber eventuelle Veränderungen an der Datenstruktur einer Funktion vernachlässigt, so Poimboeuf.

Der Quellcode von Kgraft steht über das Git-Repository von Suse-Entwickler Jiri Slaby(öffnet im neuen Fenster) bereit. Kpatch ist via Gitub(öffnet im neuen Fenster) verfügbar und lässt sich bereits mit Fedora 20 testen. Die Verwendung unter anderen Distributionen bereitet aber noch Probleme. Ebenso wie die Software selbst. Denn die Entwickler warnen vor Abstürzen, spontanen Neustarts und Datenverlust.


Relevante Themen