Kernel-Updates planen

Wann macht ein Kernel-Update Sinn?

Ein Kernel-Update kann sinnvoll sein, wenn einer der folgende Gründe erfüllt sind:

  • Sie möchten neue Features nutzen, welche Ihr bestehender Kernel noch nicht unterstützt.
  • Sie nutzen Features, welche zuletzt stark verbessert wurden. Beispielsweise profitieren Nutzer des BTRFS-Dateisystems mitunter enorm von der verbesserten Stabilität neuerer Kernel-Versionen in Bezug auf BTRFS. Eine Einzelfallbetrachtung bezüglich BTRFS ist dennoch nötig, denn die neuesten Änderungen können auch Regressionen beinhalten.
  • Ihre Hardware wird erst bei einem neueren Kernel unterstützt. Dies könnte beispielsweise zutreffen, wenn Sie alte Hardware durch neuere Hardware ersetzen. Beispielsweise könnte vor der Migration auf einen neuen Server eine Kernelaktualisierung auf dem Altsystem erfolgen. Dies erhöht die Wahrscheinlichkeit, dass das System später auch auf der Hardware des neuen Servers läuft.
  • Ihr aktuell installierter Kernel arbeitet fehlerhaft, z. B. Probleme mit Grafikkarten und Monitoren oder Kernel Panics kämen hier in Frage. Derlei Problemlösungen liefert Ubuntu mitunter jedoch auch per regulärem Update nach. Insofern könnte auch ein einfaches Abwarten lohnend sein.
  • Sie möchten von Performance-Verbesserungen neuerer Kernel-Versionen profitieren.
  • Sie möchten von Energie-Einsparungen neuerer Kernel-Versionen profitieren. Dies könnte insbesondere auf einem Laptop der Fall sein.
  • Ihr bestehender Kernel erhält keine Sicherheitsupdates mehr von Ubuntu. In diesem Fall sollten Sie zwingend auf einen neueren Kernel umsteigen.

Wann sollte man ein Kernel-Update vermeiden?

Trifft einer der folgenden Gründe zu, sollte man sich genauer überlegen, ob man ein Kernel-Update machen möchte:

  • Bei Verwendung von Kernelmodulen, welche nicht mit dem Standardkernel von Ubuntu ausgeliefert werden, besteht die Gefahr der Inkompatibilität:
    • Bestimmte Lösungen zur Hardwarevirtualisierung wie VMWare oder VirtualBox sind nicht Teil des Kernels und verwenden daher ein zusätzliches Kernelmodul. Hiervon nicht betroffen sind Virtualisierungslösungen, die Teil des Kernels sind, wie z. B. XEN und KVM/Qemu.
    • Proprietäre Grafikkartentreiber (Intel-Grafik ist Teil des Kernels und nicht betroffen).
    • Sonstige proprietäre Treiber
  • Mitunter ist der Unterstützungszeitraum eines neueren Kernels kürzer als beim aktuell installierten Kernel mit Long-Term-Support. Entsprechend sollte man sich zunächst über den jeweiligen Unterstützungszeitraum und Migrationspfade informieren.
  • Möglicherweise unterstützt der neuere Kernel die eingesetzte Hardware schlechter als der alte Kernel. Eigentlich sollte das Gegenteil der Fall sein, jedoch wird gelegentlich auch im Kernel "ausgemistet" oder Distributoren entfernen Features und auch Fehler könnten sich im neueren Kernel eingeschlichen haben.
  • Neuere Kernel enthalten neuere Features, welche entsprechend noch nicht so lange getestet sind wie ältere Features.
  • Gelegentlich werden Abhängigkeiten im Paketmanagement einer Distribution nicht korrekt aufgelöst. Derlei Probleme sollten jedoch eigentlich nicht auftreten, wenn ein Distributor die Kernel-Updates für den Produktionsbetrieb freigibt. Die Freigabe betrifft jedoch weder Kernelpakete von Drittanbietern noch Drittanbietersoftware (im User-Space).
  • Die Update-Frequenz könnte bei einem neueren Kernel höher sein, was manche Benutzer als störend empfinden.

Fazit: Im Zweifel sollte man ein Kernel-Update vor Einsatz auf einem Produktivsystem zumindest auf einem Testsystem mit gleicher Hardware testen.

Wie lässt sich der Kernel aktualisieren?

Es gibt mehrere Möglichkeiten, den Kernel zu aktualisieren. Der einfachste sind reguläre Updates innerhalb einer Kernel-Version (minor updates). Diese Updates sollte man schon wegen behobener Sicherheitslücken laufend installieren. Mitunter enthalten diese regulären Updates auch Fehlerbeseitigungen, die vom Linux-Distributor auf die aktuelle Kernel-Version zurückportiert wurden. Der Linux-Distributor ist hier typischerweise sehr vorsichtig, denn bereits lauffähige Produktionssysteme sollten möglichst nicht ausfallen. Gerade auch zur Risikovermeidung werden nur sehr wichtige und gut erprobte Änderungen eingepflegt. Sofern eine Anpassung nicht zwingend notwendig ist, wird sie daher eher vermieden. Neue features werden insofern praktisch nie über ein minor update ausgerollt, denn das wäre nicht nur riskant, es wäre auch über das Nötigste hinausgehend und insofern unerwartet für die Benutzer. Um an ein Major-Release zu gelangen, gibt es zwei Möglichkeiten: Die eine ist, die ganze Linux-Distribution zu aktualisieren, wobei bei einer neuen Major-Version der Linux-Distribution typischerweise auch eine neue Major-Version des Linux-Kernels mit ausgeliefert wird. Die zweite Möglichkeit ist, nur den Kernel zu aktualisieren. Ubuntu bietet hierzu spezielle Pakete an, den sogenannten Hardware Enablement Stack (HES). Der HES ist für Produktionsbetrieb konzipiert und erhält Support von Ubuntu. Anleitungen zur Aktualisierung des Kernels mittels HES finden sich hier:

Daneben gibt es auch die Möglichkeit, einen Kernel aus weiteren Paketquellen zu installieren, oder den Kernel selbst zu kompilieren, wobei man hier wiederum auf Quellcode-Pakete der Distribution oder den selbst heruntergeladenen Quellcode des Linux-Kernels zurückgreifen kann. Für Produktionsumgebungen sind diese Vorgehensweisen jedoch schon deshalb ungeeignet, weil man keine laufenden Updates erhält bzw. sich selbst darum kümmern müsste. Außerdem besteht die Möglichkeit, dass man nicht die selbe Stabilität erreicht.