Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25881593
  • 博文数量: 271
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 3358
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-12 15:28
文章分类

全部博文(271)

文章存档

2010年(71)

2009年(164)

2008年(36)

我的朋友

分类:

2010-04-01 10:12:44

通过 NIM Alternate Disk Migration 工具最小化 AIX 迁移停机时间

developerWorks
文档选项
将打印机的版面设置成横向打印模式

将此页作为电子邮件发送

将此页作为电子邮件发送

英文原文

英文原文


级别: 初级

, AIX 专家, Australia Post

2010 年 2 月 01 日

本文展示如何使用 NIM Alternate Disk Migration 工具迁移到 AIX® 6.1,如何最小化迁移到 AIX 操作系统的最新版本所需的停机时间。

最近,我一直忙于将我的整个 AIX 环境从 AIX 5.3 升级到 AIX 6.1。我的环境由接近 100 个 AIX LPAR 组成。面对这样的迁移任务时,我总是考虑如何更好、更快、更高效地实现迁移目标,将迁移对客户机的干扰降低到最小。

AIX OS 提供 Network Installation Manager (NIM) 来协助管理和升级大量 AIX 系统,这个工具的一个不错的特性是 NIM Alternate Disk Migration(nimadm)功能。您很快就会看到,通过使用这个工具,您的迁移过程将不会导致长时间的服务停用。

在本文中,我将展示我们用于迁移 AIX 系统的 nimadm 过程。本文假设您非常熟悉 AIX 和 NIM,您的环境中有一台 NIM 主机。如果不是这样,我建议您首先参阅 部分的文档。







多年来,我已经迁移到 AIX OS 的几个新版本。为此,我通常使用以下两种传统方法:(A)使用 AIX 安装 DVD 进行迁移;(B)使用 NIM 进行迁移。方法 A 仍然可行,即便在使用 的虚拟环境中。方法 B 也完全可行,具体方法是从网络启动客户端 LPAR 并使用一个 NIM 执行迁移。

这两种方法的缺点是迁移过程需要较长时间地停用 LPAR。根据系统的不同,停用时间从 30-45 分钟到几小时不等。在具有严格的停用窗口(outage window)的系统中,这可能是一个需要考虑的问题。

与传统迁移方法相比,nimadm 实用程序具有几个优势。例如,系统管理员可以使用 nimadm 来创建一个 NIM 客户机的 rootvg 的一个副本(在客户机的空闲磁盘上,类似于一个标准的替代磁盘安装 alt_disk_install)并将该磁盘迁移到一个更新的 AIX 版本。这种方法不会干扰客户机(执行迁移不需要任何停用)。迁移完成后,需要的唯一停机将是一次预定的系统重启。

另一个优势是,实际迁移过程在 NIM 主机上进行,消除了客户机 LPAR 上的迁移负载。这减小了 LPAR 上的处理开销,最小化了正在运行的应用程序的性能影响。

对于拥有大量 AIX 系统的客户,重要的是要知道,nimadm 工具支持一次迁移几个客户机。

综上所述,与其他迁移方法相比,nimadm 具有以下好处:

  • 减少客户机停机时间。迁移过程在系统启动并正常运行时进行,对客户机上运行的所有应用程序和服务都没有干扰;因此升级可以在管理员方便的时候进行。稍后,管理员可以安排一次重启在新版本 AIX 上重新启动系统。
  • nimadm 过程非常灵活,可以使用一些可选的 NIM 定制资源来定制,比如 image_data、bosinst_data、pre/post_migration 脚本、exclude_files 等。
  • 从迁移失败快速恢复。所有更改都在 rootvg 副本(altinst_rootvg)上执行。如果迁移出现严重问题,原始 rootvg 仍然可用,系统没有受到影响。如果迁移过程在某个阶段失败或终止,nimadm 能够从失败事件迅速恢复并在稍后进行清理。整个过程不需要管理员的任何干预,管理员只需查明迁移失败的原因,纠正问题,然后再次尝试运行 nimadm 过程。如果迁移完成但重启后发现问题,那么管理员可以通过从原始 rootvg 磁盘启动来轻松恢复。






在尝试使用 nimadm 迁移到 AIX 6.1 之前,必须满足几个要求。我在这里只会提到部分要求,建议您参阅 nimadm 的在线文档或 IBM NIM Redbook 了解更多信息(参见本文末尾的 部分)。

  • 您必须拥有一个运行具有最新或更高 Technology Level 的 AIX 6.1 或更高版本的 NIM 主机。
  • NIM 主机必须拥有 bos.alt_disk_install.rte 文件组,这个文件组必须安装在该主机的 rootvg 中和迁移将使用的 SPOT 中。二者需要处于相同的级别。您不必在客户机上安装替代磁盘实用程序。
  • 已经为迁移选择的 lpp_source 和 SPOT NIM 资源 “必须” 匹配要迁移到的 AIX 级别。
  • NIM 主机的 AIX 级别(总是)应该与客户机上要迁移到的 AIX 级别相同或比其更高。
  • 目标客户机必须在 NIM 主机上注册为一个独立 NIM 客户机。
  • NIM 主机必须能够使用 rsh 在客户机上执行远程命令。
  • 确保 NIM 客户机拥有一个空闲磁盘(没有分配到任何卷组),这个磁盘的容量应该足够容纳它的 rootvg 的一个完整副本。如果 rootvg 已被镜像,那么应打破镜像并使用其中一个磁盘来进行迁移。
  • 确保客户机的 NIM 主机拥有一个卷组(例如 nimadmvg),该卷组的容量应该足够容纳客户机的 rootvg 的一个完整副本。如果需要对多个 NIM 客户机进行多个 AIX 迁移,确保能够容纳每个客户机 rootvg 的一个副本。

默认情况下,nimadm 工具利用 NFS 来完成迁移过程中的多个任务。这在低速网络上将会出现问题,因为 NFS 写入成本可能会非常昂贵。要避免使用 NFS,有一个 Local Disk Caching 选项可用,该选项能够提供一些性能改进。

本地磁盘缓存允许 NIM 主机不必使用 NFS 来写入客户机。如果 nimadm 操作由于一个 NFS 写入瓶颈而性能不佳,那么这个选项可能有用。

如果 Local Disk Caching 功能被调用,那么 nimadm 将在 NIM 主机上的一个卷组上创建客户机文件系统。然后,它将使用流(通过 rshd)将来自客户机的所有数据缓存到 NIM 主机上的文件系统中。

与 NFS 相比,本地磁盘缓存的优势总结如下:

  • 能够在相对较慢的网络上改善 nimadm 操作的性能。
  • 改善存在 NFS 写入瓶颈的 nimadm 操作的性能。
  • 降低客户机上的 CPU 占用。
  • 客户机文件系统无需导出。
  • 允许使用 nimadm 迁移支持 TCB 的系统。

本地磁盘缓存的一些潜在劣势是:

  • 缓存文件系统将占用 NIM 主机上的空间。您必须在 NIM 主机上的一个卷组中拥有足够的磁盘空间来容纳客户机的 rootvg 文件系统,并为每个客户机的迁移预留一些空间。
  • 增加了 NIM 主机上的 CPU 占用。
  • 增加了主机上的 I/O。为获得最佳性能,建议使用 NIM 主机上的这样一个卷组:不包含 AIX 迁移使用的 NIM 资源的卷组。

鉴于性能原因,我的环境中部署的 nimadm 启用了 Local Disk Caching 选项。

