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

Gerätenamen für SSA-Platten nach Steckplatz vergeben

Inhalt

  1. Das Problem
  2.  Die Zuordnung von Seriennummer und Steckplatz
  3.  Löschen aller Informationen über die SSA-Platten aus ODM und /dev
  4.  Vergabe der pdisk-Nummern

 

I. Das Problem

Der AIX-Konfigurationsmanager cfgmgr vergibt für alle SSA-Platten zwei Gerätenamen, die sowohl im /dev-Verzeichnis als auch in der ODM abgebildet werden:
  - einen pdisk-Namen (physikal disk): pdiskX und
  - einen hdisk-Namen (harddisk): hdiskY,
wobei insbesondere X ungleich Y ist.

Diese Ungleichheit liegt an der Systematik, mit der der Konfigurationsmanager die fortlaufenden Nummern X und Y der Gerätenamen vergibt: Es wird für ein neu zu konfigurierendes Gerät die kleinste freie Nummer gewählt; da bereits die internen SCSI-Platten einen Gerätenamen hdiskY erhalten -- aber keinen pdisk-Namen --, ist Y in der Regel um die Anzahl der internen SCSI-Platten höher als X, welches im Betrieb zu Flüchtigkeitsfehlern mit u.U. fatalen Folgen führen kann.

Desweiteren werden die fortlaufenden Nummern der Gerätenamen nach den SSA-Seriennummern hochgezählt. Da die SSA-Platten i.A. unsortiert in die SSA-Einschübe gesteckt werden, gibt es keinen einfachen Überblick über den Steckplatz. Darüberhinaus werden für leere Plätze keine Nummern freigehalten, selbst wenn man sich die Mühe macht und die Platten nach Seriennummer sortiert in die Einschübe steckt.

Bei einem SSA-System, in dem Dateisysteme über zwei SSA-Subsysteme gespiegelt werden, ist es insbesondere mühsam und zeitaufwändig die richtige Platte für eine Kopie zu finden, und man hat am Ende womöglich ein unsysmmetrisch gespiegeltes System, das den Ausfall eines ganzen SSA-Subsystems nicht abfedern kann.

Es ergibt sich demnach eine Notwendigkeit, die Nummerierung der pdisk- und hdisk-Namen nicht dem Zufall und damit nicht dem Konfigurationsmanager zu überlassen. Ein solcher Weg, der anfangs zwar ein bisschen mehr Arbeit erfordert, sich aber durch ein sehr viel überschaubareres System auszahlt, soll in den nächsten Abschnitten aufgezeigt werden.

 

II. Die Zuordnung von Seriennummer und Steckplatz

a. D40/T40
D40 heißen die SSA-Einschübe für 19"-Racks (D für Drawer) und T40 die SSA-Standmodelle (T für Tower), die zur Zeit von IBM angeboten werden. Auf der Vorderseite dieser Modelle wird ein vierstelliger, hexadezimaler Code angezeigt, anhand dessen ein Drawer (oder Tower) identifizierbar ist. Dieser Code kann mit

 aix# diag

eingestellt werden. So lässt sich der Code für das erste System auf "A001" und für das zweite System auf "B002" stellen, so dass sich die Plattenbezeichnungen aus diesem Code und dem Steckplatz zusammensetzen lassen. Nach dem Einstellen des Codes mit diag muss der Konfigurationsmanager aufgerufen werden:

 aix# cfgmgr

Die Seriennummern der Platten sind zum einen auf jede einzelne Platte aufgeklebt, zum anderen lassen sie sich mit dem Kommando

 aix# lsdev -Cc pdisk -F "name connwhere location type"
 pdisk0 0040AABB066800D 10-58-A001-02-P scsd
 pdisk1 00609441AE6400D 10-58-A001-06-P scsd
 pdisk2 00609441AE9200D 10-58-A001-04-P scsd
 pdisk3 00609441AF3700D 10-58-A001-07-P scsd
 pdisk4 00609441B1A900D 10-58-A001-01-P scsd
 pdisk5 00609441BABE00D 10-58-A001-03-P scsd
 pdisk6 00609441BAC400D 10-58-A001-05-P scsd
 pdisk7 0060941C372400D 10-58-A001-08-P scsd
 pdisk8 000629D2BE2500D 10-68-B002-08-P scsd
 pdisk9 000629D2F84F00D 10-68-B002-07-P scsd
 pdisk10 000629D28B8E00D 10-68-B002-03-P scsd
 pdisk11 000629D2EC8000D 10-68-B002-04-P scsd
 pdisk12 0060941C44DB00D 10-68-B002-01-P scsd
 pdisk13 0060941C5CF100D 10-68-B002-05-P scsd
 pdisk14 0060941C5CF200D 10-68-B002-02-P scsd
 pdisk15 0060941C5EA100D 10-68-B002-06-P scsd

auslesen. Dieses Kommando gibt auch Auskunft über Drawer (orange hervorgehoben) und Steckplatz (fett dargestellt).

 

b. D20/020/620
Bei den älteren SSA-Systemen unterscheidet sich das «connwhere»-Attribut deutlich von der unter a. beschriebenen Logik, so dass ein automatisches Sortieren nicht möglich ist.

 

