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.

Here’s 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

1To 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.

2To reject fixes for a VIOS with the
vioserver1 NIM object name, type:

nim
-o updateios -a updateios_flags=-reject vioserver1

3To clean up partially installed updates for
a VIOS with the vioserver1 NIM object name, type:

nim
-o updateios -a updateios_flags=-cleanup vioserver1

4To commit updates for a VIOS with the
vioserver1 NIM object name, type:

nim
-o updateios -a updateios_flags=-commit vioserver1

5To
remove a specific update such as update1 for a VIOS with the vioserver1 NIM
object name, type:

There’s 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.

Next I thought I’d
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.

So I start with a
standard JFS2 filesystem, without any additional mount options.

NIM
[/] # mount | grep cg

/dev/cglv/cgjfs2Jan 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/cgjfs2Jan 18 21:14 rw,rbr,log=/dev/hd8

Still can’t
dynamically mount a filesystem with CIO however. But that’s 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. I’d 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, let’s 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 let’s create a new
VG with infinite retry enabled.

AIX7[/]
# mkvg -O y
-S -y cgvg hdisk6

cgvg

AIX7[/]
# lsvg cgvg

VOLUME
GROUP:cgvgVG IDENTIFIER:00f6048800004c0000000134f4236851

VG
STATE:activePP SIZE:128 megabyte(s)

VG
PERMISSION:read/writeTOTAL PPs:1599 (204672 megabytes)

MAX
LVs:256FREE PPs:1599 (204672 megabytes)

LVs:0USED PPs:0 (0 megabytes)

OPEN
LVs:0QUORUM:2 (Enabled)

TOTAL
PVs:1VG DESCRIPTORS: 2

STALE
PVs:0STALE PPs:0

ACTIVE
PVs:1AUTO ON:yes

MAX
PPs per VG:32768MAX PVs:1024

LTG
size (Dynamic): 128 kilobyte(s)AUTO SYNC:no

HOT
SPARE:noBB POLICY:relocatable

MIRROR
POOL STRICT: off

PV
RESTRICTION:noneINFINITE RETRY: yes

AIX7[/]
#

Now, let’s disable it.

AIX7[/]
# chvg -On
cgvg

AIX7[/]
# lsvg cgvg

VOLUME
GROUP:cgvgVG IDENTIFIER:00f6048800004c0000000134f4236851

VG
STATE:activePP SIZE:128 megabyte(s)

VG
PERMISSION:read/writeTOTAL PPs:1599 (204672 megabytes)

MAX
LVs:256FREE PPs:1599 (204672 megabytes)

LVs:0USED PPs:0 (0 megabytes)

OPEN
LVs:0QUORUM:2 (Enabled)

TOTAL
PVs:1VG DESCRIPTORS: 2

STALE
PVs:0STALE PPs:0

ACTIVE
PVs:1AUTO ON:yes

MAX
PPs per VG:32768MAX PVs:1024

LTG
size (Dynamic): 128 kilobyte(s)AUTO SYNC:no

HOT
SPARE:noBB POLICY:relocatable

MIRROR
POOL STRICT: off

PV
RESTRICTION:noneINFINITE 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.

And last, but not
least, let’s take a brief look at Active
System Optimiser (ASO). To be
honest, I’m 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? Let’s 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

asoinoperative

Can I start it now? Nope.

AIX7[/var/log]
# startsrc -s aso

0513-059
The aso Subsystem has been started. Subsystem PID is 7209122.