An introduction to AIX Live Update
IBM® delivers kernel fixes in the form of ifixes to resolve issues that are reported by customers. If a fix changes the IBM AIX® kernel or loaded kernel extensions that cannot be unloaded, the host logical partition (LPAR) must be rebooted.
Starting with AIX version 7.2, AIX provides a feature called AIX Live Update where the AIX OS provides a new function that eliminates the downtime associated with patching the AIX operating system.
This new feature allows workloads to remain active during an AIX Live Update operation and the operating system can use the interim fix immediately without needing to restart the entire system.
Figure 1 represents how AIX Live Update works.
Figure 1. AIX Live Update block diagram

High-level overview
This article discusses the high-level concepts relating to AIX Live Update with IBM DB2® application running on an AIX system, and then provides a real example of how and what to do before performing AIX Live Update on an AIX system while the DB2 application is running on the system without causing any impact on the workload.
When customers have the DB2 application running on their system and want to perform AIX Live Update on it, we need to make sure that the DB2TCP_CLIENT_KEEPALIVE_TIMEOUT value is set properly to support AIX Live Update with DB2 workload running before AIX Live Update. We can set this value by checking the blackout time from the preview mode of AIX Live Update.
After setting this value, we can follow the steps to perform AIX Live Update.
Post AIX Live Update, we can see this DB2 workload or process running perfectly fine on an AIX system without any issues.
AIX Live Update with DB2 workload running on system
When we have the DB2 workload running as an application and a customer needs to perform AIX Live Update on that system, the customer needs to perform changes in the DB2 database configuration before performing AIX Live Update.
This article outlines the requirements for configuring an AIX partition with DB2 to support AIX Live Update.
Requirements
These requirements are based on testing performed by the IBM Integrated Systems Software Test team. The configuration used for testing consists of:
- OS level: AIX 7.2 SP1
- DB2 level: DB2 V10.5 FP7 and later
- Number of processors: 4 (Dedicated)
- Memory: 20GB
- Storage: virtual Fibre Channel (VFC), virtual SCSI (vSCSI), and shared storage pool (SSP)
Supported AIX versions for AIX Live Update
AIX 7.2 TL0 and later.
System requirements for AIX Live Update
System requirements will vary depending on the application workload running on the partition. The minimum requirements necessary for AIX Live Update (without a workload) is:
- Memory: 4 GB
- Number of processors: 1
- Storage: 4 disks (see Storage requirements in below table for details)
Storage requirement
AIX Live Update supports all virtual Fiber Channel and virtual SCSI devices, provided, a supported path-control module (PCM) is used. For example, the IBM default multipath I/O (MPIO), Subsystem Device Drive Path Control Module (SDDPCM), and EMC Power Path are supported, but Hitachi Dynamic Link Manager (HDLM) is not yet supported. Also, SAS devices are not supported.
A minimum of four disks (in addition to rootvg) are required. Each additional disk should be equal to (or greater than) the size of the rootvg disk.
Each disk used for AIX Live Update should be configured with a multipath setup and it has been already tested with IBM System Storage® DS8000® and IBM XIV® Storage System.
Storage requirement to perform AIX Live update with DB2 BLU configuration
Table 1. Storage requirement for AIX Live Update with DB2 BLU workload running
Number of disks | Size of the disk | Purpose |
---|---|---|
1 | 40 GB | Rootvg |
1 | 40 GB | Surrogate boot device (ndisk) |
1 | 40 GB | New rootvg mirror device (mdisk) |
1 | 40 GB | Temporary use for original boot device (todisk) |
1 | 40 GB | Temporary use for surrogate boot device (tsdisk) |
Note: Starting with version 7.2 TL1, the two temporary disks (todisk and tsdisk) are not required unless they have paging spaces outside the rootvg.
DB2 requirements
- Install DB2 and start workload on system as required.
- Set the appropriate value for the
DB2TCP_CLIENT_KEEPALIVE_TIMEOUT
registry. Update the parameter from the terminal window on the client:$ db2set DB2TCP_CLIENT_KEEPALIVE_TIMEOUT=<value>
Note: The value depends on the blackout time. However, AIX Live Update doesn’t have the way to determine blackout beforehand. A rule of thumb is to run AIX Live Update in preview mode to get the estimated blackout time and adjust the value of DB2TCP_CLIENT_KEEPALIVE_TIMEOUT
accordingly.
Configuration of DB2 to support AIX Live Update
Consider an AIX LPAR running with AIX 7.2 TL1 and you need to perform the following steps to configureDB2 to support AIX Live Update:
- Configure an AIX LPAR as a DB2 server.
- Perform AIX Live Update when DB2 workload is running on the LPAR.
- After completing AIX Live Update, validate the LPAR configuration to check DB2 configuration and status of workload.
Ensure system has met the processor and memory requirements as mentioned earlier.
$ prtconf
System Model: *
Machine Serial Number: *
Processor Type: PowerPC_POWER
Processor Implementation Mode: POWER
Processor Version: PV_8_Compat
Number Of Processors: 4
CPU Type: 64‑bit
Kernel Type: 64‑bit
Memory Size: 32768 MB (Minimum 20GB needed)
Ensure we have minimum 300 GB disks available in system. Prefer multiple disks of different sizes rather than getting a single 300 GB disk.
Ensure DB2 is configured with BLU acceleration workload and check db2start is already running on system.
For DB2 configuration, perform the following steps:
- Install bos.adt.debug and xlC.rte file sets. Below is the output:
#lslpp ‑l bos.adt.debug Fileset Level State Description ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑Path: /usr/lib/objrepos bos.adt.debug 7.1.5.15 COMMITTED Base Application Development Debuggers # # lslpp ‑l xlC.rte Fileset Level State Description ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Path: /usr/lib/objrepos xlC.rte 13.1.3.1 COMMITTED IBM XL C++ Runtime for AIX #
- Set the maximum number of processors as 8192 using the
chdev
command. Below is the output:chdev -l sys0 -a maxuproc='8192'
- Set the status for
iocp0
toavailable
usingmkdev
command. Below is the output:mkdev -l iocp0
chdev -l iocp0 -a autoconfig='available' -P
iocp0 changed
- Create DB2 user and group group, and set a password using the
mkgroup
andpasswd
commands. Refer to the following command output:# mkgroup -A id=300 blugp
# mkuser pgrp=blugp groups="blugp,staff" id=300 blu
# mkgroup -A id=300 blufgp
3004-692 Error changing "id" to "300" : Account exists.
# mkgroup -A id=301 blufgp
# mkuser pgrp=blufgp groups="blufgp,staff" id=301 blufc
# passwd blu
Changing password for "blu"
blu's New password:
Enter the new password again:
$ lsuser blu
blu id=203 pgrp=db2iadm1 groups=db2iadm1,staff home=/home/blu shell=/usr/bin/ksh roles=
$
- Install DB2 using the
db2install
command which is invoked from the path where the DB2 image is present. The DB2 binaries will be present in /opt/IBM/db2/. - Create database instance with user details using the
db2icert
command. Below is the command output:db2icrt -a SERVER -s ese -u blu
- List the DB2 instance that you just created using the following command:
$ /opt/IBM/db2/V10.5/bin/db2ilist blu $
- Check the DB2 level that is running on the system using the
db2level
command. The following output is displayed:$ db2level
DB21085I This instance or install (instance name, where applicable: "blu")
uses "64" bits and DB2 code release "SQL10058" with level identifier "0609010E".
Informational tokens are "DB2 v10.5.0.8", "s160901", "IP23998", and Fix Pack "8".
Product is installed at "/opt/IBM/db2/V10.5".
- Start DB2 on your system, we need to switch using the
su
command to DB2 instance and run thedb2start
command. The following output is displayed:$ su – blu
$db2start
02/06/2018 03:02:19 0 0 SQL1026N The database manager is already active.
SQL1026N The database manager is already active.
$
- Load your database and connect to your database using the following command:
$ db2 connect to BLUDB Database Connection Information Database server = DB2/AIX64 10.5.8 SQL authorization ID = BLU Local database alias = BLUDB $
- Check the heap size using the following command:
$ db2 get dbm cfg | grep heap Sort heap thres for shared sorts (4KB) (SHEAPTHRES_SHR) = 5000000 Sort list heap (4KB) (SORTHEAP) = 500000 Database heap (4KB) (DBHEAP) = AUTOMATIC(6243) Utilities heap size (4KB) (UTIL_HEAP_SZ) = 30000 (4KB) (STMTHEAP) = AUTOMATIC(16384) Default application heap (4KB) (APPLHEAPSZ) = AUTOMATIC(256) Statistics heap size (4KB) (STAT_HEAP_SZ) = AUTOMATIC(4384)
- If required, change the utilities heap size using the following command:
$ db2 update db cfg using UTIL_HEAP_SZ AUTOMATIC
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
$
- To make the changes effective, run the
db2stop
anddb2start
commands. Refer to the following output:$ db2stop force
$ db2start
02/06/2018 04:13:27 0 0 SQL1026N The database manager is already active.
SQL1026N The database manager is already active.
$
- After starting the DB2 workload, it is possible to check the state of all the processes using the
ps
command before we try for AIX Live Update. Refer to the following snapshot of the log:$ tail ‑f AgentMonitor.log AGENT [ 24] pluginRunner_24 ‑ Selects Status : ALIVE AGENT [ 25] pluginRunner_25 ‑ Selects Status : ALIVE AGENT [ 26] pluginRunner_26 ‑ Selects Status : ALIVE AGENT [ 27] pluginRunner_27 ‑ Selects Status : ALIVE AGENT [ 28] pluginRunner_28 ‑ Selects Status : ALIVE AGENT [ 29] pluginRunner_29 ‑ Selects Status : ALIVE AGENT [ 30] pluginRunner_30 ‑ Selects Status : ALIVE AGENT [ 31] pluginRunner_31 ‑ Selects Status : ALIVE
Configuring AIX Live Update
You need to perform the following steps to configure AIX Live Update:
- Create a temporary directory (/tmp/emgr/ppc) to store the interim fix. Copy the fix or fixes into this temporary directory.
$ mkdir -p /tmp/emgr/ppc
- Create a temporary directory to store any service pack (SP) update files. Copy the update file or files into this temporary directory. If there are none, then leave it empty.
$ mkdir -p /tmp/installp/ppc
- Create a copy of the AIX Live Update template for customization, naming it lvupdate.data.
$ cp /var/adm/ras/liveupdate/lvupdate.template /var/adm/ras/liveupdate/lvupdate.data
- Customize the /var/adm/ras/liveupdate.data file as follows:
kext_check = yes
disks:
nhdisk = <hdiskX>
mhdisk = <hdiskX>
tohdisk = <hdiskX>
tshdisk = <hdiskX>
Note: SubstitutehdiskX
with the correct hdisk number.hmc:
lpar_id = <partition id>
management_console = <IP address of the HMC>
user = hscroot (or any authorized, valid HMC user)
- Authenticate the HMC using the
hmcauth
command:$ hmcauth -u <user> -a <hmc_name> -p <password>
- List the HMC authentication token using the following command. This displays the HMC from which authentication is taken.
# hmcauth -l
Address : 9.3.48.37
User name: hscroot
Port : 12443
- Run the
db2set
command to check what values are set for each variable. Refer to the following output of thedb2set
command:$ whoami
blu
$ db2set -all
[i] DB2_WORKLOAD=ANALYTICS
[i] DB2SLEEP=ON
[i] DB2COMM=TCPIP
[i] DB2AUTOSTART=YES
[g] DB2SYSTEM=zachcust01.isst.pok.stglabs.ibm.com
[g] DB2INSTDEF=blu
$
As per above output, we don’t have theDB2TCP_CLIENT_KEEPALIVE_TIMEOUT
value set. So, we need to set an appropriate value for this attribute to support AIX Live Update with the DB2 workload running. We can set this value by checking the blackout time from preview mode of AIX Live Update. - To run the preview mode of AIX Live Update, use the
geninstall –k –p
command. Below is the command output:$ geninstall ‑k –p Validating AIX Live Updateinput data. Computing the estimated time for the AIX Live Updateoperation: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ LPAR: aix721534A Mode: F Blackout_time(s): 1200 Global_time(s): Checking mirror vg device size: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Required device size: 7216 MB Given device size: 51200 MB PASSED: device size is sufficient. Checking new root vg device size: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Required device size: 7216 MB Given device size: 51200 MB PASSED: device size is sufficient. Checking temporary paging space device size: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Required device size: 512 MB Checking temporary dump device size: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Required device size: 100 MB Validating the adapters and their paths: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ ‑‑‑‑‑‑‑‑‑‑ PASSED: adapters can be divided into two sets so that each has paths to all disks. Checking other requirements: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ PASSED: sufficient space available in /var. PASSED: sufficient space available in /. PASS ED: no existing altinst_rootvg. PASSED: rootvg is not part of a snapshot. PASSED: pkcs11 is not installed. PASSED: rootvg is not part of a snapshot. PASSED: The trustchk Trusted Execution Policy is not on. PASSED: The trustchk Trusted Library Policy is not on. PASSED: The trustchk TSD_FILES_LOCK policy is not on. PASSED: the boot disk is set to the current rootvg. PASSED: the mirrorvg name is available. PASSED: the rootvg is uniformly mirrored. PASSED: the rootvg does not have the maximum number of mirror c opies. PASSED: the rootvg does not have stale logical volumes. PASSED: all of the mounted file systems are of a supported type. PASSED: this AIX instance is not diskless. PASSED: no Kerberos configured for NFS mounts. PASSED: multibos environment not present. PASSED: Trusted Computing Base not defined. PASSED: no local tape devices found. PASSED: live update not executed from console. PASSED: the execution environment is valid. PASSED: enough available space for /var to dump Component Trace buffers. PASSED: enough available space for /var to dump Light weight memory Trace buffers. PASSED: all devices are virtual devices. PASSED: No active workload partition found. PASSED: nfs configuration supported. PASSED: HMC token is present. PASSED: HMC token is valid. PASSED: HMC requests successful. PASSED: Provided LPAR ID is available. PASSED: A virtual slot is available. PASSED: RSCT daemons are active. PASSED: no Kerberos configuration. PASSED: lpar is not remote restart capable. PASSED: no virtual log device configured. PASSED: lpar is not using shared memory or ams resources are available. PASSED: the disk configuration is supported. PASSED: no Generic Routing Encapsulation (GRE) tunnel configured. PASSED: Firmware level is supported. PASSED: vNIC resources available. INFO: Any system dumps present in the current dump logical volumes will not be available after live update is complete.
- From the preview mode, we see that the blackout time is set to 1200 sec. So, the
DB2TCP_CLIENT_KEEPALIVE_TIMEOUT
attribute value should be greater than 1200 sec. Set the attribute value using the following command:db2set DB2TCP_CLIENT_KEEPALIVE_TIMEOUT=3600
- Run the
db2set
command again to check if theDB2TCP_CLIENT_KEEPALIVE_TIMEOUT
value is set appropriately or not. Below the command output:$ db2set
DB2TCP_CLIENT_KEEPALIVE_TIMEOUT=3600
DB2_WORKLOAD=ANALYTICS
DB2SLEEP=ON
DB2COMM=TCPIP
DB2AUTOSTART=YES
$
- Perform AIX Live Update on the system with DB2 workload running using the following command:
#geninstall ‑k ‑d /tmp/cg/dummy dummy.150813.epkg.Z Validating live update input data. Computing the estimated time for the live update operation: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ LPAR: aix721534A Mode: F Blackout_time(s): 1200 Global_time(s): 670 Checking mirror vg device size: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Required device size: 7216 MB Given device size: 51200 MB PASSED: device size is sufficient. Checking new root vg device size: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Required device size: 7216 MB Given device size: 51200 MB PASSED: device size is sufficient. Checking temporary paging space device size: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Required device size: 512 MB Checking temporary dump device size: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ Required device size: 100 MB Validating the adapters and their paths: ‑‑‑‑‑‑ ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ PASSED: adapters can be divided into two sets so that each has paths to all disks. Checking other requirements: ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑ PASSED: sufficient space available in /var. PASSED: sufficient space available in /. PASSED: no existing altinst_rootvg. PASSED: rootvg is not part of a snapshot. PASSED: pkcs11 is not installed. PASSED: rootvg is not part of a snapshot. PASSED: The trustchk Trusted Execution Policy is not on. PASSED: The trustchk Trusted Library Policy is not on. PASSED: The trustchk TSD_FILES_LOCK policy is not on. PASSED: the boot disk is set to the current rootvg. PASSED: the mirrorvg name is available. PASSED: the rootvg is uniformly mirrored. PASSED: the rootvg does not have the maximum number of mirror copies. PASSED: the rootvg does not have stale logical volumes. PASSED: all of the mounted file systems are of a supported type. PASSED: this AIX instance is not diskless. PASSED: no Kerberos configured for NFS mounts. PASSED: multibos environment not present. PASSED: Trusted Computing Base not defined. PASSED: no local tape devices found. PASSED: live update not executed from console. PASSED: the execution environment is valid. PASSED: enough available space for /var to dump Component Trace buffers. PASSED: enough available space for /var to dump Light weight memory Trace buffer PASSED: all devices are virtual devices. PASSED: No active workload partition found. PASSED: nfs configuration supported. PASSED: HMC token is present. PASSED: HMC token is valid. PASSED: HMC requests successful. PASSED: Provided LPAR ID is available. PASSED: A virtual slot is available. PASSED: RSCT daemons are active. PASSED: no Kerberos configuration. PASSED: lpar is not remote restart capable. PASSED: no virtual log device configured. PASSED: lpar is not using shared memory or ams resources are available. PASSED: the disk configuration is supported. PASSED: no Generic Routing Encapsulation (GRE) tunnel configured. PASSED: Firmware level is supported. PASSED: vNIC resources available. INFO: Any system dumps present in the current dump logical volumes will not be a Non‑interruptable live update operation begins in 10 seconds. Live AIX update in progress. .................................... Initializing live update on original LPAR. Validating original LPAR environment. Beginning live update operation on original LPAR. Requesting resources required for live update. ..... ....... Notifying applications of impending live update. Creating rootvg for boot of surrogate. .................................................................... Starting the surrogate LPAR. .................................... Creating mirror of original LPAR's rootvg. ........................................ Moving workload to surrogate LPAR. ................ Blackout Time started. ......................................................................................... ..... .............. Blackout Time end. Workload is running on surrogate LPAR. .................................... Shutting down the Original LPAR. ........ ................ The live update operation succeeded.
- Use the following command to check the blackout time post AIX Live Update.
$ alog -t mobte –o
With successful AIX Live Update, we can see that the db2 instance is already running, and the database connection is still alive. We can also verify that the DB2 workload is running fine on the system when we look from logs.
Summary
This article helps users to understand the requirements for configuring an AIX partition with DB2 to support AIX Live Update.