AIX Technology Level 更新策略

支持将 AIX 更新到 Technology Level (TL) 新版本的不同方法

作为一名 AIX® 系统管理员,您了解保持系统更新的重要性。但是,这项工作有些复杂,而且有时会由于环境的规模过大而很难完成。本文介绍了更新 AIX 服务器的几种方法。

Guilherme G. Felix, IBM 认证高级技术专家, IBM

Guilherme G. Felix 是 IBM Brazil 的一位员工,它有超过 10 年的 AIX 和 Linux 工作经历。他是一名 IBM Certified Advanced Technical Expert (CATE) 和一名 Redhat Certified Engineer (RHCE)。Guilherme 也是 IBM Redbook 的合著者之一。



2010 年 8 月 09 日

引言

保持使用最新的 AIX Technology Level (TL) 一直是实现更好的可用性、可靠性和安全的最佳方法。TL 是为 AIX 版本或新硬件支持所添加的一组修复程序或新特性。

以下是决定您应该更新到新版本 TL 的原因:

  • 新版本 TL 提供了一个您需要的新功能。
  • 当前版本的 TL 不能使用或将不支持新的修复和服务程序包。
  • 系统目前需要一个修复程序,但是这个程序只在新版本 TL 中支持。

本文将详细说明 TL 的多种更新和回滚方法。它介绍了 IBM 提供的已批准和支持的 TL 升级方法。


开始前准备

TL 应用必须以组为单位。安装一个 TL 是一个 “全或无” 的操作。从支持的观点上看,安装一部分 TL 是不可能。

应用一个 TL 之前,您一定要先备份您当前的安装环境,然后要计划一个最坏的情况—在需要的时候将系统回滚到之前的版本。

同时,TL 更新必须提交,因为它们是不能够被拒绝的。如果一个 TL 已经应用但是您需要返回之前的版本,那么您就需要使用一个回滚计划。

一般的经验法则是一定要在更新之前创建一个备份。这个备份可以是任何一种镜像备份(mksysb 镜像、sysback 镜像等)。

备用镜像创建好之后,就可以开始升级了。

同时,一个很好的实践方法是创建一个健康检查表,保存尽可能多的系统信息(netstat、ifconfig、lsvg、lsdev、lscfg、prtconf 等),并将它保存在服务器升级所在位置之外的某个位置。要记住这些信息会在遇到问题时作为支持材料使用。

如果准备安装的 TL 版本是 AIX 5.3 TL10 和 AIX 6.1 TL2 之前的,那么一定要删除系统的所有临时修复程序(ifix)。清单 1 显示了如何检查已安装的 ifix 列表,而清单 2 则显示了如何删除一个 ifix。

清单 1. 检查已安装的 ifix 列表
# emgr –l
清单 2. 删除一个 ifix
# emgr –r –L <ifix Label>

更多关于 emgr 命令使用方法的信息,请参考 IBM 文档或网站主页。

如果您准备更新到 AIX 5.3 TL10 或 AIX 6.1 TL3,那么您不需要执行这些步骤,因为这些版本的 installp 和 emgr 已经改进为自动删除 TL 中出现的 ifix。否则,您需要手动删除这些 ifix。

检查所有的文件集是否均已应用且有效,如清单 3 所示。

清单 3. 检查已安装的文件集的一致性
# instfix –i | grep ML
# lppchk –v

如果运行这些命令时有错误,那么要先解决这些问题。应用 TL 到不一致的 AIX 不仅会破坏操作系统,而且它可能导致操作系统无法启动。

接下来,所有状态为 APPLIED 的文件集都应该 COMMENTED。要提交这些文件集,您可以参考清单 4 所的例子。

清单 4. 提交所有状态为 APPLIED 的文件集
# installp -c -f -g –X

或者,可以使用 Smitty 提交,并根据屏幕的指示进行操作。


备用磁盘(Alternate Disk)

这是一个最广泛使用的应用新版本 TL 的方法。它包含在 IBM 技术文档和书籍中。使用一个备用磁盘有以下方法:

  1. 使用第二个磁盘并将 TL 应用到这个磁盘中,而不中断原来的磁盘,在 TL 升级完成后重新启动— IBM 建议升级时终止所有进程,并且注销所有用户(本文将会介绍这个过程)。
  2. 重新启动到第二个磁盘,然后在主磁盘上运行 TL 升级—有一些系统管理员经常使用这个方法,它能保证系统以一致的状态运行,并且在重新启动后不会出现问题和冲突。

无论使用哪一种方法,您都需要使用一个空闲的磁盘作为备用磁盘。