nimadm 命令执行的迁移包含 12 个阶段,在执行迁移之前适当了解每个阶段是很有用的。

  1. 主机发送 alt_disk_install 命令到客户机,这将在目标磁盘上创建一个客户机 rootvg 副本。在这个阶段,替代根卷组(altinst_rootvg)将被创建。
  2. NIM 主机在 nimadmvg 卷组中创建缓存文件系统,并对需要的迁移磁盘空间执行一些初步检查。
  3. NIM 主机将 NIM 客户机的数据复制到 nimadmvg 中的缓存文件系统。这种数据复制通过 rsh 完成。
  4. 如果已指定一个预迁移脚本,则该脚本在这个时间段执行。
  5. 保存系统配置文件,计算初始迁移磁盘空间并创建适当的文件系统扩展。恢复 bos 映像并合并设备数据库(类似于传统迁移)。执行所有迁移合并方法并进行其他一些处理。
  6. 使用 installp 迁移所有系统文件组,这个阶段还将安装所有必要的 RPM 映像。
  7. 如果已指定一个迁移后脚本资源,则该脚本在这个时间段执行。
  8. 运行 bosboot 命令创建一个客户机启动映像,这个启动映像将写入客户机的替代启动逻辑卷(alt_hd5)。
  9. 现在,从 NIM 主机的本地缓存文件复制所有迁移数据,并通过 rsh 同步到客户机的替代 rootvg
  10. NIM 主机进行清理并删除本地缓存文件系统。
  11. 再次调用 alt_disk_install 命令来进行最后的调整并使 altinst_rootvg 进入睡眠状态。将启动列表设置为目标磁盘。
  12. 执行清理以结束迁移。

如果您不能满足步骤 1 - 10 的要求,那么您应该考虑执行传统迁移。

在展示下一个 nimadm 示例之前,我想先补充几个您应该考虑的问题。

  • 建议您不要在迁移过程中进行任何系统更改,比如添加用户、修改密码、添加打印队列等。如果可能,一直等到迁移过程结束,系统重新启动到新版本 AIX。如果您必须在重新启动前执行管理任务,您应该记录下所做的更改,并在重新启动到 AIX 6.1 之后对系统重新应用这些更改。
  • 在生产系统上执行迁移过程之前,我们反复开发、测试和验证了这些迁移过程。这使我们有时间确认迁移步骤是正确的,AIX 迁移应该按预期的方式进行。建议您也这样做。
  • 如果您的 rootvg 中有一个 multibos,那么删除它。AIX 迁移 。确保所有 rootvg LV 都重命名为它们原来的名称。如果必要,创建一个 rootvg 新示例并重新启动 LPAR。例如:
	# multibos –sXp
	# multibos –sX
	# shutdown –Fr

确认原来的 LV 名称,即 not bos_.,现在正在使用中。

	# 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

删除原来的 multibos 实例。

	# multibos -R







现在我们使用 nimadm 来迁移一个 AIX 系统。在执行任何维护任务之前,一定要对系统进行文档记录并执行一个 mksysb 命令。您早就知道这个要求了,对不对?但我还是要再强调一次。

我们将把一个系统从 AIX 5.3 迁移到 AIX 6.1。这个环境中的 NIM 主机正在运行 AIX 6.1 TL3 SP2,我们的 NIM 客户机的名称是 aix1(运行 AIX 5.3 TL7 SP5 并准备迁移到 AIX 6.1 TL3 SP1),NIM 主机的名称为 nim1。

确保您阅读了 AIX 6.1 发行说明并检查了文档中记录的要求,比如,需要的空闲磁盘空间容量。

迁移之前,在系统上运行一个 pre_migration 脚本来捕获可能阻止迁移成功执行的问题总是一个不错的主意。您可以在 AIX 6.1 安装媒体中找到这个脚本。

运行这个脚本,(在 /home/pre_migration 中)检查输出,在迁移之前更正输出结果报告的问题。

#./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.

我总是在 AIX 迁移之前备份 /etc/sendmail.cf 和 /etc/motd 文件,这些文件将在迁移过程中被替换,您需要再次编辑它们并添加您的修改。

提交任何已应用的文件组。您还应该考虑删除所有可能会阻碍迁移的 ifix。

如果 rootvg 被镜像,我就打破镜像并将其减少到一个单一磁盘,这将向我提供一个可用于迁移的空闲磁盘。

要使 nimadm 正常运行,我必须在客户机 LPAR 上临时启用 rshd。我将在迁移结束后再次禁用它。

	# chsubserver -a -v shell -p tcp6 -r inetd 
	# refresh –s inetd
	# cd /
	# rm .rhosts
	# vi .rhosts
	+
	# chmod 600 .rhosts

我现在就可以从 NIM 主机 “rsh” 到客户机并作为根用户运行命令。

	# rsh aix1 whoami
	root

现在,我已经准备好进行迁移了。迁移过程将需要 30-45 分钟,在此过程中,LPAR 上的应用程序将继续正常工作。

在 NIM 主机上,我已经创建了一个名为 nimadmvg 的新卷组(VG)。这个 VG 的容量足够容纳 NIM 客户机根卷组(rootvg)的一个完整副本。在迁移过程开始之前,这个 VG 将是空的。

同样,在 NIM 客户机上,我拥有一个能够容纳其 rootvg 的一个完整副本的空闲磁盘。

在主机(nim1)上:

	# lsvg -l nimadmvg
	nimadmvg:
	LV NAME  TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT

在客户机(aix1)上:

	
	# lspv 
	hdisk0 0000273ac30fdcfc rootvg          active
	hdisk1 000273ac30fdd6e  None  
			

将文件组 bos.alt_disk_install.rte 安装到 NIM 主机上:

# 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


该文件组还被安装到 AIX 6.1 TL3 SP1 SPOT 中:

# nim -o showres 'spotaix61031'  | grep bos.alt_disk_install.rte
  bos.alt_disk_install.rte   6.1.3.1    C     F    Alternate Disk Installation

从 NIM 主机执行 nimadm 命令。

 # nimadm -j nimadmvg -c aix1 -s spotaix61031 -l lppsourceaix61031 -d "hdisk1" –Y

其中:

  • –j 标志指定主机上将用于迁移的 VG。
  • -c 是客户机名称。
  • –s 是 SPOT 名称。
  • -l 是 lpp_source 名称。
  • -d 是替代根卷组(altinst_rootvg)的 hdisk 名称。
  • –Y 同意迁移过程中将安装的软件的软件许可协议。

现在我可以休息一下,观看迁移过程自动进行了。所有迁移活动将记录在 NIM 主机上的 /var/adm/ras/alt_mig 目录中。对于这个迁移,日志文件的名称为 aix1_alt_mig.log。以下是您将看到的各个阶段的部分输出样例:

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

......输出省略......

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.

迁移过程结束后,我确认启动列表设置为 altinst_rootvg 磁盘。

	# lspv | grep rootvg
	hdisk0 0000273ac30fdcfc rootvg          active
	hdisk1 000273ac30fdd6e  altinst_rootvg  active
	
	# bootlist -m normal -o
	hdisk1 blv=hd5
	

在一个指定时间,我重新启动 LPAR 并确认系统现在正在运行 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.

此时,我将执行一些常规的 AIX 系统健康状况检查,以便确保系统按预期方式配置并运行。也可以运行一个 post_migration 脚本来验证迁移。这个脚本可以在迁移后在 /usr/lpp/bos 中找到。

您也许想在这个阶段考虑升级其他软件,比如 openssl、openssh、lsof 等。

现在,您可以在迁移结束后禁用 rsh 守护进程。

	# chsubserver -d -v shell -p tcp6 -r inetd 
	# refresh –s inetd
	# cd /
	# rm .rhosts
	# ln -s /dev/null .rhosts 

迁移结束后,应用程序启动,应用程序支持团队验证所有程序是否正常运行。我还在迁移结束后运行一次 mksysb 命令并对系统配置进行文档记录。

一旦迁移结束且我们对整个迁移过程感到满意,我们就可以将 rootvg 返回到此前的镜像磁盘配置。

	# 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

如果迁移出现问题,我可以轻松地返回前一个 AIX 版本。我们无需重新镜像(上面的)rootvg,相反,我们将更改启动列表以指向前一个 rootvg 磁盘(old_rootvg)并重新启动 LPAR。

	# lspv | grep old_rootvg
	hdisk0  000071da26fe3bd0      old_rootvg
	# bootlist -m normal hdisk0
	# bootlist -m normal –o
	hdisk0 blv=hd5
	# shutdown –Fr

这种方法比(通过 NIM、磁带或 DVD)恢复一个 mksysb 映像更简单快捷,只有在使用传统迁移方法时才需要那样做。







通过使用 nimadm,我们可以减少将系统迁移到 AIX 6.1 所需的总体停机时间。我们还提供了一种简便的方法,以便在必要时备份一个迁移。当您需要将系统迁移到 AIX 6.1 时,我希望本文能够向您提供一些关于如何最好地迁移您的系统的想法。

