Introduction

Virtualization plays a major role in cloud computing. The VIOS is part of the Advanced POWER Virtualization hardware feature, which enables sharing of physical resources between logical partitions including virtual Small Computer System Interface (SCSI) and virtual networking. To use IBM® Power Systems™ virtualization features, customer can set up the environment that consists of one or more Virtual I/O Servers and many VIOS client logical partitions (LPARs) using IBM AIX® or other supported operating systems such as Linux® or IBM i.

With IBM Power® virtualization, the VIOS plays an important role and all running VIOS client LPARs are fully dependent on the Virtual I/O Servers. In such an environment, updating VIOS to a next fix pack level can be challenging, without taking the system down for an extended period of time and incurring an outage. This can be mitigated by creating a copy of the current root volume group (rootvg) on an alternate disk and simultaneously applying fix pack updates first on the cloned rootvg on a new disk.

For example, updating VIOS 1.3.0.0 to 1.3.0.0-FP8, clone a 1.3.0.0 system, and then install updates to bring the cloned rootvg to 1.3.0.0-FP8. This updates the system while it was still running. Rebooting from the new rootvg disk brings the level of the running system to 1.3.0.0-FP8. If a problem with the new VIOS level were discovered, changing the bootlist back to the 1.3.0.0 disk and rebooting the server brings the system back to 1.3.0.0. Another scenario would include cloning the rootvg and applying individual fixes, rebooting the system and testing those fixes, and rebooting back to the original rootvg if there was a problem.

This article explains the step-by-step procedure for applying the next fix pack level on VIOS by creating a copy of the current rootvg on an alternate disk and simultaneously applying fix pack updates.

This overview of the update process prepares an administrator for the tasks to be performed so that the VIOS migration to higher level can be as quick and easy as possible. This is an intermediate level article and is targeted for system administrators who are working in the field of IBM Power Systems virtualization and using the VIOS.

We tested this procedure in our environment by updating VIOS 2.2.1.4 to VIOS 2.2.3.1 on an IBM POWER7® processor-based system.

Key points to understand on a VIOS 2.2.1.4 update:

  • If the cloning and update fails with an error message “0505-120 alt_disk_install: Error running bosboot in the cloned root volume group”, clean up the altinst_rootvg volume group using the alt_disk_install –X (root shell) command. Contact the IBM support team to get an interim fix for this problem and redo the clone and update procedure with interim fix installed on VIOS 2.2.1.4.
  • Direct update from VIOS 2.2.1.4 is possible without a share storage pool (the current level of the VIOS must be 2.2.2.1 or later if you use the share storage pool, otherwise, it must be 2.1.0 or later).
  • For more information about VIOS 2.2.3.1 update, constraints, and so on, you can refer to the Readme file or Release notes.

Updating VIOS to a later level

You need to perform the following steps to update VIOS to a later level.

  1. Prepare for the update.
  2. Clone and update VIOS.
  3. Perform post-update process on the existing VIOS level.
  4. Restart VIOS.
  5. Perform post-update process on the new VIOS level.
1

Preparing for the update

Backup of VIOS

You can create a backup of VIOS using the mksysb command or the viobr command. The mksysb command creates a backup of the entire rootvg. The viosbr command creates a backup of only the VIOS configuration. You will need to move those backup files to a remote location, for instance, Network File System (NFS).

Using mksysb

backupios -file <path to NFS location>/<file name> -mksysb

Using viobr

viosbr -backup -file <path to NFS location>/<file name>

Un-mirroring rootvg

If rootvg is mirrored on multiple disks on a source VIOS, you will need to un-mirror the rootvg before doing the update. You can skip this section if rootvg is not mirrored. To un-mirror the rootvg, we can use the unmirrorios command.

For example, if you booted VIOS from hdisk0 and want to un-mirror the root volume group on hdisk1, use the following (unmirriorios) command. You need to make sure that the dump devices are on hdisk0 before running the reducevg command.

unmirrorios hdisk1

Then, issue the reducevg command to reduce the disk out of the root volume group.

reducevg -rmlv rootvg <old hdisk#>

For example:

reducevg -rmlv rootvg hdisk1

Finally, use the bosboot and bootlist commands to reinitialize the boot record of the remaining disk and modify the boot list to remove the un-mirrored disk from the list. You can follow the steps below to achieve this.

bootlist -mode normal -ls (to view)
bootlist -mode normal <existing hdisk#>
bootlist -mode normal -ls (to view)
oem_setup_env (to get root shell)
bosboot -ad <existing hdisk#> (using root shell)
exit (using root shell to go back to the VIOS shell from the root shell)

Remove all interim fixes

Removal of the interim fixes can be done through padmin (VIOS shell).

Run the following command to list the interim fixes installed:

lssw

Run the following command to remove the interim fixes installed on the non-SSP node.

updateios -remove <ifix_LABEL>

Commit previous updates

Commit previous updates if it was not already done. Earlier updates must be committed before new updates can be applied.

updateios –commit

Download VIOS update package

You can download the VIOS update package from Fix Central to a location which can be accessed by the VIOS server.

2

Cloning and updating VIOS

Run the following command to perform cloning and updating VIOS.

alt_root_vg -target <new hdisk#> -bundle update_all -location < path to VIOS update package >
        2>&1|tee alt_root_vg_2231.log

All the logs will be in the alt_root_vg_2231.log file. Review the logs for any errors.

3

Performing post-update process on the existing VIOS level

Upon successful cloning and the update completion on a new disk, to keep the current VIOS environment as it was, you can reinstall all un-installed interim fixes using the following command.

updateios -dev <ifix directory> -install -accept
4

Restarting VIOS

Also upon successful cloning and the update completion on a new disk, you can restart the VIOS server on the updated level using the following command. This restarts the VIOS to the updated VIOS level.

shutdown –restart
5

Performing post-update process on the new VIOS level

If everything is successful, the next step is to commit the update. This is necessary before installing the interim fixes on top of the updated VIOS level.

updateios –commit

You should also review Fix Central information to understand whether any new interim fixes are available for the new VIOS level. You can download those interim fixes and install them using the process that is mentioned above.

Continuing the process, next you may optionally mirror rootvg after the update. You can follow the steps below to mirror rootvg on a new second disk.

extendvg rootvg <new hdisk#>
mirrorios -defer <new hdisk#>
bootlist -mode normal -ls (to view)
bootlist -mode normal <new hdisk#>
bootlist -mode normal -ls (to view)
oem_setup_env (to get root shell)
bosboot -ad <new hdisk#> (using root shell)
exit (using root shell, to go back to VIOS shell from root shell)