Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » Oracle

解码IBM小机设备位置代码

本文转自IBM网站,http://www.ibm.com/developerworks/cn/aix/library/au-aix-decoding-location-codes/

遇到设备故障肯定是一件麻烦事。故障设备的类型可能是热插拔硬件,比如风扇冷却装置或热插拔外设组件互连(PCI)卡。在这两种情况下,都需要知道设备的物理位置,然后才能更换它。所以,您需要知道设备的位置代码。故障设备会显示在错误报告中(使用errpt命令),该报告还会发布物理位置代码。此外,使用lscfg命令可以获得您设备的物理位置。在获得该位置后,应该如何定位设备(比如P1-C1-T1)?

AIX 内部代码和物理代码

AIX 提供了两种不同的代码,它们分别是:

  • IBM AIX®(内部)位置系统代码
  • 物理位置代码

AIX 内部位置代码可与物理代码配合使用来识别设备,我们稍后会在本文这了解这种用法。使用 AIX 生成的那些代码引用了某些特定的设备,例如:

10-80-00-3,0    SCSI CD Drive
10-80-00-2,0    SCSI disk
02-08-00        SAS disk

上面的代码是访问实际设备的内部路径,可以使用lsdev命令来查看它们。

另一个我们特别感兴趣的位置代码是物理类型的,由固件生成。例如:

U789C.001.DQD3F62-P2-D3  SAS Disk Drive

自从几年前发布了 IBM POWER5 处理器以后,物理位置代码就成为了定位设备的首选方法。作为一项经验法则,您需要的通常是物理代码。这也是本文的重点。表 1 中提供的命令使您能够获得有关设备的各种信息。

表 1. 获得有关您的设备的信息的命令

命令 描述
lsdev -C -H -F "name status physloc location description" 获得 AIX(如果存在)和物理位置代码。
lsdev -Cc disk -F 'name location physloc' 获得所有磁盘的 AIX 和物理位置代码。
lsdev -Cl hdisk0 -F physloc 获得 hdisk0 的位置代码。
lscfg -vpl hdisk0 获得 hdisk0 的扩展信息。
lsdev -C| grep hdisk0 获得 hdisk0 的 AIX 位置代码。
lsparent -Cl hdisk0 获得 hdisk0 的父设备。
lscfg -l fcs0 获得关于 fsc0 设备的信息。

使用 IBM 信息中心或红皮书

如 何能使用物理位置代码定位设备?这取决于您拥有哪种类型的系统,因为这些代码可能因系统而略有不同。请务必持有服务器系统手册,或参阅 IBM 信息中心的在线信息。这些参考资料提供了您所用型号的原理图,包括系统的位置代码,以方便识别。不过,前面已经说过,只要没有东西丢失,就有办法识别设备 的物理位置。

代码中包含什么?

物理设备的位置代码来自固件端。如果正确地遵循位置代码,它最终会指向您正在寻找的设备。
无 论您有什么样的服务器,位置代码的实际格式都是相同的,它只是可以指向系统上的不同物理位置的代码(数字/字母)。到目前为止,可定位设备的第一个字符一 直是 “U”。接下来的介绍会比较有趣。下面是位置代码的通用格式,包含一个示例,该示例来自 IBM Power Systems™ 520 型号(落地式),除非另行说明,否则各示例均使用此型号。除非另行说明,否则所有位置代码示例都是物理位置。

单元 enclosure 类型 enclosure 型号 序列号 位置
U789C 001 DQD3F62 P2-D3

字段 location 是单元/抽屉的单元/型号序列号。您的系统可能包含不同的单元 enclose 类型。不要指望在所有位置代码上都有相同的 enclosure。在有扩展槽(比如额外的磁盘抽屉)时尤其如此。

在本文中,location 字段是备受关注的位。

