浪潮服务器日志分析:RAID 卡、操作系统与黑盒日志
日志内容说明

Raid 卡日志分析
Raid卡日志分析—常见raid卡型号
常见Raid卡型号介绍
| 部件PN | Raid卡型号 | 厂家 | 对应上游原厂型号 | 速率 |
|---|---|---|---|---|
| V064Z11001700013 V020001000000000 | LSI 9271-8i | LSI | LSI 9271-8i | 6Gb |
| YZCA-00424-103 | Inspur 3008 | Inspur | LSI 9361-8i | 12Gb |
| YZCA-00582-102 YZCA-00582-103 | Inspur 3108 | Inspur | LSI 9361-8i | 12Gb |
| V06B411000000013 | LSI 9361-8i | LSI | LSI 9361-8i | 12Gb |
| V06B711000000013 | LSI 9364-8i | LSI | LSI 9364-8i | 12Gb |
| V020009000000000 | LSI9460-8i | LSI | LSI9460-8i | 12Gb |
| V0639040G172A011 | Adaptec 6805 | Adaptec | Adaptec 6805 | 6Gb |
| YZCA-00389-102 YZCA-00389-101 YZCA-00466-101 | PM 8060 | Inspur | Adaptec 8805 | 12Gb |
| YZRA-01188-101 YZRA-01188-102 | PM8204 | Inspur | Adaptec 3152/3154 | 12Gb |
| YZSA-01188-101 YZSA-01188-102 | PM8222 | Inspur | Adaptec 2100 | 12Gb |
Raid卡日志分析—Raid卡日志收集
常见Raid卡日志收集场景说明
| Raid卡型号 | raid卡管理工具 | 适用操作系统 | InspurDiagInfoCollect收集日志 |
|---|---|---|---|
| 3008IR和3008IT | SAS3IRCU | Windows、Linux、Vmware等 | 支持 |
| 9361等LSI的raid卡 | Storcli Megacli | Windows、Linux、Vmware等 | 支持 |
| 8060,8204,8222等raid卡 | ARCCONF | Windows、Linux、Vmware等 | 支持 |
收集完毕后包含以下内容:storcliAdpAllInfo:Raid卡信息storcliPDList:当前所有硬盘状态(无论是否创建阵列)
storcliLdInfo:当前阵列配置与状态(不显示成员盘列表和状态)
VallShowAll:当前阵列配置与状态storcliLdPdInfo:当前阵列配置、状态,以及成员盘列表和状态。
MgEvtLog:完整事件日志文件storcliAdpalilog:全部日志信息LdPdInfo、PdList与LdInfo三者都是只保存收集日志那一时刻的配置信息,历史配置信息不保留。

1)AdpAllInfo文件解析--查看RAID卡信息

| 参数 | 含义 |
|---|---|
| Product Name | Raid卡型号 |
| Serial No | Raid卡序列号 |
| FW Version | 固件版本 |
| BBU | BBU状态 |
| Memory Size | Raid卡缓存大小 |
| ROC temperature | Raid卡温度 |
| Device Present | 阵列总数、offline及Degraded阵列计数 |
| Disable Copyback | 是否禁用写回功能 |
| Error Counters | 错误计数 |
| Enclosure Device ID | 硬盘所在背板ID号 |
| Slot Number | 硬盘槽位号 |
| Media Error Count | 介质错误计数器 |
| Other Error Count | 其它错误计数器 |
| Predictive Failure Count | 预期错误计数器 |
| Raw Size | 硬盘容量 |
| Firmware state | 硬盘状态 |
| Device Firmware Level | 固件版本 |
| Inquiry Data | 硬盘型号 |
| Media Type | 介质类型 |
| Drive Temperature | 硬盘温度 |
2)PDList文件解析-- 查看raid卡物理硬盘信息
3)LdInfo文件解析--查看raid卡下的阵列配置与状态