对于这个备用磁盘更新方法,所更新的服务器有一个具有两块镜像磁盘的 rootvg。因此,在开始之前要解除这些镜像,并使用第二块磁盘作为备用磁盘安装,如清单 5 所示。

清单 5. 解除 rootvg 镜像
# unmirrorvg rootvg

如果配置备用转储设备来使用备用磁盘,那么要使用 migratepv 将它的 LP 转移到保留的磁盘或者不配置备用转储设备。

将这个磁盘从 rootvg 删除(假定 X 是磁盘设备号),如清单 6 所示。

清单 6. 将磁盘从 rootvg 删除
# reducevg rootvg hdiskX

现在可以创建备用磁盘,然后将 TL 更新应用到这个磁盘上。正如本文所介绍的,TL 文件可以存储在本地、远程 NFS 或 CD-ROM 中。

您可以使用 Smitty 快捷方法 smitty alt_clone,或者 alt_disk_copy 命令。图 1 显示了初始 Smitty 屏幕。

图 1. 初始 Smitty alt_clone 屏幕
Smitty alt_clone 屏幕截图

记住,如果不确定某个域,您可以按 F1 键查看帮助文档。

接下来,使用 hdisk1 目录,而 TL 文件则位于本地文件系统的 /stage_TL 目录,如图 2 所示。

图 2. 添加用于安装的 hdisk1 和 bundle、图像所在目录、以及许可协议验收
添加用于安装的 hdisk1 和 bundle、图像所在目录、以及许可协议验收的截图

所有操作都将会被记录到 /var/adm/ras/alt_disk_inst.log。要查看这个过程,可以输入 tail –f’。

服务器需要在更新过程完成后重新启动,所以要保证启动列表显示目标备用磁盘作为启动设备(如清单 7 所示)。

例 7. 检查启动设备顺序
# bootlist –m normal –o
hdisk1 blv=hd5

当服务器启动后,输入命令 oslevel –soslevel –r,检查 OS 级别现在是否为更新的 TL,如清单 8 所示。

清单 8. 检查运行的 AIX 版本
# oslevel –s
5300-10-01-0921

如果更新成功,rootvg 就可以再次映射。清单 9 显示了如何再次映射 rootvg。

清单 9. 重新映射 rootvg
# exportvg old_rootvg
# extendvg –f rootvg hdisk0
# mirrorvg rootvg

在 hdisk0 上创建一个新的启动镜像,并将它添加到启动列表上,如清单 10 所示。

清单 10. 创建一个启动镜像
# bosboot –ad /dev/hdisk0
# bootlist –m normal –o hdisk0 hdisk1

Multibos

这是迄今为止最好的升级 AIX 的方法。它是 AIX 5.3 TL3 所引入的。其优点在于 rootvg 上只需要一块磁盘,而不需要任何空闲磁盘作为备用磁盘。

Multibos 在相同的 rootvg 上创建并维护了两个不同的可启动的 AIX 实例。它类似于备用磁盘方式。在这种情况下,其中最大的差别是 Multibos 只会创建和复制以下逻辑卷(LV):

  • /;
  • /usr;
  • /var;
  • /opt;
  • hd5(启动的逻辑卷)。

虽然您可以指定和复制更多的逻辑卷,所有其他的 LV 都会共享给原始启动卷组。Multibos 支持一个新的 TL 更新,但是 Multibos 不支持 AIX 版本升级。

除了 开始前准备 这一部分所提到任务之外,还要确定有足够的空闲空间,以便将所有 BOS 逻辑卷复制到同一个根卷组磁盘中,否则 Multibos 将不会生效。

通过运行 Multibos 命令创建一个新的 BOS 备用实例。在您开始操作之前要阅读它的选项和文档。清单 11 显示了如何创建一个新的 BOS 备用实例。

清单 11. 创建 Multibos 备用 BOS 的预览信息
# multibos –sXp

这里显示了将要执行的 Multibos 预览信息。更详细的信息在其日志文件(/etc/multibos/logs/op.alog)中。如果预览信息显示一切正常,那么您可以不使用预览标记(-p)而再执行一次这个命令,如清单 12 所示。

例 12. 创建 Multibos 备用 BOS
# multibos –sX

复制所有的内容需要几分钟时间,而在完成后,所有新的 LV 将会被加上前缀 “bos_”。清单 13 显示了新备用 BOS 创建后的 rootvg 信息。