通过 NIM Alternate Disk Migration 工具最小化 AIX 迁移停机时间

developerWorks
文档选项
将打印机的版面设置成横向打印模式

将此页作为电子邮件发送

将此页作为电子邮件发送

英文原文

英文原文


级别: 初级

, AIX 专家, Australia Post

2010 年 2 月 01 日

本文展示如何使用 NIM Alternate Disk Migration 工具迁移到 AIX® 6.1,如何最小化迁移到 AIX 操作系统的最新版本所需的停机时间。

最近,我一直忙于将我的整个 AIX 环境从 AIX 5.3 升级到 AIX 6.1。我的环境由接近 100 个 AIX LPAR 组成。面对这样的迁移任务时,我总是考虑如何更好、更快、更高效地实现迁移目标,将迁移对客户机的干扰降低到最小。

AIX OS 提供 Network Installation Manager (NIM) 来协助管理和升级大量 AIX 系统,这个工具的一个不错的特性是 NIM Alternate Disk Migration(nimadm)功能。您很快就会看到,通过使用这个工具,您的迁移过程将不会导致长时间的服务停用。

在本文中,我将展示我们用于迁移 AIX 系统的 nimadm 过程。本文假设您非常熟悉 AIX 和 NIM,您的环境中有一台 NIM 主机。如果不是这样,我建议您首先参阅 部分的文档。







多年来,我已经迁移到 AIX OS 的几个新版本。为此,我通常使用以下两种传统方法:(A)使用 AIX 安装 DVD 进行迁移;(B)使用 NIM 进行迁移。方法 A 仍然可行,即便在使用 的虚拟环境中。方法 B 也完全可行,具体方法是从网络启动客户端 LPAR 并使用一个 NIM 执行迁移。

这两种方法的缺点是迁移过程需要较长时间地停用 LPAR。根据系统的不同,停用时间从 30-45 分钟到几小时不等。在具有严格的停用窗口(outage window)的系统中,这可能是一个需要考虑的问题。

与传统迁移方法相比,nimadm 实用程序具有几个优势。例如,系统管理员可以使用 nimadm 来创建一个 NIM 客户机的 rootvg 的一个副本(在客户机的空闲磁盘上,类似于一个标准的替代磁盘安装 alt_disk_install)并将该磁盘迁移到一个更新的 AIX 版本。这种方法不会干扰客户机(执行迁移不需要任何停用)。迁移完成后,需要的唯一停机将是一次预定的系统重启。

另一个优势是,实际迁移过程在 NIM 主机上进行,消除了客户机 LPAR 上的迁移负载。这减小了 LPAR 上的处理开销,最小化了正在运行的应用程序的性能影响。

对于拥有大量 AIX 系统的客户,重要的是要知道,nimadm 工具支持一次迁移几个客户机。

综上所述,与其他迁移方法相比,nimadm 具有以下好处:

  • 减少客户机停机时间。迁移过程在系统启动并正常运行时进行,对客户机上运行的所有应用程序和服务都没有干扰;因此升级可以在管理员方便的时候进行。稍后,管理员可以安排一次重启在新版本 AIX 上重新启动系统。
  • nimadm 过程非常灵活,可以使用一些可选的 NIM 定制资源来定制,比如 image_data、bosinst_data、pre/post_migration 脚本、exclude_files 等。
  • 从迁移失败快速恢复。所有更改都在 rootvg 副本(altinst_rootvg)上执行。如果迁移出现严重问题,原始 rootvg 仍然可用,系统没有受到影响。如果迁移过程在某个阶段失败或终止,nimadm 能够从失败事件迅速恢复并在稍后进行清理。整个过程不需要管理员的任何干预,管理员只需查明迁移失败的原因,纠正问题,然后再次尝试运行 nimadm 过程。如果迁移完成但重启后发现问题,那么管理员可以通过从原始 rootvg 磁盘启动来轻松恢复。






在尝试使用 nimadm 迁移到 AIX 6.1 之前,必须满足几个要求。我在这里只会提到部分要求,建议您参阅 nimadm 的在线文档或 IBM NIM Redbook 了解更多信息(参见本文末尾的 部分)。

  • 您必须拥有一个运行具有最新或更高 Technology Level 的 AIX 6.1 或更高版本的 NIM 主机。
  • NIM 主机必须拥有 bos.alt_disk_install.rte 文件组,这个文件组必须安装在该主机的 rootvg 中和迁移将使用的 SPOT 中。二者需要处于相同的级别。您不必在客户机上安装替代磁盘实用程序。
  • 已经为迁移选择的 lpp_source 和 SPOT NIM 资源 “必须” 匹配要迁移到的 AIX 级别。
  • NIM 主机的 AIX 级别(总是)应该与客户机上要迁移到的 AIX 级别相同或比其更高。
  • 目标客户机必须在 NIM 主机上注册为一个独立 NIM 客户机。
  • NIM 主机必须能够使用 rsh 在客户机上执行远程命令。
  • 确保 NIM 客户机拥有一个空闲磁盘(没有分配到任何卷组),这个磁盘的容量应该足够容纳它的 rootvg 的一个完整副本。如果 rootvg 已被镜像,那么应打破镜像并使用其中一个磁盘来进行迁移。
  • 确保客户机的 NIM 主机拥有一个卷组(例如 nimadmvg),该卷组的容量应该足够容纳客户机的 rootvg 的一个完整副本。如果需要对多个 NIM 客户机进行多个 AIX 迁移,确保能够容纳每个客户机 rootvg 的一个副本。

默认情况下,nimadm 工具利用 NFS 来完成迁移过程中的多个任务。这在低速网络上将会出现问题,因为 NFS 写入成本可能会非常昂贵。要避免使用 NFS,有一个 Local Disk Caching 选项可用,该选项能够提供一些性能改进。

本地磁盘缓存允许 NIM 主机不必使用 NFS 来写入客户机。如果 nimadm 操作由于一个 NFS 写入瓶颈而性能不佳,那么这个选项可能有用。

如果 Local Disk Caching 功能被调用,那么 nimadm 将在 NIM 主机上的一个卷组上创建客户机文件系统。然后,它将使用流(通过 rshd)将来自客户机的所有数据缓存到 NIM 主机上的文件系统中。

与 NFS 相比,本地磁盘缓存的优势总结如下:

  • 能够在相对较慢的网络上改善 nimadm 操作的性能。
  • 改善存在 NFS 写入瓶颈的 nimadm 操作的性能。
  • 降低客户机上的 CPU 占用。
  • 客户机文件系统无需导出。
  • 允许使用 nimadm 迁移支持 TCB 的系统。

本地磁盘缓存的一些潜在劣势是:

  • 缓存文件系统将占用 NIM 主机上的空间。您必须在 NIM 主机上的一个卷组中拥有足够的磁盘空间来容纳客户机的 rootvg 文件系统,并为每个客户机的迁移预留一些空间。
  • 增加了 NIM 主机上的 CPU 占用。
  • 增加了主机上的 I/O。为获得最佳性能,建议使用 NIM 主机上的这样一个卷组:不包含 AIX 迁移使用的 NIM 资源的卷组。

鉴于性能原因,我的环境中部署的 nimadm 启用了 Local Disk Caching 选项。