| 参数 | 含义 |
|---|---|
| Name | 阵列名称(创建阵列时起的名字) |
| RAID level | 阵列级别 |
| Size | 阵列容量 |
| State | 阵列状态 |
| Strip Size | 条带值 |
| Number of Drives | 阵列成员盘数量 |
| Current Cache Policy | 阵列缓存策略 |
| Disk Cache Policy | 磁盘缓存状态 |
| Number of Spans | 阵列包含span数量 |
备注:Number of Spans表示阵列包含的span数量,span可看作是一组硬盘捆绑在一起。我们在WebBIOS中创建阵列时会首先创建一个SPAN。当配置Raid0、1、5、6时,一个阵列中只包含1个span;当创建Raid10、50、60时,一个阵列中会包含2个span。
4)VallShowAll文件解析-- 查看raid卡下的阵列配置与状态


| 参数 | 含义 |
| TYPE | RAID组的级别 |
| State | RAID组的状态 |
| Access | RAID组数据的访问策略 |
| Cache | RAID组当前的读写策略与IO Policy |
| Size | RAID组的大小 |
| PDs for VD0 | RAID组下的物理硬盘 |
| Strip Size | RAID组的条带大小 |
| Write Cache(initial setting) | RAID组Cache的写策略 |
| Disk Cache Policy | RAID组成员盘的Cache策略 |
5)LDPDInfo文件解析-- 查看阵列配置状态以及物理盘的状态和信息



6)MgEvtLog文件解析– raid卡的事件日志日志分析时,我们的关注点更多的是一些状态改变记录,搜索state change可以找到有关阵列和硬盘的状态变化及时间点。
如下为一块硬盘Failed掉线,阵列降级变为Degraded的日志记录。

PD 13(e0x16/s9)表示硬盘槽位。PD 13代表PD号为13的硬盘,类似Adaptec RAID卡日志中的ID号,根据PD号可在LdPdInfo或PDList文件中找到实际槽位号。e0x16/s9也是对PD 13的解释,即硬盘实际槽位号,e0表示Enclosure 0(0号背板),
s9表示Slot9槽位。
6)MgEvtLog文件解析
VD 01/1表示阵列1,即LdPdInfo或LDInfo文件中Virtual Drive 1所代表的阵列。

综上,示例日志的含义为Slot9硬盘掉线变成Failed状态,导致阵列1降级为Degraded状态,时间发生于2015年4月11日09:10:06,然后根据这个时间点往前翻看日志,找出引起硬盘掉线的可能原因。
6)MgEvtLog文件解析在硬盘发生故障前,一般会出现
Unexpected sense,可查代码表确认报错类型。
Sense错误代码包含三位数字,分别为Sense Key、ASC、ASCQ。本例sense代码为3/11/00,表示Media error,说明硬盘存在介质错误。
常见Sense Key:
Key = 3:表示硬盘有Medium Error

- Key = 4:表示硬盘有硬件错误

- 以上一般都是硬盘本身故障,需要更换。
- 6/29/00:表示Power on Reset,硬盘通电时,Raid卡给硬盘发出的重启命令。

一般不是硬盘的问题,如果所有的硬盘都有该提示,可能是raid卡故障。如果只是个别硬盘反复出现该代码,可能是背板或线缆故障。
可搜索硬盘或RAID卡相关的报错(error),常见的有如下几种:Unrecoverable medium error:硬盘介质错误。

Error on PD XX:硬盘发生错误一般会导致硬盘掉线,具体原因可往前查找是否有出现Unexpected sense。

Fatal firmware error:RAID卡FW 问题。针对Inspur 2008 RAID卡,需关闭操作系统节能选项;针对LSI 9271 RAID卡,日志开头出现的firmware error属于正常现象。

SAS Topology error:RAID卡和硬盘之间的链路问题,一般是硬盘背板或Expander卡故障。
7)storcliAdpalilog文件解析
文件包含raid卡信息,物理硬盘信息,逻辑阵列信息,raid卡的FW日志事件等。



PM8060 raid卡日志收集完毕后包含以下内容:

