Mastodon
Zuletzt aktualisiert am
Linux News
Bobby 🇬🇧 Borisov

Linux-Kernel erhält möglicherweise intelligentere Reboots

Die Google-Ingenieure schlagen LUO vor, ein zustandsmaschinengesteuertes System zur Verwaltung von Live-Updates des Linux-Kernels mit minimaler Unterbrechung.
Eine Übersetzung von 🇬🇧 Linuxiac.com

Kürzlich ist an der Linux-Kernel-Front etwas Interessantes aufgetaucht - eine neue Patch-Serie mit dem Titel "Live Update Orchestrator", die von Google-Ingenieur Pasha Tatashin verfasst wurde und auf einem früheren Satz von Patches aufbaut, die gemeinhin als KHO v5 patch series bezeichnet werden.

Es zielt darauf ab, reibungslose Kernel-Updates - "Live Update" genannt - zu ermöglichen, so dass bestimmte Geräte während des Übergangs von einem alten zu einem neuen Kernel voll funktionsfähig bleiben. Im Wesentlichen beabsichtigt das innovative Live Update Orchestrator (LUO) Subsystem, die Ausfallzeit des Systems zu minimieren, indem die Gerätezustände über einen Neustart hinweg beibehalten werden, was insbesondere in dynamischen Cloud-Umgebungen von Vorteil ist, in denen selbst kleinere Unterbrechungen unerwünscht sein können.

Laut den Entwicklern verwendet dieser Ansatz einen State-Machine-Mechanismus zur Orchestrierung des Übergangs. Das LUO-Subsystem verfolgt den Fortschritt durch verschiedene Zustände - "normal", "vorbereitet" und "aktualisiert" - und verknüpft sie durch Callback-APIs.

Diese Callbacks ermöglichen es anderen Kernel-Subsystemen (z. B. KVM, IOMMU, Interrupts, der neuen dev_liveupdate-Geräteschicht und der Speicherverwaltung), sich nahtlos in den Live-Update-Workflow zu integrieren.

Außerdem kann das System über eine sysfs-Schnittstelle unter "/sys/kernel/liveupdate/{state, prepare, finish}" gesteuert werden. Wenn es verwendet wird, läuft die Live-Update-Sequenz wie folgt ab:

  • normal: Der Kernel läuft wie gewohnt, es findet keine Live-Aktualisierung statt.
  • prepare: Das Schreiben von "1" in "/sys/kernel/liveupdate/prepare" löst den LIVEUPDATE_PREPARE-Callback aus und versetzt die Subsysteme in einen "vorbereiteten" Übergangszustand.
  • updated: Sobald der neue Kernel übernimmt, tritt das System in den Zustand "aktualisiert" ein, was bedeutet, dass Geräte und Subsysteme ihre Funktionalität wieder aufnehmen.
  • finish: Das Schreiben nach "/sys/kernel/liveupdate/finish" führt einen endgültigen Übergang zurück in den "normalen" Zustand aus, ruft den LIVEUPDATE_FINISH-Callback auf und stellt den vollständigen Betriebszustand wieder her.

Eine so große Änderung am Linux-Kernel kann jedoch nicht einfach so geschehen. Greg Kroah-Hartman, eine der Hauptfiguren bei der Entwicklung, hat seine Vorbehalte geäußert und fordert mehr substanzielle Beweise für die Durchführbarkeit von LUO.

Insbesondere betont er die Notwendigkeit "echter, tatsächlicher, funktionierender Patches für mindestens drei Bus-Subsysteme", bevor er und andere Maintainer eine ernsthafte Überprüfung in Betracht ziehen werden.

Wie Sie sich vorstellen können, habe ich "Gedanken" darüber, dies alles in den Treiberkern aufzunehmen. Aber bevor ich mich darauf einlasse, möchte ich einige echte, funktionierende Patches für mindestens 3 Bus-Subsysteme sehen, die dies korrekt implementieren, bevor ich überhaupt in Betracht ziehe, dies zu überprüfen.

Darüber hinaus unterstreicht er in seiner Antwort auf der Linux-Kernel-Entwicklungs-Mailingliste die Bedeutung gut entwickelter User-Space-Tools, die in der Lage sind, die potenziell große Anzahl von Geräten zu verwalten, die in einem Live-Update-Szenario involviert sind.

Mit anderen Worten: Es ist noch ein langer Weg, bis die LUO-Funktionalität ihren Weg in den Linux-Kernel findet - wenn sie es denn jemals tut. Wir werden die Dinge im Auge behalten und Sie wie immer über alle neuen Entwicklungen auf dem Laufenden halten. Weitere Informationen finden Sie in der 🇬🇧 Ankündigung selbst.

Spendieren Sie Bobby einen ☕ Ko-fi

Ein Service von s3n🧩net

Comments