Contents


Configuring IBM DB2 with BLU Acceleration to support IBM AIX Live Update

IBM DB2 with BLU Acceleration workload remains alive during an AIX Live Update operation

Comments

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

  1. Install DB2 and start workload on system as required.
  2. 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:

  1. Configure an AIX LPAR as a DB2 server.
  2. Perform AIX Live Update when DB2 workload is running on the LPAR.
  3. 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:

  1. 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
    #
  2. Set the maximum number of processors as 8192 using the chdev command. Below is the output:

    chdev -l sys0 -a maxuproc='8192'

  3. Set the status for iocp0 to available using mkdev command. Below is the output:

    mkdev -l iocp0
    chdev -l iocp0 -a autoconfig='available' -P
    iocp0 changed

  4. Create DB2 user and group group, and set a password using the mkgroup and passwd 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=
    $

  5. 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/<version>.
  6. Create database instance with user details using the db2icert command. Below is the command output:

    db2icrt -a SERVER -s ese -u blu

  7. List the DB2 instance that you just created using the following command:

    $ /opt/IBM/db2/V10.5/bin/db2ilist blu $

  8. 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".

  9. Start DB2 on your system, we need to switch using the su command to DB2 instance and run the db2start 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.
    $

  10. 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
    $
  11. 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)
  12. 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.
    $

  13. To make the changes effective, run the db2stop and db2start 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.
    $

  14. 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:

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

  2. 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

  3. 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

  4. Customize the /var/adm/ras/liveupdate.data file as follows:

    kext_check = yes

    disks:
    nhdisk = <hdiskX>
    mhdisk = <hdiskX>
    tohdisk = <hdiskX>
    tshdisk = <hdiskX>

    Note: Substitute hdiskX 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)

  5. Authenticate the HMC using the hmcauth command:

    $ hmcauth -u <user> -a <hmc_name> -p <password>

  6. 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

  7. Run the db2set command to check what values are set for each variable. Refer to the following output of the db2set 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 the DB2TCP_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.

  8. 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.
  9. 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

  10. Run the db2set command again to check if the DB2TCP_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
    $

  11. 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.
  12. 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.

Related topics

AIX Live Update basic configuration details


Downloadable resources


Comments

Sign in or register to add and subscribe to comments.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=AIX and UNIX
ArticleID=1060402
ArticleTitle=Configuring IBM DB2 with BLU Acceleration to support IBM AIX Live Update
publish-date=04242018