AIX Kernel

Der AIX Kernel hat sich über die Jahre stetig weiterentwickelt. Lange Zeit gab es mehrere Kernel nebeneinander, z.B. einen Uniprozessor Kernel (up) für Server mit einem Prozessor und einen Multiprozessor Kernel (mp) für die Mehrprozessorsysteme. Die Nutzung war so gedacht, daß der up Kernel (weil schneller) auf den Maschinen eingesetzt werden, die a) nur einen Prozessor haben und b) auch nicht auf mehrere Prozessoren aufgerüstet werden können. Für alle anderen Fälle war die Empfehlung von vorneherein den mp Kernel zu nutzen. Zunächst waren dies Kernel für 32-Bit Hardware aber schon unter AIX 4.3 gab es Kernelerweiterungen, sog. Kernel Extensions, mit denen man 64 Bit Programme auf 32-Bit Hardware mit einem 32-Bit Kernel laufen lassen konnte, z.B.  64-Bit Oracle Datenbanken. Außerdem kann der AIX 32-Bit Kernel 96 GB RAM verwalten. Das war,wie gesagt in den neunziger Jahren des letzten Jahrhunderts aber die genannten Leistungsmerkmale verdeutlichen um wieviel Entwicklungsjahre AIX anderen Betriebssystemen voraus ist.

Mit AIX V6 wurde dann auf einen reinen 64-Bit Multiprozessor Kernel umgestellt, einfach weil keine 32-Bit Hardware mehr neu entwickelt oder hergestellt wird. Es ist auf AIX aber immer noch problemlos möglich auf ein und derselben pSeries 32-Bit und 64-Bit Anwendungen miteinander zu nutzen, genauso wie man unter AIX V6 Anwendungen nutzen kann, die schon unter AIX V4 funktioniert haben.

AIX 5L - Zwischen 32-Bit und 64-Bit Kernel umschalten

Kernel Debugger - kdb

AIX 5L - Zwischen 32-Bit und 64-Bit Kernel umschalten.

Da auf 5L i.d.R. immer beide Kernel installiert werden kann durch Ändern zweier Links, neuschreiben des bootdevices und reboot zwischen den Kernel umgeschaltet werden.

Von 64-Bit zu 32-Bit umschalten

0)cserver:/home/root/ 2# cat /usr/local/bin/go32

#!/bin/ksh

# @(#) Kornshell Skript go32

# @(#) Wechselt zum 32-Bit Kernel

# @(#) Zum aktivieren der Aenderung muss ein reboot erfolgen.

#

ln -sf /usr/lib/boot/unix_mp /unix

ln -sf /usr/lib/boot/unix_mp /usr/lib/boot/unix

lslv -m hd5

bosboot -ad /dev/ipldevice

print "Zum aktivieren der Aenderung Server bitte neu starten"

Von 32-Bit zu 64-Bit umschalten

(0)cserver:/home/root/ 3# cat /usr/local/bin/go64

#!/bin/ksh

# @(#) Kornshell Skript go64

# @(#) Wechselt zum 64-Bit Kernel

# @(#) Zum aktivieren der Aenderung muss ein reboot erfolgen.

#

ln -sf /usr/lib/boot/unix_64 /unix

ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix

lslv -m hd5

bosboot -ad /dev/ipldevice

print "Zum aktivieren der Aenderung den Server bitte neu starten"

(0)cserver:/home/root/ 4#

<nach oben>

Kernel Debugger - kdb

Mit welchen Limits läuft ein Prozess?

Abfrage der Speichernutzung mit kdb

Komprimierten Kerneldump entpacken

Mit dem kdb kann man sowohl ein laufendes System als auch einen Kerneldump analysieren. Für die Analyse eines Dumps ist es wichtig, den passenden Kernel beim Öffnen des Dumps zu verwenden. I.d.R. ist der passende Kernel genau derjenige, unter dem der Dump erfolgt ist. Wenn nichts angegeben wird, setzt kdb voraus daß es sich beim passenden Kernel um /unix des laufenden System handelt. Um Dumps von anderen Systemen öffnen zu können kann ein anderer Kernel mit der -u oder der KernelFile Option übergeben werden.

Seit AIX 5.3 TL5 werden Dumps nicht mehr mit compress gepackt (vmcore.0.Z), sondern mit dmpfmt Kommandos (vmcore.0.BZ). Mit compress gepackte core Dateien werden mit uncompress ausgepackt, die neueren hingegen mit dem dmpuncompress Kommando. Nach dem auspacken liegt das corefile als vmcore.X vor.

# /usr/bin/dmpuncompress -f ./vmcore.0.BZ

 -- replaced with ./vmcore.0

Wenn das corefile beschädigt ist oder wenn im Dateisystem nicht genügend Platz vorhanden ist um den Dump erfolgreich auszupacken, kann folgende Fehlermeldung auftreten:

# /usr/bin/dmpuncompress -f ./vmcore.0.BZ

Unexpected bad block

Run dmpuncompress -p <filename> to preserve the partially uncompressed dump.

Wenn der Dump beschädigt ist, kann man meist nichts mehr machen. Im Falle des vollen Dateisystems hilft es entsprechend Platz zu schaffen.

In Arbeit...

<nach oben>