如 果无法解析物理位置,AIX 会假定该设备是一个逻辑设备,在某个点上被链接到一个物理设备。通常情况下,这些设备可能是连接到独立磁盘冗余阵列(RAID)的 SCSI 设备或磁带单元等外部存储的逻辑设备。根据不同的硬件(比如 SCSI、串行、tty 和适配器),这些代码可能具有不同的含义。

位置代码可能由几个前缀字母和数字组成。常用前缀如表 2 所示。

表 2. 常用前缀

代码前缀 描述
A 通风设备,例如,风扇
C 卡,例如,PCI 插槽、内存插槽
D 设备,例如,磁盘插槽、磁盘抽屉
E 与电有关的设备,例如,电源
L 逻辑路径,例如,光纤通道
P 背板设备,例如,一个系统或 I/O 背板、系统板
T 接口连接器/端口,例如,串行端口,通常后跟一个表示它是哪个端口的数字
U 单元
V 虚拟背板

这是一个代码

现在,让我们来看一个示例,hdisk0。以下是 hdisk0 的部分lscfg输出:

lscfg -vpl hdisk0
hdisk0 U789C.001.DQD3F62-P2-D3 SAS Disk Drive (146800 MB)

Manufacturer................IBM 
Machine Type and Model......ST3146356SS 
FRU Number..................10N7204 
ROS Level and ID............45363045
Serial Number...............3QN2JFEP

Hardware Location Code......U789C.001.DQD3F62-P2-D3

PLATFORM SPECIFIC
Name:disk
Node: disk
Device Type:block

看看上面的lscfg输出,它首先告诉我,这是一个 SAS 磁盘,但让我们更仔细地看一看位置代码,并拆分它:

U789C.001.DQD3F62-P2-D3
代码 描述
U789C 单元类型
001 enclosure 型号
DQDS3F62 序列号
P2 背板 2(可从单元前面访问)
D3 设备插槽 3(1 号磁盘驱动器,这是从第二个机架向下数的左边第一个磁盘。)

我如何知道上述所有信息?通过使用我的红皮书并参考该型号的示意图中的位置,我可以知道它的确切位置!

您通常会发现,位置代码只被位置代码引用,不会被系统详细信息引用。在所有设备都来自同一背板时,上述情况绝对适用,并且在这种情况下,将会使用以下格式:Un<location>

这些代码可能使用下面的格式,该格式被转换为:单元 1,抽屉/框架 6,第一个背板, I/O 插槽 2。U1.6-P1-I2

在 处理卡插槽时,它们可能包含双端口,例如以太网或光纤卡。如果出现这种情况,那么该位置将会包含一个与这些端口有关联的字母 “T”,而且 T 后面的数字是端口号。如果某个位置包含 “T”,但它不是一个卡插槽(并且位置代码中没有 C),那么我们可以非常肯定这是一个集成的(板上)接口。在这里,我想到的是串行端口或以太网端口。

现在,让我们将注意力转向光纤卡插槽。看看光纤卡(fcs0)位置:
lscfg -vl fcs0
物理位置:U789C.001.DQD3F62-P1-C1-T1

看看位置代码:

P1-C1-T1

我们知道:

代码 描述
P1 背板 1。可从单元的后面访问此背板。
C1 卡(PCI)插槽 1。从单元的顶部往下看,这是第一个 PCI 插槽。
T1 这是第一个端口(上端口)。

查看一个集成的(板上)端口,例如,硬件管理控制台(HMC)以太网端口:P1-T5

我们知道,这不是一个卡,因为位置代码中没有 “C”。

代码 描述
P1 背板 1。可从单元的后面访问此背板。
T5 插槽 5。定位在机器的左侧。左端口。

确定设备是否是板载设备的另一种方法是,设备还会返回一个 AIX 内部位置代码。例如,以 Power Systems 570 为例,以下是一些以太网设备:

ent0      Available 02-08 2-Port 10/100/1000 Base-TX PCI-X Adapter (14108902)
ent1      Available 02-09 2-Port 10/100/1000 Base-TX PCI-X Adapter (14108902)

