NS80故障分析(结果尚未得出)
希望给大家借鉴
昨天下午NS80上出现error信息,以下是事情处理的经过及事后分析结论:
事件现象:
NS80管理界面上出现多条重复报警信息,指向NS80上某块HBA卡不能被访问:
2008-03-11 15:10:09: CAM: 3: 2: Warning: Scsi-32 hba is INACCESSIBLE.
现场将报警信息发给EMC,请求技术支持。后EMC工程师到现场对硬件进行检查,确认硬件没有问题,状态正常。同时,应用前端应用一切正常。
EMC工程师现场抓了emcgrab和support material信息,准备回去请2线工程师分析。
事后,我们对日志也进行了分析,大概结果如下:
1.表象上,从WEB管理界面上得到的信息只是说明了server_3(第2个机头)某块HBA不能被访问,同时之前曾频繁报HBA的binding fail信息(EMC工程师多次说明没有问题),现场无法确认新老报警信息是否有相关联系,因此本次报错需要更多的上下文信息对其进行深度分析。
从EMC的supoort material里面的server_3相关的log信息中,我们首先找到了一些有用信息
2008-03-11 15:10:09: FCP: 3: c32t0l0: abort called
2008-03-11 15:10:09: CAM: 3: 2: Warning: Scsi-32 hba is INACCESSIBLE.
|_SCSI ERR ON #3200 camstat 0x04 bstat DeviceError
2008-03-11 15:10:09: CAM: 3: check_timeout (32) : c32t0l0 req b23d7890 timeout (10 sec 57604490028 cyc)
func 01 flags c1 stat 00 cdb 38a6bff5000000000000
2008-03-11 15:09:53: FCP: 3: c32t0l0: abort called
|_SCSI ERR ON #3200 camstat 0x04 bstat DeviceError
2008-03-11 15:10:39: NDMP: 3: < LOG type: 2, msg_id: 0, entry: Tape close error with no tape opened >
从上文中可以看出,报Scsi-32 hba is INACCESSIBLE时,之前有个信息说明 c32t0l0这个设备调用被取消,之后又有scsi错误信息,NDMP也有指出磁带相关错误信息,因此大部分的可能与备份有关。
再查Server_3上的设备信息:
server_devconfig server_3 -list -scsi -nondisks
server_3 :
Scsi Device Table
name addr type info
tape1 c32t0l0 tape IBM 03592J1A 0A0D68000007823487
发现 c32t0l0指向的是3584的一个驱动器,再到备份系统上检查NDMP备份信息,发现c32t0l0正好是NS80备份的一个驱动器,且该驱动器当天正好发生卡带事故,因此可能NS80上报警信息与此有密切关系。
再继续往下看一些NS80上的报错信息,其中又有一些重要发现:
2008-03-11 12:22:34: FCP: 3: c32t0l0: abort called
2008-03-11 12:22:34: DRIVERS: 4: FCDMTL 2 [9.0.2] Initiator command error: loop_id = 0., SCSI status = 0, EXM status = 12
|_SCSI ERR ON #3200 camstat 0x04 bstat DeviceError
2008-03-11 12:22:34: NDMP: 3: DartTapeInterface: write error
2008-03-11 12:22:34: NDMP: 3: Tape write error: No error reported .
2008-03-11 12:22:34: NDMP: 3: NdmpdSession::ndmpdApiWrite fails in local or remote wirte msg, moverAddressType=0, mp=0x5af4b524
2008-03-11 12:22:34: NDMP: 3: Medium error
2008-03-11 12:31:39: NDMP: 3: DartTapeInterface: malloc error
2008-03-11 12:31:44: DRIVERS: 4: FCDMTL 2 [9.0.2] Initiator check condition: loopID = 1., SK = 00, ASC/Q = 0000
2008-03-11 12:32:50: DRIVERS: 4: FCDMTL 2 [9.0.2] Initiator check condition: loopID = 1., SK = 02, ASC/Q = 0401
2008-03-11 12:32:52: DRIVERS: 4: last message repeated 1 times
2008-03-11 12:32:52: NDMP: 3: < LOG type: 2, msg_id: 0, entry: Tape close error with no tape opened >
DeviceError/DartTapeInterface/Medium error相关信息可能与备份发生错误有关。
通过查celerra error message guide,可以查到DartTapeInterface: malloc error相关的信息:
DartTapeInterface: malloc error
Reason:Out of reserved big buffer pool for TAPE_WRITE or TAPE_READ operation.
Action:Reduce the backup/restore session number and try later.
该信息说明需要调整TAPE_WRITE/TAPE_READ相关的参数,大概与I/O块匹配的不好有关。(年前曾要求EMC对NDMP的报错信息进行分析,最后得出的结论也是调整NS80上机头中NDMP相关的参数)
再往前翻NDMP相关的信息,
2008-03-10 11:51:17: NDMP: 3: TAPE_WRITE, size(393216) > ndmpMaxBufSize (131072)
Set NDMP.bufsz >= 393216 and reboot
说明在机头上需要调整NDMP.bufsz参数。
查Celerra的文档,说明了bufsz的用途:
值 默认值 参数可调区间
bufsz 128 (default) 64 to 1168
Sets the size of the buffer (in kilobytes) allocated for reading and writing on the tape requested by TAPE_READ/TAPE_WRITE from the NDMP client.
For example: Value 128 The default value works for all the backup vendors except for Legato NetWorker NetWorker uses a different I/O size for different
tape drives. Refer to the NetWorker documentation to set the right parameter value for your tape drive.
从该文档内没有发现有针对3592驱动器设定的特定值。同时,调整该值需要重启机头。(机头的切换和重启工作之前曾多次做过,正常情况下没有问题)
从以上的信息可以得出初步结论:
1.昨天的NS80报警信息与NDMP备份时,驱动器卡带有密切关系;
2.NDMP报错信息经常出现,建议尽早进行更改;
3.驱动器卡带与NDMP的参数设置是否有直接关系,目前未得而知,需要EMC/IBM共同给出原因分析结果。
|