After reading about the latest AIX updates here: http://t.co/bkIpnXkS I decided to download and install the latest TL & SP for AIX 6.1 and 7.1 and take a peek at some of the latest features.
Heres what I found so far.
There appears to be some new integration between NIM and the VIOS. The nim command now has an updateios option e.g. nim o updateios.
So you can update your VIO servers from NIM now. This is nice.
On my lab NIM master I checked the nim man page and found the following new information:
NIM [/] # oslevel -s
6100-07-02-1150
NIM [/] # man nim
...
updateios
Performs software customization and maintenance on a virtual input output server (VIOS) management server that is of the vios or ivm type.
updateios
1 To install fixes or to update VIOS with the vioserver1 NIM object name to the latest maintenance level, type:
nim -o updateios -a lpp_source=lpp_source1 -a preview=no vioserver1
The updates are stored in lpp_source and lpp_source1 files. Note: The updateios operation runs a preview during installation. Running the updateios operation from NIM runs a preview unless the preview flag is set to no. During the installation, you must run a preview when using the updateios operation with updatios_flags=-install. With the preview, you can check if the installation is running accurately before proceeding with the VIOS update.
2 To reject fixes for a VIOS with the vioserver1 NIM object name, type:
nim -o updateios -a updateios_flags=-reject vioserver1
3 To clean up partially installed updates for a VIOS with the vioserver1 NIM object name, type:
nim -o updateios -a updateios_flags=-cleanup vioserver1
4 To commit updates for a VIOS with the vioserver1 NIM object name, type:
nim -o updateios -a updateios_flags=-commit vioserver1
5 To remove a specific update such as update1 for a VIOS with the vioserver1 NIM object name, type:
nim -o updateios -a updateios_flags=-remove-a filesets="update1" vioserver1
6 To remove updates for a VIOS with the vioserver1 NIM object name by using an installp_bundle bundle1, where bundle1 contains the updates to be removed, type:
nim -o updateios -a updateios_flags=remove -a installp_bundle=bundle1 vioserver1
===
Theres also mention of a new resource type, specifically for VIOS mksysbs. This resource type is called ios_mksysb:
...
ios_mksysb
Represents a backup image taken from a VIOS management server that is of the vios or ivm type.
26 To define a ios_mksysb resource such as ios_mksysb1, and create the ios_mksysb image of the vios client as vios1, during the resource definition where the image is located in /export/nim/ios_mksysb on the master, type:
nim -o define -t ios_mksysb -a server=master \
-a location=/export/nim/ios_mksysb -a source=vios1 \
-a mk_image=yes ios_mksysb1
This is all starting to come together now, since the introduction of the new management object class, vios, with AIX 6.1 TL3.
# smit nim
Manage Control Objects
Define a Management Object
+--------------------------------------------------------------------------+
| Management Object Type |
| |
| Move cursor to desired item and press Enter. Use arrow keys to scroll. |
| |
| hmc = specifies the management object type for hmc hardware |
| cec = specifies the management object type for cec hardware |
| vios = specifies the virtual hardware server object |
| ivm = specifies the integrated virtual manager object |
| bcmm = specifies the management object type for management module hard |
Next I thought Id take a look at the TCP Fast Loopback option. This new option should help to reduce TCP/IP (CPU) overhead when two (TCP) communication end points reside in the same LPAR. This could be useful where you have an LPAR running a database and application in the same LPAR e.g. SAP and Oracle in the same LPAR. It can also be used when two or more WPARs, in the same LPAR need to communicate with each other over TCP/IP.
I turned on this new feature on my AIX 7.1 LPAR.
AIX7[/] # oslevel -s
7100-01-02-1150
AIX7[/] # netstat -p tcp | grep fastpath
0 fastpath loopback connection
0 fastpath loopback sent packet (0 byte)
0 fastpath loopback received packet (0 byte)
AIX7[/] # no -p -o tcp_fastlo=1
Setting tcp_fastlo to 1
Setting tcp_fastlo to 1 in nextboot file
Change to tunable tcp_fastlo, will only be effective for future connections
AIX7[/] # no -p -o tcp_fastlo_crosswpar=1
Setting tcp_fastlo to 1
Setting tcp_fastlo to 1 in nextboot file
Change to tunable tcp_fastlo, will only be effective for future connections
AIX7[/] # no -a | grep tcp_fast
tcp_fastlo = 1
tcp_fastlo_crosswpar = 1
Initially I did not see any traffic via the fastpath.
AIX7[/] # netstat -s -p tcp | grep fastpath
0 fastpath loopback connection
0 fastpath loopback sent packet (0 byte)
0 fastpath loopback received packet (0 byte)
So I created two WPARs in the same LPAR and started transferring files between them via FTP.
AIX7[/] # lswpar -N
Name Interface Address(6) Mask/Prefix Broadcast
----------------------------------------------------------------
wpar1 en0 172.29.152.235 255.255.192.0 172.29.191.255
wpar2 en0 172.29.152.236 255.255.192.0 172.29.191.255
And sure enough I started to see some traffic.
AIX7[/] # netstat -s -p tcp | grep fastpath
7072 fastpath loopback connection
171102 fastpath loopback sent packet (5374011130 byte)
171102 fastpath loopback received packet (5374011130 byte)
Next stop: JFS2 Remount Support. Apparently you can now change certain mount options dynamically. These particular options can influence (among other things) filesystem caching.
NIM [/] # oslevel -s
6100-07-02-1150
So I start with a standard JFS2 filesystem, without any additional mount options.
NIM [/] # mount | grep cg
/dev/cglv /cg jfs2 Jan 18 21:14 rw,log=/dev/hd8
Then I dynamically remounted it with the rbr option. This option will prevent user data pages from being cached after a file is read from this filesystem.
NIM [/] # mount -o remount,rbr /cg
NIM [/] # mount | grep cg
/dev/cglv /cg jfs2 Jan 18 21:14 rw,rbr,log=/dev/hd8
Still cant dynamically mount a filesystem with CIO however. But thats OK.
NIM [/] # mount -o remount,cio /cg
mount: cio is not valid with the remount option.
According to the presentation, there are several options that can now be changed dynamically e.g. atime,rbr,rbw,suid,dev, etc. Take a look at the presentation if you are interested in this new functionality.
By the way, just to make sure, I tried changing the same mount option, dynamically, on an AIX 6.1 TL6 system, and it failed as expected. Id have to umount and mount the filesystem to do this on TL6 (or lower).
# oslevel -s
6100-06-04-1112
# mount -o remount,rbr /cg
mount: remount,rbr,log=/dev/loglv00 is not valid with the remount option.
OK, lets look at the new LVM Infinite Retry Capability. Designed to improve system availability, by allowing LVM to recover from transient failures of storage devices. Sounds interesting!
AIX7[/] # oslevel -s
7100-01-02-1150
The man page for mkvg states the following:
-O y / n
Enables the infinite retry option of the logical volume.
n
The infinite retry option of the logical volume is not enabled. The failing I/O of the logical volume is not retried. This is the default value.
y
The infinite retry option of the logical volume is enabled. The failed I/O request is retried until it is successful.
I think logical volume should be volume group. But anyway, I get the idea.
So lets create a new VG with infinite retry enabled.
AIX7[/] # mkvg -O y -S -y cgvg hdisk6
cgvg
AIX7[/] # lsvg cgvg
VOLUME GROUP: cgvg VG IDENTIFIER: 00f6048800004c0000000134f4236851
VG STATE: active PP SIZE: 128 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 1599 (204672 megabytes)
MAX LVs: 256 FREE PPs: 1599 (204672 megabytes)
LVs: 0 USED PPs: 0 (0 megabytes)
OPEN LVs: 0 QUORUM: 2 (Enabled)
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32768 MAX PVs: 1024
LTG size (Dynamic): 128 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
MIRROR POOL STRICT: off
PV RESTRICTION: none INFINITE RETRY: yes
AIX7[/] #
Now, lets disable it.
AIX7[/] # chvg -On cgvg
AIX7[/] # lsvg cgvg
VOLUME GROUP: cgvg VG IDENTIFIER: 00f6048800004c0000000134f4236851
VG STATE: active PP SIZE: 128 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 1599 (204672 megabytes)
MAX LVs: 256 FREE PPs: 1599 (204672 megabytes)
LVs: 0 USED PPs: 0 (0 megabytes)
OPEN LVs: 0 QUORUM: 2 (Enabled)
TOTAL PVs: 1 VG DESCRIPTORS: 2
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 1 AUTO ON: yes
MAX PPs per VG: 32768 MAX PVs: 1024
LTG size (Dynamic): 128 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
MIRROR POOL STRICT: off
PV RESTRICTION: none INFINITE RETRY: no
AIX7[/] #
The man page for mklv states the following:
-O y / n
Enables the infinite retry option of the logical volume.
n
The infinite retry option of the logical volume is not enabled. The failing I/O of the logical volume is not retried. This is the default value.
y
The infinite retry option of the logical volume is enabled. The failed I/O request is retried until it is successful.
Standby, creating a logical volume with infinite retry enabled.
AIX7[/] # mklv -tjfs2 -Oy -y mylv cgvg 100
mylv
AIX7[/] # lslv mylv
LOGICAL VOLUME: mylv VOLUME GROUP: cgvg
LV IDENTIFIER: 00f6048800004c0000000134f4236851.1 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: jfs2 WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 128 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 100 PPs: 100
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: N/A LABEL: None
DEVICE UID: 0 DEVICE GID: 0
DEVICE PERMISSIONS: 432
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
INFINITE RETRY: yes
DEVICESUBTYPE: DS_LVZ
COPY 1 MIRROR POOL: None
COPY 2 MIRROR POOL: None
COPY 3 MIRROR POOL: None
AIX7[/] #
Can I disable it, once I have a mounted filesystem on the LV? No. You must unmount the filesystem first. OK, no problem.
AIX7[/] # chlv -On mylv
0516-012 lchangelv: Logical volume must be closed. If the logical
volume contains a filesystem, the umount command will close
the LV device.
0516-704 chlv: Unable to change logical volume mylv.
AIX7[/] # umount /myfs
AIX7[/] # chlv -On mylv
AIX7[/] # mount /myfs
AIX7[/] # lslv mylv
LOGICAL VOLUME: mylv VOLUME GROUP: cgvg
LV IDENTIFIER: 00f6048800004c0000000134f4236851.1 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: jfs2 WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 128 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 100 PPs: 100
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: /myfs LABEL: /myfs
DEVICE UID: 0 DEVICE GID: 0
DEVICE PERMISSIONS: 432
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
INFINITE RETRY: no
DEVICESUBTYPE: DS_LVZ
COPY 1 MIRROR POOL: None
COPY 2 MIRROR POOL: None
COPY 3 MIRROR POOL: None
And last, but not least, lets take a brief look at Active System Optimiser (ASO). To be honest, Im still not entirely sure how ASO works. But I have no doubt that more information will be available from IBM soon. According to the presentation material, ASO can increase system performance by autonomously tuning system configuration. Wow, cool! It focuses on optimizing cache and memory affinity. Hmmm, interesting. How the heck does it do that!? Only works with POWER7 and AIX 7.1.
So can I enable this on my p7 LPAR? Lets give it a try!
AIX7[/] # oslevel -s
7100-01-02-1150
AIX7[/var/log/aso] # asoo -a
aso_active = 0
AIX7[/var/log/aso] # asoo -p -o aso_active=1
Setting aso_active to 1 in nextboot file
Setting aso_active to 1
AIX7[/var/log/aso] # asoo -a
aso_active = 1
Is the aso daemon running already? Nope.
AIX7[/] # ps -ef | grep aso
AIX7[/] # lssrc -a | grep aso
aso inoperative
Can I start it now? Nope.
AIX7[/var/log] # startsrc -s aso
0513-059 The aso Subsystem has been started. Subsystem PID is 7209122.
AIX7[/var/log] # lssrc -a | grep aso
aso inoperative
Lets check the ASO log file. Oh no, my VLP LPAR doesnt have enough CPU entitlement for ASO to start. Oh well.
AIX7[/var/log] # cd /var/log/aso
AIX7[/var/log/aso] # ls -ltr
total 16
-rw-r--r-- 1 root system 1143 Jan 18 22:14 aso_process.log
-rw-r--r-- 1 root system 1143 Jan 18 22:14 aso.log
AIX7[/var/log/aso] # cat aso.log
Jan 18 22:14:00 l488pp011_pub aso:notice aso[7209122]: /var/run/aso locked with pid 7209122
Jan 18 22:14:00 l488pp011_pub aso:notice aso[7209122]: [STOP] Maximum system entitlement is 0.5 CPUs, but must be at least 2.0 CPUs for ASO to operate. Stopping.
Jan 18 22:14:00 l488pp011_pub aso:notice aso[7209122]: [STOP] Unsupported partition configuration detected; ASO will not run.