GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
15. Juli 2007

Technology Level Upgrade einer geklonten rootvg

Inhalt

  1. Einleitung
  2. Aufbrechen des Spiegels der rootvg
  3. Bereitstellung des neuen Technology Levels
  4. Durchführung des Upgrades
  5. Neustart des Systems
  6. Wiederherstellung des Spiegels der rootvg

 

1. Einleitung

Alternate Disk Installation ist eine elegante Art, den Technology Level (früher: Maintenance Level) auf den neuseten Stand zu bringen. Der größte Vorteil gegenüber einem einfachen smitty update_all liegt in der Tatsache, dass das laufende System unberührt bleibt. Dieses Verfahren läßt sich durchaus mit der AIX Migration mittels nimadm vergleichen, wie sie in einem älteren Artikel auf unixwerk beschrieben wurde (->AIX-Migration von 5.2 nach 5.3 mit minimaler Downtime). Ein NIM-Server wird aber nicht benötigt.

Dieser Artikel beschreibt Schritt für Schritt die Migration eines AIX-Systems von 5200-05-00 nach 5200-08-CSP.

 

2. Aufbrechen des Spiegels der rootvg

Üblicherweise wird die rootvg über zwei Platten gespiegelt sein. Um Platz für ein geklontes System zu bekommen, müssen wir den Spiegel aufbrechen. Da während der Migration u.a. auch ein bosboot durchgeführt wird, überprüfen wir zunächst, von welcher Platte das System beim letzten Hochfahren geladen wurde:

# bootinfo -b
hdisk0

Um zu vermeiden, dass bosboot fehlschlägt, entfernen wir die andere Platte (hdisk1) von der rootvg

Ein kurzer Blick zeigt uns, dass die rootvg ordnungsgemäß gepiegelt ist und alle Logical Volumes synchronisiert sind:

# lsvg -l rootvg
rootvg:
LV NAME             TYPE       LPs   PPs   PVs  LV STATE      MOUNT POINT
hd5                 boot       1     2     2    closed/syncd  N/A
hd6                 paging     128   256   2    open/syncd    N/A
hd8                 jfslog     1     2     2    open/syncd    N/A
hd4                 jfs        1     2     2    open/syncd    /
hd2                 jfs        26    52    2    open/syncd    /usr
hd9var              jfs        4     8     2    open/syncd    /var
hd3                 jfs        8     16    2    open/syncd    /tmp
hd1                 jfs        1     2     2    open/syncd    /home
hd10opt             jfs        2     4     2    open/syncd    /opt
dumplv00            sysdump    77    77    1    open/syncd    N/A
dumplv01            sysdump    77    77    1    open/syncd    N/A

Wir können den Spiegel also aufbrechen:

# unmirrorvg rootvg hdisk1

Schauen wir uns die aus dem Spiegel genommene Platte noch einmal an:

# lspv -l hdisk1
hdisk0:
LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT
dumplv01              77    77    77..00..00..00..00    N/A

Eine Ausgabe wie oben sehen Sie nur, wenn Sie auch ein sekundäres Dump LV (dumplv00 und dumplv01 in unserem Beispiel) eingerichtet haben - In diesem Fall legen wir das sekundäre Dump-Device auf /dev/sysdumpnull und löschen das LV:

# sysdumpdev -Ps /dev/sysdumpnull
primary              /dev/dumplv00
secondary            /dev/sysdumpnull
copy directory       /var/adm/ras
forced copy flag     TRUE
always allow dump    TRUE
dump compression     ON
# rmlv dumplv01
Warning, all data contained on logical volume dumplv01 will be destroyed.
rmlv: Do you wish to continue? y(es) n(o)? y
rmlv: Logical volume dumplv01 is removed.

Falls Sie genug Platz haben, können Sie das Dump-Device auch einfach auf die andere Platte schieben:

# lspv -l hdisk0
hdisk0:
LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT
dumplv00              77    77    77..00..00..00..00    N/A
# migratepv -l dumplv00 hdisk1 hdisk0
# sysdumpdev -l
primary              /dev/dumplv00
secondary            /dev/dumplv01
copy directory       /var/adm/ras
forced copy flag     TRUE
always allow dump    TRUE
dump compression     ON

Das Verschieben auf die verbleibende Platte empfiehlt sich auch, falls das primäre Dump-Device auf hdisk1 liegt...

Ist hdisk1 frei von Logical Volumes, wird die Platte aus der rootvg entfernt:

# reducevg rootvg hdisk1

 

3. Bereitstellung des neuen Technology Levels

Der neue Technology Level auf dem System in einem Verzeichnis bereitgestellt werden - dies kann ein lokales Verzeichnis, eine CD oder ein NFS-Server (auch Linux) sein. Im Beispiel gehen wir von einem Installationserver aus, der unter AIX läuft.

