Reference: http://www.ibm.com/
Preparation
There are a few requirements that must be met before attempting to use nimadm to migrate to AIX 6.1. I'll mention just some of these here. I recommend that you review the online documentation for nimadm or the IBM NIM Redbook for more information (see the Resources section at the end of this article).- You must have a NIM master running AIX 6.1 or higher with the latest Technology Level or higher.
- The NIM master must have the bos.alt_disk_install.rte fileset installed in its own rootvg and in the SPOT that will be used for the migration. Both need to be at the same level. It is not necessary to install the alternate disk utilities on the client.
- The lpp_source and SPOT NIM resources that have been selected for the migration MUST match the AIX level to which you are migrating.
- The NIM master (as always) should be at the same or higher AIX level than the level you are migrating to on the client.
- The target client must be registered with the NIM master as a standalone NIM client.
- The NIM master must be able to execute remote commands on the client using rsh.
- Ensure the NIM client has a spare disk (not allocated to a volume group) large enough to contain a complete copy of its rootvg. If rootvg is mirrored, break the mirror and use one of the disks for the migration.
- Ensure the clients NIM master has a volume group (for example, nimadmvg) with enough free space to cater for a complete copy of the client's rootvg. If more than one AIX migration is occurring for multiple NIM clients, make sure there is capacity for a copy of each clients rootvg.
By default, the nimadm tool utilizes NFS for many of the tasks during the migration. This can be a problem on slower networks because NFS writes can be very expensive. To avoid using NFS, a Local Disk Caching option exists that can provide some performance advantages.
Local disk caching allows the NIM master to avoid having to use NFS to write to the client. This can be useful if the nimadm operation is not performing well due to an NFS write bottleneck.
If the Local Disk Caching function is invoked, then nimadm will create the client file systems in a volume group on the NIM master. It will then use streams (via rshd) to cache all of the data from the client to the file systems on the NIM master.
The advantages of local disk caching over NFS could be summarized as:
Improved performance for nimadm operations on relatively slow networks. - Improved performance for nimadm operations that are bottlenecked in NFS writes.
- Decreased CPU usage on the client.
- Client file systems not exported.
- Allows TCB enabled systems to be migrated with nimadm.
- Cache file systems take up space on the NIM master. You must have enough disk space in a volume group on the NIM master to host the client's rootvg file systems, plus some space for the migration of each client.
- Increased CPU usage on the NIM master.
- Increased I/O on the master. For best performance, use a volume group on the NIM master that does not contain the NIM resources being used for the AIX migration.
For performance reasons, we deploy Local Disk Caching with nimadm in our environment.
The nimadm command performs a migration in 12 phases. It is useful to have some knowledge of each phase before performing a migration. - The master issues the alt_disk_install command to the client, which makes a copy of the clients rootvg to the target disks. In this phase, the alternate root volume group (altinst_rootvg) is created.
- The NIM master creates the cache file systems in the nimadmvg volume group. Some initial checks for the required migration disk space are performed.
- The NIM master copies the NIM client's data to the cache file systems in nimadmvg. This data copy is done via rsh.
- If a pre-migration script resource has been specified, it is executed at this time.
- System configuration files are saved. Initial migration space is calculated and appropriate file system expansions are made. The bos image is restored and the device database is merged (similar to a conventional migration). All of the migration merge methods are executed, and some miscellaneous processing takes place.
- All system filesets are migrated using installp. Any required RPM images are also installed during this phase.
- If a post-migration script resource has been specified, it is executed at this time.
- The bosboot command is run to create a client boot image, which is written to the client's alternate boot logical volume (alt_hd5).
- All the migrated data is now copied from the NIM master's local cache file and synced to the client's alternate rootvg via rsh.
- The NIM master cleans up and removes the local cache file systems.
- The alt_disk_install command is called again to make the final adjustments and put altinst_rootvg to sleep. The bootlist is set to the target disk.
- Cleanup is executed to end the migration.
If you are unable to meet the requirements for phases 1 to 10, then you should consider performing a conventional migration.
Before we move onto a nimadm example, I just want to add a few points for you to consider first.- I recommended that you do not to make any changes to your system once the migration is underway, such as adding users, changing passwords, adding print queues, and the like. If possible, wait until the migration has finished and the system has been rebooted on the new version of AIX. If you must perform administration tasks prior to the reboot, you should take note of the changes and re-apply them to the system after it has been rebooted into AIX 6.1.
- We developed, tested, and verified our migration procedures several times before implementing them on our production systems. This allowed us time to verify that the steps were correct and that the AIX migrations would complete as expected. I recommend you do the same.
· If you have a multibos image in rootvg, remove it. AIX migrations are not supported with multibos enabled systems. Ensure all rootvg LVs are renamed to their legacy names. If necessary, create a new instance of rootvg and reboot the LPAR. For example:
# multibos –sXp
# multibos –sX
# shutdown –Fr
# lsvg -l rootvg | grep hd | grep open
hd6 paging 80 160 2 open/syncd N/A
hd8 jfs2log 1 2 2 open/syncd N/A
hd4 jfs2 1 2 2 open/syncd /
hd2 jfs2 7 14 2 open/syncd /usr
hd3 jfs2 16 32 2 open/syncd /tmp
hd1 jfs2 1 2 2 open/syncd /home
hd9var jfs2 8 16 2 open/syncd /var
hd7 sysdump 8 8 1 open/syncd N/A
hd7a sysdump 8 8 1 open/syncd N/A
hd10opt jfs2 8 16 2 open/syncd /opt
|
Remove the old multibos instance.
# multibos -R
|
Migrating to AIX 6.1 using nimadm
Let's use nimadm now to migrate an AIX system. Ensure that you document the system and perform a mksysb before performing any maintenance activity. You know this already, right? But I have to say it!
We will migrate a system from AIX 5.3 to AIX 6.1. The NIM master in this environment is running AIX 6.1 TL3 SP2. Our NIM client name is aix1 (runningAIX 5.3 TL7 SP5 and migrating to AIX 6.1 TL3 SP1) and the NIM masters name is nim1.
Little make more easier:
Nimserver
|
Client
|
Nimserver Name ---------- > nim1
|
Client Name --- > aix1
|
Nimserver level ------------ > AIX 6.1 TL3 SP2
|
Client Oslevel (who is going to migrate) -- > AIX 5.3 TL7 SP5
|
Prior to a migration, it is always a good idea to run the pre_migration script on the system to catch any issues that may prevent the migration from completing successfully. You can find this script on the AIX 6.1 installation media.
Run this script, review the output (in /home/pre_migration), and correct any issues that it reports before migrating.
#./pre_migration
All saved information can be found in: /home/pre_migration.090903105452
Checking size of boot logical volume (hd5).
Your rootvg has mirrored logical volumes (copies greater than 1)
Recommendation: Break existing mirrors before migrating.
Listing software that will be removed from the system.
Listing configuration files that will not be merged.
Listing configuration files that will be merged.
Saving configuration files that will be merged.
Running lppchk commands. This may take awhile.
Please check /home/pre_migration.090903105452/software_file_existence_check
for possible errors.
Please check /home/pre_migration.090903105452/software_checksum_verification
for possible errors.
Please check /home/pre_migration.090903105452/tcbck.output for possible errors.
All saved information can be found in: /home/pre_migration.090903105452
It is recommended that you create a bootable system backup of your system
before migrating.
|
If rootvg is mirrored, I break the mirror and reduce it to a single disk. This gives me a spare disk that can be used for the migration.
To allow nimadm to do its job, I must temporarily enable rshd on the client LPAR. I will disable it again after the migration.
# chsubserver -a -v shell -p tcp6 -r inetd
# refresh –s inetd
# cd /
# rm .rhosts
# vi .rhosts
+
# chmod 600 .rhosts
|
On the NIM master, I can now 'rsh' to the client and run a command as root.
# rsh aix1 whoami
root
|
On the NIM master, I have created a new volume group (VG) named nimadmvg. This VG has enough capacity to cater for a full copy of the NIM clients root volume group (rootvg). This VG will be empty until the migration is started.
Likewise, on the NIM client, I have a spare disk which has enough capacity for a full copy of its rootvg.
On the master (nim1):
# lsvg -l nimadmvg
nimadmvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
|
# lspv
hdisk0 0000273ac30fdcfc rootvg active
hdisk1 000273ac30fdd6e None
|
The fileset bos.alt_disk_install.rte fileset is installed on the NIM master:
# lslpp -l bos.alt_disk_install.rte
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.alt_disk_install.rte 6.1.3.1 APPLIED Alternate Disk Installation
Runtime
|
# nim -o showres 'spotaix61031' | grep bos.alt_disk_install.rte
bos.alt_disk_install.rte 6.1.3.1 C F Alternate Disk Installation
|
OR
# nim -o lslpp -a filesets="bos.alt_disk_install.rte" spotaix61031
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.alt_disk_install.rte 6.1.3.1 COMMITTED Alternate Disk Installation
Runtime
#
|
# smitty nim
Perform NIM Administration Tasks
Manage Resources
Perform operations on Resources
<< choose your spot >>
Customize a SPOT
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Resource Name spotaix61031
* Source of Install Images [lpp_61] +
Fileset Names [bos.alt_disk_install.rte]
installp Bundle [] +
Fixes (Keywords) []
Fix Bundle (Keyword Bundle) [] +
Expand file systems if space needed? yes +
Force no +
installp Flags
PREVIEW only? (install operation will NOT occur) no +
COMMIT software updates? no +
SAVE replaced files? yes +
AUTOMATICALLY install requisite software? yes +
OVERWRITE same or newer versions? no +
VERIFY install and check file sizes? no +
ACCEPT new license agreements? yes +
(AIX V5 and higher machines and resources)
Preview new LICENSE agreements? no
|
# nimadm -j nimadmvg -c aix1 -s spotaix61031 -l lppsourceaix61031 -d "hdisk1" –Y
|
Where:
- –j flag specifies the VG on the master which will be used for the migration
- -c is the client name
- –s is the SPOT name
- -l is the lpp_source name
- -d is the hdisk name for the alternate root volume group (altinst_rootvg)
- –Y agrees to the software license agreements for software that will be installed during the migration.
Now I can sit back and watch the migration take place. All migration activity is logged on the NIM master in the /var/adm/ras/alt_mig directory. For this migration, the log file name is aix1_alt_mig.log. Here's a sample of some of the output you can expect to see for each phase:
MASTER DATE: Mon Nov 9 14:29:09 EETDT 2009
CLIENT DATE: Mon Nov 9 14:29:09 EETDT 2009
NIMADM PARAMETERS: -j nimadmvg -c aix1 -s spotaix61031 -l lppsourceaix61031 -d hdisk1 -Y
Starting Alternate Disk Migration.
+----------------------------------------------------------------------+
Executing nimadm phase 1.
+----------------------------------------------------------------------+
Cloning altinst_rootvg on client, Phase 1.
Client alt_disk_install command: alt_disk_copy -j -i /ALT_MIG_IMD -M 6.1 -P1 -d "hdisk1"
Checking disk sizes.
Creating cloned rootvg volume group and associated logical volumes.
Creating logical volume alt_hd5.
Creating logical volume alt_hd6.
Creating logical volume alt_hd8.
Creating logical volume alt_hd4.
Creating logical volume alt_hd2.
Creating logical volume alt_hd9var.
Creating logical volume alt_hd3.
Creating logical volume alt_hd1.
Creating logical volume alt_hd10opt.
Creating logical volume alt_hd7.
Creating logical volume alt_local_lv.
Creating logical volume alt_varloglv.
Creating logical volume alt_nmonlv.
Creating logical volume alt_chksyslv.
Creating logical volume alt_hd71.
Creating logical volume alt_auditlv.
Creating logical volume alt_nsrlv.
Creating logical volume alt_hd11admin.
Creating /alt_inst/ file system.
Creating /alt_inst/admin file system.
Creating /alt_inst/home file system.
Creating /alt_inst/home/nmon file system.
Creating /alt_inst/nsr file system.
Creating /alt_inst/opt file system.
Creating /alt_inst/tmp file system.
Creating /alt_inst/usr file system.
Creating /alt_inst/usr/local file system.
Creating /alt_inst/usr/local/chksys file system.
Creating /alt_inst/var file system.
Creating /alt_inst/var/log file system.
Creating /alt_inst/var/log/audit file system.
Generating a list of files
for backup and restore into the alternate file system...
Phase 1 complete.
+----------------------------------------------------------------------+
Executing nimadm phase 2.
+----------------------------------------------------------------------+
Creating nimadm cache file systems on volume group nimadmvg.
Checking for initial required migration space.
Creating cache file system /aix1_alt/alt_inst
Creating cache file system /aix1_alt/alt_inst/admin
Creating cache file system /aix1_alt/alt_inst/home
Creating cache file system /aix1_alt/alt_inst/home/nmon
Creating cache file system /aix1_alt/alt_inst/nsr
Creating cache file system /aix1_alt/alt_inst/opt
Creating cache file system /aix1_alt/alt_inst/tmp
Creating cache file system /aix1_alt/alt_inst/usr
Creating cache file system /aix1_alt/alt_inst/usr/local
Creating cache file system /aix1_alt/alt_inst/usr/local/chksys
Creating cache file system /aix1_alt/alt_inst/var
Creating cache file system /aix1_alt/alt_inst/var/log
Creating cache file system /aix1_alt/alt_inst/var/log/audit
+----------------------------------------------------------------------+
Executing nimadm phase 3.
+----------------------------------------------------------------------+
Syncing client data to cache ...
+----------------------------------------------------------------------+
Executing nimadm phase 4.
+----------------------------------------------------------------------+
nimadm: There is no user customization script specified for this phase.
+----------------------------------------------------------------------+
Executing nimadm phase 5.
+----------------------------------------------------------------------+
Saving system configuration files.
Checking for initial required migration space.
Setting up for base operating system restore.
/aix1_alt/alt_inst
Restoring base operating system.
Merging system configuration files.
Running migration merge method: ODM_merge Config_Rules.
Running migration merge method: ODM_merge SRCextmeth.
Running migration merge method: ODM_merge SRCsubsys.
Running migration merge method: ODM_merge SWservAt.
Running migration merge method: ODM_merge pse.conf.
Running migration merge method: ODM_merge vfs.
Running migration merge method: ODM_merge xtiso.conf.
Running migration merge method: ODM_merge PdAtXtd.
Running migration merge method: ODM_merge PdDv.
Running migration merge method: convert_errnotify.
Running migration merge method: passwd_mig.
Running migration merge method: login_mig.
Running migration merge method: user_mrg.
Running migration merge method: secur_mig.
Running migration merge method: RoleMerge.
Running migration merge method: methods_mig.
Running migration merge method: mkusr_mig.
Running migration merge method: group_mig.
Running migration merge method: ldapcfg_mig.
Running migration merge method: ldapmap_mig.
Running migration merge method: convert_errlog.
Running migration merge method: ODM_merge GAI.
Running migration merge method: ODM_merge PdAt.
Running migration merge method: merge_smit_db.
Running migration merge method: ODM_merge fix.
Running migration merge method: merge_swvpds.
Running migration merge method: SysckMerge.
+----------------------------------------------------------------------+
Executing nimadm phase 6.
+----------------------------------------------------------------------+
Installing and migrating software.
Updating install utilities.
+----------------------------------------------------------------------+
Pre-installation Verification...
+----------------------------------------------------------------------+
Verifying selections...done
Verifying requisites...done
Results...
|
…output truncated….
install_all_updates: Generating list of updatable rpm packages.
install_all_updates: No updatable rpm packages found.
install_all_updates: Checking for recommended maintenance level 6100-03.
install_all_updates: Executing /usr/bin/oslevel -rf, Result = 6100-03
install_all_updates: Verification completed.
install_all_updates: Log file is /var/adm/ras/install_all_updates.log
install_all_updates: Result = SUCCESS
Restoring device ODM database.
+----------------------------------------------------------------------+
Executing nimadm phase 7.
+----------------------------------------------------------------------+
nimadm: There is no user customization script specified for this phase.
+----------------------------------------------------------------------+
Executing nimadm phase 8.
+----------------------------------------------------------------------+
Creating client boot image.
bosboot: Boot image is 40952 512 byte blocks.
Writing boot image to client's alternate boot disk hdisk1.
+----------------------------------------------------------------------+
Executing nimadm phase 9.
+----------------------------------------------------------------------+
Adjusting client file system sizes ...
Adjusting size for /
Adjusting size for /admin
Adjusting size for /home
Adjusting size for /home/nmon
Adjusting size for /nsr
Adjusting size for /opt
Adjusting size for /tmp
Adjusting size for /usr
Adjusting size for /usr/local
Adjusting size for /usr/local/chksys
Adjusting size for /var
Adjusting size for /var/log
Adjusting size for /var/log/audit
Syncing cache data to client ...
+----------------------------------------------------------------------+
Executing nimadm phase 10.
+----------------------------------------------------------------------+
Unmounting client mounts on the NIM master.
forced unmount of /aix1_alt/alt_inst/var/log/audit
forced unmount of /aix1_alt/alt_inst/var/log
forced unmount of /aix1_alt/alt_inst/var
forced unmount of /aix1_alt/alt_inst/usr/local/chksys
forced unmount of /aix1_alt/alt_inst/usr/local
forced unmount of /aix1_alt/alt_inst/usr
forced unmount of /aix1_alt/alt_inst/tmp
forced unmount of /aix1_alt/alt_inst/opt
forced unmount of /aix1_alt/alt_inst/nsr
forced unmount of /aix1_alt/alt_inst/home/nmon
forced unmount of /aix1_alt/alt_inst/home
forced unmount of /aix1_alt/alt_inst/admin
forced unmount of /aix1_alt/alt_inst
Removing nimadm cache file systems.
Removing cache file system /aix1_alt/alt_inst
Removing cache file system /aix1_alt/alt_inst/admin
Removing cache file system /aix1_alt/alt_inst/home
Removing cache file system /aix1_alt/alt_inst/home/nmon
Removing cache file system /aix1_alt/alt_inst/nsr
Removing cache file system /aix1_alt/alt_inst/opt
Removing cache file system /aix1_alt/alt_inst/tmp
Removing cache file system /aix1_alt/alt_inst/usr
Removing cache file system /aix1_alt/alt_inst/usr/local
Removing cache file system /aix1_alt/alt_inst/usr/local/chksys
Removing cache file system /aix1_alt/alt_inst/var
Removing cache file system /aix1_alt/alt_inst/var/log
Removing cache file system /aix1_alt/alt_inst/var/log/audit
+----------------------------------------------------------------------+
Executing nimadm phase 11.
+----------------------------------------------------------------------+
Cloning altinst_rootvg on client, Phase 3.
Client alt_disk_install command: alt_disk_copy -j -i /ALT_MIG_IMD -M 6.1 -P3 -d "hdisk1"
## Phase 3 ###################
Verifying altinst_rootvg...
Modifying ODM on cloned disk.
forced unmount of /alt_inst/var/log/audit
forced unmount of /alt_inst/var/log
forced unmount of /alt_inst/var
forced unmount of /alt_inst/usr/local/chksys
forced unmount of /alt_inst/usr/local
forced unmount of /alt_inst/usr
forced unmount of /alt_inst/tmp
forced unmount of /alt_inst/opt
forced unmount of /alt_inst/nsr
forced unmount of /alt_inst/home/nmon
forced unmount of /alt_inst/home
forced unmount of /alt_inst/admin
forced unmount of /alt_inst
Changing logical volume names in volume group descriptor area.
Fixing LV control blocks...
Fixing file system superblocks...
Bootlist is set to the boot disk: hdisk1 blv=hd5
+----------------------------------------------------------------------+
Executing nimadm phase 12.
+----------------------------------------------------------------------+
Cleaning up alt_disk_migration on the NIM master.
Cleaning up alt_disk_migration on client aix1.
|
After the migration is complete, I confirm that the bootlist is set to the nst_rootvg disk.
# lspv | grep rootvg
hdisk0 0000273ac30fdcfc rootvg active
hdisk1 000273ac30fdd6e altinst_rootvg active
# bootlist -m normal -o
hdisk1 blv=hd5
#
|
At an agreed time, I reboot the LPAR and confirm that the system is now running AIX 6.1.
# shutdown –Fr
; system reboots here…
# oslevel –s
6100-03-01-0921
# instfix -i | grep AIX
All filesets for 6.1.0.0_AIX_ML were found.
All filesets for 6100-00_AIX_ML were found.
All filesets for 6100-01_AIX_ML were found.
All filesets for 6100-02_AIX_ML were found.
All filesets for 6100-03_AIX_ML were found.
|
At this point, I would perform some general AIX system health checks to ensure that the system is configured and running as I'd expect. There is also a post_migration script that you can run to verify the migration. You can find this script in /usr/lpp/bos, after the migration.
You may want to consider upgrading other software such as openssl, openssh, lsof, etc at this stage.
The rsh daemon can now be disabled after the migration.
# chsubserver -d -v shell -p tcp6 -r inetd
# refresh –s inetd
# cd /
# rm .rhosts
# ln -s /dev/null .rhosts
|
With the migration finished, the applications are started and the application support team verify that everything is functioning as expected. I also take a mksysb and document the system configuration after the migration.
Once we are all satisfied that the migration has completed successfully, we then return rootvg to a mirrored disk configuration.
# lspv | grep old_rootvg
hdisk0 000071da26fe3bd0 old_rootvg
#
# alt_rootvg_op -X old_rootvg
# extendvg –f rootvg hdisk0
# mirrorvg rootvg hdisk0
# bosboot -a -d /dev/hdisk0
# bosboot -a -d /dev/hdisk1
# bootlist -m normal hdisk0 hdisk1
# bootlist -m normal -o
hdisk0 blv=hd5
hdisk1 blv=hd5
#
|
If there was an issue with the migration, I could easily back out to the previous release of AIX. Instead of re-mirroring rootvg (above), we would change the boot list to point at the previous rootvg disk (old_rootvg) and reboot the LPAR.
# lspv | grep old_rootvg
hdisk0 000071da26fe3bd0 old_rootvg
# bootlist -m normal hdisk0
# bootlist -m normal –o
hdisk0 blv=hd5
# shutdown –Fr
|
This is much simpler and faster than restoring a mksysb image (via NIM, tape, or DVD), as you would with a conventional migration method.
No comments:
Post a Comment