nimadm 命令执行的迁移包含 12 个阶段,在执行迁移之前适当了解每个阶段是很有用的。

  1. 主机发送 alt_disk_install 命令到客户机,这将在目标磁盘上创建一个客户机 rootvg 副本。在这个阶段,替代根卷组(altinst_rootvg)将被创建。
  2. NIM 主机在 nimadmvg 卷组中创建缓存文件系统,并对需要的迁移磁盘空间执行一些初步检查。
  3. NIM 主机将 NIM 客户机的数据复制到 nimadmvg 中的缓存文件系统。这种数据复制通过 rsh 完成。
  4. 如果已指定一个预迁移脚本,则该脚本在这个时间段执行。
  5. 保存系统配置文件,计算初始迁移磁盘空间并创建适当的文件系统扩展。恢复 bos 映像并合并设备数据库(类似于传统迁移)。执行所有迁移合并方法并进行其他一些处理。
  6. 使用 installp 迁移所有系统文件组,这个阶段还将安装所有必要的 RPM 映像。
  7. 如果已指定一个迁移后脚本资源,则该脚本在这个时间段执行。
  8. 运行 bosboot 命令创建一个客户机启动映像,这个启动映像将写入客户机的替代启动逻辑卷(alt_hd5)。
  9. 现在,从 NIM 主机的本地缓存文件复制所有迁移数据,并通过 rsh 同步到客户机的替代 rootvg
  10. NIM 主机进行清理并删除本地缓存文件系统。
  11. 再次调用 alt_disk_install 命令来进行最后的调整并使 altinst_rootvg 进入睡眠状态。将启动列表设置为目标磁盘。
  12. 执行清理以结束迁移。

如果您不能满足步骤 1 - 10 的要求,那么您应该考虑执行传统迁移。

在展示下一个 nimadm 示例之前,我想先补充几个您应该考虑的问题。

  • 建议您不要在迁移过程中进行任何系统更改,比如添加用户、修改密码、添加打印队列等。如果可能,一直等到迁移过程结束,系统重新启动到新版本 AIX。如果您必须在重新启动前执行管理任务,您应该记录下所做的更改,并在重新启动到 AIX 6.1 之后对系统重新应用这些更改。
  • 在生产系统上执行迁移过程之前,我们反复开发、测试和验证了这些迁移过程。这使我们有时间确认迁移步骤是正确的,AIX 迁移应该按预期的方式进行。建议您也这样做。
  • 如果您的 rootvg 中有一个 multibos,那么删除它。AIX 迁移 。确保所有 rootvg LV 都重命名为它们原来的名称。如果必要,创建一个 rootvg 新示例并重新启动 LPAR。例如:
	# multibos –sXp
	# multibos –sX
	# shutdown –Fr

确认原来的 LV 名称,即 not bos_.,现在正在使用中。

	# 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

删除原来的 multibos 实例。

	# multibos -R







现在我们使用 nimadm 来迁移一个 AIX 系统。在执行任何维护任务之前,一定要对系统进行文档记录并执行一个 mksysb 命令。您早就知道这个要求了,对不对?但我还是要再强调一次。

我们将把一个系统从 AIX 5.3 迁移到 AIX 6.1。这个环境中的 NIM 主机正在运行 AIX 6.1 TL3 SP2,我们的 NIM 客户机的名称是 aix1(运行 AIX 5.3 TL7 SP5 并准备迁移到 AIX 6.1 TL3 SP1),NIM 主机的名称为 nim1。

确保您阅读了 AIX 6.1 发行说明并检查了文档中记录的要求,比如,需要的空闲磁盘空间容量。

迁移之前,在系统上运行一个 pre_migration 脚本来捕获可能阻止迁移成功执行的问题总是一个不错的主意。您可以在 AIX 6.1 安装媒体中找到这个脚本。

运行这个脚本,(在 /home/pre_migration 中)检查输出,在迁移之前更正输出结果报告的问题。

#./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.

我总是在 AIX 迁移之前备份 /etc/sendmail.cf 和 /etc/motd 文件,这些文件将在迁移过程中被替换,您需要再次编辑它们并添加您的修改。

提交任何已应用的文件组。您还应该考虑删除所有可能会阻碍迁移的 ifix。

如果 rootvg 被镜像,我就打破镜像并将其减少到一个单一磁盘,这将向我提供一个可用于迁移的空闲磁盘。

要使 nimadm 正常运行,我必须在客户机 LPAR 上临时启用 rshd。我将在迁移结束后再次禁用它。

	# chsubserver -a -v shell -p tcp6 -r inetd 
	# refresh –s inetd
	# cd /
	# rm .rhosts
	# vi .rhosts
	+
	# chmod 600 .rhosts

我现在就可以从 NIM 主机 “rsh” 到客户机并作为根用户运行命令。

	# rsh aix1 whoami
	root

现在,我已经准备好进行迁移了。迁移过程将需要 30-45 分钟,在此过程中,LPAR 上的应用程序将继续正常工作。

在 NIM 主机上,我已经创建了一个名为 nimadmvg 的新卷组(VG)。这个 VG 的容量足够容纳 NIM 客户机根卷组(rootvg)的一个完整副本。在迁移过程开始之前,这个 VG 将是空的。

同样,在 NIM 客户机上,我拥有一个能够容纳其 rootvg 的一个完整副本的空闲磁盘。

在主机(nim1)上:

	# lsvg -l nimadmvg
	nimadmvg:
	LV NAME  TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT

在客户机(aix1)上:

	
	# lspv 
	hdisk0 0000273ac30fdcfc rootvg          active
	hdisk1 000273ac30fdd6e  None  
			

将文件组 bos.alt_disk_install.rte 安装到 NIM 主机上:

# 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


该文件组还被安装到 AIX 6.1 TL3 SP1 SPOT 中:

# nim -o showres 'spotaix61031'  | grep bos.alt_disk_install.rte
  bos.alt_disk_install.rte   6.1.3.1    C     F    Alternate Disk Installation

从 NIM 主机执行 nimadm 命令。

 # nimadm -j nimadmvg -c aix1 -s spotaix61031 -l lppsourceaix61031 -d "hdisk1" –Y

其中:

  • –j 标志指定主机上将用于迁移的 VG。
  • -c 是客户机名称。
  • –s 是 SPOT 名称。
  • -l 是 lpp_source 名称。
  • -d 是替代根卷组(altinst_rootvg)的 hdisk 名称。
  • –Y 同意迁移过程中将安装的软件的软件许可协议。

现在我可以休息一下,观看迁移过程自动进行了。所有迁移活动将记录在 NIM 主机上的 /var/adm/ras/alt_mig 目录中。对于这个迁移,日志文件的名称为 aix1_alt_mig.log。以下是您将看到的各个阶段的部分输出样例:

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

......输出省略......

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.

迁移过程结束后,我确认启动列表设置为 altinst_rootvg 磁盘。

	# lspv | grep rootvg
	hdisk0 0000273ac30fdcfc rootvg          active
	hdisk1 000273ac30fdd6e  altinst_rootvg  active
	
	# bootlist -m normal -o
	hdisk1 blv=hd5
	

在一个指定时间,我重新启动 LPAR 并确认系统现在正在运行 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.

此时,我将执行一些常规的 AIX 系统健康状况检查,以便确保系统按预期方式配置并运行。也可以运行一个 post_migration 脚本来验证迁移。这个脚本可以在迁移后在 /usr/lpp/bos 中找到。

您也许想在这个阶段考虑升级其他软件,比如 openssl、openssh、lsof 等。

现在,您可以在迁移结束后禁用 rsh 守护进程。

	# chsubserver -d -v shell -p tcp6 -r inetd 
	# refresh –s inetd
	# cd /
	# rm .rhosts
	# ln -s /dev/null .rhosts 

迁移结束后,应用程序启动,应用程序支持团队验证所有程序是否正常运行。我还在迁移结束后运行一次 mksysb 命令并对系统配置进行文档记录。

一旦迁移结束且我们对整个迁移过程感到满意,我们就可以将 rootvg 返回到此前的镜像磁盘配置。

	# 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

如果迁移出现问题,我可以轻松地返回前一个 AIX 版本。我们无需重新镜像(上面的)rootvg,相反,我们将更改启动列表以指向前一个 rootvg 磁盘(old_rootvg)并重新启动 LPAR。

	# lspv | grep old_rootvg
	hdisk0  000071da26fe3bd0      old_rootvg
	# bootlist -m normal hdisk0
	# bootlist -m normal –o
	hdisk0 blv=hd5
	# shutdown –Fr

这种方法比(通过 NIM、磁带或 DVD)恢复一个 mksysb 映像更简单快捷,只有在使用传统迁移方法时才需要那样做。







通过使用 nimadm,我们可以减少将系统迁移到 AIX 6.1 所需的总体停机时间。我们还提供了一种简便的方法,以便在必要时备份一个迁移。当您需要将系统迁移到 AIX 6.1 时,我希望本文能够向您提供一些关于如何最好地迁移您的系统的想法。