重要文件说明:
1. Config:当前Raid卡信息、阵列配置与状态、硬盘状态(仅搜集日志那一时刻的配置信息,历史配置信息不保留)
2. Deaddrives:硬盘异常记录
3. Device_log:硬盘异常记录
4. SmartStats:硬盘Smart信息(仅SATA硬盘有此属性)
5. Logs:完整日志文件
1)Config文件解析-- 查看Raid卡信息
| 参数 | 含义 |
|---|---|
| Controller Model | Raid卡型号 |
| Controller Serial Number | Raid卡原厂序列号 |
| Temperature | Raid卡温度 |
| Installed memory | Raid卡缓存大小 |
| Copyback | 写回功能开关 |
| Logical devices/Failed/Degr aded | 阵列总数、Failed及 Degraded阵列计数 |
| Firmware | 固件版本 |
| Driver | 驱动版本 |
| ZMM Status | BBU电池状态 |
1)Config文件解析-- 查看阵列配置与状态
| 参数 | 含义 |
|---|---|
| Logical device name | 阵列名称(创建阵列时起的名字) |
| RAID level | 阵列级别 |
| Status of logical device | 阵列状态 |
| Size | 阵列容量 |
| Strip-unit size | 条带值 |
| Read-cache status | 读缓存状态(On/Off) |
| Write-cache status | 写缓存状态(On/Off) |
| Logical device segment information | 阵列成员(可看到硬盘槽位和原厂SN) |
备注:阵列成员槽位信息中的Enclosure、slot分别表示Raid卡通道号、硬盘槽位号。
1)Config文件解析-- 查看硬盘状态
| 参数 | 含义 |
|---|---|
| State | 硬盘状态 |
| Transfer Speed | 硬盘接口类型及传输速率 |
| Reported Channel、Device(T:L) | 硬盘所在通道及ID号 |
| Reported Location | 硬盘实际槽位号(Slot号) |
| Model | 硬盘型号 |
| Firmware | 固件版本 |
| Serial number | 硬盘序列号 |
| Total Size | 硬盘容量 |
| Write Cache | 磁盘缓存 |
备注:Adaptec Raid卡在日志层面是通过硬盘ID号记录槽位的,此ID号与硬盘实际槽位号(Slot号)可能不同,但根据ID号可在Config文件中查询Slot号确认槽位。上图中0,0(0:0) 表示方式,括号外第一个数字表示通道号,第二个数字表示ID号。
2)Deaddrives文件解析--硬盘异常记录 Deaddrives:硬盘失效记录

记录硬盘失效记录,此“失效”的含义是指硬盘检测不到(或认为拔出)。图例展示了一条完整的失效记录,红框内表示失效时间(2013年9月6日17:49:58),serialNumber表示硬盘序列号。
3)Device_log文件解析-- 硬盘异常记录
Device_log:硬盘异常计数器
一条完整的异常记录如下:
<driveErrorEntry smartError="false" vendorID="HITACHI " serialNumber="XXXXXXXX" wwn="5000ccaXXXXXXXXX" deviceID="2" productID="HUS15606" numParityErrors="0" linkFailures="0" hwErrors="1" abortedCmds="0" mediumErrors=“3" smartWarning="0" />
- 其中:
- ①serialNumber表示硬盘序列号,deviceID表示硬盘ID号。
- ②hwErrors、mediumErrors计数器表示硬盘物理故障
③linkFailures、abortedCmds计数器表示传输链路问题,一般与线缆、背板等有关。
- 注意:Deaddrives和Device_log这两个文件可保存历史数据,即使故障硬盘被更换后,文件中的异常记录不会清除。因此,当发现文件中有异常记录时,请先根据SN或ID号在Config文件中查找硬盘是否存在。
4)SmartStats文件解析--查看硬盘smart信息

该文件是xml格式,依然可用UltraEdit等文本编辑器打开。每条记录以磁盘的通道号及ID号开头,里面记录了该硬盘的所有Smart信息。
5)Logs文件解析– raid卡事件日志
medium error,此错误表示硬盘存在介质错误,即物理坏道。一般在报此错误前,也会有较多与之相关的其它有价值信息。如下是一段与medium error相关的日志截图

这部分是一段Sense错误代码,devt=0x12表示故障硬盘的ID号,注意这里采用了16进制表示法,转换成十进制ID号即18。SenseKey=03 就表示media error(关于Sense错误代码的更多信息,请参考LSI RAID卡日志分析部分)

这部分是对medium error的进一步说明:ID(0:18:0)表示故障硬盘的ID号,Unrecovered Read Error表示这是一个不可恢复的读错误,最后两行表示发生错误的块地址。最后,根据报错硬盘的ID号定位硬盘槽位。
5)Logs文件解析
bad strip,此错误表示阵列存在坏条带,属于逻辑坏块,相当于阵列盘出现media error,需要删除阵列重做才能恢复。