清单 13. 创建的 Multibos 备用 BOS
# lsvg –l rootvg
rootvg:
LV NAME             TYPE       LPs   PPs   PVs  LV STATE      MOUNT POINT
hd5                 boot       1     1     1    closed/syncd  N/A
hd6                 paging     192   192   1    open/syncd    N/A
hd8                 jfs2log    1     1     1    open/syncd    N/A
hd4                 jfs2       1     1     1    open/syncd    /
hd2                 jfs2       17    17    1    open/syncd    /usr
hd9var              jfs2       8     8     1    open/syncd    /var
hd3                 jfs2       4     4     1    open/syncd    /tmp
hd1                 jfs2       1     1     1    open/syncd    /home
hd10opt             jfs2       1     1     1    open/syncd    /opt
lvdump1             sysdump    22    22    1    open/syncd    N/A
lvdump2             sysdump    22    22    1    open/syncd    N/A
bos_hd5             boot       1     1     1    closed/syncd  N/A
bos_hd4             jfs2       1     1     1    open/syncd    /bos_inst
bos_hd2             jfs2       17    17    1    open/syncd    /bos_inst/usr
bos_hd9var          jfs2       8     8     1    open/syncd    /bos_inst/var
bos_hd10opt         jfs2       1     1     1    open/syncd    /bos_inst/opt

一个很好的做法是进入最新创建的 BOS 实例 Shell,验证它的当前 TL,如清单 14 所示。要退出 Multibos 环境,您只需要输入‘exit’:

清单 14. 进入 Multibos Shell 并检查 AIX 版本
# multibos –S
Initializing multibos methods ...
Initializing log /etc/multibos/logs/op.alog ...
Gathering system information ...

+-----------------------------------------------------------------------------+
Multibos Shell Operation
+-----------------------------------------------------------------------------+
Verifying operation parameters ...

+-----------------------------------------------------------------------------+
Mount Processing
+-----------------------------------------------------------------------------+
Mounting all standby BOS file systems ...
Mounting /bos_inst
Mounting /bos_inst/usr
Mounting /bos_inst/var
Mounting /bos_inst/opt

+-----------------------------------------------------------------------------+
Multibos Root Shell
+-----------------------------------------------------------------------------+
Starting multibos root shell ...
Active boot logical volume is hd5.
Script command is started. The file is /etc/multibos/logs/scriptlog.090904032855.txt.
MULTIBOS> oslevel –s
5300-06-08-0831

如果所有前提任务都已经完成(参见 开始前准备 部分),TL 更新就会启动。清单 15 中所使用的命令将会更新您新创建的备用 BOS 实例。

清单 15. 更新备用 BOS 实例
# multibos –Xac –l /stage_TL

在命令完成后,再次进入 Multibos Shell,检查当前的 TL,如清单 16 所示。

清单 16. 进入 Multibos Shell
# multibos –S
Initializing multibos methods ...
Initializing log /etc/multibos/logs/op.alog ...
Gathering system information ...

+-----------------------------------------------------------------------------+
Multibos Shell Operation
+-----------------------------------------------------------------------------+
Verifying operation parameters ...

+-----------------------------------------------------------------------------+
Mount Processing
+-----------------------------------------------------------------------------+
Mounting all standby BOS file systems ...
Mounting /bos_inst
Mounting /bos_inst/usr
Mounting /bos_inst/var
Mounting /bos_inst/opt

+-----------------------------------------------------------------------------+
Multibos Root Shell
+-----------------------------------------------------------------------------+
Starting multibos root shell ...
Active boot logical volume is hd5.
Script command is started. The file is /etc/multibos/logs/scriptlog.090904035718.txt.
MULTIBOS> oslevel –s
5300-10-01-0921

配置并保证启动列表将备用 BOS 作为第一启动设备,如清单 17 所示。

清单 17. 设置启动到您新的 BOS 备用实例
# multibos –B

# bootlist –m normal –o 
hdisk0 blv=bos_hd5
hdisk0 blv=hd5

如果更新过程失败,那么就需要进行一个回滚操作,并将启动列表设置回之前的启动 LV,然后重启— 这将使系统返回旧版 AIX。过程如清单 18 所示。

清单 18. 将启动设备改回初始的 rootvg
# bootlist –m normal –o hdisk0 blv=hd5 hdisk0 blv=bos_hd5
# bootlist –m normal –o
hdisk0 blv=hd5
hdisk0 blv=bos_hd5

但是,如果更新过程没有出现问题,而且备用 BOS 不再需要了,那么它可以通过清单 19 的命令删除。

清单 19. 删除掉的 rootvg
# multibos -R

同一磁盘

这是最简单的方法。这个方法的缺点是回滚时需要两个启动方式。

在本例中,备用磁盘将在更新过程之前进行备份。所以,再次使用 smitty alt_clone,如图 3 所示,选择要求的备份磁盘,使用默认值执行操作。

