WEB开发网
开发学院操作系统Linux/Unix IBM AIX 持续可用性: 第 7 部分 阅读

IBM AIX 持续可用性: 第 7 部分

 2008-12-30 08:33:11 来源:WEB开发网   
核心提示:即时转储和组件转储即时转储(live dump)和组件转储(component dump)功能能够转储故障数据,而不需要停止整个系统,IBM AIX 持续可用性: 第 7 部分,下面列出这些转储最常见的用途:在命令行上, 系统管理员发出 livedumpstart 命令来转储与一次故障相关的数据,示例 13 Remov

即时转储和组件转储

即时转储(live dump)和组件转储(component dump)功能能够转储故障数据,而不需要停止整个系统。下面列出这些转储最常见的用途:

在命令行上。

系统管理员发出 livedumpstart 命令来转储与一次故障相关的数据。

用于实现恢复。

一个子系统希望在恢复之前转储与故障相关的数据。(这个功能只供内核和内核扩展使用)。

可以使用 dumpctrl 命令管理系统转储和即时转储。这个命令也有几个标志和选项;更多信息请参见 dumpctrl 手册页(man dumpctrl)。

组件转储允许用户、子系统或系统管理员请求对一个或多个组件进行转储。如果与即时转储结合使用,组件转储可以在不停止整个系统的情况下转储组件。

如果与系统转储功能结合使用,组件转储允许限制系统转储或灾难转储的大小。

注意,这些功能的主要用户是 IBM 服务人员。这里提供即时转储和组件转储示例,让您在需要时可以执行这些转储。

感知转储(dump-aware)的组件

根据系统类型和配置不同,可能有许多不同类型的感知转储的组件。以后的 AIX 版本可能会添加新组件,或者删除当前版本上现有的组件。下面描述几个重要的组件。

在我们的测试系统上,有下面这些感知转储的组件:

进程间通信(ipc)

ipc 组件当前包含下面这些子组件:信号数据(sem);共享内存段数据(shm);消息队列数据(msg)。

虚拟内存管理器(vmm)

vmm 组件当前包含下面这些子组件:帧集数据(frs);内存池数据(memp);分页设备数据(pdt);系统控制数据(pfhdata);页大小数据(pst);时间间隔数据(vmint);内核数据(vmker);资源池数据(vmpool)。

增强的日志型文件系统(jfs2)

jfs2 组件当前包含下面这些子组件:文件系统数据;日志数据。

逻辑文件系统(lfs)

lfs 组件当前包含下面这些子组件:文件系统数据;pile 数据;General Purpose Allocator Interface(gpai)数据(gpai 是 fifo、vfs 和 vnode 数据的收集器)。

逻辑卷管理器(lvm)

lvm 组件当前包含下面这些子组件:rootvg 数据;系统上配置的其他卷组。

进程信息(proc)

proc 组件当前包含一个子组件 watchdog。watchdog 是一个内核计时器服务。

SCSI 磁盘(scsidisk)

此组件代表连接到系统的 SCSI 磁盘,根据配置它包含 hdisk0 和其他磁盘等子组件。

虚拟 SCSI(vscsi_initdd)

此组件代表连接到系统的虚拟 SCSI 磁盘,根据配置它包含 vscsi0 和其他虚拟 SCSI 设备等子组件。

要想了解系统上与组件相关的即时转储属性和系统转储属性,可以使用 dumpctrl -qc 命令;示例输出见示例 1。

示例 1 dumpctrl -qc 命令的输出

IBM AIX 持续可用性: 第 7 部分

执行即时转储

本节解释如何执行即时转储或组件转储,并使用示例说明这些任务。

可以使用 smitty livedump 命令访问 Component/Live Dump 的 SMIT 主菜单。此菜单见示例 2。

示例 2 Component / Live Dump 主菜单

IBM AIX 持续可用性: 第 7 部分

例如,如果希望对虚拟内存管理器分页设备数据(vmm.pdt)执行即时转储,那么使用 smitty livedump 菜单和 Start a Live Dump 子菜单。此菜单见示例 3。

示例 3 Start a Live Dump 子菜单

IBM AIX 持续可用性: 第 7 部分

表 1 解释如何填写菜单字段。

表 1 填写 Start a Live Dump 子菜单的规则