ent0      U7879.001.DQD1AE7-P1-T6
ent1      U7879.001.DQD1AE7-P1-T7

上述 AIX 内部位置码(02-08 和 02-09)告诉我们,两个以太网设备使用了相同的地址位置 02。由于物理位置中没有 “C”,这说明没有卡插槽,所以我们可以假定,这是一个板载的双端口。作为一个经验法则,如果有两个板载设备(T1 和 T2),而且这两个设备是水平的一对,那么 T1 在右边,T2 在左边。如果设备是垂直的,那么 T1 在上面,T2 在下面。

许多系统都有存储区域网络(SAN)存储。知道如何找到逻辑单元号(LUN)是好事,我们来了解一下 hdisk0,它是 570 型号上的 IBM System Storage® DS3400 磁盘系统:

lscfg -vl hdisk20
hdisk2 0U7879.001.DQD1AE7-P1-C2-T1-W202500A0B85B6194-LE000000000000 MPIO Other DS3K Array Disk

上述输出相当长。所以,让我们来看看该位置代码到底是怎么回事:

代码 描述
P1 背板 1(可从单元后面访问此背板)
C2 卡(PCI)插槽 2 光纤卡
T1 第一个光纤端口(上)
W202500A0B85B6194 远程 SAN 交换机上的全球端口标识符
LE000000000000 远程磁盘的(逻辑)LUN ID(十六进制值)

某些代码包含一个字母 “L”,后面跟一个数字,这些都是逻辑路径。逻辑路径的典型使用者是包含 RAID 磁盘的 SCSI 磁盘。例如,一个 SCSI 磁盘阵列的位置如下所示:

P1-C8-T1-L0-L0  SCSI RAID 5 Disk Array

热插拔

了解 PCI 热插拔卡是有好处的,因为如果热插拔设备发生故障,只需花费几分钟就可以更换它们。要查看 PCI 热插拔卡,可使用下面的命令:

lsslot -c pci
# Slot Description Device(s)
U789C.001.DQD3F62-P1-C1 PCI-E capable, Rev 1 slot with 8x lanes fcs0 
U789C.001.DQD3F62-P1-C2 PCI-E capable, Rev 1 slot with 8x lanes fcs1 
U789C.001.DQD3F62-P1-C3 PCI-E capable, Rev 1 slot with 16x lanes Empty
U789C.001.DQD3F62-P1-C4 PCI-X capable, 64 bit, 266MHz slot Empty
U789C.001.DQD3F62-P1-C5 PCI-X capable, 64 bit, 266MHz slot Empty

我们已经介绍了 fcs0 卡的位置。但是,我们可以看到,两块激活的卡(fcs0、fcs1)是彼此相邻的。我们已经知道,fcs0 是第一块卡,位于插槽的顶部。所以,向下数的第二块卡就是 fscs1 卡。其他三个插槽 P1-C3、C4 和 C5 是未分配的。

要查看逻辑热插拔设备,可使用以下命令:

lsslot -c slot

快速获得位置代码

如 果您对位置仍然感到困惑,而此时一个单元出现了故障,IBM 工程师正在敲门,并且该工程师期望您知道发生故障的设备在哪里,那么您可以随时进入 'SMIT diag',识别出故障设备。该命令还会将位置代码也告诉您。在您这么做之前,一定要先查看 errpt,确认您在识别正确的设备。

修复闪烁的警示灯

在一个设备出故障后,可以通过一个闪烁着琥珀色的指示灯来识别它,也可以通过登录到 HMC 时的一个符号来识别它。在更换或修复设备后,可使用以下命令让状态恢复正常:

/usr/lpp/diagnostics/bin/usysfault -s normal

 
关键词:AIX 

相关文章

AIX上使用NFS
在Oracle Enterprise Linux上使用nmon
AIX topas命令
解码IBM小机设备位置代码
Install 11gR2 RAC On AIX 7.1
About AIX 7.2 and document
Install VNC On AIX
Top