Auf dem Installationsserver muss das Verzeichnis mit dem Technology-Level an unsere AIX-Box (aix01) exportiert werden. Befinden sich die Filesets im Verzeichnis /install/AIX5.2/TL8CSP, fügen wir folgende Zeile der Datei /etc/exports auf dem Installationsserver hinzu...

/install/AIX5.2/TL8CSP -ro,access=aix01,root=aix01

...und exportieren es:

instserver:/# exportfs -a

Auf unserer AIX-Box können wir das exportierte Verzeichnis nun einhängen:

# mount instserver:/install/AIX5.2/TL8CSP /mnt

 

4. Durchführung des Upgrades

Anders als bei der Migration mittels nimadm wird der TL-Update nicht auf dem Installationsserver, sondern auf dem Migrationsobjekt, also unserer AIX-Box, selbst angestoßen:

# alt_disk_install -C -b update_all -l /mnt hdisk1
Calling mkszfile to create new /image.data file.
Checking disk sizes.
Creating cloned rootvg volume group and associated logical volumes.
		:
		:
		:
Changing logical volume names in volume group descriptor area.
Fixing LV control blocks...
Fixing file system superblocks...
Bootlist is set to the boot disk: hdisk1

Haben Sie es bis an diese Stelle gebracht, ist die Migration geschafft. In der Liste der Volume Groups taucht eine neue Volume Group namens altinst_rootvg auf:

# lsvg
rootvg
oraclevg
applvg
datavg
altinst_rootvg 

 

5. Neustart des Systems

Das System kann nun zu jeder Zeit neugestartet werden (z.B. außerhalb der Geschäftszeiten oder am Wochenende)...

# shutdown -Fr

... und das System kommt mit dem neuen Technology Level hoch:

# oslevel -s
5200-08-CSP

 

6. Wiederherstellung des Spiegels der rootvg

Eine Weile möchten Sie sich den Weg zurück auf den alten Stand noch offen halten, aber nach einer gewissen Zeit sollte das Vertrauen in den neuen Technology Level groß genug sein, um die alte Installation zu verwerfen und den Spiegel der rootvg wieder aufzusetzen.

Zunächst löschen wir die alte rootvg vom System (diese erscheint jetzt übrigens als old_rootvg):

# alt_disk_install -X old_rootvg

Danach setzen wir den Spiegel der rootvg wieder auf:

# extendvg -f rootvg hdisk1
# mirrorvg -s rootvg hdisk1

Spiegeln Sie die rootvg wie im Beispiel oben, wird der Spiegel nicht synchronisiert - dies kann auf eine Zeit verschoben werden, in der die I/O-Last des Systems geringer ist, z.B. nachts:

# echo varyonvg rootvg | at 23:00

Am nächsten Morgen sollte dann alles synchronisiert sein und es ergibt sich folgendes Bild:

# lsvg -l rootvg
rootvg:
LV NAME             TYPE       LPs   PPs   PVs  LV STATE      MOUNT POINT
hd5                 boot       1     2     2    closed/syncd  N/A
hd6                 paging     128   256   2    open/syncd    N/A
hd8                 jfslog     1     2     2    open/syncd    N/A
hd4                 jfs        1     2     2    open/syncd    /
hd2                 jfs        26    52    2    open/syncd    /usr
hd9var              jfs        4     8     2    open/syncd    /var
hd3                 jfs        8     16    2    open/syncd    /tmp
hd1                 jfs        1     2     2    open/syncd    /home
hd10opt             jfs        2     4     2    open/syncd    /opt
dumplv00            sysdump    77    77    1    open/syncd    N/A

Möglicherweise möchten Sie auch (wieder) ein zweites Dump-LV erzeugen. Die Ausgabe oben zeigt 77 PPs für dumplv00, also legen wir ein genauso großes LV auf hdisk0 an:

# mklv -c 1 -t sysdump -y dumplv01 rootvg 77 hdisk0

und aktivieren es mit:

# sysdumpdev -Ps /dev/dumplv01
primary              /dev/dumplv00
secondary            /dev/dumplv01
copy directory       /var/adm/ras
forced copy flag     TRUE
always allow dump    TRUE
dump compression     ON

Um sicher zu gehen, schreiben wir die BLVs neu:

# bosboot -ad hdisk0

bosboot: Boot image is 30112 512 byte blocks.
# bosboot -ad hdisk1

bosboot: Boot image is 30112 512 byte blocks

Die Bootliste sollte nun auch wieder beide Platten enthalten:

# bootlist -m normal hdisk0 hdisk1