通过 NIM Alternate Disk Migration 工具最小化 AIX 迁移停机时间

developerWorks
文档选项
将打印机的版面设置成横向打印模式

将此页作为电子邮件发送

将此页作为电子邮件发送

英文原文

英文原文


级别: 初级

, AIX 专家, Australia Post

2010 年 2 月 01 日

本文展示如何使用 NIM Alternate Disk Migration 工具迁移到 AIX® 6.1,如何最小化迁移到 AIX 操作系统的最新版本所需的停机时间。

最近,我一直忙于将我的整个 AIX 环境从 AIX 5.3 升级到 AIX 6.1。我的环境由接近 100 个 AIX LPAR 组成。面对这样的迁移任务时,我总是考虑如何更好、更快、更高效地实现迁移目标,将迁移对客户机的干扰降低到最小。

AIX OS 提供 Network Installation Manager (NIM) 来协助管理和升级大量 AIX 系统,这个工具的一个不错的特性是 NIM Alternate Disk Migration(nimadm)功能。您很快就会看到,通过使用这个工具,您的迁移过程将不会导致长时间的服务停用。

在本文中,我将展示我们用于迁移 AIX 系统的 nimadm 过程。本文假设您非常熟悉 AIX 和 NIM,您的环境中有一台 NIM 主机。如果不是这样,我建议您首先参阅 部分的文档。







多年来,我已经迁移到 AIX OS 的几个新版本。为此,我通常使用以下两种传统方法:(A)使用 AIX 安装 DVD 进行迁移;(B)使用 NIM 进行迁移。方法 A 仍然可行,即便在使用 的虚拟环境中。方法 B 也完全可行,具体方法是从网络启动客户端 LPAR 并使用一个 NIM 执行迁移。

这两种方法的缺点是迁移过程需要较长时间地停用 LPAR。根据系统的不同,停用时间从 30-45 分钟到几小时不等。在具有严格的停用窗口(outage window)的系统中,这可能是一个需要考虑的问题。

与传统迁移方法相比,nimadm 实用程序具有几个优势。例如,系统管理员可以使用 nimadm 来创建一个 NIM 客户机的 rootvg 的一个副本(在客户机的空闲磁盘上,类似于一个标准的替代磁盘安装 alt_disk_install)并将该磁盘迁移到一个更新的 AIX 版本。这种方法不会干扰客户机(执行迁移不需要任何停用)。迁移完成后,需要的唯一停机将是一次预定的系统重启。

另一个优势是,实际迁移过程在 NIM 主机上进行,消除了客户机 LPAR 上的迁移负载。这减小了 LPAR 上的处理开销,最小化了正在运行的应用程序的性能影响。

对于拥有大量 AIX 系统的客户,重要的是要知道,nimadm 工具支持一次迁移几个客户机。

综上所述,与其他迁移方法相比,nimadm 具有以下好处:

  • 减少客户机停机时间。迁移过程在系统启动并正常运行时进行,对客户机上运行的所有应用程序和服务都没有干扰;因此升级可以在管理员方便的时候进行。稍后,管理员可以安排一次重启在新版本 AIX 上重新启动系统。
  • nimadm 过程非常灵活,可以使用一些可选的 NIM 定制资源来定制,比如 image_data、bosinst_data、pre/post_migration 脚本、exclude_files 等。
  • 从迁移失败快速恢复。所有更改都在 rootvg 副本(altinst_rootvg)上执行。如果迁移出现严重问题,原始 rootvg 仍然可用,系统没有受到影响。如果迁移过程在某个阶段失败或终止,nimadm 能够从失败事件迅速恢复并在稍后进行清理。整个过程不需要管理员的任何干预,管理员只需查明迁移失败的原因,纠正问题,然后再次尝试运行 nimadm 过程。如果迁移完成但重启后发现问题,那么管理员可以通过从原始 rootvg 磁盘启动来轻松恢复。






在尝试使用 nimadm 迁移到 AIX 6.1 之前,必须满足几个要求。我在这里只会提到部分要求,建议您参阅 nimadm 的在线文档或 IBM NIM Redbook 了解更多信息(参见本文末尾的 部分)。

  • 您必须拥有一个运行具有最新或更高 Technology Level 的 AIX 6.1 或更高版本的 NIM 主机。
  • NIM 主机必须拥有 bos.alt_disk_install.rte 文件组,这个文件组必须安装在该主机的 rootvg 中和迁移将使用的 SPOT 中。二者需要处于相同的级别。您不必在客户机上安装替代磁盘实用程序。
  • 已经为迁移选择的 lpp_source 和 SPOT NIM 资源 “必须” 匹配要迁移到的 AIX 级别。
  • NIM 主机的 AIX 级别(总是)应该与客户机上要迁移到的 AIX 级别相同或比其更高。
  • 目标客户机必须在 NIM 主机上注册为一个独立 NIM 客户机。
  • NIM 主机必须能够使用 rsh 在客户机上执行远程命令。
  • 确保 NIM 客户机拥有一个空闲磁盘(没有分配到任何卷组),这个磁盘的容量应该足够容纳它的 rootvg 的一个完整副本。如果 rootvg 已被镜像,那么应打破镜像并使用其中一个磁盘来进行迁移。
  • 确保客户机的 NIM 主机拥有一个卷组(例如 nimadmvg),该卷组的容量应该足够容纳客户机的 rootvg 的一个完整副本。如果需要对多个 NIM 客户机进行多个 AIX 迁移,确保能够容纳每个客户机 rootvg 的一个副本。

默认情况下,nimadm 工具利用 NFS 来完成迁移过程中的多个任务。这在低速网络上将会出现问题,因为 NFS 写入成本可能会非常昂贵。要避免使用 NFS,有一个 Local Disk Caching 选项可用,该选项能够提供一些性能改进。

本地磁盘缓存允许 NIM 主机不必使用 NFS 来写入客户机。如果 nimadm 操作由于一个 NFS 写入瓶颈而性能不佳,那么这个选项可能有用。

如果 Local Disk Caching 功能被调用,那么 nimadm 将在 NIM 主机上的一个卷组上创建客户机文件系统。然后,它将使用流(通过 rshd)将来自客户机的所有数据缓存到 NIM 主机上的文件系统中。

与 NFS 相比,本地磁盘缓存的优势总结如下:

  • 能够在相对较慢的网络上改善 nimadm 操作的性能。
  • 改善存在 NFS 写入瓶颈的 nimadm 操作的性能。
  • 降低客户机上的 CPU 占用。
  • 客户机文件系统无需导出。
  • 允许使用 nimadm 迁移支持 TCB 的系统。

本地磁盘缓存的一些潜在劣势是:

  • 缓存文件系统将占用 NIM 主机上的空间。您必须在 NIM 主机上的一个卷组中拥有足够的磁盘空间来容纳客户机的 rootvg 文件系统,并为每个客户机的迁移预留一些空间。
  • 增加了 NIM 主机上的 CPU 占用。
  • 增加了主机上的 I/O。为获得最佳性能,建议使用 NIM 主机上的这样一个卷组:不包含 AIX 迁移使用的 NIM 资源的卷组。

鉴于性能原因,我的环境中部署的 nimadm 启用了 Local Disk Caching 选项。

nimadm 命令执行的迁移包含 12 个阶段,在执行迁移之前适当了解每个阶段是很有用的。

  1. 主机发送 alt_disk_install 命令到客户机,这将在目标磁盘上创建一个客户机 rootvg 副本。在这个阶段,替代根卷组(altinst_rootvg)将被创建。
  2. NIM 主机在 nimadmvg 卷组中创建缓存文件系统,并对需要的迁移磁盘空间执行一些初步检查。
  3. NIM 主机将 NIM 客户机的数据复制到 nimadmvg 中的缓存文件系统。这种数据复制通过 rsh 完成。
  4. 如果已指定一个预迁移脚本,则该脚本在这个时间段执行。
  5. 保存系统配置文件,计算初始迁移磁盘空间并创建适当的文件系统扩展。恢复 bos 映像并合并设备数据库(类似于传统迁移)。执行所有迁移合并方法并进行其他一些处理。
  6. 使用 installp 迁移所有系统文件组,这个阶段还将安装所有必要的 RPM 映像。
  7. 如果已指定一个迁移后脚本资源,则该脚本在这个时间段执行。
  8. 运行 bosboot 命令创建一个客户机启动映像,这个启动映像将写入客户机的替代启动逻辑卷(alt_hd5)。
  9. 现在,从 NIM 主机的本地缓存文件复制所有迁移数据,并通过 rsh 同步到客户机的替代 rootvg
  10. NIM 主机进行清理并删除本地缓存文件系统。
  11. 再次调用 alt_disk_install 命令来进行最后的调整并使 altinst_rootvg 进入睡眠状态。将启动列表设置为目标磁盘。
  12. 执行清理以结束迁移。

