FAQ AIX
Inhalt
Backup und Restore
- Wie kann ich ein Verzeichnis mit »backup« archivieren?
- Wie lässt sich ein Verzeichnis bei einer mksysb-Sicherung ausschließen?
- Wie lässt sich ein komprimiertes tar-Archiv unter AIX entpacken?
- Wie kann ich einen älteren Versionsstand einer Datei aus einer TSM-Sicherung restaurieren?
- Wie erstellt man ein bootfähiges DVD Image aus einem mksysb?
- Wie restauriert man einzelne Dateien oder Verzeichnisse aus einem mksysb?
Hardware und Support
- Mit welchem Befehl analysiert man unter AIX 5L einen Dump?
- Wie lassen sich geladene Kernel-Extensions unter AIX anzeigen?
- Ist meine AIX-Maschine 64bit-fähig?
- Wie aktiviere ich den 64bit-Kernel? Oder ist er schon aktiv??
- Kann ich auf meiner RS/6000 noch AIX 5.2 oder höher installieren?
- Wie lässt sich der Versionsstand einer HMC feststellen?
- Wie lässt sich die Firmware einer p5 anzeigen?
- Wie erzeugt man einen Snap für den IBM-Support?
- Wie kann ich feststellen, welche HMC meine LPAR kontrolliert?
- Wie kann ich die LPAR-Konfiguration sehen, ohne mich auf der HMC anzumelden?
- Wie kann ich Statistiken aller LPARs eines Managed Systems sehen?
- Wie lassen sich die SMT-Einstellungen und Prozessor-Informationen überprüfen?
- Wie lässt sich auf einer LPAR die Zuordnung der fcs-Adapter zu einem VIO-Server feststellen?
- Wie lässt sich auf einer LPAR die Zuordnung der vscsi-Adapter zu einem VIO-Server feststellen?
- Wie lässt sich die Seriennummer der Maschine auslesen?
Netzwerk
- Wie lässt sich ein Backup-Ethernetadapter einrichten?
- Wie wird eine statische Route gesetzt?
- Wie kann ich einen AIX-Client über reservierte Ports mit einem NFS-Server verbinden?
- Wie setze ich ein IP-Alias unter AIX?
- Wie sehe ich den Linkstatus einer Netzwerkkarte?
- Wie lässt sich der Status eines Etherchannels überprüfen?
- Wie starte bzw. stoppe ich einen Subserver des Internet Superservers inetd?
- Wie und mit welchen Optionen richte ich einen NFS-Mount ein?
- Wie kann ich mit ftp Daten aus einer Pipe übertragen?
Software-Paketverwaltung
- Wie lässt sich eine Vorschau (PREVIEW only) auf einen ML/TL Upgrade durchführen?
- Wie spiele ich einen efix/ifix ein?
- Wie lassen sich Filesets und ihre Version auf einem Medium anzeigen?
- Wie kann ich mir Informationen über installierte Filesets und ihre Versionen in einer Zeile ausgeben lassen?
- «lppchk -v» gibt Fehler aus, Wo liegt die Ursache?
Storage Management
- Lässt sich die maximale Anzahl von PPs auf über 1016 erhöhen?
- Wie lässt sich unter AIX ein Link zu einem Fibrechannel-Switch feststellen?
- Wie kann ich unter AIX eine Dummy-Disk als Platzhalter erzeugen?
- Wie lässt sich der VGDA eines PV (hdisk) direkt auslesen?
- Wie lässt sich ein Storage Lock auf einer SAN-Disk brechen?
- Wie lässt sich eine SCSI-Disk unter AIX indentifizieren?
- Wie lässt sich ein Tape-Device umbenennen?
- Wie lässt sich feststellen, auf welchen hdisks sich eine boot-Signatur befindet?
- Wie lassen sich HBA-Statistiken auslesen?
- Wo finde ich WWPNs von FibreChannel-Adaptern im SMS-Menu?
- Wie lässt sich die tatsächliche qdepth für ein LUN herausfinden?
- Wie mache ich vergrößerte LUNs in einer Volume Group bekannt?
- Wie lässt sich die Anzahl parallel zu synchronisierender Logical Partitons festlegen?
- Wie lassen sich Geisterpfade entfernen?
- Wie erstelle ich ein Mapfile für eine Spiegelkopie?
- Wie lässt sich ein PV aus dem Status removed wieder in den Status active bringen?
- Wie kann ich eine Platte eindeutig identifizieren, wenn sie noch keine PVID erhalten hat?
Sonstiges
- Wie kann ich unter AIX 5.3 Benutzer mit langen Login-Namen (mehr als 8 Zeichen) anlegen?
- Was muss ich tun, damit ich Passwörter mit mehr als 8 Zeichen nutzen kann?
- Die richtigen Einstellungen für Sommer- und Winterzeit?
- Lassen sich schon gelöschte Dateien anzeigen, die aber noch von einem Prozess geöffnet sind?
- Wie bekomme ich erlaubte Werte für Device-Attribute heraus?
- Wie lässt sich ein ISO-Image unter AIX mounten?
- Wie lässt sich ein defektes /dev/ipldevice reparieren?
- Wie vergrößert man das Dump-Device?
- 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>
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>
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:
- Links "Licensed Internal Code Maintenance" aufklappen
- "HMC Code Update" anklicken
- 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 inetdabfragen.
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 hdisk100Mit
# 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
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 fcs0Die 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¹.
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