UserPreferences

PlatformNotes/AixNotes


  1. AIX Notes
    1. Questions (and Possibly Answers)
    2. Hints and Tips
      1. Finding the Size of a Physical Volume
      2. LVM Commands
        1. Determine which LVs are mirrored
        2. List logicial volumes in a volume group
      3. Find a system's serial number
      4. Info about ethernet devices
      5. ODM-Configured Static Routes
      6. Upgrade firmware from floppy
      7. Package Management
    3. OS Update
    4. ODM
      1. ODM Object Classes
    5. General
      1. Maximum User Processes
    6. HMC Configuration
      1. Enable Remote Syslog
      2. Enable and Add NTP Servers
    7. Undocumented Commands
      1. lqueryvg

1. AIX Notes

Lots of good information on AIX and RS/6000/pSeries systems is at [WWW]rootvg.net. I've put together an IbmGlossary for all the strange acronyms that IBM uses; it used to be here, but there's a lot of overlap with ../ZseriesNotes.

1.1. Questions (and Possibly Answers)

  1. Q: Why are there a lot of extra routes in the routing table?

    A: This is an artifact of path MTU discovery. Discovered path MTUs are stored in the routing table. These routes are temporary and usually have flags of UGHW.

1.2. Hints and Tips

Feel free to add to this list or fix mistakes.

1.2.1. Finding the Size of a Physical Volume

You can determine the size of a physical volume without first importing it into a volume group with the undocumented bootinfo command:
# bootinfo -s <disk>

This returns the size in megabytes. It works for SCSI drives, VIO vSCSI volumes, SAN LUNs, etc.

1.2.2. LVM Commands

1.2.2.1. Determine which LVs are mirrored
lsvg -l <vgname>

Compare the counts of LPs to PPs. A mirrored LV will have 2 times as many PPs as LPs.

1.2.2.2. List logicial volumes in a volume group
lsvg -l <vgname>

1.2.3. Find a system's serial number

lscfg -pv |grep Cabinet

1.2.4. Info about ethernet devices

lscfg -vpl ent0

This shows MAC address, physical location, etc.

1.2.5. ODM-Configured Static Routes

Routes tend to be added to the ODM when added through SMIT but the cannot be likewise removed from the ODM with SMIT. To query the route entries in the ODM:
# lsattr -El inet0 -a route
Or:
$ odmget -q "name=inet0" CuAt

CuAt:
        name = "inet0"
        attribute = "hostname"
        value = "zeus.example.com"
        type = "R"
        generic = "DU"
        rep = "s"
        nls_index = 24

CuAt:
        name = "inet0"
        attribute = "route"
        value = "net,-hopcount,0,,0,192.168.10.1"
        type = "R"
        generic = "DU"
        rep = "s"
        nls_index = 0

CuAt:
        name = "inet0"
        attribute = "route"
        value = "net,-hopcount,0,-netmask,255.255.255.0,,,10.11.12.0,192.168.10.2"
        type = "R"
        generic = "DU"
        rep = "s"
        nls_index = 0
The entries with attribute = "route" are static routing table entries added automatically at boot. Routes can be deleted using the chdev command or by manipulating the ODM directly. Using chdev:
# chdev -l inet0 -a delroute=net,-hopcount,0,-netmask,255.255.255.0,,,10.11.12.0,192.168.10.2
To delete an entry using the ODM, it must be identified by it's value seen in the odmget command above:
# odmdelete -o CuAt -q "name=inet0 and value=net,-hopcount,0,-netmask,255.255.255.0,,,10.11.12.0,192.168.10.2"

1.2.6. Upgrade firmware from floppy

(This might be incomplete or wrong. I don't remember; it's been a long time since I did it.)

restore /dev/fd0
/usr/lpp/diagnostics/bin/update_flash -f

1.2.7. Package Management

See PackageManagerCheatsheet

1.3. OS Update

The "oslevel" command can be used to determine what filesets need to be installed to bring a system to a given technology level or service pack. This information is from the bos.rte.install fileset, although I have never actually find where it is listed; it may be in the binary itself. The -g option shows filesets newer than the requested level and the -l shows filesets that are older. To determine what is needed to upgrade from one technology level to another, use the -r option and the 6-digit technology level. For a service pack, use the -s and the 8-digit service pack level.