III. Löschen aller Informationen über die SSA-Platten aus ODM und /dev

Bevor es losgehen kann, müssen alle vorhandenen Informationen über die SSA-Platten aus der ODM gelöscht werden. Dies kann auch geschehen, falls sich bereits Daten auf den Platten befinden, denn diese werden durch die folgenden Schritte keineswegs gelöscht. Für diesen Fall sind sämtliche Volume Groups, zu denen die SSA-Platten gehören, zunächst zu exportieren. Bei einem neuen System fällt dieser Schritt natürlich weg.

Im folgenden Beispiel wird angenommen, dass auf den internen Platten nur die rootvg liegt und dass SSA-Platten zur ssavg gehören. Die Befehle funktionieren, wenn Sie die ksh verwenden.

 aix# exportvg ssavg
 aix# PDLIST=$(lsdev -Cc pdisk awk '{print $1}')
 aix# ROOTHD=$(lspv | grep -w 'rootvg' | awk '{print $1}')
 aix# HDLIST=$(lsdev -Cc disk | awk '{print $1}')
 aix# for hd in $HDLIST; do echo $ROOTHD | grep -w $hd >/dev/null || rmdev -dl $hd ; done
 hdisk4 deleted
 hdisk5 deleted
 hdisk6 deleted
 hdisk7 deleted
 hdisk8 deleted
 hdisk9 deleted
 hdisk10 deleted
 hdisk11 deleted
 [...]
 aix# for pd in $PDLIST; do rmdev -dl $pd; done
 pdisk0 deleted
 pdisk1 deleted
 pdisk2 deleted
 pdisk3 deleted
 pdisk4 deleted
 pdisk5 deleted
 pdisk6 deleted
 pdisk7 deleted
 [...]

Nun sind alle Altlasten beseitigt und wir können mit der ...

 

IV. Vergabe der pdisk- und hdisk-Nummern

... beginnen. Mit folgendem Befehl wird ein pdisk-Name für eine SSA-Platte vergeben:

 aix# mkdev -l pdiskX -p ssar -c pdisk -t scsd -w Seriennummer

Ähnlich wie die pdisk-Namen werden auch die hdisk-Namen vergeben:

 aix# mkdev -l hdiskY -p ssar -c disk -t hdisk -w Seriennummer

Nun, da wir wissen, welche Seriennummer zu welchem Einschub (II.) gehört, und wir eine Vergabe der Nummern nach Anschluss (1-8) und nach Drawer (1 und 2) vorgenommen haben, fassen wir alles in einer kleinen Datei zusammen ...

 #!/bin/ksh
 function MKDEV
 {
   mkdev -l p$1 -p ssar -c pdisk -t scsd -w $2

   mkdev -l h$1 -p ssar -c disk -t hdisk -w $2
 }
 MKDEV disk101  00609441B1A900D
 MKDEV disk102  0040AABB066800D
 MKDEV disk103  00609441BABE00D
 MKDEV disk104  00609441AE9200D
 MKDEV disk105  00609441BAC400D
 MKDEV disk106  00609441AE6400D
 MKDEV disk107  00609441AF3700D
 MKDEV disk108  0060941C372400D
 MKDEV disk201  0060941C44DB00D
 MKDEV disk202  0060941C5CF200D
 MKDEV disk203  000629D28B8E00D
 MKDEV disk204  000629D2EC8000D
 MKDEV disk205  0060941C5CF100D
 MKDEV disk206  0060941C5EA100D
 MKDEV disk207  000629D2F84F00D
 MKDEV disk208  000629D2BE2500D

 echo
 echo All done.
 echo

... und führen diese aus. Danach haben Sie endlich überschaubare hdisk- und pdisk-Namen:

 aix# lsdev -Cc pdisk -F "name connwhere location type"
 pdisk101 00609441B1A900D 10-58-A001-01-P scsd
 pdisk102 0040AABB066800D 10-58-A001-02-P scsd
 pdisk103 00609441BABE00D 10-58-A001-03-P scsd
 pdisk104 00609441AE9200D 10-58-A001-04-P scsd
 pdisk105 00609441BAC400D 10-58-A001-05-P scsd
 pdisk106 00609441AE6400D 10-58-A001-06-P scsd
 pdisk107 00609441AF3700D 10-58-A001-07-P scsd
 pdisk108 0060941C372400D 10-58-A001-08-P scsd
 pdisk201 0060941C44DB00D 10-68-B002-01-P scsd
 pdisk202 0060941C5CF200D 10-68-B002-02-P scsd
 pdisk203 000629D28B8E00D 10-68-B002-03-P scsd
 pdisk204 000629D2EC8000D 10-68-B002-04-P scsd
 pdisk205 0060941C5CF100D 10-68-B002-05-P scsd
 pdisk206 0060941C5EA100D 10-68-B002-06-P scsd
 pdisk207 000629D2F84F00D 10-68-B002-07-P scsd
 pdisk208 000629D2BE2500D 10-68-B002-08-P scsd