26.02.2014 Aufrufe

Linux-Magazin Clean Linux (Vorschau)

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!