如果您不能满足步骤 1 - 10 的要求,那么您应该考虑执行传统迁移。

在展示下一个 nimadm 示例之前,我想先补充几个您应该考虑的问题。

  • 建议您不要在迁移过程中进行任何系统更改,比如添加用户、修改密码、添加打印队列等。如果可能,一直等到迁移过程结束,系统重新启动到新版本 AIX。如果您必须在重新启动前执行管理任务,您应该记录下所做的更改,并在重新启动到 AIX 6.1 之后对系统重新应用这些更改。
  • 在生产系统上执行迁移过程之前,我们反复开发、测试和验证了这些迁移过程。这使我们有时间确认迁移步骤是正确的,AIX 迁移应该按预期的方式进行。建议您也这样做。
  • 如果您的 rootvg 中有一个 multibos,那么删除它。AIX 迁移 。确保所有 rootvg LV 都重命名为它们原来的名称。如果必要,创建一个 rootvg 新示例并重新启动 LPAR。例如:
	# multibos –sXp
	# multibos –sX
	# shutdown –Fr

确认原来的 LV 名称,即 not bos_.,现在正在使用中。

	# 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

删除原来的 multibos 实例。

	# multibos -R







现在我们使用 nimadm 来迁移一个 AIX 系统。在执行任何维护任务之前,一定要对系统进行文档记录并执行一个 mksysb 命令。您早就知道这个要求了,对不对?但我还是要再强调一次。

我们将把一个系统从 AIX 5.3 迁移到 AIX 6.1。这个环境中的 NIM 主机正在运行 AIX 6.1 TL3 SP2,我们的 NIM 客户机的名称是 aix1(运行 AIX 5.3 TL7 SP5 并准备迁移到 AIX 6.1 TL3 SP1),NIM 主机的名称为 nim1。

确保您阅读了 AIX 6.1 发行说明并检查了文档中记录的要求,比如,需要的空闲磁盘空间容量。

迁移之前,在系统上运行一个 pre_migration 脚本来捕获可能阻止迁移成功执行的问题总是一个不错的主意。您可以在 AIX 6.1 安装媒体中找到这个脚本。

运行这个脚本,(在 /home/pre_migration 中)检查输出,在迁移之前更正输出结果报告的问题。

#./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.

我总是在 AIX 迁移之前备份 /etc/sendmail.cf 和 /etc/motd 文件,这些文件将在迁移过程中被替换,您需要再次编辑它们并添加您的修改。

提交任何已应用的文件组。您还应该考虑删除所有可能会阻碍迁移的 ifix。

如果 rootvg 被镜像,我就打破镜像并将其减少到一个单一磁盘,这将向我提供一个可用于迁移的空闲磁盘。

要使 nimadm 正常运行,我必须在客户机 LPAR 上临时启用 rshd。我将在迁移结束后再次禁用它。

	# chsubserver -a -v shell -p tcp6 -r inetd 
	# refresh –s inetd
	# cd /
	# rm .rhosts
	# vi .rhosts
	+
	# chmod 600 .rhosts

我现在就可以从 NIM 主机 “rsh” 到客户机并作为根用户运行命令。

	# rsh aix1 whoami
	root

现在,我已经准备好进行迁移了。迁移过程将需要 30-45 分钟,在此过程中,LPAR 上的应用程序将继续正常工作。

在 NIM 主机上,我已经创建了一个名为 nimadmvg 的新卷组(VG)。这个 VG 的容量足够容纳 NIM 客户机根卷组(rootvg)的一个完整副本。在迁移过程开始之前,这个 VG 将是空的。

同样,在 NIM 客户机上,我拥有一个能够容纳其 rootvg 的一个完整副本的空闲磁盘。

在主机(nim1)上:

	# lsvg -l nimadmvg
	nimadmvg:
	LV NAME  TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT

在客户机(aix1)上:

	
	# lspv 
	hdisk0 0000273ac30fdcfc rootvg          active
	hdisk1 000273ac30fdd6e  None  
			

将文件组 bos.alt_disk_install.rte 安装到 NIM 主机上:

# 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


该文件组还被安装到 AIX 6.1 TL3 SP1 SPOT 中:

# nim -o showres 'spotaix61031'  | grep bos.alt_disk_install.rte
  bos.alt_disk_install.rte   6.1.3.1    C     F    Alternate Disk Installation

从 NIM 主机执行 nimadm 命令。

 # nimadm -j nimadmvg -c aix1 -s spotaix61031 -l lppsourceaix61031 -d "hdisk1" –Y

其中:

  • –j 标志指定主机上将用于迁移的 VG。
  • -c 是客户机名称。
  • –s 是 SPOT 名称。
  • -l 是 lpp_source 名称。
  • -d 是替代根卷组(altinst_rootvg)的 hdisk 名称。
  • –Y 同意迁移过程中将安装的软件的软件许可协议。

现在我可以休息一下,观看迁移过程自动进行了。所有迁移活动将记录在 NIM 主机上的 /var/adm/ras/alt_mig 目录中。对于这个迁移,日志文件的名称为 aix1_alt_mig.log。以下是您将看到的各个阶段的部分输出样例:

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

......输出省略......

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.

迁移过程结束后,我确认启动列表设置为 altinst_rootvg 磁盘。

	# lspv | grep rootvg
	hdisk0 0000273ac30fdcfc rootvg          active
	hdisk1 000273ac30fdd6e  altinst_rootvg  active
	
	# bootlist -m normal -o
	hdisk1 blv=hd5
	

在一个指定时间,我重新启动 LPAR 并确认系统现在正在运行 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.

此时,我将执行一些常规的 AIX 系统健康状况检查,以便确保系统按预期方式配置并运行。也可以运行一个 post_migration 脚本来验证迁移。这个脚本可以在迁移后在 /usr/lpp/bos 中找到。

您也许想在这个阶段考虑升级其他软件,比如 openssl、openssh、lsof 等。

现在,您可以在迁移结束后禁用 rsh 守护进程。

	# chsubserver -d -v shell -p tcp6 -r inetd 
	# refresh –s inetd
	# cd /
	# rm .rhosts
	# ln -s /dev/null .rhosts 

迁移结束后,应用程序启动,应用程序支持团队验证所有程序是否正常运行。我还在迁移结束后运行一次 mksysb 命令并对系统配置进行文档记录。

一旦迁移结束且我们对整个迁移过程感到满意,我们就可以将 rootvg 返回到此前的镜像磁盘配置。

	# 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

如果迁移出现问题,我可以轻松地返回前一个 AIX 版本。我们无需重新镜像(上面的)rootvg,相反,我们将更改启动列表以指向前一个 rootvg 磁盘(old_rootvg)并重新启动 LPAR。

	# lspv | grep old_rootvg
	hdisk0  000071da26fe3bd0      old_rootvg
	# bootlist -m normal hdisk0
	# bootlist -m normal –o
	hdisk0 blv=hd5
	# shutdown –Fr

这种方法比(通过 NIM、磁带或 DVD)恢复一个 mksysb 映像更简单快捷,只有在使用传统迁移方法时才需要那样做。







通过使用 nimadm,我们可以减少将系统迁移到 AIX 6.1 所需的总体停机时间。我们还提供了一种简便的方法,以便在必要时备份一个迁移。当您需要将系统迁移到 AIX 6.1 时,我希望本文能够向您提供一些关于如何最好地迁移您的系统的想法。