container:1 表示有问题的是阵列1,即Config文件中Logical device 1所代表的阵列。注意:因要修复此问题需要删除阵列重做,务必提前备份数据!
CpuFatalError,raid卡报错,需要更换raid卡解决

5)Logs文件解析 ECC error

此错误表示RAID卡缓存发生ECC错误,需要更换RAID卡。
PM8204 raid卡日志收集完毕后包含以下内容

重要文件说明:
1. Config:当前Raid卡信息、阵列配置与状态、硬盘状态(仅搜集日志那一时刻的配置信息,历史配置信息不保留)
2. SmartStats:硬盘Smart信息
3. Log:完整日志文件,需要在重启之前收集,低版本的fw不能保存之前的日志
4. ADUReport
PM8204 raid卡adureport:查看raid卡信息以及阵列信息


PM8204 raid卡adureport,查看物理硬盘信息以及sense key

3008 SAS卡日志分析
3008卡的日志文件:sashbalog,包含sas卡信息,阵列信息,物理硬盘信息等内容:


3008卡的日志文件:sashbalog,包含sas卡信息,阵列信息,物理硬盘信息等内容:


Raid卡日志分析 (Adaptec案例解析)
(1)客户报修系统宕机,收集raid卡的日志分析定位,将日志解压,根据系统宕机的时间点去往前推算(一般情况下系统时间减去8小时即是raid卡时间)查看logs文件,并搜索关键字如:ecc,fatal等,这时会搜索到ECC error报错,更换raid卡解决。
(2)Raid5阵列rebuild完成后丢失分区,请分析原因。

此问题是在raid重建完成之后出现的,查看日志发现logs里面有很多bad strip [17352]: 04:00:27 CT_HashLookup: arrayNum=> 1 startBlkHi:Lo=> 0:fffffff8 alignedStrtBlk=> fffffc00
[17353]: 04:00:27 CT_HashLookup: curBse->blkHi:Lo 0:fffffc00 uid e34926ac [17354]: 04:00:27 CheckBst: Bad Stripe Found! container:1 BlkHi:Lo 0:fffffff8 [17355]: 04:00:27 CacheStrategy: IO to a bad stripe! [17356]: 04:00:27 CacheStrategy: bp 810b9f60 container 1 blkHi:Lo 0:fffffff8 length 1000 [17357]: 04:00:27 returnError: ERROR bp=0x810B9F60 [17358]: 04:00:27 RawIoCallBack() Error - Container: 1, Block: -8, IoError: 5, f: 24004007, f2: 8440 [17359]: 04:01:53 R6_GetRaid6Options: REED_SOLOMON is SUPPORTED (and is the default)继续查看发现有多块硬盘有坏道:

将报错硬盘更换,重新做raid,正常。
Raid卡日志分析(LSI案例解析)
(1)某客户一台NF5460M4宕机,收集raid卡日志分析定位,在raid卡日志有报错信息,如下:

通过以上确认raid卡报错,更换raid卡,升级raid卡fw。 (2)某客户报修硬盘报错,收集raid卡日志分析定位,查看硬盘报错信息如下,确认报错硬盘id为1d=29,slot12硬盘,更换硬盘解决。

2)某客户报修多块硬盘故障,收集raid卡日志分析定位,其中在raid卡日志中看到有背板异常,如下:


通过以上确认背板id 10有异常,更换背板解决。
操作系统日志分析
Windows系统——系统日志收集
需要收集的文件:system.evt/application.evt收集目的:查看操作系统非正常关机等异常原因
收集方法:建议使用Emcgrab(可以将evt/evtx格式的日志转换为txt格式,方便查看)。
Windows系统——系统日志分析方法
推荐使用notepad++查看txt格式日志文件:http://notepad-plus-plus.org/zh/

以emcgrab收集的日志为例介绍。Emcgrab收集的日志文件为以服务器主机名命名的压缩包,主要的日志都保存在HOST目录下。

日志的格式:

常见的日志代码:
- 6008:上一次操作系统的关闭是意外的,在系统重新启动后记录该信息。
- 通过检索该代码,可以掌握服务器意外关闭的时间点和周期。
10/08/2013 03:47:27 PM 关键 WIN-XXXXXXXXXXX 41 Microsoft-Windows-Kernel- Power 系统在未首先正常关机的情况下重新启动。当系统停止响应、出现故障或意外断电时,会发生此错误。 10/08/2013 03:47:43 PM 错误 WIN-XXXXXXXXXXX 1001 Microsoft-Windows-WER- SystemErro 计算机已经从检测错误后重新启动。检测错误: 0x00000050 (0xfffff8800e278c08, 0x0000000000000000, 0xfffff88006d8083f, 0x0000000000000000)。已将转储的数据保存在: C:\Windows\Minidump\100813-27721-01.dmp。报告ID: 100813-27721-01。10/08/2013 03:47:43 PM 错误 WIN-XXXXXXXXXXX 6008 EventLog 上一次系统的15:38:01 在?2013/?10/?8 上的关闭是意外的。 WIN-XXXXXXXXXXX 6008 EventLog 上一次
常见的日志代码:
- 333:由注册表启动的I/O 操作恢复失败。注册表无法读入、或写出或刷新包含注册表系统映像的文件之一。
非分页内存或页面缓冲池内存暂时不足时,则可能会发生此问题。系统持续地记录该日志直到计算机重新启动。
- 2019:非页面缓冲池为空
因为非页面缓冲池是空的,服务器无法从中分配内存。
- 2020:页面缓冲池为空
- 因为页面缓冲池是空的,服务器无法从中分配内存。
备注:以上3种报错都是OS/软件问题,一般是由于软件存在内存泄露,将系统资源耗尽,从而出现运行缓慢、假死等情况。
页面缓冲池(Paged Pool):这部分中的数据可以保存到页面文件(pagefile)中— —虚拟内存。
非页面缓冲池(Nonpaged Pool):这部分内存在物理内存中,是不可以保存到虚拟内存中的。主要是被系统内核、硬件驱动使用。32位Windows 2003最多可以分配256MB,64位128GB;32位windows 2008最多2GB,64位128GB。


Windows 2008 系统日志记录内存错误
- Windows 2008系统日志记录内存错误,并且服务器有死机故障,一般是内存硬件有错误,需要结合BMC日志分析。
- 且可能会伴有0x00000124的蓝屏故障。
参考附件案例:Microsoft-Windows-WHEA-Logger.TXT
08/01/2013 04:12:48 PM 错误 6008 EventLog 上一次系统的15:59:56 在2013/8/1 上的关闭是意外的。08/01/2013 04:11:40 PM 信息 12 Microsoft-Windows-Kernel-General 操作系统已在系统时间 2013-08-01T08:11:39.610798400Z 08/01/2013 03:59:38 PM 警告 47 Microsoft-Windows-WHEA-Logger 出现已更正的硬件错误。 组件: 内存错误源08/01/2013 03:59:38 PM 警告 47 Microsoft-Windows-WHEA-Logger 出现已更正的硬件错误。 组件: 内存错误源08/01/2013 03:58:38 PM 警告 47 Microsoft-Windows-WHEA-Logger 出现已更正的硬件错误。 组件: 内存错误源08/01/2013 03:58:38 PM 警告 47 Microsoft-Windows-WHEA-Logger 出现已更正的硬件错误。 组件: 内存错误源08/01/2013 03:57:38 PM 警告 47 Microsoft-Windows-WHEA-Logger 出现已更正的硬件错误。 组件: 内存错误源08/01/2013 03:57:38 PM 警告 47 Microsoft-Windows-WHEA-Logger 出现已更正的硬件错误。 组件: 内存错误源 2013-08-01T08:11:39.610798400Z 启动。组件: 内存错误源: 已更正的计算机检查组件: 内存错误源: 已更正的计算机检查组件: 内存错误源: 已更正的计算机检查组件: 内存错误源: 已更正的计算机检查组件: 内存错误源: 已更正的计算机检查组件: 内存错误源: 已更正的计算机检查
Windows系统——dump文件
打开windows系统设置: 建议:取消自动重新启动,将写入调试信息改为小内存转储。