First, install the current bos.rte.install for the level you want to upgrade to. If your system is behind at the technology level, use "oslevel -rl 5300-0X" to show you what updates are required. Similarly, if your system requires service pack updates, use "oslevel -sl 5300-0X-0Y".

Here's an example from one of my recent upgrades, going from 5300-05-04 to 5300-05-05. First, check the current service pack level:
$ oslevel -s
5300-05-04
Then check what's newer than 5300-05-04:
$ oslevel -sg 5300-05-04
Fileset                                 Actual Level       Service Pack Level
-----------------------------------------------------------------------------
bos.rte.install                         5.3.0.55           5.3.0.54       
As you can see, I have already updated bos.rte.install. Now check what fileset versions are required for the service pack update:
$ oslevel -sl 5300-05-05
Fileset                                 Actual Level       Service Pack Level
-----------------------------------------------------------------------------
bos.adt.include                         5.3.0.53           5.3.0.54       
bos.mp64                                5.3.0.54           5.3.0.55       
bos.mp                                  5.3.0.54           5.3.0.55       
...

These are particularly handy if you have applied updates but find that oslevel

Also, to determine which Technology Levels and Service Packs your oslevel command knows about, you can use the -q option:
$ oslevel -sq
Known Service Packs
-------------------
5300-05-05
5300-05-04
...
$ oslevel -rq
Known Recommended Maintenance Levels
------------------------------------
5300-05
5300-04
5300-03

1.4. ODM

1.4.1. ODM Object Classes

Ever wondered what all of those file names are you have to use with "odmget"? Here's a table from [WWW]Technical Reference: Kernel and Subsystems, Volume 2:
PdDv Predefined Devices
PdCn Predefined Connection
PdAt Predefined Attribute
Config_Rules Configuration Rules
CuDv Customized Devices
CuDep Customized Dependency
CuAt Customized Attribute
CuDvDr Customized Device Driver
CuVPD Customized Vital Product Data

1.5. General

1.5.1. Maximum User Processes

AIX has a global hard limit on the number of processes an individual user may have, which can cause mysterious "fork: Resource temporarily unavailable" message when a user it. The limit even applies to root. You can find out what your limit is set to with "lsattr":
$ lsattr -HEl sys0 -a maxuproc
attribute value description                                  user_settable

maxuproc  128   Maximum number of PROCESSES allowed per user True
It can then be changed with "chdev":
# chdev -l sys0 -a maxuproc=200
sys0 changed

1.6. HMC Configuration

1.6.1. Enable Remote Syslog

Logged in to the HMC via SSH :
$ chhmc -c syslog -s add -h loghost.example.com

1.6.2. Enable and Add NTP Servers

Logged in to the HMC via SSH :
$ chhmc -c xntp -s add -h ntpserver.example.com

1.7. Undocumented Commands

1.7.1. lqueryvg

$ for X in $(perl -e 'for (a..z,A..Z){print $_," ";}'); do echo $X ":"; lqueryvg -t$X -g 00ce23da00004c00000001099df94648 2>&1; done

a :
Max LVs:        256
PP Size:        27
Free PPs:       4
LV count:       2
PV count:       3
Total VGDAs:    3
Conc Allowed:   0
MAX PPs per PV  1016
MAX PVs:        32
Conc Autovaryo  0
Varied on Conc  0
Total PPs:      239
LTG size:       128
HOT SPARE:      0
AUTO SYNC:      1
VG PERMISSION:  0
SNAPSHOT VG:    0
IS_PRIMARY VG:  0
PSNFSTPP:       4352
VG Type:        0
Max PPs:        32512
b :
SNAPSHOT VG:    0
c :
PV count:       3
d :
lqueryvg: illegal option -- d
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
e :
lqueryvg: illegal option -- e
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
f :
MAX PPs per PV  1016
g :
0516-010 lqueryvg: Volume group must be varied on; use varyonvg command.
h :
HOT SPARE:      0
i :
IS_PRIMARY VG:  0
j :
VG Type:        0
k :
Max PPs:        32512
l :
LTG size:       128
m :
MAX PVs:        32
n :
LV count:       2
o :
Total PPs:      239
p :
0516-082 lqueryvg: Unable to access a special device file.
         Execute redefinevg and synclvodm to build correct environment.
