This is the epic of the upgrade for the Virtual I/O server (VIOS) from version 1.4 to version 2.2. It's not a pleasant read, so if you're of a weak stomach, just skip the whole blog post, but note two things when it comes to VIOS and firmware upgrades:
- Always read the README
- Consider a fresh install of the VIOS
The Epic Begins
Much as we'd like all our systems to be running
the newest and latest of everything, most of us are not so lucky.
There are still some very old environments out there, running on old
hardware. I suppose it's a testimony to the systems that after 8 or
10 years, they can still run a business on them. There's nothing
like complete neglect to keep a reliable system running on inertia.
Just hope nobody needs to change anything.
I recently was asked to look at a system which was running dual Virtual I/O Servers (VIOS), both at version 184.108.40.206,
which dates back at least five years. The aim was to get them running
a recent VIOS version (220.127.116.11) so we could connect to new V7000 storage and a new
Fibre Channel switch. The ability to use
Shared Storage Pools on the VIOS was also an attraction.
The site had been running stably for some
years, but the firmware, VIOS and AIX were all seriously out of date.
A plan had to be worked out to upgrade.
For full disclosure, I have to say that the upgrade has not yet been done. This is just a walk through of the planning for the upgrade. So, take a deep breath, and here we go:
VIOS Hardware and Firmware Prereqs
The VIOS ties in so closely with the
hypervisor, that it's really critical to ensure your system firmware
is up to date before you consider any upgrades to your VIOS. If
you're using a Hardware Management Console (HMC), then that should be
at a compatible level. The upgrade order is:
- System Firmware
I might point out that in most documentation "Firmware" refers only to the System firmware. Device firmware, such as for Fibre Channel adapters, doesn't rate a mention. So my plan was to include that, since it undoubtedly would not have been updated since the system was first installed.
Firmware alert: setback #1
As the system I was working on was a Power5 server which was managed by a Hardware Management Console (HMC), I had to know if the system firmware would be Concurrent (no downtime) or Disruptive.
I was going from firmware version SF240_358 to SF240_417. In other words, the major release was SF240, so it should ordinarily be a concurrent update when your system is managed by the HMC.
HMC managed systems
- Service packs within a release are updates and can be installed concurrently in most cases. Levels above your current release are release upgrades and are disruptive.
Non-HMC managed systems
- Installing firmware is always disruptive.
However, this was not one of those "most cases" in which the installation could not be done concurrently:
The firmware update requested can not be installed concurrently because the update path contains a disruptive service pack.
In other words, complete downtime for all virtual clients and the VIO servers.
Firmware alert: setback #2
I also found that the adapter firmware had a prerequisite which I needed to be aware of:
If the adapter is in a partition running VIOS, it is required that VIOS v18.104.22.168 or later be installed. If VIOS is not at this level, install Fix Pack 11.1 prior to installing the new microcode. Failure to do so may result in damaging the adapter. Installing Fix Pack 11.1 will ensure that the required AIX APARs are installed.
Memory and Disk requirements
VIOS version 2.2 requires 4 GB of RAM and at
least 30 GB of disk for rootvg. (If you're using software mirroring
for rootvg, you need at least 60 GB).
updateios Won't Do Everything!
When you log
into the VIOS restricted shell as the user padmin,
you have a simplified command set. The commands are very easy to
learn, and once you get used to them, you can almost guess your way
Now there's a
great command for running updates called updateios.
The syntax is very easy. For example, if you have your updates in a
directory called /home/padmin/update, then the command you need is:
Now you might think that moving from VIOS 1.4
to VIOS 2.2 only requires these steps:
- Download the latest VIOS updates from the IBM
- Copy them to a directory on my VIOS
- Run updateios
Not So Fast!
It would be nice, but I wasn't so lucky.
I was going from version 1.X (in my case 22.214.171.124) to version 2.X, I
need to use the migration media. As you may know, the current VIOS
2.X is running AIX 6.1 under the covers. And by “under the covers”
I mean using that sneaky oem_setup_env
command which gives you full root access to the underlying AIX. When
you're logged in as padmin, on the other hand, you're in a restricted
shell, with a very limited command set available.
Migration to VIOS 2.X
First Stop: IBM Support Portal
the first port of call was the IBM Support Portal. You can just go to
and then select Support & Downloads or take the shortcut to IBM
You'll need an IBM ID to log in. Registration is free and it only
takes a minute to do.
select the product, in the Product Group, click on the drop down box
and go to Software >
Virtualization software. Here's a screenshot:
in the box Select from Virtualization
software, use the drop down to
go to PowerVM Virtual I/O Server:
From there you can choose the Installed
Version. You can find that out by logging onto the Virtual I/O Server
as the user padmin and then running the command ioslevel.
Notice that 126.96.36.199 doesn't even make the list? The oldest version starts at 188.8.131.52. I'd have to make do.
184.108.40.206 is old. My beloved Virtual Media Repository was introduced with version 1.5. That alone was reason for me to upgrade.
Stop Roadblock: Getting to version 2.X
I was aware that moving from version 1.X to version 2.X required booting off a Migration DVD (or NIM resource). That made sense, because it's a similar procedure when you're migrating from AIX 5.3 to AIX 6.1 or 7.1. This jump is not just a list of patches (similar to the AIX update_all command). It was a migration. So, I thought the best approach would be to use the latest available Migration DVD. The Support Portal pointed me to
Migration DVD 220.127.116.11
However, using that DVD had a prerequisite: the last 18.104.22.168 Service Pack. Could I update from 22.214.171.124 to 126.96.36.199 (latest Service Pack)?
I went to the readme and found that (alas):
VIOS 188.8.131.52-FP 11.1 SP-02 should be applied to systems that are currently at IOS Level 184.108.40.206-FP-11.1. If your IOS level is lower than 220.127.116.11-FP11.1, you must install Fix Pack 11.1 before you can install the Service Pack.
So my upgrade path was now looking like this:
- Use updateios to get from 18.104.22.168 to 22.214.171.124-FP11.1
- updateios again from 126.96.36.199-FP11.1 to 188.8.131.52-FP 11.1 SP-02
- Boot off Migration DVD 184.108.40.206 and continue migration
- updateios to get to the latest available VIOS (220.127.116.11-FP24 at the time of writing this blog)
I haven't mentioned the time taken to download, back up, reboot etc. which are essential to each of the above steps.
A Small Breakthrough
I found on the IBM Support Portal another, older, VIOS Migration DVD, which would take me from 1.X to 2.1.
Now my upgrade path looked like this:
- Boot off Migration DVD 18.104.22.168 and continue migration
- updateios to bring me to the latest available VIOS
That's much simpler.
I went to the IBM
Support Portal, selected Downloads and then downloaded the latest VIOS packs. At last, my plan was complete, and I should be able to run updateios, which is all I ever wanted to run in the first place.
An Alternate Approach
If you think this was jumping too many hoops, consider another option for your own environment: doing a fresh install of the VIOS. Sure, you'd need to map and recreate Virtual Target Devices, and Shared Ethernet Adapters, but if you're organised and have all of that well-documented, it may be a better option, especially if you only only have a small number of virtual disks that get mapped through to clients.