Dump文件保存位置:
1. 设置为小内存转储时:C:\Windows\Minidump
2. 设置为核心内存转储时:C:\Windows\MEMORY.DMP
Emcgrab虽然也可以收集出一个memory_dump的文件,但是解析的比较简单,还需要手动拷贝出dump文件。
Dump分析方法
工具windbg:
安装后,需要添加环境变量,增加一个系统变量:变量名:_NT_SYMBOL_PATH变量值:
srv*F:/Symbols*http://msdl.microsoft.com/download/symbols

常见的蓝屏代码:
- 0x9C/x124,一般为硬件故障—
MACHINE_CHECK_EXCEPTION,同linux系统下的mce错误。需要结合bmc日志,查看是否内存错误等。
- 0x50/0x8E,因windows 2003 bug导致的蓝屏。
- 其他蓝屏代码查询:http://msdn.microsoft.com/en-us/library/windows/hardware/ff559323(v=vs.85).aspx

Winmsd日志
可以查看主要硬件及系统信息

Linux日志
重要文件说明:
Message:操作系统日志Cronlog:计划任务的日志Dmesg:系统启动日志Mcelog:Machine Check Exception日志last_reboot:系统重启记录Securelog:验证授权方面的信息

(1)last_reboot日志中记录了重启的时间等信息,如下:

(2)cron日志记录一些计划任务的运行日志,如下:
(3)Securelog一般记录授权,验证等日志信息,如下:

(4)dmesg记录linux系统启动过程中的一些日志信息,如下:

(5)mcelog(machine check exception)记录了硬件报错日志,当检测到硬件错误时(内存、cpu错误,CPU温度过高),会触发记录。

(6)message日志记录了系统的各种事件日志信息,如下:

(6)message下的几个报错案例: 异常的call trace信息如下:

Raid卡驱动报错:
BMC、黑盒及寄存器日志分析
BMC SEL事件日志
BMC日志分析:
BMC日志分三个等级,信息(information)、警告(warning)、严重(critical):
①普通信息主要可以查看机器关机、宕机等操作和时间记录。
②警告日志是需要关注的日志,需要查看日志具体问题,观察是否可以修复,需要更换备件及时更换。
③严重日志是会引起宕机等严重后的报错,需要更换备件处理。

BMC 传感器状态
传感器状态,主要有以下状态值:
- ok,表示传感器正常。
- nc,表示传感器检测到轻微告警。
- cr,表示传感器检测到严重告警。
- nr,表示传感器检测到紧急告警。
- na,表示当前传感器未检测到数值或状态,可能当前传感器对应的设备不在位。

黑盒日志
黑盒日志分析工具和方法:
1.Blackbox.log日志和BMC日志分析一致。日志介绍:
2.Blackboxpeci.log日志分析需要使用Mce_decoder工具分析或者需要查看文档分析。
解析工具:(浪潮日志收集工具收集的黑盒日志已经被解析了)

分析工具:

黑盒日志通过解析工具解析如下:

blackboxpeci日志:
Blackboxpeci.log通过日志解析获取寄存器数值,对于非0的status异常寄存器数值通过mcedecode如下:



Blackboxpeci日志:
Mca_err_src_log寄存器解析说明:

通过cpu0的解析为:00010100 00011000 0000000000000000 CPU1的解析为:10100000 11000000 0000000000000000

寄存器日志:
M5平台CPU IERR问题:
CPU IERR的产生可能是由多种因素导致的,包含3Strike-Timeout、Nested MCERR、PCU error、SMI&MCERR racing、CPU内部fuse错误等等,通常并非CPU本身故障,可能与内存、PCIE设备、主板等部件故障相关,需要通过黑盒及CPU寄存器值分析定位。

M5平台CPU IERR问题:需要解析blackboxpeci.log及MSR中的寄存器值。对于常见的内存相关报错问题,涉及的bank如下,每颗CPU包含两个内存控制器


M5平台CPU IERR问题:
09/03/2019 16:23:37 CPU0_Proc0 IA32_MC14_STATUS 57 01 00 40 91 00 01 01 00 16 00 dc
通过解析为cpu0 imc0 channle1内存报错,需要更换内存解决。

M4平台内存对应:
