Wie kann ich den Kernel meines Servers aktualisieren, ohne neu zu starten?

29

Dies ist eine geladene Frage, da ich bereits darüber informiert bin und mich sehr für ksplice interessiere . Das Problem ist, dass sie, seit sie von Oracle gekauft wurden, gezwungen waren, zahlreiche Server-Distributionen aus den Angeboten zu ziehen. Die Antwort ist nicht mehr so ​​einfach wie früher.

Auf Unix.SE ist mir eine Frage aufgefallen , die besagt:

Sie können Ihre eigenen ksplice-Patches erstellen, um sie dynamisch in Ihren eigenen Kernel zu laden

Groß! Aber wie?!

Ich habe das kostenlose ksplicePaket im Repo auf meinem Desktop installiert (nicht ksplice-uptrackdas, was nicht kostenlos ist) und möchte jetzt Updates generieren und anwenden. Wie ist der Ablauf? Gibt es Skripte zur Automatisierung des Prozesses?

Darüber hinaus, wenn sich alle für rebootlose Upgrades erforderlichen Maschinen im Kernel (und im ksplicePaket) befinden, warum um alles in der Welt nutzen wir sie dann nicht standardmäßig aus?


Vor kurzem wurde kGraft angekündigt . Es scheint ungefähr dasselbe Ergebnis zu sein. Wenn Sie also eine Antwort haben, die es beinhaltet, würde ich genauso glücklich damit sein. Es ist derzeit ein paar Monate nach der Veröffentlichung.


Hinweis 1: Ich freue mich über eine Lösung neben ksplice, aber sie muss dasselbe liefern: Aktualisierungen für den Kernel werden fortlaufend ausgeführt, die ohne Neustart des Servers angewendet werden können.

Anmerkung 2: Ich sage es noch einmal. Der "Dienst" von ksplice unterstützt Ubuntu Server nicht. Früher, aber heute nicht mehr. Wenn ich über die Verwendung von ksplice spreche, spreche ich über die Open Source-Tools im ksplicePaket. Jede Antwort, über die gesprochen wird, ksplice-uptrackist wahrscheinlich nicht das, wonach ich suche, da dies der Teil ist, der sich direkt in den oben genannten "Service" einfügt.

Oli
quelle

Antworten:

6

Ich weiß nicht viel über ksplice, dachte aber, ich würde es erwähnen - haben Sie davon gehört kexec? Dies könnte das sein, was Sie brauchen.

In Bezug auf die Frage, warum wir dies nicht als Standardmechanismus übernommen haben? Das Überschreiben des Speichers des aktuellen Kernels, während dieser noch ausgeführt wird, kann zu potenziellen Problemen führen. Es wird auch erwartet, dass Hardwaregeräte in einem definierten Zustand sind, der nicht immer möglich ist.

Sie können den IBM Developer Works- Artikel dazu lesen, um zu entscheiden, ob er Ihren Anforderungen entspricht.

Marcin Kaminski
quelle
5
+1 für kexec, aber im Grunde ist es ein heißer Neustart - IE der Kernel wird von Grund auf neu geladen, so dass die Init-Skripte usw. immer noch aufgerufen werden. Dies ist technisch gesehen kein Neustart, aber die Ausführung von Diensten wird gestoppt.
Jackweirdy
Ja, ich bin mir dessen bewusst, aber ich habe nichts auf ksplice gelesen, um herauszufinden, wie es anders ist.
Marcin Kaminski
1
Nach en.wikipedia.org/wiki/Ksplice , ksplicegilt einen binären Diff - Patch auf den laufenden Kernel , während es noch in Erinnerung ist
jackweirdy
2
Ich muss ein bisschen mehr darüber lesen, da es interessant ist. Wie viel Uptime möchten Sie sparen, wenn Sie zurückgesetzt werden? : D
Marcin Kaminski
3

Mit ksplice kann der Kernel ausgetauscht werden, ohne dass ein Neustart erforderlich ist. Uptrack funktioniert in ksplice und hat eine editierbare Konfigurationsdatei in /etc/uptrack/uptrack.conf

blindfett
quelle
2

Es gibt ein paar Open-Source-Alternativen zu Ksplice, die beide zur Aufnahme in den Linux-Kernel eingereicht wurden. Es ist noch zu früh, um zu sagen, welche im Kernel landen werden, aber Sie können sie trotzdem ausprobieren, wenn Sie mutig genug sind:

Sie können hier mehr über beide lesen: SUSE Posts kGraft, Red Hat Posts Kpatch Patches

Bmaupin
quelle
1

Das Arch Linux-Wiki enthielt Anweisungen: https://wiki.archlinux.org/index.php/ksplice

Der einzige Teil, der für die Distribution spezifisch zu sein scheint, ist die Installation von ksplice selbst. Da Sie das anscheinend bereits herausgefunden haben, sollte es Sie auf den Weg bringen.

Bobpaul
quelle
1
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Eric Carvalho
0

Seit dem 16. Juli 2015 wird "Oracle Ksplice für Fedora und Ubuntu Desktop Edition kostenlos angeboten.", Offiziell.

Installieren Sie einfach die heruntergeladene .deb-Datei, die Sie hier herunterladen können .

Wenn Sie versuchen, müssen sudo dpkg -i ksplice-uptrack.debSie möglicherweise Abhängigkeiten mit beheben sudo apt-get install -f.

Pablo A
quelle