图 3. smitty alt_clone 菜单
smitty alt_clone 菜截图

您也可以使用清单 20 所列的命令。

清单 20. 克隆 rootvg 的命令
	# alt_disk_copy -P "all" -d "hdisk1" -B

想要了解备用任务的执行过程,可以查看备用磁盘日志文件 /var/adm/ras/ alt_disk_inst.log。

备用磁盘准备好后,就可以执行更新过程了。您可以使用 Smitty 快捷方法 smitty update_all 或在命令行中使用 install_all_updates。清单 21 显示的是更新过程。

进入包含 TL 文件集的目录:

清单 21. 同一磁盘更新过程
>

	# cd /stage_TL

然后创建一个 Table of Contents (ToC) 文件:

	# inutoc .

当目录仍然包含这些文件集时,运行我们的 smitty update_all 命令,如图 4 所示。

图 4: smitty update_all initial 屏幕
smitty update_all initial 屏幕截图

第一个屏幕将会询问文件集的位置,输入一个 “.”(点)然后回车。

图 5 显示了 smitty 菜单。

图 5. smitty update_all 菜单及选项
smitty update_all 菜单及选项截图

更新过程结束后,重启服务器。

服务器重启后,输入命令 oslevel –soslevel –r ,然后检查 OS 级别现在是否在 TL 级别,如清单 22 所示。

清单 22: 检查更新后的 AIX 版本
	# oslevel –s
	5300-10-01-0921

如果更新成功,rootvg 就可以再次映射了。根据清单 23 的例子重新映射 rootvg,并在 hdisk1 上创建一个启动镜像,并将它添加到启动列表。

清单 23. 重新映射 rootvg
	# exportvg alt_inst_rootvg
	# extendvg –f rootvg hdisk1
	# mirrorvg rootvg
	# bosboot –ad /dev/hdisk1
	# bootlist –m normal –o hdisk0 hdisk1

使用一个 NIM 服务器

这也是更新 AIX 服务器的最常用方法之一。然而,在这种情况中需要使用正常运行的 NIM 服务器。

本文并不准备介绍如何配置一个 NIM 服务器及其组件:spots、lpp_sources、machines 等。

正如之前方法所做的,参考 开始前的准备 部分检查是否符合所有要求。如果符合,就根据图 6 的例子开始:

图 6. 进入 smitty nim 菜单
所进入的 smitty nim 菜单截图

这样会进入主 NIM 服务器 smitty 菜单,如图 7 所示。在第一个界面中选择 “Perform NIM Software Installation and Maintenance Tasks”

图 7. 主 NIM 服务器 smitty 菜单
主 NIM 服务器 smitty 菜单截图

接下来,选择 “Alternate Disk Installation”,如图 8 所示。

图 8. 选择 “Alternate Disk Installation”
选择 Alternate Disk Installation 的截图

选择 “Alternate Disk Installation” 选项后,再选择 “Clone rootvg to an Alternate Disk”

图 9. 选择 “Clone the rootvg to an Alternate Disk”
选择 Clone the rootvg to an Alternate Disk 的截图

下一个界面中所有设置都已完成。

选择客户端主机(将要更新的服务器),输入将要应用 TL 的磁盘— 因为它将会成为一个备用磁盘,要保证这个磁盘没有被任何其他卷组(VG)使用。参照图 10 中显示的所有菜单项。

图 10. Alternate Disk Install 的 NIM 设置
Alternate Disk Install 的 NIM 设置截图

在您确定和输入这些值后,NIM 将会自动开始更新客户端。

您可以从两个日志文件(/var/adm/ras/nimlog 和 /var/adm/ras/alt_disk_inst.log)查看客户端的更新过程。

在更新过程中界面上不会显示任何信息,但是这个过程会在后台运行。在重启服务器之前要确保这个过程已经完成—查看日志文件。

在更新过程完成后,重启服务器。

当服务器重新启动完成后,输入命令 oslevel –soslevel –r,然后检查现在 OS 级别是否为所应用的 TL 级别。

	# oslevel –s
	5300-10-01-0921

如果更新成功,那么 rootvg 就可以重新映射:

	# exportvg alt_inst_rootvg
	# extendvg –f rootvg hdisk1
	# mirrorvg rootvg

在 hdisk1 上创建一个新的启动镜像,并将它添加到启动列表中:

	# bosboot –ad /dev/hdisk1
	# bootlist –m normal –o hdisk0 hdisk1

参考资料

学习

  • IBM AIX Operating System Service Strategy Details and Best Practices
  • AIX 6.1 Information Center
  • IBM Fix Central
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=505614
ArticleTitle=AIX Technology Level 更新策略
publish-date=08092010