菜单字段 解释
Component Path Names 可以通过 dumpctrl 的输出找到。例如,ipc.msg 是一个组件路径名。如果指定了任何别名/类型/伪组件,就不需要填写此字段。在组件前面加一个 at 符号(@),就表示它是故障组件(替换文件名中的 nocomp)。
Component Logical Alias Names对于 Have Alias 显示为 YES 的那些组件,可以通过 dumpctrl 的输出找到别名。例如,msg 是一个有效的别名。如果指定了任何路径名/类型/伪组件,就不需要填写此字段。在别名前面加一个 at 符号(@),就表示它是故障组件(替换文件名中的 nocomp)。
Component Type/Subtype Identifiers指定来自 /usr/include/sys/ rasbase.h 的类型/子类型。并非所有类型或子类型都映射到有效的 livedump 组件。
Pseudo-Component Identifiers在 dumpctrl -qc 输出中不出现的内置组件。通过选择这个主题的帮助,可以获得这些组件的列表。它们需要通过标识符指定的参数。如果没有指定参数,出现的错误消息会提供参数的详细信息。如果指定了任何路径名/别名/类型,就不需要填写此字段。
Error Code 包含在转储中的可选字符串。
Symptom String 描述即时转储的性质的必需字符串。
File Name Prefix 附加在文件名上的前缀。
Dump Priority在 critical/info 中选择。如果文件系统中没有足够的空间,在生成紧急转储时可以删除信息转储。紧急转储还可以保存在内核内存中。
Generate an Error Log Entry 在完成即时转储时,是否生成错误日志项。
Dump Types 在 6.1 中,Serialized 是惟一的有效选项。
Force this Dump 决定重复消除是否可以终止这个即时转储。
Dump Subcomponents对于任何由名称/别名/类型指定的组件,是否转储它们的子组件。在 dumpctrl -qc 的输出中,子组件出现在其他组件的下面和右边。(例如,ipc.sem 和 ipc.msg 是 ipc 的子组件)。
Dump Parent Components对于任何由名称/别名/类型指定的组件,是否转储它们的父组件。(例如,ipc.sem 的父组件是 ipc)。
Obtain a Size Estimate不执行转储,只获得压缩后大小的估计值。(不执行转储)
Show Parameters for Components如果组件有相关的帮助,就显示帮助信息。

Start a Live Dump 菜单的输出见示例 4。

示例 4 执行 Start a Live Dump 菜单的输出

IBM AIX 持续可用性: 第 7 部分

在分析转储文件之前,需要用 dmpuncompress 命令解压它。dmpuncompress 命令的输出见示例 5。

示例 5 解压转储文件

# ls -l /var/adm/ras/livedump/pdt.200710111501.00.DZ
-rw------- 1 root system 4768 Oct 11 10:24
/var/adm/ras/livedump/pdt.200710111501.00.DZ
# dmpuncompress /var/adm/ras/livedump/pdt.200710111501.00.DZ
-- replaced with /var/adm/ras/livedump/pdt.200710111501.00
#

可以使用 kdb 命令分析即时转储文件。kdb 命令的输出见示例 6。

示例 6 使用 kdb 命令分析即时转储

# kdb /var/adm/ras/livedump/pdt.200710111501.00
# kdb /var/adm/ras/livedump/pdt.200710111501.00
/var/adm/ras/livedump/pdt.200710111501.00 mapped from @ 700000000000000 to @
70000000000cd88
Preserving 1675375 bytes of symbol table [/unix]
Component Names:
1) dump.livedump.header [3 entries]
2) dump.livedump.sysconfig [3 entries]
3) vmm.pdt [14 entries]
4) vmm.pdt.pdt8B [2 entries]
5) vmm.pdt.pdt8A [2 entries]
6) vmm.pdt.pdt89 [2 entries]
7) vmm.pdt.pdt88 [2 entries]
8) vmm.pdt.pdt87 [2 entries]
9) vmm.pdt.pdt86 [2 entries]
10) vmm.pdt.pdt81 [2 entries]
11) vmm.pdt.pdt82 [2 entries]
12) vmm.pdt.pdt85 [2 entries]
13) vmm.pdt.pdt84 [2 entries]
14) vmm.pdt.pdt83 [2 entries]
15) vmm.pdt.pdt80 [2 entries]
16) vmm.pdt.pdt0 [2 entries]
17) cu [2 entries]
Live Dump Header:
Passes: 1
Type: LDT_FORCE
Priority: LDPP_CRITICAL
Error Code: 0
Failing Component: pdt
Symptom: any-description
Title:
START END <name>
0000000000001000 0000000003FB0000 start+000FD8
F00000002FF47600 F00000002FFDF940 __ublock+000000
000000002FF22FF4 000000002FF22FF8 environ+000000
000000002FF22FF8 000000002FF22FFC errno+000000
F100080700000000 F100080710000000 pvproc+000000
F100080710000000 F100080718000000 pvthread+000000
PFT:
PVT:
Unable to find kdb context
Dump analysis on CHRP_SMP_PCI POWER_PC POWER_6 machine with 2 available CPU(s) (64-bit
registers)
Processing symbol table...
.......................done
cannot read vscsi_scsi_ptrs
(0)>

使用命令行功能 - 示例

现在,假设虚拟磁盘 hdisk0 的 I/O 中止了。执行一次即时转储来补充 AIX 错误日志中记录的信息。这个即时转储包含 hdisk0 的状态信息、底层虚拟 SCSI 适配器(vscsi0)及其 LUN 子组件的状态信息,以及与 vscsi0 相关联的组件跟踪缓冲区。hdisk1 被认为是故障组件。命令见示例 7。

