Wie Linux-Server ihren Kernel aktualisieren, ohne neu zu starten

13

Nach meinen Informationen muss das Upgrade des Linux-Kernels neu gestartet werden. Ein Neustart eines Heimcomputers ist kein Problem, aber ich denke nicht, dass dies für einen Server dasselbe ist.

Starten die Server, die Linux-Distributionen verwenden, nach dem Upgrade des Kernels neu oder verwenden sie einen Trick, um ein Booten zu vermeiden?

Sidahmed
quelle

Antworten:

8

Eine Kerneländerung sollte einen Neustart erhalten. Sie können den Kernel installieren und in einigen Fällen Module verschiedener Kernel einfügen und entfernen, aber ich würde es nicht empfehlen.

Ein Server könnte neu gestartet werden und der Dienst wäre nicht betroffen, wenn der Server Teil eines Clusters ist. Sie können auch Firewall- / Router-Cluster erstellen, sodass es keinen zentralen Fehlerpunkt (SPOF) gibt. Dazu verwenden Sie eine sogenannte virtuelle IP (VIP), die von mehreren Systemen gemeinsam genutzt wird.

Wenn Sie mit dieser Idee experimentieren möchten, können Sie QEMU oder VirtualBox und andere verwenden, um virtuelle Netzwerke zu erstellen.

Ed Neville
quelle
7
Was ist mit Live-Kernel-Patches?
Jiggunjer
Die Frage war nicht spezifisch für kleinere Patches, sondern erwähnt "Upgrade", was ich als größere Versions-Upgrades bezeichnen werde. Um ein Upgrade von 2.6 -> 3.0 durchzuführen, würde ich empfehlen, den Computer vor Beginn der Upgrade-Arbeiten vom Ladevorgang zu entfernen. Nach Kerneländerungen würde ich neu starten. Da grub / lilo wahrscheinlich Änderungen benötigt, würde ich trotzdem einen kostenlosen Neustart vorschlagen.
Ed Neville
15

Ja, sie führen einen "Neustart" durch, können jedoch einen Systemaufruf kexec_load ausführen, um den neuen Kernel vorab zu laden.

Es besteht die Möglichkeit als auch den laufenden Kernel patchen, RedHat kpatch zum Beispiel. All die Dinge, die mir bewusst sind, können die Datenstrukturen nicht ändern.

Natürlich konnten Lisp-Maschinen im letzten Jahrhundert ihre laufenden Kernel patchen.

icarus
quelle
1
Es gibt auch Vanille kexec, um den neuen Kernel sofort zu booten. Abhängig von Ihrer Definition von "Neustart" kann dies als nicht neu gestartetes Kernel-Upgrade gelten.
Patrick