通过 NIM Alternate Disk Migration 工具最小化 AIX 迁移停机时间

developerWorks

通过 NIM Alternate Disk Migration 工具最小化 AIX 迁移停机时间

developerWorks
文档选项
将打印机的版面设置成横向打印模式

将此页作为电子邮件发送

将此页作为电子邮件发送

英文原文

英文原文


级别: 初级

, AIX 专家, Australia Post

2010 年 2 月 01 日

本文展示如何使用 NIM Alternate Disk Migration 工具迁移到 AIX® 6.1,如何最小化迁移到 AIX 操作系统的最新版本所需的停机时间。

最近,我一直忙于将我的整个 AIX 环境从 AIX 5.3 升级到 AIX 6.1。我的环境由接近 100 个 AIX LPAR 组成。面对这样的迁移任务时,我总是考虑如何更好、更快、更高效地实现迁移目标,将迁移对客户机的干扰降低到最小。

AIX OS 提供 Network Installation Manager (NIM) 来协助管理和升级大量 AIX 系统,这个工具的一个不错的特性是 NIM Alternate Disk Migration(nimadm)功能。您很快就会看到,通过使用这个工具,您的迁移过程将不会导致长时间的服务停用。

在本文中,我将展示我们用于迁移 AIX 系统的 nimadm 过程。本文假设您非常熟悉 AIX 和 NIM,您的环境中有一台 NIM 主机。如果不是这样,我建议您首先参阅 部分的文档。







多年来,我已经迁移到 AIX OS 的几个新版本。为此,我通常使用以下两种传统方法:(A)使用 AIX 安装 DVD 进行迁移;(B)使用 NIM 进行迁移。方法 A 仍然可行,即便在使用 的虚拟环境中。方法 B 也完全可行,具体方法是从网络启动客户端 LPAR 并使用一个 NIM 执行迁移。

这两种方法的缺点是迁移过程需要较长时间地停用 LPAR。根据系统的不同,停用时间从 30-45 分钟到几小时不等。在具有严格的停用窗口(outage window)的系统中,这可能是一个需要考虑的问题。

与传统迁移方法相比,nimadm 实用程序具有几个优势。例如,系统管理员可以使用 nimadm 来创建一个 NIM 客户机的 rootvg 的一个副本(在客户机的空闲磁盘上,类似于一个标准的替代磁盘安装 alt_disk_install)并将该磁盘迁移到一个更新的 AIX 版本。这种方法不会干扰客户机(执行迁移不需要任何停用)。迁移完成后,需要的唯一停机将是一次预定的系统重启。

另一个优势是,实际迁移过程在 NIM 主机上进行,消除了客户机 LPAR 上的迁移负载。这减小了 LPAR 上的处理开销,最小化了正在运行的应用程序的性能影响。

对于拥有大量 AIX 系统的客户,重要的是要知道,nimadm 工具支持一次迁移几个客户机。

综上所述,与其他迁移方法相比,nimadm 具有以下好处:

  • 减少客户机停机时间。迁移过程在系统启动并正常运行时进行,对客户机上运行的所有应用程序和服务都没有干扰;因此升级可以在管理员方便的时候进行。稍后,管理员可以安排一次重启在新版本 AIX 上重新启动系统。
  • nimadm 过程非常灵活,可以使用一些可选的 NIM 定制资源来定制,比如 image_data、bosinst_data、pre/post_migration 脚本、exclude_files 等。
  • 从迁移失败快速恢复。所有更改都在 rootvg 副本(altinst_rootvg)上执行。如果迁移出现严重问题,原始 rootvg 仍然可用,系统没有受到影响。如果迁移过程在某个阶段失败或终止,nimadm 能够从失败事件迅速恢复并在稍后进行清理。整个过程不需要管理员的任何干预,管理员只需查明迁移失败的原因,纠正问题,然后再次尝试运行 nimadm 过程。如果迁移完成但重启后发现问题,那么管理员可以通过从原始 rootvg 磁盘启动来轻松恢复。






在尝试使用 nimadm 迁移到 AIX 6.1 之前,必须满足几个要求。我在这里只会提到部分要求,建议您参阅 nimadm 的在线文档或 IBM NIM Redbook 了解更多信息(参见本文末尾的 部分)。

  • 您必须拥有一个运行具有最新或更高 Technology Level 的 AIX 6.1 或更高版本的 NIM 主机。
  • NIM 主机必须拥有 bos.alt_disk_install.rte 文件组,这个文件组必须安装在该主机的 rootvg 中和迁移将使用的 SPOT 中。二者需要处于相同的级别。您不必在客户机上安装替代磁盘实用程序。
  • 已经为迁移选择的 lpp_source 和 SPOT NIM 资源 “必须” 匹配要迁移到的 AIX 级别。
  • NIM 主机的 AIX 级别(总是)应该与客户机上要迁移到的 AIX 级别相同或比其更高。
  • 目标客户机必须在 NIM 主机上注册为一个独立 NIM 客户机。
  • NIM 主机必须能够使用 rsh 在客户机上执行远程命令。
  • 确保 NIM 客户机拥有一个空闲磁盘(没有分配到任何卷组),这个磁盘的容量应该足够容纳它的 rootvg 的一个完整副本。如果 rootvg 已被镜像,那么应打破镜像并使用其中一个磁盘来进行迁移。
  • 确保客户机的 NIM 主机拥有一个卷组(例如 nimadmvg),该卷组的容量应该足够容纳客户机的 rootvg 的一个完整副本。如果需要对多个 NIM 客户机进行多个 AIX 迁移,确保能够容纳每个客户机 rootvg 的一个副本。

默认情况下,nimadm 工具利用 NFS 来完成迁移过程中的多个任务。这在低速网络上将会出现问题,因为 NFS 写入成本可能会非常昂贵。要避免使用 NFS,有一个 Local Disk Caching 选项可用,该选项能够提供一些性能改进。

本地磁盘缓存允许 NIM 主机不必使用 NFS 来写入客户机。如果 nimadm 操作由于一个 NFS 写入瓶颈而性能不佳,那么这个选项可能有用。

如果 Local Disk Caching 功能被调用,那么 nimadm 将在 NIM 主机上的一个卷组上创建客户机文件系统。然后,它将使用流(通过 rshd)将来自客户机的所有数据缓存到 NIM 主机上的文件系统中。

与 NFS 相比,本地磁盘缓存的优势总结如下:

  • 能够在相对较慢的网络上改善 nimadm 操作的性能。
  • 改善存在 NFS 写入瓶颈的 nimadm 操作的性能。
  • 降低客户机上的 CPU 占用。
  • 客户机文件系统无需导出。
  • 允许使用 nimadm 迁移支持 TCB 的系统。

本地磁盘缓存的一些潜在劣势是:

  • 缓存文件系统将占用 NIM 主机上的空间。您必须在 NIM 主机上的一个卷组中拥有足够的磁盘空间来容纳客户机的 rootvg 文件系统,并为每个客户机的迁移预留一些空间。
  • 增加了 NIM 主机上的 CPU 占用。
  • 增加了主机上的 I/O。为获得最佳性能,建议使用 NIM 主机上的这样一个卷组:不包含 AIX 迁移使用的 NIM 资源的卷组。

鉴于性能原因,我的环境中部署的 nimadm 启用了 Local Disk Caching 选项。

nimadm 命令执行的迁移包含 12 个阶段,在执行迁移之前适当了解每个阶段是很有用的。

  1. 主机发送 alt_disk_install 命令到客户机,这将在目标磁盘上创建一个客户机 rootvg 副本。在这个阶段,替代根卷组(altinst_rootvg)将被创建。
  2. NIM 主机在 nimadmvg 卷组中创建缓存文件系统,并对需要的迁移磁盘空间执行一些初步检查。
  3. NIM 主机将 NIM 客户机的数据复制到 nimadmvg 中的缓存文件系统。这种数据复制通过 rsh 完成。
  4. 如果已指定一个预迁移脚本,则该脚本在这个时间段执行。
  5. 保存系统配置文件,计算初始迁移磁盘空间并创建适当的文件系统扩展。恢复 bos 映像并合并设备数据库(类似于传统迁移)。执行所有迁移合并方法并进行其他一些处理。
  6. 使用 installp 迁移所有系统文件组,这个阶段还将安装所有必要的 RPM 映像。
  7. 如果已指定一个迁移后脚本资源,则该脚本在这个时间段执行。
  8. 运行 bosboot 命令创建一个客户机启动映像,这个启动映像将写入客户机的替代启动逻辑卷(alt_hd5)。
  9. 现在,从 NIM 主机的本地缓存文件复制所有迁移数据,并通过 rsh 同步到客户机的替代 rootvg
  10. NIM 主机进行清理并删除本地缓存文件系统。
  11. 再次调用 alt_disk_install 命令来进行最后的调整并使 altinst_rootvg 进入睡眠状态。将启动列表设置为目标磁盘。
  12. 执行清理以结束迁移。

