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

FAQ AIX

Inhalt

Backup und Restore

  1. Wie kann ich ein Verzeichnis mit »backup« archivieren?
  2. Wie lässt sich ein Verzeichnis bei einer mksysb-Sicherung ausschließen?
  3. Wie lässt sich ein komprimiertes tar-Archiv unter AIX entpacken?
  4. Wie kann ich einen älteren Versionsstand einer Datei aus einer TSM-Sicherung restaurieren?
  5. Wie erstellt man ein bootfähiges DVD Image aus einem mksysb?
  6. Wie restauriert man einzelne Dateien oder Verzeichnisse aus einem mksysb?

Hardware und Support

  1. Mit welchem Befehl analysiert man unter AIX 5L einen Dump?
  2. Wie lassen sich geladene Kernel-Extensions unter AIX anzeigen?
  3. Ist meine AIX-Maschine 64bit-fähig?
  4. Wie aktiviere ich den 64bit-Kernel? Oder ist er schon aktiv??
  5. Kann ich auf meiner RS/6000 noch AIX 5.2 oder höher installieren?
  6. Wie lässt sich der Versionsstand einer HMC feststellen?
  7. Wie lässt sich die Firmware einer p5 anzeigen?
  8. Wie erzeugt man einen Snap für den IBM-Support?
  9. Wie kann ich feststellen, welche HMC meine LPAR kontrolliert?
  10. Wie kann ich die LPAR-Konfiguration sehen, ohne mich auf der HMC anzumelden?
  11. Wie kann ich Statistiken aller LPARs eines Managed Systems sehen?
  12. Wie lassen sich die SMT-Einstellungen und Prozessor-Informationen überprüfen?
  13. Wie lässt sich auf einer LPAR die Zuordnung der fcs-Adapter zu einem VIO-Server feststellen?
  14. Wie lässt sich auf einer LPAR die Zuordnung der vscsi-Adapter zu einem VIO-Server feststellen?
  15. Wie lässt sich die Seriennummer der Maschine auslesen?

Netzwerk

  1. Wie lässt sich ein Backup-Ethernetadapter einrichten?
  2. Wie wird eine statische Route gesetzt?
  3. Wie kann ich einen AIX-Client über reservierte Ports mit einem NFS-Server verbinden?
  4. Wie setze ich ein IP-Alias unter AIX?
  5. Wie sehe ich den Linkstatus einer Netzwerkkarte?
  6. Wie lässt sich der Status eines Etherchannels überprüfen?
  7. Wie starte bzw. stoppe ich einen Subserver des Internet Superservers inetd?
  8. Wie und mit welchen Optionen richte ich einen NFS-Mount ein?
  9. Wie kann ich mit ftp Daten aus einer Pipe übertragen?

Software-Paketverwaltung

  1. Wie lässt sich eine Vorschau (PREVIEW only) auf einen ML/TL Upgrade durchführen?
  2. Wie spiele ich einen efix/ifix ein?
  3. Wie lassen sich Filesets und ihre Version auf einem Medium anzeigen?
  4. Wie kann ich mir Informationen über installierte Filesets und ihre Versionen in einer Zeile ausgeben lassen?
  5. «lppchk -v» gibt Fehler aus, Wo liegt die Ursache?

Storage Management

  1. Lässt sich die maximale Anzahl von PPs auf über 1016 erhöhen?
  2. Wie lässt sich unter AIX ein Link zu einem Fibrechannel-Switch feststellen?
  3. Wie kann ich unter AIX eine Dummy-Disk als Platzhalter erzeugen?
  4. Wie lässt sich der VGDA eines PV (hdisk) direkt auslesen?
  5. Wie lässt sich ein Storage Lock auf einer SAN-Disk brechen?
  6. Wie lässt sich eine SCSI-Disk unter AIX indentifizieren?
  7. Wie lässt sich ein Tape-Device umbenennen?
  8. Wie lässt sich feststellen, auf welchen hdisks sich eine boot-Signatur befindet?
  9. Wie lassen sich HBA-Statistiken auslesen?
  10. Wo finde ich WWPNs von FibreChannel-Adaptern im SMS-Menu?
  11. Wie lässt sich die tatsächliche qdepth für ein LUN herausfinden?
  12. Wie mache ich vergrößerte LUNs in einer Volume Group bekannt?
  13. Wie lässt sich die Anzahl parallel zu synchronisierender Logical Partitons festlegen?
  14. Wie lassen sich Geisterpfade entfernen?
  15. Wie erstelle ich ein Mapfile für eine Spiegelkopie?
  16. Wie lässt sich ein PV aus dem Status removed wieder in den Status active bringen?
  17. Wie kann ich eine Platte eindeutig identifizieren, wenn sie noch keine PVID erhalten hat?

Sonstiges

  1. Wie kann ich unter AIX 5.3 Benutzer mit langen Login-Namen (mehr als 8 Zeichen) anlegen?
  2. Was muss ich tun, damit ich Passwörter mit mehr als 8 Zeichen nutzen kann?
  3. Die richtigen Einstellungen für Sommer- und Winterzeit?
  4. Lassen sich schon gelöschte Dateien anzeigen, die aber noch von einem Prozess geöffnet sind?
  5. Wie bekomme ich erlaubte Werte für Device-Attribute heraus?
  6. Wie lässt sich ein ISO-Image unter AIX mounten?
  7. Wie lässt sich ein defektes /dev/ipldevice reparieren?
  8. Wie vergrößert man das Dump-Device?
  9. Wie lassen sich Corefiles umbiegen?

 

Backup und Restore

1. Wie kann ich ein Verzeichnis mit »backup« archivieren?

Das von AIX bereitgestellte tar weist einige Beschränkungen auf. Als Ersatz fällt mir spontan das backup-Kommando ein. Aber was müsste ich genau eingeben?

Angenommen, Sie wollen das Verzeichnis /usr/local mit tar sichern - etwa so:

# tar cvpf /tmp/archive.tar ./usr/local/

Mit backup wird das Ganze dann zu:

 # find ./usr/local/ | backup -iqvpf /tmp/archive.bff

Natürlich will man sein Backup auch wieder zurückspielen können, dazu wird restore verwendet:

 # restore -xqvf /tmp/archive.bff

(das entsprechende tar-Kommando wäre: tar xvpf /tmp/archive.tar)

 

2. Wie lässt sich ein Verzeichnis bei einer mksysb-Sicherung ausschließen?

Soll ein Verzeichnis /var/tesdir, das sich in der rootvg befindet, bei der mksysb-Sicherung nicht mitgesichert werden, fügen Sie folgenden Eintrag an die Datei /etc/exclude.rootvg an:

 ^./var/tesdir/

Starten Sie das mksysb mit der Option '-e':

 # mksysb -e -i -X /dir/to/image

 

3. Wie lässt sich ein komprimiertes tar-Archiv unter AIX entpacken?

Zunächst einmal: Ohne gzip (bzw. bzip2) geht gar nichts. Das AIX-eigene tar kann aber genutzt werden, etwa so:

# gzip -d -c archiv.tgz | tar xvf -

Um nur hineinzuschauen entsprechend:

# gzip -d -c archiv.tgz | tar tvf -

Ähnlich geht's auch mit bzip2-komprimierten Archiven:

# bzip2 -d -c archiv.tar.bz2 | tar xvf -

 

4. Wie kann ich einen älteren Versionsstand einer Datei aus einer TSM-Sicherung restaurieren?

Eine alte Version der Datei /etc/sudoers ließe sich so restaurieren:

# dsmc restore -pick -inactive /etc/sudoers

TSM Scrollable PICK Window - Restore

     #    Backup Date/Time        File Size A/I  File
        -----------------------------------------------------------------------
     1. | 02/11/09   21:31:28      27.74 KB  A   /etc/sudoers
     2. | 02/02/09   22:12:45      25.42 KB  I   /etc/sudoers
     3. | 01/28/09   22:10:38      25.00 KB  I   /etc/sudoers
     4. | 01/20/09   21:34:20      23.73 KB  I   /etc/sudoers
        0---------10--------20--------30--------40--------50--------60--------7
