IBM AIX 持续可用性: 第 7 部分
2008-12-30 08:33:11 来源:WEB开发网即时转储和组件转储
即时转储(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 命令的输出
执行即时转储
本节解释如何执行即时转储或组件转储,并使用示例说明这些任务。
可以使用 smitty livedump 命令访问 Component/Live Dump 的 SMIT 主菜单。此菜单见示例 2。
示例 2 Component / Live Dump 主菜单
例如,如果希望对虚拟内存管理器分页设备数据(vmm.pdt)执行即时转储,那么使用 smitty livedump 菜单和 Start a Live Dump 子菜单。此菜单见示例 3。
示例 3 Start a Live Dump 子菜单
表 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 菜单的输出
在分析转储文件之前,需要用 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 主菜单
在 List EFIXES and Related Information 菜单上,可以按照 EFIX 标签、EFIX ID 或虚拟惟一 ID(VUID)选择一个紧急修补程序(EFIX)。此菜单见示例 9。
示例 9 List EFIXES and Related Information 菜单
在 Install EFIX Packages 菜单上,可以指定要安装或预览的紧急修补程序(EFIX)包的位置。EFIX 包应该是用 epkg 命令创建的一个文件。此菜单见示例 10。
要点:并发更新包的文件名以 *.epkg.Z 结尾。这些文件是压缩的,在安装前不应该解压。
示例 10 Install EFIX Packages 菜单
我们测试了 efix beta_patch.070909.epkg.Z 的安装。我们把这个 efix 文件放在 /usr/emgrdata/efixdata 目录中以备安装。安装测试命令的输出见示例 11。
示例 11 EFIX installation 菜单的输出
在 Remove Installed EFIXES 菜单上,可以选择要删除的紧急修补程序。此菜单见示例 12。
示例 12 Remove Installed EFIXES 菜单
我们也测试了 efix 的删除。测试的部分输出见示例 13。
示例 13 Remove Installed EFIXES 菜单的部分输出
在 Check Installed EFIXES 菜单上,可以选择要检查的修补程序。此菜单见示例 14。
示例 14 Check Installed EFIXES 菜单
- ››AIX 下 FTP 服务配置方法
- ››IBM WebSphere常见问题解答
- ››IBM WebSphere Studio V5相关认证资料
- ››IBM WebSphere应用服务器发展趋势
- ››IBM WebSphere Application Server诊断和调优(一...
- ››IBM WebSphere Application Server诊断和调优(二...
- ››IBM WebSphere Performance Pack服务器
- ››IBM WebSphere软件概述
- ››IBM PowerVM 实战手册,第 3 部分 : VIO server 配...
- ››IBM PowerVM 实战手册,第 2 部分 : VIO server 准...
- ››IBM p 系列服务器系统固件升级攻略
- ››IBM PowerVM 概述
更多精彩
赞助商链接