如果您不能满足步骤 1 - 10 的要求,那么您应该考虑执行传统迁移。

在展示下一个 nimadm 示例之前,我想先补充几个您应该考虑的问题。

  • 建议您不要在迁移过程中进行任何系统更改,比如添加用户、修改密码、添加打印队列等。如果可能,一直等到迁移过程结束,系统重新启动到新版本 AIX。如果您必须在重新启动前执行管理任务,您应该记录下所做的更改,并在重新启动到 AIX 6.1 之后对系统重新应用这些更改。
  • 在生产系统上执行迁移过程之前,我们反复开发、测试和验证了这些迁移过程。这使我们有时间确认迁移步骤是正确的,AIX 迁移应该按预期的方式进行。建议您也这样做。
  • 如果您的 rootvg 中有一个 multibos,那么删除它。AIX 迁移 。确保所有 rootvg LV 都重命名为它们原来的名称。如果必要,创建一个 rootvg 新示例并重新启动 LPAR。例如:
	# multibos –sXp
	# multibos –sX
	# shutdown –Fr

确认原来的 LV 名称,即 not bos_.,现在正在使用中。

	# 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

删除原来的 multibos 实例。

	# multibos -R







现在我们使用 nimadm 来迁移一个 AIX 系统。在执行任何维护任务之前,一定要对系统进行文档记录并执行一个 mksysb 命令。您早就知道这个要求了,对不对?但我还是要再强调一次。

我们将把一个系统从 AIX 5.3 迁移到 AIX 6.1。这个环境中的 NIM 主机正在运行 AIX 6.1 TL3 SP2,我们的 NIM 客户机的名称是 aix1(运行 AIX 5.3 TL7 SP5 并准备迁移到 AIX 6.1 TL3 SP1),NIM 主机的名称为 nim1。

确保您阅读了 AIX 6.1 发行说明并检查了文档中记录的要求,比如,需要的空闲磁盘空间容量。

迁移之前,在系统上运行一个 pre_migration 脚本来捕获可能阻止迁移成功执行的问题总是一个不错的主意。您可以在 AIX 6.1 安装媒体中找到这个脚本。

运行这个脚本,(在 /home/pre_migration 中)检查输出,在迁移之前更正输出结果报告的问题。

#./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.

我总是在 AIX 迁移之前备份 /etc/sendmail.cf 和 /etc/motd 文件,这些文件将在迁移过程中被替换,您需要再次编辑它们并添加您的修改。

提交任何已应用的文件组。您还应该考虑删除所有可能会阻碍迁移的 ifix。

如果 rootvg 被镜像,我就打破镜像并将其减少到一个单一磁盘,这将向我提供一个可用于迁移的空闲磁盘。

要使 nimadm 正常运行,我必须在客户机 LPAR 上临时启用 rshd。我将在迁移结束后再次禁用它。

	# chsubserver -a -v shell -p tcp6 -r inetd 
	# refresh –s inetd
	# cd /
	# rm .rhosts
	# vi .rhosts
	+
	# chmod 600 .rhosts

我现在就可以从 NIM 主机 “rsh” 到客户机并作为根用户运行命令。

	# rsh aix1 whoami
	root

现在,我已经准备好进行迁移了。迁移过程将需要 30-45 分钟,在此过程中,LPAR 上的应用程序将继续正常工作。

在 NIM 主机上,我已经创建了一个名为 nimadmvg 的新卷组(VG)。这个 VG 的容量足够容纳 NIM 客户机根卷组(rootvg)的一个完整副本。在迁移过程开始之前,这个 VG 将是空的。

同样,在 NIM 客户机上,我拥有一个能够容纳其 rootvg 的一个完整副本的空闲磁盘。

在主机(nim1)上:

	# lsvg -l nimadmvg
	nimadmvg:
	LV NAME  TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT

在客户机(aix1)上:

	
	# lspv 
	hdisk0 0000273ac30fdcfc rootvg          active
	hdisk1 000273ac30fdd6e  None  
			

将文件组 bos.alt_disk_install.rte 安装到 NIM 主机上:

# 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


该文件组还被安装到 AIX 6.1 TL3 SP1 SPOT 中:

# nim -o showres 'spotaix61031'  | grep bos.alt_disk_install.rte
  bos.alt_disk_install.rte   6.1.3.1    C     F    Alternate Disk Installation

从 NIM 主机执行 nimadm 命令。

 # nimadm -j nimadmvg -c aix1 -s spotaix61031 -l lppsourceaix61031 -d "hdisk1" –Y

其中:

  • –j 标志指定主机上将用于迁移的 VG。
  • -c 是客户机名称。
  • –s 是 SPOT 名称。
  • -l 是 lpp_source 名称。
  • -d 是替代根卷组(altinst_rootvg)的 hdisk 名称。
  • –Y 同意迁移过程中将安装的软件的软件许可协议。

现在我可以休息一下,观看迁移过程自动进行了。所有迁移活动将记录在 NIM 主机上的 /var/adm/ras/alt_mig 目录中。对于这个迁移,日志文件的名称为 aix1_alt_mig.log。以下是您将看到的各个阶段的部分输出样例:

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

......输出省略......

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.

迁移过程结束后,我确认启动列表设置为 altinst_rootvg 磁盘。

	# lspv | grep rootvg
	hdisk0 0000273ac30fdcfc rootvg          active
	hdisk1 000273ac30fdd6e  altinst_rootvg  active
	
	# bootlist -m normal -o
	hdisk1 blv=hd5
	

在一个指定时间,我重新启动 LPAR 并确认系统现在正在运行 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.

此时,我将执行一些常规的 AIX 系统健康状况检查,以便确保系统按预期方式配置并运行。也可以运行一个 post_migration 脚本来验证迁移。这个脚本可以在迁移后在 /usr/lpp/bos 中找到。

您也许想在这个阶段考虑升级其他软件,比如 openssl、openssh、lsof 等。

现在,您可以在迁移结束后禁用 rsh 守护进程。

	# chsubserver -d -v shell -p tcp6 -r inetd 
	# refresh –s inetd
	# cd /
	# rm .rhosts
	# ln -s /dev/null .rhosts 

迁移结束后,应用程序启动,应用程序支持团队验证所有程序是否正常运行。我还在迁移结束后运行一次 mksysb 命令并对系统配置进行文档记录。

一旦迁移结束且我们对整个迁移过程感到满意,我们就可以将 rootvg 返回到此前的镜像磁盘配置。

	# 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

如果迁移出现问题,我可以轻松地返回前一个 AIX 版本。我们无需重新镜像(上面的)rootvg,相反,我们将更改启动列表以指向前一个 rootvg 磁盘(old_rootvg)并重新启动 LPAR。

	# lspv | grep old_rootvg
	hdisk0  000071da26fe3bd0      old_rootvg
	# bootlist -m normal hdisk0
	# bootlist -m normal –o
	hdisk0 blv=hd5
	# shutdown –Fr

这种方法比(通过 NIM、磁带或 DVD)恢复一个 mksysb 映像更简单快捷,只有在使用传统迁移方法时才需要那样做。







通过使用 nimadm,我们可以减少将系统迁移到 AIX 6.1 所需的总体停机时间。我们还提供了一种简便的方法,以便在必要时备份一个迁移。当您需要将系统迁移到 AIX 6.1 时,我希望本文能够向您提供一些关于如何最好地迁移您的系统的想法。

阅读(1628) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~