<U>=Up  <D>=Down  <T>=Top  <B>=Bottom  <R#>=Right  <L#>=Left
<G#>=Goto Line #  <#>=Toggle Entry  <+>=Select All  <->=Deselect All
<#:#+>=Select A Range <#:#->=Deselect A Range  <O>=Ok  <C>=Cancel
pick>
  • mit 'U' und 'D' können Sie in dem Menü navigieren.
  • Geben Sie am 'pick>'-Prompt die Nummer der Datei an, die Sie restaurieren wollen. Ein 'x' erscheint nun vor der Zeile.
  • Mit 'o' bestätigen Sie Ihre Auswahl.
  • TSM beginnt nun, die ausgewählte Datei zu restaurieren.

    Soll die Datei in einen anderen Ordner, z.B. nach /tmp restauriert werden, ginge das so:

    # dsmc restore -pick -inactive /etc/sudoers /tmp/
    

    Es können auch gleich mehrere Dateien aus einer Liste restauriert werden, z.B. aus dem Verzeichnis /etc/init.d:

    # cd /etc/init.d
    # dsmc restore -pick "*"
    
    TSM Scrollable PICK Window - Restore
    
         #    Backup Date/Time        File Size A/I  File
            -----------------------------------------------------------------------
         1. | 09/19/08   15:30:28       3.77 KB  A   /etc/init.d/gssd
         2. | 09/19/08   15:30:28       3.83 KB  A   /etc/init.d/haldaemon
         3. | 09/19/08   15:30:28       3.60 KB  A   /etc/init.d/halt
         4. | 09/19/08   15:30:28        360  B  A   /etc/init.d/halt.local
         5. | 09/19/08   15:30:28       4.01 KB  A   /etc/init.d/idmapd
         6. | 09/19/08   15:30:28      13.44 KB  A   /etc/init.d/ipmi
         7. | 09/19/08   15:30:28       2.12 KB  A   /etc/init.d/irq_balancer
         8. | 09/19/08   15:30:28       2.79 KB  A   /etc/init.d/joystick
         9. | 09/19/08   15:30:28      11.91 KB  A   /etc/init.d/kbd
            0---------10--------20--------30--------40--------50--------60--------7
    <U>=Up  <D>=Down  <T>=Top  <B>=Bottom  <R#>=Right  <L#>=Left
    <G#>=Goto Line #  <#>=Toggle Entry  <+>=Select All  <->=Deselect All
    <#:#+>=Select A Range <#:#->=Deselect A Range  <O>=Ok  <C>=Cancel
    pick>
    

  • mit 'U' und 'D' können Sie in dem Menü navigieren.
  • Geben Sie am 'pick>'-Prompt die Nummer der Datei an, die Sie restaurieren wollen. Ein 'x' erscheint nun vor der Zeile. Auf diese Weise können Sie mehrere Dateien auswählen.
  • Mit 'o' bestätigen Sie Ihre Auswahl.
  • TSM beginnt nun, die ausgewählten Dateien zu restaurieren.  

    5. Wie erstellt man ein bootfähiges DVD Image aus einem mksysb?

    Liegt ein mksysb bereits unter /var/backups/mksysb.obj vor, kann daraus sehr einfach ein bootfähiges DVD-Image erstellt werden:

    # mkcd -L -S -I /iso-images -m /var/backups/mksysb.obj
    

    Im obigen Beispiel würde man das fertige DVD-Image im Verzeichnis /iso-images vorfinden. Zu beachten ist ferner, dass dem Schalter -m der volle Pfad zum mksysb-Image angegeben werden muss - relative Pfade führen zu einer Fehlermeldung!  

    6. Wie restauriert man einzelne Dateien oder Verzeichnisse aus einem mksysb?

    Eine einzelne Datei, z.B /etc/mail/sendmail.cf, kann man wie folgt aus einem mksysb extrahieren:

    # restore -xqvf mksysb.img ./etc/mail/sendmail.cf
    

    Man kann auch mehrere Dateien auf einmal extrahieren:

    # restore -xqvf mksysb.img ./etc/mail/aliases ./etc/mail/aliases.db
    

    Hier werden die beiden Dateien /etc/mail/aliases und /etc/mail/aliases.db restauriert.

    Es ist auch möglich ein ganzes Verzeichnis (z.B. /etc/mail) zurückzuholen:

    # restore -xqvf mksysb.img './etc/mail/*'
    

    In jedem Fall werden die Dateien mit komplettem Pfad relativ zum aktuellen Verzeichnis restauriert.

     

    Hardware und Support

    1. Mit welchem Befehl analysiert man unter AIX 5L einen Dump?

    Seit AIX 5.1 wird dazu der Befehl kdb benutzt. Bis AIX 4.3.3 hieß das Kommando crash. Die Bedienung ist weitgehend identisch.

     

    2. Wie lassen sich geladene Kernel-Extensions unter AIX anzeigen?

    Der Befehl dazu heißt genkex. Er listet alle Treiber-Module auf. Möchte man nur die Extensions im eigentlichen Sinne sehen benutzt man:

     # genkex | grep 'ext$'
    

     

    3. Ist meine AIX-Maschine 64bit-fähig?

    Die Antwort darauf gibt das Kommando bootinfo:

     # bootinfo -y
     32
    

    Ist die Ausgabe 32, kann die Maschine nur mit dem 32bit-Kernel betrieben werden; ist die Ausgabe dagegen 64 kann die Maschine sowohl mit dem 32bit- als auch mit dem 64bit-Kernel betrieben werden.

     

    4. Wie aktiviere ich den 64bit-Kernel? Oder ist er schon aktiv??

    Der klassische Kernel /unix ist seit AIX 5.2 ein Link auf den entsprechenden Kernel im Verzeichnis /usr/lib/boot. Welcher Kernel aktiv ist, sieht man, wenn man den Link verfolgt. Zeigt der Link, wie im folgenden Beispiel auf /usr/lib/boot/unix_64 ist der 64bit-Kernel bereits aktiv. Zeigt er auf /usr/lib/boot/unix_up oder /usr/lib/boot/unix_mp wird das System im 32bit-Modus betrieben.

    Beispiel:

     # ls -l /unix
     lrwxrwxrwx   1 root     system           21 21 Jul 2004  /unix -> /usr/lib/boot/unix_64
    

    Welcher Kernel wirklich aktiv ist, lässt sich auch mit bootinfo herausfinden:

     # bootinfo -K
     64
    

    Von einem 32bit- zu einem 64bit-Kernel wechselt man, indem man diesen sowie einen weitern Link unix im Verzeichnis /usr/lib/boot entsprechend umsetzt:

     # cd /
     # rm -f unix
     # ln -s /usr/lib/boot/unix_64 unix
     # cd /usr/lib/boot/
     # rm -f unix
     # ln -s unix_64 unix
    

    Danach muss das BLV neu geschrieben werden:

     # bosboot -a
    
     bosboot: Boot-Image hat 19008 512-Byte-Blöcke.
    

    Nach dem nächsten Systemstart ist der 64bit-Kernel aktiv.

     

    5. Kann ich auf meiner RS/6000 noch AIX 5.2 oder höher installieren?

    Seit der AIX Version 5.2 werden nicht mehr alle RS/6000-Modelle unterstützt. Das Kommando " bootinfo -p " gibt Auskunft. Nur wer, wie im unteren Beispiel, " chrp " als Antwort erhält, kann seine Maschine mit der neuesten AIX-Version installieren:

     # bootinfo -p
     chrp
    

    Aber Achtung: Möglicherweise ist ein Firmware-Upgrade notwendig, damit das System überhaupt von der AIX 5.2-CD bootet!

    AIX 6.1 wird nicht auf allen chrp-Systemen unterstützt. Insbesondere 32bit Systeme können nicht mit AIX 6.1 betrieben werden.

     

    6. Wie lässt sich der Versionsstand einer HMC feststellen?

    Auf der HMC lässt sich die Version mit lshmc feststellen:

     hscroot@hmc:~> lshmc -V
     "version= Version: 5
      Release: 1.0
     HMC Build level 20051110.1
     MH00464: InfoCenter Update for V5R1.0 (10-27-2005)
     MH00493: Fixes for leap second handling, DST time and openssl (11-29-2005)
     MH00507: Maintenance Package for V5R1.0 (12-03-2005)
     "
    

    Diese Informationen lassen sich auch über WebSM/wsm ermitteln:

    1. Links "Licensed Internal Code Maintenance" aufklappen
    2. "HMC Code Update" anklicken
    3. Im Bereich "Status" finden sich die Informationen, die auch lshmc -V ausgibt.

    Mehr über die HMC Kommandozeile erfahren Sie in unserem kleinen HMC Commandline Howto

     

    7. Wie lässt sich die Firmware einer p5 anzeigen?

    Dazu meldet man sich auf einer beliebigen LPAR an und setzt den Befehl lsmcode ab. Die Ausgabe ist:

     DISPLAY MICROCODE LEVEL                                                              802811
     IBM,9117-570
    
     The current permanent system firmware image is SF235_185
     The current temporary system firmware image is SF235_185
     The system is currently booted from the temporary firmware image.
    

     

    8. Wie erzeugt man einen Snap für den IBM-Support?

    Dazu steht unter AIX allgemein das snap-Kommando zur Verfügung. Zunächst sollte ein eventuell vorhandener alter Snap gelöscht werden. Zum Löschen kann das Kommando snap -r benutzt werden - um später Probleme beim Schreiben des neuen Snap zu vermeiden, empfiehlt es sich aber einfach das komplette Verzeichnis /tmp/ibmsupt zu löschen (s.u.).

     # rm -rf /tmp/ibmsupt
     # snap -gfiLGc
     Checking space requirement for general information........................done.
                            .
                            .
                            .
     Creating compressed pax file...
     Starting pax/compress process... Please wait... done.
    
     -rw-------   1 0        0           8621905 Mar  2 10:40 snap.pax.Z
    

    Der komprimierte Snap findet sich dann unter /tmp/ibmsupt/snap.pax.Z. Diese Datei wird dann an IBM geschickt.

     

    9. Wie kann ich feststellen, welche HMC/welcher CSM-Server meine LPAR kontrolliert?

    Dazu kann der Domainstatus abgefragt werden - dazu muss das Subsystem ctrmc aktiv sein. Dies lässt sich mit

     # lssrc  -s ctrmc
     Subsystem         Group            PID          Status
      ctrmc            rsct             1151036      active
    

    überprüfen. Ist dies der Fall, erhalten Sie die IP-Adresse der HMC mit:

     # /usr/sbin/rsct/bin/rmcdomainstatus -s ctrmc
    
     Management Domain Status: Management Control Points
       O A  0xccdfc3e608ad7624  0001  192.168.100.10
    

    Falls die LPAR auch von einem CSM-Server kontrolliert wird, gibt es zwei Control Points:

     # /usr/sbin/rsct/bin/rmcdomainstatus -s ctrmc
    
     Management Domain Status: Management Control Points
       I A  0x58016857defc1b87  0001  192.168.100.11  
       I A  0xccdfc3e608ad7624  0002  192.168.100.10
    

    Für neuere rsct-Versionen unter AIX 6.1 lassen sich die Management-Server auch mit lsrsrc anzeigen:

     # lsrsrc -l "IBM.ManagementServer"
    Resource Persistent Attributes for IBM.ManagementServer
    resource 1:
            Name             = "192.168.100.10"
            Hostname         = "192.168.100.10"
            ManagerType      = "HMC"
            LocalHostname    = "192.168.100.23"
            ClusterTM        = "9078-160"
            ClusterSNum      = ""
            ActivePeerDomain = ""
            NodeNameList     = {"lpar22-ext"}
    resource 2:
            Name             = "192.168.100.11"
            Hostname         = "192.168.100.11"
            ManagerType      = "CSM"
            LocalHostname    = "lpar22"
            ClusterTM        = "9078-160"
            ClusterSNum      = "10BF571"
            ActivePeerDomain = ""
            NodeNameList     = {"lpar22-ext"}
    

    Ab AIX 7.1 lautet der Befehl dagegen:

     # lsrsrc -l "IBM.MCP"
    Resource Persistent Attributes for IBM.MCP
    resource 1:
            MNName            = "192.168.100.23"
            NodeID            = 10086347011559187529
            KeyToken          = "hmc01"
            IPAddresses       = {"192.168.100.10"}
            ConnectivityNames = {"192.168.100.23"}
            HMCName           = "7042CR6*068DC6C"
            HMCIPAddr         = "192.168.102.100"
            HMCAddIPs         = "10.10.10.101"
            HMCAddIPv6s       = ""
            ActivePeerDomain  = "mycluster"
            NodeNameList      = {"lpar22-ext"}
    resource 2:
            MNName            = "192.168.100.23"
            NodeID            = 3427037274839437794
            KeyToken          = "hmc02"
            IPAddresses       = {"192.168.100.11"}
            ConnectivityNames = {"192.168.100.23"}
            HMCName           = "7042CR6*06828CC"
            HMCIPAddr         = "192.168.100.11"
            HMCAddIPs         = "10.10.10.102"
            HMCAddIPv6s       = ""
            ActivePeerDomain  = "mycluster"
            NodeNameList      = {"lpar22-ext"}
    

     

    10. Wie kann ich die LPAR-Konfiguration sehen, ohne mich auf der HMC anzumelden?

    Führen Sie folgenden Befehl auf Ihrer LPAR aus:

     $ lparstat -i
     Node Name                                  : barney
     Partition Name                             : mylpar2
     Partition Number                           : 2
     Type                                       : Shared-SMT
     Mode                                       : Uncapped
     Entitled Capacity                          : 0.60
     Partition Group-ID                         : 32796
     Shared Pool ID                             : 0
     Online Virtual CPUs                        : 6
     Maximum Virtual CPUs                       : 10
     Minimum Virtual CPUs                       : 1
     Online Memory                              : 3072 MB
     Maximum Memory                             : 16384 MB
     Minimum Memory                             : 1024 MB
     Variable Capacity Weight                   : 80
     Minimum Capacity                           : 0.10
     Maximum Capacity                           : 10.00
     Capacity Increment                         : 0.01
     Maximum Physical CPUs in system            : 16
     Active Physical CPUs in system             : 8
     Active CPUs in Pool                        : 8
     Unallocated Capacity                       : 0.00
     Physical CPU Percentage                    : 10.00%
     Unallocated Weight                         : 0
    

     

    11. Wie kann ich Statistiken aller LPARs eines Managed Systems sehen?

    Dazu bietet der topas Monitor einen speziellen Schalter:

     # topas -C
    

    Das Resultat sieht dann so aus:

     Topas CEC Monitor             Interval:  10             Wed Aug 13 17:08:13 2008
     Partitions Memory (GB)           Processors
     Shr: 12    Mon:83.0  InUse:20.6  Shr:3.8  PSz:  8   Don: 0.0 Shr_PhysB  0.14
     Ded:  0    Avl:   -              Ded:  0  APP:  7.9 Stl: 0.0 Ded_PhysB  0.00
    
     Host         OS  M Mem InU Lp  Us Sy Wa Id  PhysB  Vcsw Ent  %EntC PhI
     -------------------------------------shared-------------------------------------
     vioserver1   A53 U 5.0 1.4  6   3  6  0 90   0.03  177  0.30  10.3   2
     vioserver2   A53 U 5.0 1.2  6   3  6  0 90   0.03  257  0.30  10.1   2
     mylpar0      A53 U 5.0 3.1  6   2  4  0 92   0.02  195  0.30   7.6   0
     mylpar1      A53 U 5.0 2.8  6   0  2  0 96   0.01  363  0.30   4.0   0
     mylpar2      A53 U  10 1.5 12   0  0  0 99   0.01  367  0.60   1.2   1
     mylpar3      A53 U  18 2.7  8   0  0  0 98   0.01  288  0.40   1.7   0
     mylpar4      A53 U 6.0 1.3  2   0  3  0 96   0.01  190  0.10   5.1   0
     mylpar5      A53 U 3.0 1.5 12   0  0  0 99   0.01  286  0.60   0.8   0
     mylpar6      A53 U  10 1.5 12   0  0  0 99   0.00  231  0.60   0.8   0
     mylpar7      A53 U 6.0 1.2  2   0  2  0 97   0.00  176  0.10   4.1   2
     mylpar8      A53 U 6.0 1.3  2   0  1  0 97   0.00  135  0.10   3.2   0
     mylpar9      A53 U 4.0 1.1  2   0  1  0 97   0.00  132  0.10   3.1   0
     Host         OS  M Mem InU Lp  Us Sy Wa Id  PhysB  Vcsw  %istl %bstl
     Host         OS  M Mem InU Lp  Us Sy Wa Id  PhysB  Vcsw  %istl %bstl------------
     ------------------------------------dedicated-----------------------------------
    

     

    12. Wie lassen sich die SMT-Einstellungen und Prozessor-Informationen überprüfen?

    smtctl ist der geeignete Befehl, So könnte es z.B. aussehen:

    # smtctl
    
    This system is SMT capable.
    
    SMT is currently enabled.
    
    SMT boot mode is not set.
    SMT threads are bound to the same virtual processor.
    
    proc0 has 2 SMT threads.
    Bind processor 0 is bound with proc0
    Bind processor 1 is bound with proc0
    
    
    proc2 has 2 SMT threads.
    Bind processor 2 is bound with proc2
    Bind processor 3 is bound with proc2
    

     

    13. Wie lässt sich auf einer LPAR die Zuordnung der FC-Adapter zu einem VIO-Server feststellen?

    Ab AIX 6.1 lässt sich die Zuordnung auf der virtualisierten LPAR mit kdb abfragen:

    # echo "vfcs" | kdb | grep -E '^NAME|^fcs'
    NAME      ADDRESS             STATE   HOST      HOST_ADAP  OPENED NUM_ACTIVE
    fcs0      0xF1000A0000186000  0x0008  vioserver1vfchost1  0x01    0x0000
    fcs1      0xF1000A0000188000  0x0008  vioserver2vfchost1  0x01    0x0000
    fcs2      0xF1000A000018A000  0x0008  vioserver1vfchost2  0x01    0x0000
    fcs3      0xF1000A000018C000  0x0008  vioserver2vfchost2  0x01    0x0000
    fcs4      0xF1000A001DB06000  0x0008  vioserver1vfchost3  0x01    0x0000
    fcs5      0xF1000A000018E000  0x0008  vioserver2vfchost3  0x01    0x0000
    fcs6      0xF1000A0000180000  0x0008  vioserver1vfchost4  0x01    0x0000
    fcs7      0xF1000A001DB02000  0x0008  vioserver2vfchost4  0x01    0x0000
    

     

    14. Wie lässt sich auf einer LPAR die Zuordnung der VSCSI-Adapter zu einem VIO-Server feststellen?

    Ab AIX 6.1 lässt sich die Zuordnung auf der virtualisierten LPAR mit kdb abfragen:

    # echo "cvai" | kdb | grep vscsi
    read vscsi_scsi_ptrs OK, ptr = 0xF1000000C020BE20
    vscsi0     0x000007 0x0000000000 0x0                vioserver1->vhost0
    

     

    15. Wie lässt sich die Seriennummer der Maschine auslesen?

    # lscfg -vp | grep -p "System VPD" | fgrep "Machine/Cabinet Serial No"
               Machine/Cabinet Serial No...063TD8T
    

     

    Netzwerk

    1. Wie lässt sich ein Backup-Ethernetadapter einrichten?

    Dazu wird ein Etherchannel eingerichtet. Dazu muss zunächst das bestehende Netzwerkinterface dekonfiguriert (hier: en0) werden. Ein zweiter Adapter (hier: en1) muss verfügbar sein. Dann wird der Etherchannel wie folgt eingerichtet:

     # ifconfig en0 detach
     # chdev -P -l en0 -a state=down
     # mkdev -c adapter -s pseudo -t ibm_ech -a adapter_names=ent0 \
         -a backup_adapter=ent1 -a netaddr=192.168.100.1 \
         -a num_retries=3 -a retry_time=3
     # mkdev -c if -s EN -t en -a netaddr=192.168.100.33 \
         -a netmask=255.255.255.0 -w en2 -a state=up -a arp=on
     # mkdev -l inet0
    

    Die IP-Adresse im ersten mkdev-Aufruf ist ein Host, der angepingt werden kann (z.B. der Gateway). Darüber stellt das System den Ausfall einer Netzverbindung fest. Der zweite mkdev-Aufruf dagegen definiert die IP-Adresse der Maschine auf dem neuen Etherchannel-Interface, das dann den Namen en2 erhält.

     

    2. Wie wird eine statische Route gesetzt?

    Natürlich lässt sich eine statische Route ganz normal mit dem route-Kommando setzen, doch auf diese Weise überlebt die Route den nächsten Reboot nicht.

    Damit die Route beim Systemstart automatisch gesetzt wird, muss sie an inet0 gekoppelt werden. Zunächst lassen wir uns anzeigen, welche Routen schon gesetzt sind:

    # lsattr -El inet0 -a route
     route net,-hopcount,0,,0,192.168.1.1 Route True
     route net,-hopcount,255.255.255.128,,,,,192.168.3.155,192.168.2.1 Route True
    

    Die obigen Routen würde man wie folgt setzten:

    # chdev -l inet0 -a route=net,-hopcount,0,,0,192.168.1.1
    # chdev -l inet0 -a route=net,-hopcount,255.255.255.128,,,,,192.168.3.155,192.168.2.1
    

    Und so würden sie wieder entfernt:

    # chdev -l inet0 -a delroute=net,-hopcount,0,,0,192.168.1.1
    # chdev -l inet0 -a delroute=net,-hopcount,255.255.255.128,,,,,192.168.3.128,192.168.2.1
    

    In dem Route-String ist 255.255.255.128 die Netzmaske, 192.168.3.128 das Zielnetzwerk und 192.168.2.1 der Gateway.

    Bei Hostrouten wird anstelle von net das Schlüsselwort host gesetzt.

     

    3. Wie kann ich einen AIX-Client über reservierte Ports mit einem NFS-Server verbinden?

    Einige UNIX-Varianten, etwa OpenBSD oder Solaris erwarten, dass Clients sich über reservierte Ports (<= 1024) verbinden. AIX allerdings nutzt nicht reservierte Ports zur Verbindung mit einem NFS-Server. Dies lässt sich aber mit dem folgenden Kommando ändern:

    # nfso -o nfs_use_reserved_ports=1
    

    Die Einstellung geht allerdings nach dem nächsten Reboot verloren. Unter AIX 5L und 6 kann der Schalter '-p' genutzt werden, damit die Einstellungen einen Reboot überleben:

    # nfso -p -o nfs_use_reserved_ports=1
    

    Diese Einstellungen werden auch vom autofs-Subsystem übernommen. Beachten Sie aber, dass bestehende Mounts dadurch nicht beeinflusst werden. Diese Einstellung muss also vor dem Einhängen eines NFS-Volumens gesetzt werden!

     

    4. Wie setze ich ein IP-Alias unter AIX?

    Eine zweite IP-Adresse, ein sogenannter IP-Alias, kann wie unter Unix üblich mit dem Befehl ifconfig auf ein Interface gelegt werden:

    # ifconfig en0 192.168.100.199 netmask 255.255.255.0 alias
    

    Mit diesem Kommando würde eine IP-Alias 192.168.100.199 auf das Interface en0 gelegt. Soll die zweite IP-Adresse automatisch nach jedem Boot gesetzt werden, muss sie natürlich in der ODM verankert werden. Der SMIT-Fastpath dazu ist mkinet4al. Wer die Kommandozeile bevorzugt, kann folgendes chdev-Kommando benutzen:

    # chdev -l en0 -a alias4="192.168.100.199,255.255.255.0"
    

    Heruntergenommen wird der Alias dann einfach mit

    # ifconfig en0 delete 192.168.100.199
    

    ohne das Schlüsselwort 'alias', da alle IP-Adressen eines Interfaces gleichberechtigt sind. Wurde der Alias mit SMIT oder über das obige chdev-Kommando in der ODM verankert, kann zum Entfernen der folgende Befehl verwendet werden:

    # chdev -l en0 -a delalias4="192.168.100.199,255.255.255.0"
    

     

    5. Wie sehe ich den Linkstatus einer Netzwerkkarte?

    Der Linkstatus lässt sich mit einem entstat -d auf den physikalischen Adapter anzeigen. Suchen Sie in der Ausgabe nach media speed und link status:

    # entstat -d ent0 | egrep "(Link Status|Media Speed)"
    Link Status : Up
    Media Speed Selected: Auto negotiation
    Media Speed Running: 1000 Mbps Full Duplex
    

     

    6. Wie lässt sich der Status eines Etherchannels überprüfen?

    Es genügt ein entstat -d auf den Etherchannel und eine Suche nach Link Status, Active channel und Physical Port Link State. Bei konfiguriertem Backup-Adapter eventuell noch eine Suche nach Backup adapter. Um diese Informationen auf einen Blick zu bekommen, kann das folgende Kommando (hier für ent6) abgesetzt werden:

    # entstat -d ent6 | egrep "(Link Status|Active channel|Physical Port Link State|Backup adapter|\(ent.\)|\(ent..\))"
    ETHERNET STATISTICS (ent6) :
    Active channel: primary channel
    ETHERNET STATISTICS (ent3) :
    Link Status : Up
    Backup adapter - ent5:
    ETHERNET STATISTICS (ent5) :
    Link Status : Up
    

     

    7. Wie starte bzw. stoppe ich einen Subserver des Internet Superservers inetd?

    Um z.B. den ftp-Dienst zu starten genügt ein:

    # startsrc -t ftp
    0513-124 The ftp subserver has been started.
    

    Analog kann der ftp-Dienst mit

    # stopsrc -t ftp
    0513-127 The ftp subserver was stopped successfully.
    

    wieder gestoppt werden. Manuelle Änderungen in der Datei /etc/inetd.conf müssen nicht vorgenommen werden!

    Der aktuelle Status des inetd lässt sich mit

    # lssrc -ls inetd 
    
    abfragen.

     

    8. Wie und mit welchen Optionen richte ich einen NFS-Mount ein?

    Ich gehe davon aus, dass der NFS-Mount einen Reboot überleben soll. Dann kann man mit dem Befehl

    # mknfsmnt -d /nas/diska/vol1 -h nas.unixwerk.de -f /import/nas_vol1 -b 32768 -c 32768 -A -H -E 
    

    z.B. den NFS-Share /nas/diska/vol1 vom NFS-Server nas.unixwerk.de unter /import/nas_vol1 einhängen. Und so sieht unser NFS-Mount in der /etc/filesystems aus:

    /import/nas_vol1:
            dev             = "/nas/diska/vol1"
            vfs             = nfs
            nodename        = nas.unixwerk.de
            mount           = true
            options         = hard,intr,rsize=32768,wsize=32768,timeo=600
            account         = false
    

    Die Optionen im Beispiel haben sich für mich als sinnvoll herausgestellt - insbesondere wenn man NAS-Volumes einhängt. Möchte man den NFS-Share read-only mounten, kommt der Schalter -t ro hinzu. Möchte man den NFS-Mount nur in die /etc/filesystems bugsieren - ohne, dass er sofort eingehängt wird - kommt der Schalter -I hinzu:

    # mknfsmnt -t ro -d /nas/diska/vol1 -h nas.unixwerk.de -f /import/nas_vol1 -b 32768 -c 32768 -A -H -E -I
    

     

    9. Wie kann ich mit ftp Daten aus einer Pipe übertragen?

    Ich möchte die Netzwerkperformance zwischen zwei Servern testen, ohne dass das Ergebnis durch Plattenzugriffe verfälscht wird. Kann ich dazu die Ausgabe von dd über eine Pipe in das ftp-Kommando geben?

    Tatsächlich kann das AIX ftp aus der Pipe lesen:

    # ftp server.com
    ftp> bin
    ftp> put "|dd if=/dev/zero bs=32k count=10000" /dev/null
    

    So wird lokal aus /dev/zero gelesen und remote nach /dev/null geschrieben. Plattenzugriffe werden vermieden.

     

    Paketverwaltung

    1. Wie lässt sich eine Vorschau (PREVIEW only) auf einen ML/TL Upgrade durchführen?

    Eine Installationsvorschau auf einen TL-Upgrade zeigt immer nur ein zu aktualisierendes Fileset an, weil zunächst der Installer auf den neuseten Stand gebracht werden muss. Dennoch geht der echte Upgrade dann gut (und aktualisiert alles). Möchte man dennoch eine echte Vorschau bekommen, muss zunächst der Installer aktualisiert werden (APPLY only):

    # cd /path/to/TL
    # installp -agX -d. bos.rte.install
    

    Nun kann man mit

    # smitty update_all
    

    einen sinnvollen PREVIEW durchführen. Entscheidet man sich gegen den TL-Upgrade lässt sich der Installer mit

    # smitty reject
    

    wieder auf den alten Stand zurückfahren.

     

    2. Wie spiele ich einen efix/ifix ein?

    Interim Fixes (ifix) oder Emergency Fixes (efix) werden nicht über installp, sondern mit dem Efix Manager eingespielt. Die Fixes werden von IBM im komprimierten epkg-Format (Endung: .epkg.Z) bereitgestellt. Ein solcher Fix wird dann so eingespielt:

    # emgr -e <EFIX>.epkg.Z
    

    Eine Liste aller installierten Fixes erhält man mit

    # emgr -l
    
    ID  STATE LABEL    INSTALL TIME      UPDATED BY ABSTRACT
    === ===== ======== ================= ========== ================
    1    S    IZ79677  09/16/10 16:09:52            iFix for IZ79677
    

    Das Label aus der obigen Ausgabe benötigt man, wenn man den Fix wieder entfernen möchte:

    # emgr -r -L <LABEL>
    

    Interim Fixes werden bei einem TL/SP-Upgrade automatisch entfernt, wenn der entsprechende Fix im Service Pack enthalten ist. Ist er dies aber nicht, schlägt der Upgrade fehl und der ifix muss zunächst mit dem Efix Manager entfernt werden.

     

    3. Wie lassen sich Filesets und ihre Version auf einem Medium anzeigen?

    Möchte man wissen, welche Filesets sich z.B. auf der neuen AIX 7.1 DVD befinden oder auch welche Filesets in einem SP stecken, hilft der Filename nicht unbedingt weiter - entweder weil die Version nicht gelistet ist oder weil der Name nichts aussagt. Mit installp kann man sich aber auch Filesets anzeigen lassen:

    # cd /path/to/bffs
    # installp -l -d .
      Fileset Name                Level                     I/U Q Content
      ====================================================================
      Java5.samples               5.0.0.275                  I  N usr
    #   Java SDK 32-bit Samples
    
      Java5.sdk                   5.0.0.325                  I  N usr,root
    #   Java SDK 32-bit
    
      Java5.source                5.0.0.325                  I  N usr
    #   Java SDK 32-bit Source
    
      Java5_64.sdk                5.0.0.325                  I  N usr,root
    #   Java SDK 64-bit
    
      Java6.sdk                   6.0.0.215                  I  N usr,root
    #   Java SDK 32-bit
    

    Der Paketname eines einzelnen Filesets lässt sich ebenfalls auf diese Weise anzeigen:

    # installp -l -d U839870.bff
      Fileset Name                Level                     I/U Q Content
      ====================================================================
      devices.chrp.base.ServiceRM 1.5.0.1                    S  N usr,root
    #   RSCT Service Resource Manager
    

    Voraussetzung in beiden Fällen ist, dass sich im Verzeichnis ein aktuelles .toc befindet. Auf einer AIX-DVD ist dies sicherlich so, bei heruntergeladenen Updates kann der auch mal fehlen. Mit inutoc lässt sich der .toc leicht erzeugen:

    # cd /path/to/bffs
    # inutoc .
    

     

    4. Wie kann ich mir Informationen über installierte Filesets und ihre Versionen in einer Zeile ausgeben lassen?

    Klar, Informationen über auf meiner LPAR installierte Filesets lassen sich mit "lslpp -l" oder "lslpp -L" anzeigen. Doch der erste Befehl teilt die Ausgabe in root- and /usr-Part auf, der zweite nervt durch Zeilenumbrüche bei längeren Beschreibungen. Gibt's da nicht noch was anderes?

    Es gibt die Möglichkeit sich diese Informationen als durch Doppelpunkte separierte Liste auszugeben zu lassen. Fileset-Name, Version und Beschreibung sind dabei in den Feldern 2, 3 bzw. 8 untergebracht. Ein Beispiel:

    # lslpp -Lqc bos.net.nfs.\* | cut -d: -f2,3,8
    bos.net.nfs.client:6.1.4.4:Network File System Client
    bos.net.nfs.server:6.1.4.0:Network File System Server
    

     

    5. «lppchk -v» gibt Fehler aus, Wo liegt die Ursache?

    Nach einer AIX-Migration sieht alles gut aus. Doch «lppchk -v» gibt Fehler wie diese aus:

    # lppchk -v
    lppchk:  The following filesets need to be installed or corrected to bring
             the system to a consistent state:
    
      rsct.core.rmc v=2, r<5                  (not installed; requisite fileset)
    

    Leider geht aus dem Fehler nicht hervor welches Fileset eigentlich diese Abhängigkeit hat. Man kann aber die ODM nach dieser Abhängigkeit durchsuchen:

    # odmget product|fgrep -p 'rsct.core.rmc v=2 r<5'
    product:
            lpp_name = "sam.core.rte"
            comp_id = ""
            update = 0
            cp_flag = 275
            fesn = ""
            name = "sam.core"
            state = 5
            ver = 3
            rel = 2
            mod = 0
            fix = 0
            ptf = ""
            media = 3
            sceded_by = ""
            fixinfo = ""
            prereq = "*prereq rsct.core.utils 2.4.13.1\n\
    *prereq rsct.core.rmc v=2 r<5\n\
    *prereq rsct.basic.rte 2.4.13.1\n\
    "
            description = "SA CHARM Runtime Commands"
            supersedes = ""
    

    Hier besitzt das Fileset «sam.core.rte» die Abhängigkeit, die zu diesem Fehler führt. Bei einem solchen Fehler ist zu prüfen, ob das entsprechende Filset aktualisiert werden kann oder eventuell gar nicht mehr benötigt wird.

     

    Storage Management

    1. Lässt sich die maximale Anzahl von PPs auf über 1016 erhöhen?

    Eine neue, größere Platte in eine vorhandene VG zu integrieren kann zum Problem werden, da meistens die PP Size zu klein gewählt ist, aber mehr als 1016 PPs auf einer Platte (hdisk) nicht erlaubt sind. Oder doch?

    Mit chvg -t kann man die PPs um einen Faktor erhöhen:

     # chvg -t 2 rootvg
    

    erlaubt Platten mit bis zu 2032 PPs in der rootvg - dadurch reduziert sich die Anzahl erlaubter Platten allerdings ebenfalls um den Faktor 2 auf nun 16.

     

    2. Wie lässt sich unter AIX ein Link zu einem Fibrechannel-Switch feststellen?

    Dazu kann das FC SCSI I/O Controller Protocol Device herangezogen werden.

    So sieht's aus, wenn der Port auf dem Switch nicht konfiguriert ist, aber ein Kabel verlegt ist (attach: none, keine SCSI-ID vergeben):

     # lsattr -El fscsi0
     attach       none         How this adapter is CONNECTED         False
     dyntrk       no           Dynamic Tracking of FC Devices        True
     fc_err_recov delayed_fail FC Fabric Event Error RECOVERY Policy True
     scsi_id                   Adapter SCSI ID                       False
     sw_fc_class  3            FC Class for Fabric                   True
    

    ... und so, wenn ein Link besteht:

     # lsattr -El fscsi1
     attach       switch       How this adapter is CONNECTED         False
     dyntrk       no           Dynamic Tracking of FC Devices        True
     fc_err_recov delayed_fail FC Fabric Event Error RECOVERY Policy True
     scsi_id      0x610100     Adapter SCSI ID                       False
     sw_fc_class  3            FC Class for Fabric                   True
    

    ... und so schließlich, wenn gar kein Kabel liegt:

     # lsattr -El fscsi1
     attach       al       How this adapter is CONNECTED         False
     dyntrk       no           Dynamic Tracking of FC Devices        True
     fc_err_recov delayed_fail FC Fabric Event Error RECOVERY Policy True
     scsi_id      0x610100     Adapter SCSI ID                       False
     sw_fc_class  3            FC Class for Fabric                   True
    

    al steht für Arbitrary Loop. Dies bedeutet, dass der Adapter nicht mit einem Switch verbunden ist. Normalerweise fehlt also das Kabel. Die gleiche Ausgabe erhält man aber auch, falls eine FAStT beispielsweise ohne Switch direkt mit den FC-Adaptern verbunden ist.

     

    3. Wie kann ich unter AIX eine Dummy-Disk als Platzhalter erzeugen?

    Folgende Ausgangssitutation führt dazu, dass z.B. die nächste SAN-Disk zu hdisk0 werden würde:

     # lsdev -Cc disk
     hdisk1 Available 06-08-00-4,0 16 Bit LVD SCSI Disk Drive
     hdisk2 Available 06-08-00-5,0 16 Bit LVD SCSI Disk Drive
    

    Um dies zu verhindern, kann man eine Dummy-Disk definieren, z.B. so:

     # mkdev -l hdisk0 -c disk -t osdisk -s scsi -p scsi0 -w 0,10 -d
     hdisk0 defined
     

    Nun ergibt sich folgendes Bild:

     # lsdev -Cc disk
     hdisk0 Defined   06-08-00-0,10 Other SCSI Disk Drive
     hdisk1 Available 06-08-00-4,0  16 Bit LVD SCSI Disk Drive
     hdisk2 Available 06-08-00-5,0  16 Bit LVD SCSI Disk Drive
    

    ... und die nächste SAN-Disk wird zu hdisk3.

    Voraussetzung für diesen Trick ist allerdings, dass der LPAR ein SAS-Controller zugewiesen ist. Unter AIX 5.3 gibt es noch die Möglichkeit eine fiktive SSA-Disk anzulegen - das funktioniert auch ohne SAS-Controller:

     # mkdev -l hdisk0 -p ssar -t hdisk -w dummy
     mkdev: 0514-519 The following device was not found in the customized
             device configuration database:
             name='ssar'
    

    Trotz der Fehlermeldung gibt es nun eine hdisk0:

     # lsdev -Cc disk
     hdisk0 Defined                SSA Logical Disk Drive
     hdisk1 Available 06-08-00-4,0 16 Bit LVD SCSI Disk Drive
     hdisk2 Available 06-08-00-5,0 16 Bit LVD SCSI Disk Drive
    

    Ab AIX 6.1 TL6 oder AIX 7.1 geht das alles viel einfacher:

     # lspv
     hdisk0          00c8b12ce3c7d496                    rootvg          active
     hdisk1          00c8b12cf28e737b                    None
     # rendev -l hdisk1 hdisk99
     # lspv
     hdisk0          00c8b12ce3c7d496                    rootvg          active
     hdisk99         00c8b12cf28e737b                    None
    

     

    4. Wie lässt sich der VGDA eines PV (hdisk) direkt auslesen?

    Informationen über VGs, LVs, Dateisysteme etc. werden nicht nur in der ODM gespeichert, jedes PV (hdisk, vpath) hält ebenso alle Informationen im VGDA (den ersten 512Byte). Dieser kann unter Umgehung der ODM direkt ausgelesen werden:

     # lqueryvg -Atp hdisk100
    
    Mit
     # redefinevg -d hdisk100 myvg
    

    können die Informationen der ODM an diese Informationen angepasst werden, umgekehrt kann der VGDA (aller PVs einer VG) entsprechend den ODM-Informationen mit

     # synclvodm myvg
    

    neu geschrieben werden.

     

    5. Wie lässt sich ein Storage Lock auf einer SAN-Disk brechen?

    Endlich die ersehnte SAN-Disk bekommen und dann das, es lässt sich keine Volume Group darauf anlegen. mkvg -f vpath100 gibt einen I/O Error. Was tun?

    Höchstwahrscheinlich befindet sich noch ein Lock auf der SAN-Disk. Für vpath-Devices lässt sich der Lock mit dem Befehl

     # lquerypr -ch /dev/vpath100
    

    aufbrechen und die Volume Group kann angelegt werden. Werden dagegen die neueren sddpcm-Treiber genutzt, gibt's dafür das Kommando

     # pcmquerypr -ch /dev/hdisk100
    

     

    6. Wie lässt sich eine SCSI-Disk unter AIX indentifizieren?

    Um eine hot-plug-fähige SCSI-Disk unter AIX zu indentifizieren, kann man Sie blinken lassen. Dazu benutzt man

     # diag
    

    Dann werden hintereinander folgende Menü-Punkte angewählt:

     > Task Selection (Diagnostics, Advanced Diagnostics, Service Aids, etc.)
             > Hot Plug Task
                     > SCSI and SCSI RAID Hot Plug Manager
                             > Identify a Device Attached to a SCSI Hot Swap Enclosure Device
    

    Nun erscheinen alle Hot-Plug-Geräte und man muss nur die hdisk anwählen, die identifiziert werden soll:

    IDENTIFY DEVICE ATTACHED TO SCSI HOT SWAP ENCLOSURE DEVICE
    
    The following is a list of devices attached to SCSI Hot Swap Enclosure devices.
    Selecting a slot will set the LED indicator to Identify.
    
    Make selection, use Enter to continue.
    
    
                    U0.1-
      ses2            P1-I1/Z1-Af
         slot  1      P1-I1/Z1-A8          hdisk2
         slot  2      P1-I1/Z1-A9          hdisk3
         slot  3      P1-I1/Z1-Aa          hdisk4
         slot  4      P1-I1/Z1-Ab          hdisk5
         slot  5      P1-I1/Z1-Ac          hdisk6
         slot  6      P1-I1/Z1-Ad          hdisk7
         slot  7      P1-I1/Z1-Ae          hdisk8
    
                    U0.1-
      ses3            P1-I5/Z1-Af
         slot  1      P1-I5/Z1-A0          hdisk9
         slot  2      P1-I5/Z1-A1          hdisk10
         slot  3      P1-I5/Z1-A2          hdisk11
         slot  4      P1-I5/Z1-A3          hdisk12
         slot  5      P1-I5/Z1-A4          hdisk13
         slot  6      P1-I5/Z1-A5          hdisk14
         slot  7     +------------------------------------------------------+
                     |                                                      |
                     | The LED should be in the Identify state for the      |
                     | selected device.                                     |
                     |                                                      |
                     | Use 'Enter' to put the device LED in the             |
                     | Normal state and return to the previous menu.        |
                     |                                                      |
                     | F3=Cancel        F10=Exit         Enter              |
                     +------------------------------------------------------+
    F1=Help                 F10=Exit
    
    

    Hat man die hdisk bereits mit dem rmdev-Kommando aus der ODM entfernt, kann man die Platte trotzdem blinken lassen - im Menü oben wäre der Slot immer noch sichtbar, allerdings wäre ihm kein Gerätename zugeordnet.

     

    7. Wie lässt sich ein Tape-Device umbenennen?

    Tape-Devices (rmtX und smcX) lassen sich ganz einfach mit chdev umbenennen. So benennen Sie z.B. rmt0 in rmt201 um:

    # chdev -l rmt0 -a new_name=rmt201
    rmt0 changed
    

    Aber Achtung: Das klappt so wirklich nur mit Tapes. Dazu hat IBM in der ODM für alle Tape-Devices und Media Changer eigens das Attribut new_name definiert.

    Update: Mit AIX 7.1 und mit dem TL6 von AIX 6.1 hat IBM die Möglichkeit eingeführt alle Devices einfach mit dem rendev-Kommando umzubennen - damit lassen sich nun also auch Ethernet-Adapter oder Platten umbennen, z.B.:

    # rendev -l ent0 -n ent99
    

     

    8. Wie lässt sich feststellen, auf welchen hdisks sich eine boot-Signatur befindet?

    # ipl_varyon -i
    
    
    PVNAME          BOOT DEVICE     PVID                                    VOLUME GROUP ID
    hdisk0          YES             00f64183e8ff11c50000000000000000        00f6418300004c00
    hdisk1          NO              00f6418384f345d00000000000000000        00f6418300004c00
    hdisk2          NO              00f6418384f346210000000000000000        00f6418300004c00
    hdisk3          NO              00f6418384f3466c0000000000000000        00f6418300004c00
    hdisk4          NO              00f6418384f346b00000000000000000        00f6418300004c00
    hdisk5          NO              00f6418384f346f20000000000000000        00f6418300004c00
    hdisk6          NO              00f6418384f44fca0000000000000000        00f6418300004c00
    hdisk7          NO              00f6418384f450150000000000000000        00f6418300004c00
    hdisk8          NO              00f6418384f450540000000000000000        00f6418300004c00
    hdisk9          NO              00f6418384f4508f0000000000000000        00f6418300004c00
    hdisk10         NO              00f6418384f450ca0000000000000000        00f6418300004c00
    hdisk11         NO              00f6418384f347390000000000000000        00f6418300004c00
    hdisk12         NO              00f6418384f450ff0000000000000000        00f6418300004c00
    

    Aus der Ausgabe ergibt sich, dass nur von hdisk0 gebootet werden kann.

     

    9. Wie lassen sich HBA-Statistiken auslesen?

    Dazu kann das Kommando fcstat genutzt werden:

    # fcstat fcs0
    
    Die Ausgabe ist ziemlich lang, deshalb fehlt sie hier. Interessieren Sie sich beispielsweise nur für die Portgeschwindigkeit, kann die Ausgabe auf Port Speed eingeschränkt werden:

    # fcstat fcs0 | grep 'Port Speed'
    Port Speed (supported): 8 GBIT
    Port Speed (running):   4 GBIT
    

     

    10. Wo finde ich WWPNs von FibreChannel-Adaptern im SMS-Menu?

    Zwar nicht direkt im SMS-Menü, aber bei neuerer Hardware kann man die WWPNs am OpenFirmware Prompt abfragen. Dazu wird die LPAR von der HMC aus in den Open Firmware Prompt gebootet und das Kommando ioinfo abgesetzt:

              1 = SMS Menu                          5 = Default Boot List
              8 = Open Firmware Prompt              6 = Stored Boot List
    
    
         Memory      Keyboard     Network     SCSI     Speaker
    
    0 > ioinfo
    
    !!! IOINFO: FOR IBM INTERNAL USE ONLY !!!
    This tool gives you information about SCSI,IDE,SATA,SAS,and USB devices attached to the system
    
    Select a tool from the following
    
     1. SCSIINFO
     2. IDEINFO
     3. SATAINFO
     4. SASINFO
     5. USBINFO
     6. FCINFO
     7. VSCSIINFO
    
    q - quit/exit
    
    ==> 6
    
    
    
    FCINFO Main Menu
    Select a FC Node from the following list:
      #  Location Code                Pathname
    ---------------------------------------------------------------
      1. U5877.001.0082113-P1-C10-T1    /pci@80000002000012b/fibre-channel@0
      2. U5877.001.0082113-P1-C10-T2    /pci@80000002000012b/fibre-channel@0,1
      3. U5877.001.0082924-P1-C10-T1    /pci@80000002000013b/fibre-channel@0
      4. U5877.001.0082924-P1-C10-T2    /pci@80000002000013b/fibre-channel@0,1
    
      q - Quit/Exit
    
    ==> 1
    
    FC Node Menu
    FC Node String: /pci@80000002000012b/fibre-channel@0
    FC Node WorldWidePortName: 10000000c9d08fd0 
    -----------------------------------------------------------------
    1. List Attached FC Devices
    2. Select a FC Device
    3. Enable/Disable FC Adapter Debug flags
    
    q - Quit/Exit
    

    Die WWPN lautet also: 10000000c9d08fd0. Aus einem laufenden AIX-System heraus erhielte man dasselbe Ergebnis durch:

    # lscfg -vpl fcs0 | grep 'Network Address'
            Network Address.............10000000C9D08FD0
    

     

    11. Wie lässt sich die tatsächliche qdepth für ein LUN herausfinden?

    Die qdepth lässt sich ja mit chdev setzen und mit lsattr leicht auslesen:

     # chdev -l hdisk100 -a queue_depth=8
     hdisk100 changed
     # lsattr -El hdisk100 -a queue_depth
     queue_depth 8 Queue DEPTH True
    

    Ist die hdisk jedoch im Zugriff ist dies nicht möglich. Mit dem zusätzlichen Schalter '-P' kann man den Parameter aber in die ODM schreiben. Bis zum nächsten Reboot arbeitet der Kernel dann jedoch noch mit dem alten Wert. Und hier kommt das Problem. lsattr zeigt den neuen Wert obwohl der Kernel noch mit dem alten Wert arbeitet:

     # lsattr -El hdisk100 -a queue_depth
     queue_depth 20 Queue DEPTH True
     # chdev -l hdisk100 -a queue_depth=8 -P
     hdisk100 changed
     # lsattr -El hdisk100 -a queue_depth
     queue_depth 8 Queue DEPTH True
    

    Wie kann ich aber herausfinden, mit welchem Wert der Kernel wirklich arbeitet? Da bleibt nichts, als den Kernel-Debugger zu bemühen:

     # echo scsidisk hdisk100 | kdb | grep queue_depth
       ushort queue_depth   = 0x14;
    

    Der Wert ist hexadezimal und lässt sich z.B. so in den Dezimalwert umrechnen, den lsattr anzeigen würde:

     # printf "%d\n" 0x14
     20
    

     

    12. Wie mache ich vergrößerte LUNs in einer Volume Group bekannt?

    Wenn die SAN-Admins LUNs vergrößern, bemerkt die Volume Group davon erstmal nichts... Was muss ich tun?

    Um LUN-Größen neu einzulesen wird der Befehl

     # chvg -g <Volume Group>
    
    benutzt. Dies funktioniert allerdings nicht bei der rootvg und nicht unter HACMP¹.


    ¹ Laut IBM Tech Note IZ80021 sind diese Restriktionen ab AIX 6.1 TL04 und für AIX 7.1 aufgehoben worden. Für Scalable VGs sollte man aber mindestens bis AIX 6.1 TL7 SP5 bzw AIX 6.1 TL6 SP9 warten, da sich vorher ein Fehler in der Funktion befand.

     

    13. Wie lässt sich die Anzahl parallel zu synchronisierender Logical Partitons festlegen?

    Im Normalfall synchronisieren die Kommandos syncvg und varyonvg Logical Partitions nicht parallel - bei heutigen Dateisystemgrößen kann der Synchronisationsprozess deshalb sehr lange dauern. Dieses Verhalten kann allerdings durch Setzen der Variablen NUM_PARALLEL_LPS  geändert werden. Die Variable wird vor dem Absetzen des Synchronisationsbefehls auf einen Wert zwischen 2 und 32 gesetzt:

    # export NUM_PARALLEL_LPS=8
    # varyonvg myvg
    

    oder

    # export NUM_PARALLEL_LPS=8
    # syncvg -v myvg
    

    Im Beispiel werden 8 Partitionen gleichzeitig synchronisiert. Genügend CPU Ressourcen vorausgesetzt beschleunigt dies den Synchronisationsprozess annähernd um den Faktor 8.

    Mit dem syncvg Kommando kann der gleiche Effekt übrigens mit dem Schalter -P  erzielt werden:

    # syncvg -P 8 -v myvg
    

    Falls Sie aber varyonvg  zum Synchronisieren bevorzugen, bleibt das Setzen der Variablen NUM_PARALLEL_LPS  die einzige Möglichkeit.

     

    14. Wie lassen sich "Geisterpfade" entfernen?

    Es kann vorkommen, dass ein LUN zweipfadig angeschlossen ist, lspath  die Pfade aber jeweils zweimal anzeigt - einmal im Status Missing und einmal im Status Enabled:

    # lspath -l hdisk151
    Missing hdisk151 fscsi0
    Missing hdisk151 fscsi1
    Enabled hdisk151 fscsi0
    Enabled hdisk151 fscsi1
    

    Die Ursache ist meistens irgendwo im SAN zu finden, ein neuer Switchport, ein umgestecktes Kabel, etc. Aber wie lassen sich diese "Geisterpfade" wieder löschen ohne die funktionierenden Pfade mit herunter zu nehmen?

    Das ist ganz einfach - allen Pfaden zu einem LUN weist AIX nämlich eine eindeutige Pfad-ID zu:

    # lspath -l hdisk151 -F "path_id:parent:path_status:status"  
    0:fscsi0:Missing:N/A
    1:fscsi1:Missing:N/A
    2:fscsi0:Available:Enabled
    3:fscsi1:Available:Enabled
    

    Wir müssen also nur die Pfade mit den IDs 0 und 1 löschen...

    # rmpath -dl hdisk152 -i 0
    paths Deleted
    # rmpath -dl hdisk151 -i 1                             
    paths Deleted
    

    ...und die "Geisterpfade" sind verschwunden:

    # lspath -l hdisk151 -F "path_id:parent:path_status:status"
    2:fscsi0:Available:Enabled
    3:fscsi1:Available:Enabled
    
    # lspath -l hdisk151
    Enabled hdisk151 fscsi0
    Enabled hdisk151 fscsi1
    

     

    15. Wie erstelle ich ein Mapfile für eine Spiegelkopie?

    hdisk100 sei die Platte, auf der sich das LV mylv zur Zeit befindet, hdisk101 die Platte, auf der eine exakte Spiegelkopie angelegt werden soll, dann lässt sich ein Mapfile mylv.map für mklvcopy mit

    # lslv -m mylv | awk '/hdisk/ { printf( "hdisk101:%d\n", $2 ) }' | tee mylv.map
    hdisk101:1
    hdisk101:2
    hdisk101:3
    hdisk101:4
    

    erzeugen.

    Erstreckt sich ein LV über mehrere Platten, dann hilft sed:

    # lslv -m mylv | awk '/hdisk/ { printf( "%s:%d\n", $3, $2 ) }' | sed -e 's/hdisk100\:/hdisk200\:/' -e 's/hdisk101\:/hdisk201\:/' | tee mylv.map
    hdisk200:1
    hdisk201:1
    hdisk200:2
    hdisk201:2
    hdisk200:3
    hdisk201:3
    hdisk200:4
    hdisk201:4 
    

    Im obigen Beispiel soll hdisk100 auf hdisk200 und hdisk101 auf hdisk201 gespiegelt werden. Das Mapfile wird mklvcopy dann über den Schalter -m mitgegeben:

    # mklvcopy -m mylv.map mylv 2
    

     

    16. Wie lässt sich ein PV aus dem Status removed wieder in den Status active bringen?

    Nach einem Ausfall eines Storage-Systems kann es vorkommen, dass sich ein PV im Status 'removed' befindet:

    # lsvg -p rootvg
    rootvg
    PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
    hdisk1  removed  432       136      76..00..00..00..60
    hdisk2  active   432       136      76..00..00..00..60
    

    In solch einem Fall kann das PV wie folgt wieder in den Status 'active' gebracht werden:

    # chpv -va hdisk1
    # syncvg -P 4 -v rootvg
    

    Der Schalter '-P 4' zu syncvg ist optional und bewirkt, dass 4 PPs parallel synchronisiert werden. Je nach Systemauslastung kann der Wert angepasst werden. Gültige Werte liegen zwischen 1 und 32.

     

    17. Wie kann ich eine Platte eindeutig identifizieren, wenn sie noch keine PVID erhalten hat?

    Jede Platte hat eine eindeutige ID. Der nicht dokumentierte Schalter  '-u'  zu lspv  zeigt sie:

    # # lspv -u
    hdisk0    00f9957ea30b4914   rootvg    active   382136000097000029260225453303146433909SYMMETRIX03EMCfcp    a89fe28e-670f-bf70-2839-10f5613ced79
    hdisk1    00f9957d124ae080   rootvg    active   382136000097000029260225453303142443909SYMMETRIX03EMCfcp    07efb86d-90e4-524b-0408-0f666c4c7b18
    hdisk2    none               None               382136000097000029260225453303333333309SYMMETRIX03EMCfcp    3feb8a34-a485-c793-e4b1-4f0e5a673df0
    hdisk3    none               None               382136000097000029260225453303333333409SYMMETRIX03EMCfcp    aa8a42aa-3b11-9463-005b-ce97cbf18635
    

    Die letzte Spalte listet die eindeutige ID.

     

    Sonstiges

    1. Wie kann ich unter AIX 5.3 Benutzer mit langen Login-Namen (mehr als 8 Zeichen) anlegen?

    Seit der AIX Version 5.3 gibt es die Möglichkeit, Benutzer mit langem Login-Namen anzulegen. Dazu muss diese Option zunächst systemweit aktiviert werden:

     # chdev -l sys0 -a max_logname=13
    

    Das Beispiel erlaubt Login-Namen mit bis zu 12 Zeichen.

     

    2. Was muss ich tun, damit ich Passwörter mit mehr als 8 Zeichen nutzen kann?

    AIX akzeptiert zwar Passwörter mit mehr als 8 Zeichen. Schnell stellt man aber fest, dass alle Zeichen ab dem 9. in Wahrheit ignoriert werden. Das erscheint nicht mehr zeitgemäß. Kann man da was machen?

    Um längere Passwörter zu verwenden, muss nur ein weiterer Eintrag der Datei /etc/security/login.cfg  hinzugefügt werden:

     usw: 
      shells = /bin/sh,/bin/bsh,/bin/csh,/bin/ksh,/bin/tsh,/bin/ksh93,/usr/bin/sh,/usr/bin/bsh,/usr/bin/csh,/usr/bin/ksh,/usr/bin/tsh,/usr/bin/ksh93
      maxlogins = 32767 
      logintimeout = 60 
      maxroles = 8 
      auth_type = STD_AUTH 
      pwd_algorithm = ssha256
    

    Mit der letzten Zeile wird der Hash-Algorithmus von crypt  auf ssha256  umgestellt, der Passwortlängen bis zu 255 Zeichen erlaubt. Weitere mögliche Hash-Algorithmen finden sich in der Datei /etc/security/pwdalg.cfg.

     

    3. Die richtigen Einstellungen für Sommer- und Winterzeit?

    Die Einstellungen werden über die Variable TZ gesteuert. Sie wird in der Datei /etc/environment gesetzt. Ein richtiger Eintrag für Deutschland und viele weitere europäische Länder wäre z.B.:

     TZ=CET-1CST,M3.5.0/2:00,M10.5/3:00
    

    Wenn Sie die Variable ändern, müssen alle Services, die von der korrekten Zeit in irgendeiner Weise abhängen, neu gestartet werden.

    Seit AIX 7 und AIX 6.1 TL5 oder neuer werden auch symbolische ("Olson") Werte akzeptiert, für Deutschland könnte TZ so gesetzt werden:

     TZ=Europe/Berlin
    

     

    4. Lassen sich schon gelöschte Dateien anzeigen, die aber noch von einem Prozess geöffnet sind?

    fuser -V -d auf das fragliche Dateisystem liefert die Informationen über Inode und PID:

    # fuser -V -d /tmp
    /tmp:
    inode=7      size=56           fd=2      512238
    

    Die PID wiederum führt zum gesuchten Prozess:

    # ps -fp 512238
    USER         PID    PPID    C   STIME     TTY    TIME CMD
    root      512238       1    0   Mar 20      -    3:29 /usr/sbin/rsct/bin/ctcasd
    

     

    5. Wie bekomme ich erlaubte Werte für Device-Attribute heraus?

    Im folgenden Beispiel geht es um das Attribut init_link des Fibrechannel-Adapters:

    # lsattr -El fcs0
    bus_intr_lvl  121        Bus interrupt level                                False
    bus_io_addr   0xbfc00    Bus I/O address                                    False
    bus_mem_addr  0xc0040000 Bus memory address                                 False
    init_link     al         INIT Link flags                                    True
    intr_priority 3          Interrupt priority                                 False
    lg_term_dma   0x800000   Long term DMA                                      True
    max_xfer_size 0x100000   Maximum Transfer Size                              True
    num_cmd_elems 200        Maximum number of COMMANDS to queue to the adapter True
    pref_alpa     0x1        Preferred AL_PA                                    True
    sw_fc_class   2          FC Class for Fabric                                True
    

    True in der letzten Spalte gibt an, dass sich der Wert verändern lässt. Doch welche Werte sind für das Attribut erlaubt? Um das herauszufinden kann ebenfalls der Befehl lsattr benutzt werden:

    # lsattr -Rl fcs0 -a init_link
    al
    pt2pt
    

    Erlaubte Werte sind also al und pt2pt. So ließe sich das Attribut dann ändern:

    # chdev -l fcs0 -a init_link=pt2pt
    fcs0 changed
    

     

    6. Wie lässt sich ein ISO-Image unter AIX mounten?

    Seit AIX 6.1 TL4 kann dazu das Kommando loopmount verwendet werden:

    # ls -l *.iso
    -rw-r--r--    1 root     system     43974656 Jan 13 17:05 dvd_aix_profilemanager.iso
    # loopmount -i dvd_aix_profilemanager.iso -o "-V cdrfs -o ro" -m /mnt
    # df /mnt
    Filesystem    512-blocks      Free %Used    Iused %Iused Mounted on
    /dev/loop0         84812         0  100%    21203   100% /mnt
    

     

    7. Wie lässt sich ein defektes /dev/ipldevice reparieren?

    Ich habe die rootvg auf eine neue Platte migriert. Nun bekomme ich Fehlermeldungen bei jeder Spiegeloperation. Mir ist klar, dass das Problem durch einen Reboot gelöst wird. Doch wie kann ich das Problem ohne einen Reboot beheben?

    Das Problem liegt daran, dass /dev/ipldevice auf das letze Bootdevice zeigt. Nach der Migration zeigt /dev/ipldevice aber ins Nirvana und es kommt zu den besagten Fehlermeldungem, die übrigens harmlos sind:

    # unmirrorvg rootvg hdisk2
    
    0516-1734 rmlvcopy: Warning, savebase failed.  Please manually run 'savebase' before rebooting.
    0516-1734 unmirrorvg: Warning, savebase failed.  Please manually run 'savebase' before rebooting.
    

    Durch Erneuerung des Links auf das neue Bootdevice lässt sich das Problem einfach beheben:

    # lslv -l hd5
    hd5:N/A
    PV                COPIES        IN BAND       DISTRIBUTION  
    hdisk16           001:000:000   0%            001:000:000:000:000 
    
    # cd /dev
    # ls -l ipldevice
    crw-------    2 root     system       17,  2 Nov 18 2010  ipldevice
    # rm -f ipldevice
    # ln rhdisk16 ipldevice
    # ls -l ipldevice rhdisk16     
    crw-------    2 root     system       17, 16 Jun 25 10:58 ipldevice
    crw-------    2 root     system       17, 16 Jun 25 10:58 rhdisk16
    
    # savebase
    

    Man beachte, dass hier ein Hardlink erforderlich ist!

     

    8. Wie vergrößert man das Dump-Device?

    Mit «sysdumpdev -e» berechnet das System die voraussichtliche Größe eines System-Dumps:

    # sysdumpdev -e
    0453-041 Estimated dump size in bytes: 547146956
    

    und mit «sysdumpdev -l» kann man sich das Dump-Device anzeigen lassen:

    # sysdumpdev -l
    primary              /dev/hd7
    secondary            /dev/sysdumpnull
    copy directory       /var/adm/ras
    forced copy flag     TRUE
    always allow dump    TRUE
    dump compression     ON
    

    In diesem Fall also hd7, der Standard unter AIX. Die Größe des Dumps entspricht der Größe des LVs.

    # lslv hd7 | egrep 'PP SIZE|LPs'
    MAX LPs:            512                    PP SIZE:        256 megabyte(s)
    LPs:                2                      PPs:            2
    

    Die obigen 547146956 Bytes sind also harscharf zu viel für unser Dump-Device, das 2 * 256 MB = 512 MB Platz bietet. Es muss also um ein LP vergrößert werden:

    # extendlv hd7 1
    # lslv hd7 | egrep 'PP SIZE|LPs'
    MAX LPs:            512                    PP SIZE:        256 megabyte(s)
    LPs:                3                      PPs:            3
    

     

    9. Wie lassen sich Corefiles umbiegen?

    Corefiles können systemweit in ein bestimmtes Dateisystem (hier: /corefiles) geschrieben werden. Sinnvollerweise wird zunächst ein Dateisystem dafür angelegt:

    # mklv -c 2 -s s -u 1 -t jfs2 -y coredump rootvg 66
    coredump
    # crfs -v jfs2 -m /corefiles -d /dev/coredump -A yes -p rw
    File system created successfully.
    1081104 kilobytes total disk space.
    New File System size is 2162688
    # mount /corefiles
    

    Normalerweise landen Corefiles im Startverzeichnis des abgestürzten Prozesses:

    # lscore -d
    compression: off
    path specification: off
    corefile location: not set
    naming specification: off
    

    Mit  chcore lässt sich dies ändern:

    # chcore -p on -l /corefiles -n on -d
    # lscore -d
    compression: off
    path specification: on
    corefile location: /corefiles
    naming specification: on
    

    Nun landen alle Corefiles im Verzeichnis /corefiles