q :
r :
VG version:     30
s :
PP Size:        27
t :
Max LVs:        256
PP Size:        27
Free PPs:       4
LV count:       2
PV count:       3
Total VGDAs:    3
Conc Allowed:   0
MAX PPs per PV  1016
MAX PVs:        32
Conc Autovaryo  0
Varied on Conc  0
Total PPs:      239
LTG size:       128
HOT SPARE:      0
AUTO SYNC:      1
VG PERMISSION:  0
SNAPSHOT VG:    0
IS_PRIMARY VG:  0
PSNFSTPP:       4352
VG Type:        0
Max PPs:        32512
u :
lqueryvg: illegal option -- u
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
v :
w :
lqueryvg: illegal option -- w
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
x :
Conc Autovaryo  0
y :
AUTO SYNC:      1
z :
lqueryvg: illegal option -- z
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
A :
Max LVs:        256
PP Size:        27
Free PPs:       4
LV count:       2
PV count:       3
Total VGDAs:    3
Conc Allowed:   0
MAX PPs per PV  1016
MAX PVs:        32
Conc Autovaryo  0
Varied on Conc  0
Logical:        00ce23da00004c00000001099df94648.3   installlv 1  
                00ce23da00004c00000001099df94648.4   fslv01 1  
Physical:       00ce23da6409b93f                1   1  
                00ce23da6409bb88                1   1  
                00ce23daeca0fb0a                1   1  
Total PPs:      239
LTG size:       128
HOT SPARE:      0
AUTO SYNC:      1
VG PERMISSION:  0
SNAPSHOT VG:    0
IS_PRIMARY VG:  0
PSNFSTPP:       4352
VARYON MODE:    0
VG Type:        0
Max PPs:        32512
B :
Max LVs:        256
PP Size:        27
Free PPs:       4
LV count:       2
PV count:       3
Total VGDAs:    3
Conc Allowed:   0
MAX PPs per PV  1016
MAX PVs:        32
Conc Autovaryo  0
Varied on Conc  0
Total PPs:      239
LTG size:       128
HOT SPARE:      0
AUTO SYNC:      1
VG PERMISSION:  0
SNAPSHOT VG:    0
IS_PRIMARY VG:  0
PSNFSTPP:       4352
VG Type:        0
Max PPs:        32512
C :
Varied on Conc  0
D :
Total VGDAs:    3
E :
lqueryvg: illegal option -- E
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
F :
Free PPs:       4
G :
lqueryvg: illegal option -- G
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
H :
VARYON MODE:    0
I :
lqueryvg: illegal option -- I
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
J :
lqueryvg: illegal option -- J
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
K :
lqueryvg: illegal option -- K
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
L :
Logical:        00ce23da00004c00000001099df94648.3   installlv 1  
                00ce23da00004c00000001099df94648.4   fslv01 1  
M :
Max LVs:        256
PP Size:        128
Free PPs:       512
LV count:       2
PV count:       3
Total VGDAs:    3
Conc Allowed:   0
MAX PPs per PV  1016
MAX PVs:        32
Conc Autovaryo  0
Varied on Conc  0
Total PPs:      30592
LTG size:       128
HOT SPARE:      0
AUTO SYNC:      1
VG PERMISSION:  0
SNAPSHOT VG:    0
IS_PRIMARY VG:  0
PSNFSTPP:       4352
VG Type:        0
Max PPs:        32512
N :
Max LVs:        256
O :
lqueryvg: illegal option -- O
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
P :
Physical:       00ce23da6409b93f                1   1  
                00ce23da6409bb88                1   1  
                00ce23daeca0fb0a                1   1  
Q :
lqueryvg: illegal option -- Q
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
R :
VG PERMISSION:  0
S :
VGDA size:      2098
T :
Time Stamp:     47cb69910d21db31
U :
lqueryvg: illegal option -- U
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
V :
W :
lqueryvg: illegal option -- W
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
X :
Conc Allowed:   0
Y :
lqueryvg: illegal option -- Y
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]
Z :
lqueryvg: illegal option -- Z
Usage: lqueryvg [-g VGid | -p PVname] [-NsFncDaLPAvt]