|
一. 更换热插拔拔设备
安装在您的系统中的某些设备,能够在不关闭系统的情况下进行安装、删除或者更换。支持这些操作的设备包括 PCI 适配器、SCSI 设备,以及一些 RAID 设备。并不是所有的 PCI 适配器都支持热插拔任务。要确定某个特定的设备是否支持热插拔操作,可以参考硬件产品文档。
为了更换热插拔拔设备,您必须转到“Hot Plug Task”菜单,可以从诊断工具实用工具中访问该菜单。
根据环境和所安装的软件包的不同,在选择这个任务之后,将显示下列子任务中的某些内容:
PCI 热插拔拔管理器——PCI 热插拔拔管理器 (HPM) 任务是 SMIT 中的一个菜单,它允许您标识、添加、删除、或者更换 PCI 热插拔拔适配器。
RAID 热插拔拔设备——这个任务允许用户标识或删除使用 SCSI Enclosure Services (SES) 设备的系统单元中的 RAID 设备。
SCSI 和 SCSI RAID 热插拔管理器—— 在以前的发行版中,这个任务称为“SCSI Device Identification and Removal or Identify and Remove Resources”。这个任务允许用户标识、添加、删除、或更换使用 SCSI Enclosure Services (SES) 设备的系统单元中的 RAID 设备。
您可以使用 lsslot 命令动态地显示可重新配置的插槽和它们的特征。
在示例 1中,我们使用 lsslot 命令来显示热插拔 PCI 插槽的编号、位置以及功能。
示例 1 使用 lsslot 命令
# lsslot -c pci
# Slot Description Device(s)
U787B.001.DNW0974-P1-C1 PCI-X capable, 64 bit, 133MHz slot ent2
U787B.001.DNW0974-P1-C2 PCI-X capable, 64 bit, 133MHz slot Empty
U787B.001.DNW0974-P1-C3 PCI-X capable, 64 bit, 133MHz slot Empty
U787B.001.DNW0974-P1-C4 PCI-X capable, 64 bit, 133MHz slot sisioa0
U787B.001.DNW0974-P1-C5 PCI-X capable, 64 bit, 133MHz slot pci7 lai0
在更换一个热插拔适配器或者磁盘之前,您应该取消所有依赖于您希望删除的物理设备的其他设备或者接口的配置。
在示例2 中,我们介绍了在尝试删除一个未取消配置的设备时所显示的错误消息。lsdev 命令将确定该设备是否处于可用状态。
示例 2 在尝试更换配置设备 sisia0 时显示的错误消息
COMMAND STATUS
Command:failed stdout:yes stderr:no
Before command completion, additional instructions may appear below. The visual indicator for the specified PCI slot has been set to the identify state.Press Enter to continue or enter x to exit. The specified slot contains device(s) that are currently configured.Unconfigure the following device(s) and try again.
sisioa0
# lsdev -C|grep sis
gxme0 Defined Graphics Data Transfer Assist Subsystem
sisioa0 Available 05-08 PCI-X Dual Channel U320 SCSI RAID Adapter
sisioa1 Available 09-08 PCI-X Dual Channel U320 SCSI RAID Adapter
sisraid0 Available 05-08-ff Ultra320 SCSI RAID Adapter Logical bus
sisraid1 Available 09-08-ff Ultra320 SCSI RAID Adapter Logical bus
如果您正运行于多个分区环境中,那么应该验证您所尝试删除或者更换的设备是否标记为某个分区必需的设备。如果是这样,那么应该在更换该设备之前停止相应的分区。
在下列场景中,我们将更换 ent2 以太网 PCI 适配器。从示例 3 中显示的 lsslot 命令的输出中,我们可以找到该适配器的物理位置。我们将删除相应的接口 en2,如示例3 所示。
示例 3 删除 en2 接口
# ifconfig -a
en0:flags=5e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
inet 9.3.5.195 netmask 0xffffff00 broadcast 9.3.5.255
tcp_sendspace 131072 tcp_recvspace 65536
en1:flags=5e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,
64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
inet 9.1.1.1 netmask 0xfffffff8 broadcast 9.1.1.7
tcp_sendspace 131072 tcp_recvspace 65536
en2:flags=5e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
inet 0.0.0.0 netmask 0x0
tcp_sendspace 131072 tcp_recvspace 65536
lo0:flags=e08084b<UP,BROADCAST,LOOPBACK,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT>
inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255
inet6 ::1/0
tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1
# ifconfig en2 detach
# ifconfig -a
en0:flags=5e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
inet 9.3.5.195 netmask 0xffffff00 broadcast 9.3.5.255
tcp_sendspace 131072 tcp_recvspace 65536
en1:flags=5e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
inet 9.1.1.1 netmask 0xfffffff8 broadcast 9.1.1.7
tcp_sendspace 131072 tcp_recvspace 65536
lo0:flags=e08084b<UP,BROADCAST,LOOPBACK,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT>
inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255
inet6 ::1/0
tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1
可以使用 SMIT 或诊断程序 (DIAG) 工具菜单来启动热插拔任务。在这个场景中,我们使用了 DIAG 工具。
1. 要启动 DIAG 工具,可以在命令提示符处输入 diag 命令。当显示如图 1 中所示的屏幕时,按 Enter。
图 1 初始诊断屏幕
2. 从“Function Selection”菜单中,选择“Task Selection (Diagnostics, Advanced Diagnostics, Service Aids, etc.)”选项。图 2 显示了“Diagnostics, Advanced Diagnostics, Service Aids, etc.”屏幕。
图 2 诊断功能选择屏幕
3. 在“Task Selection List”菜单中,向下滚动到“Hot Plug Task”菜单选项,并选择它。图 3 显示了“Task Selection List”,其中突出显示了“Hot Plug Task”菜单选项。
图 3 “Task Selection List”菜单选项
在使用 diag 菜单时,将根据您的硬件环境列出可用的选项。在这个示例中,我们看到列出了三个选项:
a. “PCI Hot Plug Manager”菜单
b. “RAID Hot Plug Devices“菜单
c. “SCSI and SCSI RAID Hot Plug Manager”菜单
选择“PCI Hot Plug Manager”菜单选项。图 4 显示了“HPT”菜单,其中突出显示了“PCI Hot Plug Manager”。
图 4 “Hot Plug Task”菜单
4. 在“PCI Hot Plug Manager”菜单中,选择“Unconfigure A device”。选择要取消配置的合适的适配器。在这个场景中,将要取消适配器 ent2 的配置。图 5 显示了“Unconfigure A device”菜单,其中突出显示了 ent2 设备。对于这个场景,我们可以将设备定义保存在数据库中。在将 ent2 设备置于已定义的状态之后,返回到“PCI Hot Plug Manager”菜单。
图 5 “Unconfigure A device”屏幕
5. 在“PCI Hot Plug Manager”菜单中,选择“Replace/Remove a PCI Hot Plug Adapter”。选择要更换/删除的合适的适配器。在这个场景中,将要更换适配器 ent2。图 6 显示了“PCI Hot Plug Manager”菜单,其中突出显示了“Replace/Remove”选项。
图 6 “PCI Hot Plug Manager Replace/Remove”菜单
6. 选择了 ent2 适配器之后,将显示“Replace/Remove a PCI Hot Plug Adapter”菜单。可以更换或者删除该适配器。在这个场景中,我们将更换该适配器。使用 Tab 或者 F4 键,选择“replace”。
在选择了“replace”选项之后,会将该 PCI 插槽置于允许删除 PCI 适配器的状态。闪烁的信号灯表示该插槽包含已选中进行更换的适配器。要开始更换过程,可以按 Enter键。图 7 显示了突出显示的“replace”选项。
图 7 “Replace/Remove a PCI Hot Plug Adapter”菜单
7. 图 8 显示了完整的适配器更换过程。在更换过程的这个阶段中,将要求您完成下列工作:
a. 通过按 Enter 键,确认应该对该适配器进行更换。将可视的指示器设置为标识状态。您可以按 x 键、Enter 键退出。
b. 交换 PCI 适配器。将可视的指示器设置为操作状态。要继续进行,请按 Enter 键。要退出,请按 x 键,然后按 Enter 键。交换过程需要从 PCI 插槽中删除 PCI Blind Swap Cassette,使用具有相同 FRU 的 PCI 以太网适配器来替换 PCI 以太网适配器,然后组装到 PCI Blind Swap Canister 中。
说明:如果您选择退出这个阶段,那么 PCI 插槽将处于已删除的状态。
c. 将 PCI Blind Swap Cassette 插回到 PCI 插槽。要继续进行,请按 Enter 键。现在已经更换了适配器,并且做好了重新配置的准备。
图 8 显示了这三个步骤以及成功地完成更换任务。
图 8 更换 PCI 适配器
技巧:如果没有取消以太网适配器接口的配置(请参见前面的步骤 4 ),那么整个过程将在此处失败。取消以太网适配器接口的配置,并从步骤 5 开始这个过程。
8. 在更换了 PCI 以太网适配器之后,必须为 AIX 5L 对该设备进行配置。在“PCI Hot Plug Manager”菜单中,选择“Configure a Defined Device”,然后选择 ent2 以太网设备,并按 Enter 键。现在,将对 ent2 设备适配器进行配置。
图 9 显示了“Configure a Defined Device”菜单。
9. ent2 设备现在已经可以使用,可以为其重新配置一个 IP 地址。应该在操作系统错误日志中记录针对 ent2 设备的修复操作。其状态如图 10 中所示。
图 10 “PCI Hot Plug Manager Replace/Remove”菜单
10. 选择 ent2 适配器之后,将显示“Replace/Remove a PCI Hot Plug Adapter”菜单。可以更换或者删除该适配器。在这个场景中,我们将更换该适配器。使用 Tab 或者 F4 键,选择“replace”。
在选择了“replace”选项之后,会将该 PCI 插槽置于允许删除 PCI 适配器的状态。闪烁的信号灯表示该插槽包含已选中进行更换的适配器。
要开始更换过程,可以按 Enter 键。
图 11 突出显示了“replace”选项。
图 11 “Replace/Remove a PCI Hot Plug Adapter”菜单
11. 图 12 显示了完整的适配器更换过程。在更换过程的这个阶段中,将要求您完成下列工作:
a. 通过按 Enter 键,确认应该对该适配器进行更换。将可视的指示器设置为标识状态。您可以按 x 键、Enter 键退出。
b. 交换 PCI 适配器。将可视的指示器设置为操作状态。要继续进行,请按 Enter 键。要退出,请按 x 键,然后按 Enter 键。交换过程需要从 PCI 插槽中删除 PCI Blind Swap Cassette,使用具有相同 FRU 的 PCI 以太网适配器来替换 PCI 以太网适配器,然后组装到 PCI Blind Swap Canister 中。
说明:如果您选择退出这个阶段,那么 PCI 插槽将处于已删除的状态。
c. 将 PCI Blind Swap Canister 插回到 PCI 插槽。要继续进行,请按 Enter 键。现在已经更换了适配器,并且做好了重新配置的准备。
图 12 显示了这三个步骤以及成功地完成更换任务。
图 12 更换 PCI 适配器
技巧:如果没有取消以太网适配器接口的配置(请参见前面的步骤 4 ),那么整个过程将在此处失败。取消以太网适配器接口的配置,并从步骤 5 开始这个过程。
12. 在更换了 PCI 以太网适配器之后,必须为 AIX 5L 对该设备进行配置。在“PCI Hot Plug Manager”菜单中,选择“Configure a Defined Device”,然后选择 ent2 以太网设备,并按 Enter 键。现在,将对 ent2 设备适配器进行配置。
图 13 显示了“Configure a Defined Device”菜单。
图 13“Configure A Defined Device”菜单
13. ent2 设备现在已经可以使用,可以通过 smit 的 chinet 快速路径为其重新配置一个 IP 地址。应该在 AIX 5L 错误报告中记录针对 ent2 设备的修复操作。通过显示错误报告中记录的错误已经解决,这将为可能使用这台服务器的其他系统管理员提供帮助。要输入修复操作,则使用 diag Æ Task Selection Æ Log Repair Action 并选择 ent2 设备。
二. 故障磁盘的更换
系统管理员所碰到的大多数问题都是与磁盘驱动器相关的问题。所以,您必须了解一些更换磁盘的过程。可能因为下列原因之一而需要更换磁盘:
(1)磁盘出现故障。
(2)磁盘开始报告 IO 错误,并且您希望对其进行更换,以防止出现全面的故障。
(3)磁盘无法满足/达到您的需求,例如在大小或者速度方面。
在下面的部分中,我们希望尽量介绍一些出现磁盘故障的最常见的场景。
场景 1
如果您所希望更换的磁盘进行了镜像,那么我们建议执行下列这些步骤:
1. 使用 rmlvcopy 命令或者 unmirrorvg 命令,删除位于该磁盘中的所有逻辑卷的副本。
2. 使用 reducevg 命令从卷组中删除该磁盘。
3. 使用 rmdev 命令删除磁盘定义。
4. 物理删除该磁盘。如果该磁盘无法进行热插拔,那么您可能需要重新启动系统。
5. 更换新的替换磁盘。如果该磁盘无法进行热插拔,那么您可以运行 cfgmgr;否则,您可能需要重新启动系统。
6. 使用 extendvg 命令将刚添加的磁盘包含到卷组中。
7. 使用 mklvcopy 或者 mirrorvg,为所有的逻辑卷重新创建并同步副本。
场景 2
如果您所希望更换的磁盘没有进行镜像,并且能够正常工作,我们建议执行下列这些步骤:
1. 更换新的替换磁盘。如果该磁盘无法进行热插拔,那么您可以运行 cfgmgr;否则,您可能需要重新启动系统。
2. 使用 extendvg 命令,将刚添加的磁盘包含到卷组中。
3. 使用 migratepv 命令或者 migratelp 命令,将故障磁盘中的所有分区迁移到新的磁盘。如果这些磁盘属于 rootvg,那么您应该考虑下面的情况:
(1)如果要更换的磁盘包含 BLV 的一个副本,那么您必须使用 chpv -c 命令清除它。
(2)必须使用 bosboot 命令在新的磁盘上创建一个新的 BLV 映像。
(3)必须使用 bootlist 命令更新 bootlist,以使这些更改生效。
(4)如果要更换的磁盘中包含分页空间或者主转储设备,那么您应该禁用它们。
(5)在 migratepv 命令完成之后,您应该重新激活它们。
4. 使用 reducevg 命令从卷组中删除故障磁盘。
5. 使用 rmdev 命令删除磁盘定义。
场景 3
如果该磁盘没有进行镜像,并且已经完全无法工作,而卷组中有其他磁盘可供使用,那么我们建议执行下列这些步骤:
1. 标识所有至少有一个分区位于故障磁盘的逻辑卷。
2. 关闭这些逻辑卷,并使用 umount 命令卸载所有相对应的文件系统。
3. 使用 rmfs 命令,删除这些文件系统和逻辑卷。
4. 使用 reducevg 命令从卷组中删除故障磁盘。
5. 使用 rmdev 命令删除磁盘定义。
6. 物理删除该磁盘。如果该磁盘无法进行热插拔,那么您可能需要重新启动系统。
7. 使得更换的磁盘可供使用。如果该磁盘无法进行热插拔,那么您可以运行 cfgmgr;否则,您可能需要重新启动系统。
8. 使用 extendvg 命令将刚添加的磁盘包含到卷组中。
9. 使用 mklv 和 crfs 命令,重新创建所有的逻辑卷和相对应的文件系统。
10. 如果您有相关数据的备份,那么请从备份恢复您的数据。
场景 4
如果该磁盘没有进行镜像,并且已经完全无法工作,而卷组中没有其他的磁盘可供使用(该卷组仅包含一个物理卷、或者所有的物理卷都同时失效),并且该卷组不是 rootvg,那么我们建议执行下列这些步骤:
1. 使用 exportvg 命令从系统中导出卷组定义。
2. 确保 /etc/filesystems 中不包含任何不正确的节。
3. 使用 rmdev 命令删除磁盘定义。
4. 物理删除该磁盘。如果该磁盘无法进行热插拔,那么您可能需要重新启动系统。
5. 更换新的替换磁盘。如果该磁盘无法进行热插拔,那么您可以运行 cfgmgr;否则,您可能需要重新启动系统。
6. 如果您有卷组的备份,那么请使用 restvg 命令对其进行恢复。
7. 如果您没有对卷组进行备份,那么请使用 mkvg 命令、mklv 命令和 crfs 命令,重新创建卷组、所有的逻辑卷、以及相对应的文件系统。
8. 如果您有相关数据的备份,那么请从备份恢复您的数据。
场景 5
如果该磁盘没有进行镜像,并且已经完全无法工作,而卷组中没有其他磁盘可供使用(该卷组仅包含一个物理卷,或者所有的物理卷都同时失效),并且该卷组不是 rootvg,那么我们建议执行下列这些步骤:
1. 更换故障磁盘。
2. 使系统启动进入维护模式。
3. 从一个 mksysb 映像恢复系统。
三. 对图形问题进行故障排除
这个部分内容将介绍与显示输出相关的问题的解决方法。
3.1 试图启动桌面时发生系统停止
下面的部分将帮助您了解影响图形桌面正常启动的一些原因。
3.1.1 /home 文件系统已经装满
当/home 文件系统已经装满时,用户将无法使用 AIX 5L CDE 进行登录。如果 /home 已经装满,那么 AIX 5L CDE 欢迎窗口将接受用户名和密码,然后不显示任何内容(看起来系统出现了停止),然后再次返回到 AIX 5L CDE 欢迎窗口。要进行登录并对问题进行分析,可以按 AIX 5L CDE 欢迎窗口中的 Options 按钮,然后选择“Command Line Login”,或者以非图形显示的方式进行登录。
3.1.2 名称解析问题
如果名称解析配置不正确,或者您的系统无法连接到 DNS 服务器,那么用户将碰到登录和网络问题。如果在名称解析方面存在问题,那么 AIX 5L CDE 欢迎窗口将接受用户名和密码,然后显示“Starting the Common Desktop Environment”消息,它将持续几分钟的时间,然后启动基本的图形环境。
使用 nslookup 命令可以验证您的系统是否能够通过 DNS 服务器进行名称解析。例如,可以使用 nslookup 命令解析名称 www.ibm.com:
# nslookup
Default Server:dhcp001.itsc.austin.ibm.com
Address: 9.3.4.2
> www.ibm.com
Server:dhcp001.itsc.austin.ibm.com
Address: 9.3.4.2
Non-authoritative answer:
Name:livesite.events.ibm.com
Addresses: 129.42.21.99,129.42.16.99,129.42.17.99,129.42.18.99
129.42.19.99,129.42.20.99
Aliases:www.ibm.com
> exit
#
如果在尝试解析一个名称时,nslookup 命令没有显示类似的输出,或者在显示大于符号提示符 (>) 时出现延迟,那么这意味着无法连接到 DNS 服务器:
(1)请验证您的系统是否能够访问网络。
(2)请验证您的 DNS 服务器是否已经启动并正在运行,您需要访问它们以进行名称解析查询。
(3)停止使用 DNS 服务器。使用 SMIT 快速路径:# smitty spnamerslv
您必须提供一个名称,以便对 /etc/resolv.conf 进行重命名。您还可以使用下面的命令:# namerslv -e
注意:当您停止使用 DNS 服务器时,这将影响到所有使用该名称解析服务的程序和服务。除非您很清楚它将对系统带来的影响,否则请不要进行这项操作。
3.2 无法打开显示的错误的故障排除
当运行使用图形服务的命令时,您可能会碰到与下面类似的消息:
Error:Can't open display:
该程序正尝试在图形环境中显示输出,但是却无法完成这项任务。在程序可以使用一个显示之前,它必须建立到驱动显示的 X 服务器的连接。
打开一个显示
要打开到控制指定显示的 X 服务器的连接,您必须设置显示的名称、或者 DISPLAY 环境变量,它是一个格式如下所示的字符串:
HostName:Number.Screen
其中:
HostName——指定该显示在物理上依附的主机系统的名称或者 IP 地址。这个主机名后面应该加上一个 :(冒号)。
Number——指定主机中显示服务器的 ID 编号。显示编号的后面可以加上一个 .(点号)。
Screen——指定主机服务器上屏幕的编号。单个 X 服务器可以连接或控制多个屏幕。
例如,您可以使用下面命令将 DISPLAY 环境变量设置为名为 server3 的系统上的屏幕 0、显示 2:
# export DISPLAY=server3:2.0
如果在设置了 DISPLAY 环境变量之后,您依然得到“Can't open display”消息,并且这时 X 服务器正在运行,那么您必须检查您的系统是否有权限访问运行于该计算机中的 X 服务器。
您使可以用 xhost 命令控制哪些用户能够访问当前主机中运行的 X 服务器。这个命令可以在一个计算机的列表中添加或者删除主机名,X 服务器将接受这个列表中的计算机的连接。
例如,可以在运行 X 服务器的、名为 server3 的系统中运行 xhost 命令,以便为您的系统(名为 server2)授予连接到这个 X 服务器的权限:
# xhost +server2
要拒绝名为 server2 的系统对这个 X 服务器的访问,可以输入下面的命令:
# xhost -server2
说明:请确保您在指定主机名时使用了 xhost + 命令,因为它将禁用 X 服务器的访问控制。这将允许您为特定的主机授予访问权限,从而简化对 X 服务器的潜在攻击的监视。如果您没有指定主机名,那么将为所有的主机授予访问权限,这是一种潜在的安全风险。
3.3 对 TTY 显示问题进行故障排除
您可能会碰到各种 TTY 设备问题,例如,在尝试使用 clear 命令清除屏幕内容时,屏幕却保持不变,或者在运行 smit 命令时,却得到了与如下所示类似的、杂乱的输出:
# smitty
B@B5,Alqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk6,x6cx7,mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj5,B6.Initializing SMIT ...5, 6, 6c 7,5,Alqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk6,x6cx7,mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj5,B6.Processing data ...5, ?System Management" Move cursor to desired item and press Enter.
$"!aSoftware Installation and Maintenance%"
@BSoftware License Management&"Devices'"System Storage Management (Physical & Logical Storage)("Security & Users)"Communications Applications and Services
*"Print Spooling+"Advanced Accounting,"Problem Determination-"Performance &
Resource Scheduling."System Environments/"Processes & Subsystems0
"Applications1"Installation Assistant2"Cluster Systems Management3"Using SMIT
(information only)5, F9=Shell7, F10=ExitEnter=Do $!
这说明没有将 TERM 环境变量设置为正确的值。
不同显示和终端的 TERM 值
有关终端功能的信息存储在 terminfo 数据库中。TERM 环境变量的值标识了 terminfo 数据库中特定的终端描述。这为程序与当前 TTY 设备进行有效地通信提供了所需的全部信息。表 1 显示了用于各种终端的值。
表 1 用于各种终端的值
显示/终端
| 值
| 3161 ASCII 终端
| ibm3161
| 3163 ASCII 终端
| ibm3161
| DEC VT100(终端)
| vt100
| DECVT220
| vt220
| 3151 ASCII 终端
| ibm3151
| AIXwindows
| aixterm
|
例如,要将 TERM 环境变量的值设置为 vt100,可以输入下面的命令:
# export TERM=vt100
四. perfpmr 命令
perfpmr 命令由一组实用工具组成,这些实用工具用于构建包含所需信息的测试用例,以帮助进行性能问题分析。它主要用于协助 IBM 软件支持部门,但是作为系统的文档说明工具,它也是很有价值的。
因为总在对 perfpmr 命令进行频繁地更新,所以在 AIX 5L 媒体中没有提供这个命令。可以从下面的位置下载该命令:
ftp://ftp.software.ibm.com/aix/tools/perftools/perfpmr
请使用适合的 AIX 5L 级别的版本。对于我们来说,所需的文件位于:
ftp://ftp.software.ibm.com/aix/tools/perftools/perfpmr/perf53/perf53.tar.Z
perfpmr 命令的语法为:
perfpmr.sh [-PDgfnpsc][-F file][-x file][-d sec] monitor_seconds
表 2 给出了相关参数的描述。
标志
| 描述
| -P
| 只进行预览——显示运行所需的脚本和磁盘空间。
| -D
| 不使用 perfpmr.cfg 文件,以原始的方式运行 perfpmr。
| -g
| 不收集 gennames 的输出。
| -f
| 如果 gennames 正在运行,则指定 gennames -f。
| -n
| 如果不希望进行 netstat 或者 nfsstat 输出,则使用这个选项。
| -p
| 如果在 monitor.sh 运行时不希望进行 pprof 收集,则使用这个选项。
| -s
| 如果不希望进行 svmon 输出,则使用这个选项。
| -c
| 如果不希望任何配置信息,则使用这个选项。
| -F
| File 使用该文件作为 perfpmr cfg 文件;缺省值为 perfpmr.cfg。
| -x
| File 仅执行 perfpmr 安装目录中的文件。
| -d
| sec 表示在启动收集周期之前的等待时间;缺省值为 delay_seconds 0。
| -s
| 如果不需要 svmon 输出,则使用这个选项。
|
请特别注意下面的参数。
monitor_seconds——收集周期(单位为秒)。最小的周期为 60 秒。
可以使用 perfpmr.sh 600 命令将标准的收集周期设置为 600 秒。
4.1 测量和示例
除非您单独运行 Shell 脚本,否则 perfpmr.sh 600 命令将执行下列 Shell 脚本以获得一个测试用例。您也可以单独地运行这些脚本。有关更详细的内容,请参见“运行 perfpmr”部分。
config.sh——将配置信息收集到一个名为 config.sum 的报告中。
emstat.sh time——根据模拟的指令,构建一个名为 emstat.int 的报告。time 参数必须大于或者等于 60。
filemon.sh time——根据文件 I/O,构建一个名为 filemon.sum 的报告。time 参数没有任何限制。
iostat.sh time——根据 I/O 统计信息,构建两个报告:一个汇总的报告名为 iostat.sum,一个间隔的报告名为 iostat.int。time 参数必须大于或者等于 60。
iptrace.sh time——根据名为 iptrace.raw 的网络 I/O,构建原始的 Internet Protocol (IP) 跟踪报告。您可以使用 iptrace.sh -r 命令将 iptrace.raw 文件转换为一个可读的、名为 iptrace.int 的 ipreport 文件。time 参数没有任何限制。
monitor.sh time——调用系统性能监视,并收集间隔的和汇总的报告:
lsps.after ——包含在运行 monitor.sh 之后的 lsps -a 和 lsps -s 输出。用于报告分页空间的使用。
lsps.before——包含在运行 monitor.sh 之前的 lsps -a 和 lsps -s 输出。用于报告分页空间的使用。
nfsstat.int——包含在运行 monitor.sh 之前和之后的 nfsstat -m 和 nfsstat -csnr 输出。用于报告网络文件系统的使用和配置。
monitor.int——使用 ps -efk,包含间隔的示例(在运行 monitor.sh 之前和之后,显示活动的进程)。它还包含 sadc、sar -A、iostat、vmstat 和 emstat 输出。
monitor.sum——使用 ps -efk,包含汇总的示例(在运行 monitor.sh 之前和之后,对于活动的进程,显示 ps 输出中的更改)。它也包含 sadc、sar -A、iostat、vmstat 和 emstat 输出。
pprof.trace.raw 包含 pprof 的原始跟踪。
psb.elfk——在运行 monitor.sh 之前,包含经过修改的 ps -elk 输出。
svmon.after——包含在运行 monitor.sh 之后的 svmon -G 和 svmon -Pns 输出,以及使用 svmon -S 命令得到的进程使用的若干个最大的段。用于报告内存的使用。
svmon.before——包含在运行 monitor.sh 之前的 svmon -G 和 svmon -Pns 输出,以及使用 svmon -S 命令得到的进程使用的若干个最大的段。用于报告内存的使用。
vmstati.after——包含在运行 monitor.sh 之后的 vmstat -i 输出。用于报告 I/O 设备的中断。
vmstati.before——包含在运行 monitor.sh 之前的 vmstat -i 输出。用于报告 I/O 设备的中断。
netstat.sh [-r] time——构建一个有关网络配置和使用的报告,该报告名为 netstat.int,其中在运行 monitor.sh 之前和之后,包含令牌环接口的 tokstat -d、以太网接口的 entstat -d、netstat -in、netstat -m、netstat -rn、netstat -rs、netstat -s、netstat -D 和 netstat -an。您可以清除以太网和令牌环统计信息,并通过运行 netstat.sh -r 60,再次运行这个报告。time 参数必须大于或者等于 60。
nfsstat.sh time——构建一个有关 NFS 配置和使用的报告,该报告名为 netstat.int,其中包含在运行 nfsstat.sh 之前和之后的 nfsstat -m 和 nfsstat -csnr。time 参数必须大于或者等于 60。
pprof.sh time——构建一个名为 pprof.trace.raw 的文件,可以使用 pprof.sh -r 命令对其进行格式化。time 参数没有任何限制。
ps.sh time——根据进程状态 (ps) 构建相关的报告。ps.sh 将创建下列文件:
psa.elfk——在运行 ps.sh 之后,执行 ps -elfk 列出相关内容。
psb.elfk——在运行 ps.sh 之前,执行 ps -elfk 列出相关内容。
ps.int——在运行 ps.sh 之前和之后的活动的进程。
ps.sum——在 ps.sh 开始和结束之间所发生的更改的汇总报告。这可以用于确定哪些进程耗费了大量的资源。
time 参数必须大于或者等于 60。
sar.sh time——根据 sar 构建相关的报告。sar.sh 将创建下列文件:
sar.int——命令 sadc 10 7 和 sar -AOutput 的输出。
sar.sum——在运行 sar.sh 一段时间之后的 sar 汇总信息。
time 参数必须大于或者等于 60。
tcpdump.sh int.time——int. 参数是接口的名称;例如,tr0 为令牌环。创建 TCP/IP 转储的、名为 tcpdump.raw 的原始跟踪文件。要产生一个可读的 tcpdump.int 文件,可以使用 tcpdump.sh -r 命令。time 参数没有任何限制。
tprof.sh time——创建一个名为 tprof.sum 的 tprof 汇总报告。用于分析进程和线程的内存使用。通过指定 tprof.sh -p program 60 命令(这将允许您将所调用的可执行程序配置为运行 60 秒),您还可以指定要配置的程序。time 参数没有任何限制。
trace.sh time——从使用 trcrpt 命令所生成的 ASCII 跟踪报告,或者通过运行 trace.sh -r 创建原始跟踪文件 (trace*)。这个命令将创建一个名为 trace.int 的文件,其中包含可读的跟踪信息。用于分析性能问题。time 参数没有任何限制。
vmstat.sh time——根据 vmstat 构建相关的报告:一个名为 vmstat.int 的、vmstat 间隔的报告,以及一个名为 vmstat.sum 的、vmstat 汇总的报告。time 参数必须大于或者等于 60。
因为 trace 命令将收集大量的数据,所以 trace 命令将仅运行 5 秒(在缺省的情况下),因此,当您的系统中出现性能问题的时候,它可能并不在运行,尤其是在性能问题仅出现很短时间的情况下。在这种情况下,当出现问题时,需要让 trace 命令运行 15 秒。trace.sh 15 命令将执行跟踪任务 15 秒。
系统可以产生一个大小为 135 MB 的测试用例,其中用于跟踪的内容占 100 MB。对于不同的系统负载,这个大小可能差别很大。如果您在具有相同工作负载的相同系统中运行跟踪任务 15 秒,那么可能会得到大约 300 MB 的跟踪文件。
针对每个 CPU 产生一个原始跟踪文件。这些文件名为 trace.raw-0、trace.raw-1,对于每个 CPU 依次类推。同时还将生成一个附加的原始跟踪文件,名为 trace.raw。这是一个主文件,其中的信息可以将其他 CPU 特定跟踪信息联系在一起。要将这些跟踪文件合并到一起,构成一个原始跟踪文件,可运行下面的命令:
# trcrpt -C all -r trace.raw > trace.r
# rm trace.raw*
4.2 构建并提交测试用例
IBM 可能要求您为性能问题提供测试用例,或者您可能希望根据自己的需求来运行 perfpmr.sh 命令(例如,为检测将来的性能问题而生成一个基准)。无论在哪种情况下,都可以使用 perfpmr.sh 工具来收集性能数据。即使您的性能问题的原因来源于系统中的某个组件(如网络),perfpmr.sh 仍然可用于发送测试用例,因为它包含了进行问题确定所需的其他信息。IBM 软件支持部门可能要求您提供进行问题确定的附加信息。
说明: IBM 为 AIX 发布了不同的维护级别。这些级别是一组程序临时修复程序( Program Temporary Fixes , PTF ),用于将操作系统更新到最新的级别,但保持当前的发行版不变。通常,这些维护级别以及磁盘和适配器微代码的当前版本,提供了性能增强的修复程序。因此,您可能希望下载这些内容。
要构建和发送一个测试用例,共分为 5 个阶段。要完成这些步骤,您必须以 root 用户的身份进行登录。这些步骤如下所示:
(1)准备下载 perfpmr。
(2)下载 perfpmr。
(3)安装 perfpmr。
(4)运行 perfpmr。
(5)上传测试用例。
4.2.1 为 perfpmr 做好准备
在运行 perfpmr.sh 之前,应该安装下列这些文件集:
(1)bos.acct
(2)bos.sysmgt.trace
(3)perfagent.tools
(4)bos.net.tcp.server
(5)bos.adt.include
(6)bos.adt.samples
可以从下面的位置下载 perfpmr:
ftp://ftp.software.ibm.com/aix/tools/perftools/perfpmr
使用浏览器,下载适合的 AIX 5L 版本。该文件的大小应该小于 1 MB。
重要:如果有新的更改,请始终下载新的副本。不要使用现有的、以前下载的副本。
如果您已经将 perfpmr 下载到了个人计算机,那么可以使用 ftp,以二进制的模式将其传输到系统中,并将其放到一个空的目录中。
4.2.2 安装 perfpmr
使用 tar 命令解压缩并提取该文件中的内容。这个目录中包含下列文件:
(1)Install
(2)PROBLEM.INFO
(3)README
(4)config.sh
(5)emstat.sh
(6)filemon.sh
(7)getdate
(8)getevars
(9)iostat.sh
(10)iptrace.sh
(11)lsc
(12)memfill
(13)monitor.sh
(14)netstat.sh
(15)nfsstat.sh
(16)perfpmr.cfg
(17)perfpmr.sh
(18)pprof.sh
(19)ps.sh
(20)pstat.sh
(21)sar.sh
(22)setpri
(23)setsched
(24)svmon
(25)tcpdump.sh
(26)tprof.sh
(27)trace.sh
(28)vmstat.sh
在这个目录中,您将发现一些以 .sh 结尾的文件。这些都是 Shell 脚本,可以单独执行它们。正常情况下,在运行 perfpmr.sh 时将自动地运行这些 Shell 脚本。要了解适用于您的系统的任何附加步骤,请阅读 README 文件。
通过运行 ./Install 安装 perfpmr。该操作会将 /usr/bin 目录中的下列文件替换为指向您安装 perfpmr 命令的目录中的文件的符号链接:
1) config.sh
2) curt
3) emstat.sh
4) filemon.sh
5) getevars
6) hd_pbuf_cnt.sh
7) iostat.sh
8) iptrace.sh
9) lsc
10) monitor.sh
11) netstat.sh
12) nfsstat.sh
13) perfpmr.sh
14) pprof.sh
15) ps.sh
16) sar.sh
17) setpri
18) tcpdump.sh
19) tprof.sh
20) trace.sh
21) utld
22) vmstat.sh
安装过程的输出与示例 4 所示类似。
示例 4 perfpmr 安装屏幕
# ./Install
(C) COPYRIGHT International Business Machines Corp., 2000
PERFPMR Installation started...
PERFPMR Installation completed.
4.2.3 运行 perfpmr
在运行 perfpmr 命令时,有两种情况需要考虑。
如果您的系统在很长一段时间内性能低下,并且您可以预测出运行缓慢的具体时间,那么您就可以运行 ./perfpmr.sh 600。
在某些情况下,系统可能工作正常,但是在一天中的其他一些时间,却运行缓慢。如果您运行 perfpmr.sh 600,那么 perfpmr 可能出现无法捕获性能缓慢的情况。在这种情况下,您可以在系统运行缓慢的时候手动地运行该脚本,并使用一个较长的超时时间段,例如,trace.sh 15 命令将执行跟踪任务 15 秒,而不是缺省的 5 秒。在运行各个脚本之前,我们可能还需要先运行 perfpmr.sh 600。这将确保捕获所有的数据和配置。
注意:如果您正在使用 HACMP,那么您可能希望在收集 perfpmr 数据之前,延长 Dead Man Switch (DMS) 超时、或者关闭 HACMP,以避免意外的故障转移。
在执行 perfpmr.sh 之后,它将创建表 3 中给出的文件。
config.sum
| crontab_l
| devtree.out
| errpt_a
| etc_security_limits
| filemon.sum
| genkex.out
| genkld.out
| gennames.out
| getevars.out
| iptrace.raw
| lsps.after
| lsps.before
| lsrset.out
| monitor.int
| monitor.sum
| netstat.int
| nfsstat.int
| perfpmr.int
| pprof.trace.raw
| psa.elfk
| psb.elfk
| psemo.after
| psemo.before
| svmon.after
| svmon.before
| tcpdump.raw
| tprof.csyms
| tprof.ctrc
| tprof.out
| tprof.sum
| trace.crash.inode
| trace.fmt
| trace.inode
| trace.j2.inode
| trace.maj_min2lv
| trace.nm
| trace.raw
| trace.raw-0
| trace.raw-1
| trace.raw-10
| trace.raw-11
| trace.raw-12
| trace.raw-13
| trace.raw-14
| trace.raw-15
| trace.raw-2
| trace.raw-3
| trace.raw-4
| trace.raw-5
| trace.raw-6
| trace.raw-7
| trace.raw-8
| trace.raw-9
| trace.syms
| tunables_lastboot
| tunables_lastboot.log
| tunables_nextboot
| vfs.kdb
| vmstat_v.after
| vmstat_v.before
| vmstati.after
| vmstati.before
| vnode.kdb
| w.int
| |
技巧:在安装 perfpmr 命令之后,您可以在任何时候运行该命令,以确保捕获上述的所有文件。通过执行这项操作,您可以确信将得到完整的测试用例。
4.2.4 上传测试用例
该目录中还包含一个必须完成的、名为 PROBLEM.INFO 的文件。按照 README 文件中的说明,使用 tar 命令对这些文件进行打包,将其上传给 IBM。
示例 5 是运行 perfpmr.sh 600 的示例。
# perfpmr.sh 600
(C) COPYRIGHT International Business Machines Corp., 2000,2001,2002,2003
16:54:32-11/29/05 : perfpmr.sh begin
PERFPMR:hostname:server2
PERFPMR:perfpmr.sh Version 530 2005/10/19
PERFPMR:current directory:/home/gpsilva
PERFPMR:perfpmr tool directory:/home/gpsilva
PERFPMR:Parameters passed to perfpmr.sh: 600
PERFPMR:Data collection started in foreground (renice -n -20)
TRACE.SH:Starting trace for 5 seconds
/bin/trace -r PURR -k 492,10e,254,116,117 -f -n -C all -d -L 20000000 -T
200000
00 -ao trace.raw
TRACE.SH:Data collection started
TRACE.SH:Data collection stopped
TRACE.SH:Trace stopped
TRACE.SH:Collecting gennames data
TRACE.SH:Trcnm data is in file trace.nm
TRACE.SH:/etc/trcfmt saved in file trace.fmt
TRACE.SH:Binary trace data is in file trace.raw
TRACE.SH:Enabling locktrace
lock tracing enabled for all classes
TRACE.SH:Starting trace for 5 seconds
/bin/trace -r PURR -j 106,10C,10E,112,113,134,139,465,46D,606,607,608,609
-f -n -C all -d -L 20000000 -T 20000000 -ao trace.raw.lock
TRACE.SH:Data collection started
TRACE.SH:Data collection stopped
TRACE.SH:Trace stopped
TRACE.SH:Disabling locktrace
lock tracing disabled for all classes
TRACE.SH:Binary trace data is in file trace.raw.lock
MONITOR:Capturing initial lsps, svmon, and vmstat data
MONITOR:Starting system monitors for 600 seconds.
MONITOR:Waiting for measurement period to end....
MONITOR:Capturing final lsps, svmon, and vmstat data
MONITOR:Generating reports....
MONITOR:Network reports are in netstat.int and nfsstat.int
MONITOR:Monitor reports are in monitor.int and monitor.sum
IPTRACE:Starting iptrace for 10 seconds....
0513-059 The iptrace Subsystem has been started.Subsystem PID is 389334.
0513-044 The iptrace Subsystem was requested to stop.
IPTRACE:iptrace collected....
IPTRACE:Binary iptrace data is in file iptrace.raw
TCPDUMP:Starting tcpdump for 10 seconds....
TCPDUMP:tcpdump collected....
TCPDUMP:Binary tcpdump data is in file tcpdump.raw
FILEMON:Starting filesystem monitor for 60 seconds....
FILEMON:tracing started
FILEMON:tracing stopped
FILEMON:Generating report....
TPROF:Starting tprof for 60 seconds....
TPROF:Sample data collected....
TPROF:Generating reports in background (renice -n 20)
TPROF:Tprof report is in tprof.sum
17:07:43-11/29/05 : config.sh begin
CONFIG.SH:Generating SW/HW configuration
17:07:43-11/29/05 : copying ODM files
17:07:44-11/29/05 : ipcs -Sa
17:07:44-11/29/05 : lspv
0516-320 : Physical volume 00c478de09caf37f0000000000000000 is not assigned
to a volume group.
0516-320 : Physical volume 00c478de49630c6a0000000000000000 is not assigned
to a volume group.
0516-320 : Physical volume 00c478de006552460000000000000000 is not assigned
to a volume group.
17:07:45-11/29/05 : lsvg -l
17:07:45-11/29/05 : lslv lv
17:07:48-11/29/05 : lsattr -E -l dev
17:07:49-11/29/05 : df
17:07:49-11/29/05 : netstat -in -rn -D -an -c
17:07:50-11/29/05 : getmempool.sh
17:07:51-11/29/05 : getj2mem.sh
17:07:51-11/29/05 : genkld
17:07:51-11/29/05 : genkex
17:07:51-11/29/05 : getevars
17:07:51-11/29/05 : errpt
17:07:51-11/29/05 : emgr -l
There is no efix data on this system.
17:07:51-11/29/05 : lslpp -ch
17:07:51-11/29/05 : instfix -ic
17:07:52-11/29/05 : lscfg -vp
17:07:53-11/29/05 : xm -u |kdb
17:07:53-11/29/05 : echo vnode|kdb
17:07:56-11/29/05 : echo vfs|kdb
17:07:57-11/29/05 : echo dmpdt_chrp -i
17:07:58-11/29/05 : sysdumpdev -l, -e
CONFIG.SH:Report is in file config.sum
17:07:58-11/29/05 : config.sh completed
PERFPMR:Data collection complete.
PERFPMR:Data files can be archived and gzipped using:
perfpmr.sh -z filename [-o "dirs"] where filename is the name of the archive file.
An example of a typical archive filename:
/tmp/NNNNN.bNNN.cNNN.perfpmr.pax.gz
where NNNNN is the pmr#, .bNNN is the pmr branch #,and .cNNN is the country code -o "dirs":
dirs is a list of directories enclosed in quotes.If -o is not specified, all files in current directory are archived.
You must be in the directory which contains the list
of directories when using the -z and -o flags
After pax gzip file has been created, ftp the file to:
testcase.software.ibm.com in /aix/toibm Login as user id:ftp
17:07:58-11/29/05 : perfpmr.sh completed
技巧:当您的系统负载较低,并且正常运行的时候,运行 perfpmr 命令是非常有价值的。这将为您提供一个基准,以确定将来的性能问题。
您应该在下列情况下再次运行 perfpmr 命令:
1) 您的系统出现了性能问题。
2) 您对系统进行了硬件更改。
3) 您对网络配置进行了更改。
4) 您对 AIX 5L 操作系统进行了更改,比如当您安装更新程序、或者优化 AIX 5L 时。
5) 您对应用程序进行了更改。
五. 拨打 IBM 的支持电话
要拨打 IBM 的支持电话,您必须执行下面的这些步骤:
1) 确定您的问题对业务的影响。
2) 描述您的问题,并收集后台信息。
3) 将您的问题提交到 IBM Support。
4) 更新您的请求。
确定您的问题对业务的影响
当您向 IBM 报告问题时,IBM 会要求您提供一个严重性级别。因此,您需要了解并评估所报告的问题对业务的影响。
使用表 4 以选择相应的严重性级别。
严重性级别
| 业务影响
| 严重性级别1
| 严重的业务影响:您无法使用该程序,导致对相关操作产生严重的影响。这种情况需要紧急的解决方案。
| 严重性级别2
| 重大业务影响:程序无法使用,受到很大的影响。
| 严重性级别3
| 一定的业务影响:程序无法使用,并且一些不是很重要的特性(并不会对相关操作产生严重的影响)无法使用。
| 严重性级别4
| 很小的业务影响:问题对相关操作产生很小的影响,或者已经对问题进行了合理的限制。
|
描述您的问题并收集后台信息
在向 IBM 解释一个问题时,请尽可能具体一些。包括所有的相关后台信息,以便 IBM 支持专家可以高效地帮助您解决这个问题。
为了节约时间,请仔细考虑并回答下面的这些问题:
1) 问题发生在哪台计算机上?记录下序列号。
2) 在发生问题时,运行的是什么版本的软件?
3) 您是否有与问题症状相关的日志、跟踪和消息?
4) 这个问题是否可以重现?如果是,那么什么样的操作将导致这个故障?
5) 是否对系统进行过任何更改?例如,硬件、操作系统、网络软件,等等。
6) 对于这个问题,您是否正在使用某种权宜之计?如果是,请准备好在报告该问题时对其进行解释。
7)
将您的问题提交到 IBM Support
您可以采取下面两种方式来提交您的问题:
在线:
软件问题:使用 http://www.ibm.com/software/support/esr/support_contracts 上的 Electronic Service Request (ESR)
硬件问题:使用 http://www.ibm.com/support/esc/signin.jsp 上的 Electronic Service Call (ESC+)
打电话:要获取您所在国家/地区的电话号码,请在网站 (http://www.ibm.com/planetwide/) 上转到联系页面,并选择您所在国家/地区的名称。
更新您的请求
如上所述,通过使用联机的表单或者电话,您始终可以更新您的支持请求。请引用支持专家为您提供的问题编号。对于报告到 IBM 支持中心的任何问题,将创建一个问题管理记录(Problem Management Record,PMR)。PMR 是一种联机的软件记录,用于跟踪客户所报告的软件问题。
以联机的方式更新请求具有一个优点,那就是,您可以很容易地将相关文件附加到 PMR,例如,屏幕截图、日志,等等。
可以采用相同的过程来结束电话、或者更改严重性级别。
FROM:
IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 5 部分:问题的确定和解决(下)
http://www.ibm.com/developerworks/cn/aix/redbooks/test222/problem-determine/2.html
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:62697850 DBA 超级群:63306533;
聊天 群:40132017
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请 |
|