Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
des Kernels. Zweitens bleiben die Änderungen<br />
am System dadurch klar separiert.<br />
Im Falle eines Fehlverhaltens lässt<br />
sich einfacher feststellen, ob es auf den<br />
neuen Kernel oder auf andere Systemänderungen<br />
zurückzuführen ist.<br />
Kernelupdates 09/2013<br />
Titelthema<br />
Alles neu<br />
Abbildung 1: Beim Booten kann der Admin den zu startenden Kernel auswählen und gegebenenfalls wieder auf<br />
die bewährte Version zurückgreifen, hier beim SLES 11 SP2.<br />
Woher weiß der Admin, welche Änderungen<br />
seine Server durch den neuen Kernel<br />
erfahren? Etwas zu optimistisch ist der<br />
Ansatz, einfach den Betriebssystemkern<br />
auszutauschen und hinterher zu prüfen,<br />
ob der Fix wirkt oder die Software nun erwartungsgemäß<br />
arbeitet. Gibt es Release-<br />
Notes des <strong>Linux</strong>-Distributors, empfiehlt<br />
sich deren Lektüre. Wer es ganz genau<br />
wissen möchte, der organisiert sich den<br />
Quelltext der zu vergleichenden Kernel<br />
und holt sich die gewünschten Informationen<br />
auf diesem Level ab.<br />
Kommt vorwiegend eine bestimmte Distribution<br />
zum Einsatz, lohnt es sich,<br />
Informationen bezüglich ABI- und API-<br />
Stabilität einzuholen. Im günstigsten Fall<br />
verfügt der Hersteller über eine Liste von<br />
Funktionen, deren Schnittstellen für einen<br />
bestimmten Releasezyklus konstant<br />
bleiben. Für Software, die genau dieses<br />
ABI benutzt, ist eine Änderung des Kernels<br />
an sich transparent. Alle anderen<br />
Programme müssen sich wohl oder übel<br />
Tests unterziehen.<br />
In Enterprise-Setups finden sich grundsätzlich<br />
zwei Ansätze zum Thema<br />
Schnittstellen-Stabilität. Red Hat publiziert<br />
eine Liste von Funktionen (siehe<br />
Listing 1), die der Distributor während<br />
einer Major-Release konstant hält [1]. Mit<br />
Lebenszyklen von zehn Jahren für aktuelle<br />
RHEL-Versionen [2] bedeutet dies<br />
zumindest erheblichen Aufwand und<br />
kann sogar hinderlich sein. Beispielsweise<br />
basiert RHEL 6 auf dem Kernel<br />
2.6.32. Bestimmte Funktionen und Features<br />
aus neueren Kernels lassen sich<br />
rückportieren, aber ein echter 3.x-Kernel<br />
wird trotzdem nicht daraus.<br />
Oracle und auch Suse gehen einen anderen<br />
Weg. Hier lautet das Versprechen,<br />
das Userspace-ABI konstant zu halten,<br />
nicht aber unbedingt die Schnittstellen<br />
innerhalb des Kernels ([3], [4]). Das<br />
ermöglicht diesen Distributoren, neuere<br />
Kernel einzusetzen und den Aufwand<br />
fürs Backporting deutlich zu reduzieren.<br />
Das hat aber auch seinen Preis, der<br />
sich in vermehrten Tests mit Software<br />
von Drittherstellern niederschlägt, wenn<br />
diese Kernelmodule benutzt.<br />
Unterbrechungsfrei<br />
Das <strong>Linux</strong>-<strong>Magazin</strong> 08/08 [5] stellte<br />
das Ksplice-Verfahren [6] vor. Unter<br />
bestimmten Voraussetzungen kann der<br />
Admin damit den Kernel ohne den lästigen<br />
Reboot patchen. Das Tool analysiert<br />
dabei alten und neuen Code auf der Objektebene.<br />
Auszutauschende Funktionen<br />
landen in einem Kernelmodul, das das<br />
Werkzeug in den laufenden Kernel lädt<br />
und aktiviert (Abbildung 2).<br />
Seit 2011 gehört diese Technologie Oracle<br />
[7]. Fedora und Ubuntu-Desktop-Benutzer<br />
können kostenfrei der Online-<br />
Patcherei frönen. Im Enterprise-Umfeld<br />
bekommt es der zahlende Oracle-<strong>Linux</strong>-<br />
Admin als kostenlose Zugabe zum UEK<br />
(Unbreakable Enterprise Kernel). Auch<br />
die Red-Hat-Fans sparen sich gegen Entgelt<br />
einige Reboots.<br />
Suse- beziehungsweise SLES-Fans schienen<br />
lange Zeit außen vor. Die Teilnehmer<br />
der Susecon 2012 durften aber schon<br />
mal durch das Schlüsselloch einen Blick<br />
auf Version 12 der Enterprise-Produkte<br />
werfen: Ksplice – besser gesagt die zugrunde<br />
liegende Technik – soll es dann<br />
dort ebenfalls geben, und zwar direkt aus<br />
dem Hause Suse. Unabhängig vom verwendeten<br />
<strong>Linux</strong> sollte dem Admin aber<br />
klar sein, dass die Aufgabe von Ksplice<br />
primär das schnelle und schmerzfreie<br />
Patchen von Sicherheitslücken im Kernel<br />
ist. Operative Notwendigkeiten und Sicherheitsanforderungen<br />
lassen sich damit<br />
unter einen Hut bringen.<br />
Das Online-Patchen ist dazu gedacht,<br />
einen Kernel jahrelang laufen zu lassen<br />
und immer neue Ksplice-Updates draufzupacken.<br />
Dennoch gibt es technische<br />
Grenzen für Online-Updates. Generell<br />
lässt sich sagen, dass ein Upgrade von<br />
Kernelversion 3.x auf 3.y in Ksplice nicht<br />
vorgesehen ist. Größere Umbauten im<br />
Kernel würden den Aufwand ins Uner-<br />
Listing 1: ABI-Whitelist für RHEL<br />
6.3 (x86_64)<br />
01 [root@rhel]# head /lib/modules/kabi‐rhel63/<br />
kabi_whitelist_x86_64<br />
02 [rhel6_x86_64_whitelist]<br />
03 ___pskb_trim<br />
04 __alloc_pages_nodemask<br />
05 __alloc_percpu<br />
06 __alloc_skb<br />
07 __bdevname<br />
08 __bitmap_and<br />
09 __bitmap_complement<br />
10 __bitmap_empty<br />
11 __bitmap_weight<br />
12 [root@rhel ~]# wc ‐l /lib/modules/kabi‐rhel63/<br />
kabi_whitelist_x86_64<br />
13 1607 /lib/modules/kabi‐rhel63/kabi_whitelist_x86_64<br />
www.linux-magazin.de<br />
43