示例 7 livedumpstart 命令的命令行示例

# livedumpstart -L hdisk0 -l vscsi0+ -p comptrace:vscsi0,0 symptom="failing_io"
title="Sample Live Dump"
0453-142 The dump is in file
/var/adm/ras/livedump/hdisk0.200710121432.00.DZ

Concurrent AIX Update

Concurrent AIX Update 可以在正在运行的系统上对基础内核和内核扩展应用补丁,并让这些补丁完全生效。系统不需要为激活补丁进行重新引导。Concurrent AIX Update 提供下面这些重要的改进:

能够在不需要重新引导的情况下应用预防性维护或纠正性服务补丁。

能够在不需要重新引导的情况下排除已经应用的补丁。

能够在不需要重新引导的情况下注入诊断代码或临时代码。

在以前,应用纠正性服务需要停机,这会损害可用性,因此客户可能不愿意应用它们;Concurrent AIX Update 避免了停机,使客户更愿意应用这些补丁。

提高客户满意度。

提高系统正常运行时间。

Concurrent AIX Update 术语

表 2 列出 Concurrent AIX Update 术语和定义。

表 2 并发更新术语

术语 定义
并发 AIX 更新(Concurrent AIX Update)对内存映像的更新,对基本内核和内核扩展的更新会立即生效,不需要重新引导。

同义词:热补丁(hotpatch)、即时更新(live update)、在线更新(online update)。

控制文件(control file)一个文本文件,其中包含 emgr 命令执行任何更新(无论是否是并发的)所需的所有信息。
时间戳(timestamp)在更新的目标模块的 XCOFF 头信息中记录的时间戳。它用来检验是否为正确的模块级别创建了 ifix。
描述文件(description file)从 emgr 控制文件衍生出来的一个文本文件,其中只包含与 Concurrent AIX Update 相关的信息。kpatch 命令需要使用这个文件应用 Concurrent AIX Update。
修补程序(fix)或补丁(patch)这两个术语可以互换使用,都是指为解决一个客户问题创建的软件修改。
ifix 临时修补程序。提供临时修补的包。同义词:efix。
内核扩展(kernel extension) 指内核扩展和设备驱动程序。
模块(module) 内核或内核扩展等可执行程序。
补丁集(patchset) 构成一个修补程序的所有补丁。
目标(target)或目标模块(target module) 要应用补丁的可执行程序(内核或内核扩展)。

Concurrent AIX Update 命令和 SMIT 菜单

客户使用 emgr 命令管理 Concurrent AIX Update。emgr 命令有几个标志;关于标志的更多信息,请参见手册页(使用 man emgr 命令)。只输入 emgr 命令,也可以获得有限的帮助信息。

并发更新是使用 epkg 命令打包的。epkg 命令也有多个标志;关于标志的更多信息,请参见手册页(使用 man epkg 命令)。只输入 epkg 命令,也可以获得有限的帮助信息。

SMIT 菜单

可以通过 smitty emgr 命令访问 emgr 主菜单。此菜单见示例 8。

示例 8 EFIX Management 主菜单

IBM AIX 持续可用性: 第 7 部分

在 List EFIXES and Related Information 菜单上,可以按照 EFIX 标签、EFIX ID 或虚拟惟一 ID(VUID)选择一个紧急修补程序(EFIX)。此菜单见示例 9。

示例 9 List EFIXES and Related Information 菜单

IBM AIX 持续可用性: 第 7 部分

在 Install EFIX Packages 菜单上,可以指定要安装或预览的紧急修补程序(EFIX)包的位置。EFIX 包应该是用 epkg 命令创建的一个文件。此菜单见示例 10。

要点:并发更新包的文件名以 *.epkg.Z 结尾。这些文件是压缩的,在安装前不应该解压。

示例 10 Install EFIX Packages 菜单

IBM AIX 持续可用性: 第 7 部分

我们测试了 efix beta_patch.070909.epkg.Z 的安装。我们把这个 efix 文件放在 /usr/emgrdata/efixdata 目录中以备安装。安装测试命令的输出见示例 11。

示例 11 EFIX installation 菜单的输出

IBM AIX 持续可用性: 第 7 部分

在 Remove Installed EFIXES 菜单上,可以选择要删除的紧急修补程序。此菜单见示例 12。

示例 12 Remove Installed EFIXES 菜单

IBM AIX 持续可用性: 第 7 部分

我们也测试了 efix 的删除。测试的部分输出见示例 13。

示例 13 Remove Installed EFIXES 菜单的部分输出

IBM AIX 持续可用性: 第 7 部分

在 Check Installed EFIXES 菜单上,可以选择要检查的修补程序。此菜单见示例 14。

示例 14 Check Installed EFIXES 菜单

IBM AIX 持续可用性: 第 7 部分

Tags:IBM AIX 持续

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接