技术领域
[0001] 本
申请涉及服务器测试技术领域,特别是涉及一种用于服务器抓取SATA硬盘trace的方法和系统。
背景技术
[0002] SATA(Serial Advanced Technology Attachment,串行高级技术附件)硬盘是目前服务器领域应用最为广泛的一种硬盘类型,其硬盘
接口基于SATA协议。且针对不同的应用场景和不同的客户应用模型,需要采用不同种类的SATA硬盘。例如:应用于冷存储领域的SATA硬盘存储容量大,IO吞吐较慢;应用于热存储领域的SATA硬盘存储容量小,IO吞吐较快;
控制器采用不同的FW(Firmware,
固件)的同一种硬盘,也具有不同的性能。由于SATA硬盘种类繁多,所以保证SATA硬盘与服务器存储子系统的兼容性是个非常重要的问题。而验证SATA硬盘与服务器存储子系统的兼容性,通常需要抓取SATA硬盘的trace。
[0003] 目前抓取SATA硬盘trace的方法,通常是使用SATA协议分析仪,即:利用协议分析仪本身自带的
软件,采用软件触发的方式对协议分析仪软件中的错误进行触发,从而抓取SATA硬盘trace。
[0004] 然而,目前抓取SATA硬盘trace的方法中,由于协议分析仪自带的软件中trigger(触发)类型有限,只能针对固定类型的一些SATA错误进行触发,无法适应服务器复杂系统中出现的各种错误。由于SATA接口的数据传输速率高,协议分析仪本身的缓存容量受限,如果不能针对具体的错误类型有效地进行触发,就无法抓取有效的SATA硬盘trace进行分析。而且,有些SATA错误很难复现,一旦不能及时被抓取,只好等待同样的SATA错误再次出现。
因此,目前抓取SATA硬盘trace的方法所能抓取的SATA故障类型有限,故障抓取效率和可靠性不够高。
发明内容
[0005] 本申请提供了一种用于服务器抓取SATA硬盘trace的方法和系统,以解决
现有技术中SATA故障抓取类型有限、故障抓取效率和可靠性不够高的问题。
[0006] 为了解决上述技术问题,本申请
实施例公开了如下技术方案:
[0007] 一种用于服务器抓取SATA硬盘trace的方法,将服务器
主板PCH上的GPIO(General Purpose Input Output,通用输入/输出,又称总线扩展器)引脚与协议分析仪的trigger连接器连接,所述方法包括:
[0008] BIOS通过SATA链路获取SATA故障;
[0009] 根据所述SATA故障,BIOS收集与所述SATA故障相关的寄存器;
[0010] BIOS解析与所述SATA故障相关的寄存器,确定SATA故障类型;
[0011] 判断所述SATA故障类型是否与待抓取的故障类型一致;
[0012] 如果是,BIOS将PCH中与待抓取的故障类型对应的GPIO
信号置位。
[0013] 可选地,根据所述SATA故障,BIOS收集与所述SATA故障相关的寄存器之后,所述方法还包括:
[0014] BIOS将与所述SATA故障相关的寄存器分别发送至OS(Operating System,
操作系统)和BMC(Baseboard Management Controller,为
基板管理控制器)。
[0015] 可选地,所述SATA故障类型包括:CRC错误、Uncorrectable error错误、Media Change错误以及Command Aborted错误。
[0016] 可选地,所述将服务器主板PCH上的GPIO引脚与协议分析仪的trigger连接器连接,具体为:采用同轴线缆,连接服务器主板PCH上的GPIO引脚与协议分析仪的trigger连接器。
[0017] 一种用于服务器抓取SATA硬盘trace的系统,包括协议分析仪,所述系统还包括:
[0018] 连接模
块,用于连接服务器主板PCH上的GPIO引脚与协议分析仪的trigger连接器;
[0019] 抓取模块,用于通过BIOS监控SATA故障,对所述SATA故障进行解析并根据SATA故障将PCH的GPIO信号置位。
[0020] 可选地,所述连接模块为同轴线缆。
[0021] 可选地,所述抓取模块包括:
[0022] SATA故障获取单元,用于监控SATA链路,当SATA链路发生错误时获取SATA故障;
[0023] 寄存器收集单元,用于根据所述SATA故障,收集与所述SATA故障相关的寄存器;
[0024] 解析单元,用于解析与所述SATA故障相关的寄存器,确定SATA故障类型;
[0025] 判断单元,用于判断所述SATA故障类型是否与待抓取的故障类型一致,当所述SATA故障类型与待抓取的故障类型一致时,启动置位单元;
[0026] 所述置位单元,用于响应所述判断单元,将PCH中与待抓取的故障类型对应的GPIO信号置位。
[0027] 可选地,所述系统还包括发送单元,用于将与所述SATA故障相关的寄存器分别发送至OS和BMC。
[0028] 本申请的实施例提供的技术方案可以包括以下有益效果:
[0029] 本申请提供一种用于服务器抓取SATA硬盘trace的方法,在执行该方法在前,首先将服务器主板PCH(Platform Controller Hub,平台控制中心,即:集成南桥)上的GPIO引脚与协议分析仪的trigger连接器连接。该方法首先BIOS通过SATA链路获取SATA故障,其次根据所获取的SATA故障,BIOS收集并解析与SATA故障相关的寄存器,确定SATA故障类型,然后判断SATA故障类型是否与待抓取的故障类型一致,如果一致,BIOS将PCH中与待抓取的故障类型对应的GPIO信号置位。依据本申请中的方法,可以根据待抓取的SATA故障编写debug版的BIOS,从而根据SATA硬盘报出的具体故障类型,有效地抓取出对应的SATA trace进行分析,实现通过BIOS进行故障的解析和触发。相比于现有技术,针对实际应用中服务器系统的复杂错误,本申请直接通过BIOS进行读取,当BIOS监控到SATA错误时,直接通过PCH上的GPIO信号触发协议分析仪,既能够快速抓取SATA故障,又能够避免受限于协议分析仪的自带软件,有利于提高SATA故障抓取的效率和可靠性。
[0030] 本申请还提供一种用于服务器抓取SATA硬盘trace的系统,该系统包括协议分析仪、连接模块和抓取模块。首先通过连接模块将服务器主板PCH上的GPIO引脚与协议分析仪的trigger连接器,然后抓取模块通过BIOS监控SATA故障,对SATA故障进行解析并根据SATA故障将PCH的GPIO信号置位。抓取模块又包括SATA故障获取单元、寄存器收集单元、解析单元、判断单元和置位单元。本申请通过抓取模块和连接模块的设置,能够根据选择的故障类型,及时抓取服务器运行过程中SATA硬盘的trace,从而为后续的故障分析提供便利。由于本申请直接利用BIOS监控SATA故障,当SATA硬盘报出故障时,能够在第一时间获取到SATA故障,并直接通过PCH上的GPIO信号触发协议分析仪,因此,本申请中用于服务器抓取SATA硬盘trace的系统故障抓取类型多、故障抓取效率和可靠性高。
[0031] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0032] 此处的附图被并入
说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0033] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034] 图1为本申请实施例所提供的一种用于服务器抓取SATA硬盘trace的方法的流程示意图;
[0035] 图2为本申请实施例中服务器抓取SATA硬盘trace的原理示意图;
[0036] 图3为本申请实施例所提供的一种用于服务器抓取SATA硬盘trace的系统的结构示意图。
具体实施方式
[0037] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0038] 为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。
[0039] 执行本实施例的方法之前,
硬件方面,先将服务器主板PCH上的GPIO引脚与协议分析仪的trigger连接器连接。可以采用同轴线缆进行连接,也就是:将PCH上GPIO pin使用同轴线缆连接到协议分析仪的硬件trigger连接器上。
[0040] 参见图1,图1为本申请实施例所提供的一种用于服务器抓取SATA硬盘trace的方法的流程示意图。由图1可知,该实施例中服务器抓取SATA硬盘trace的方法包括如下步骤:
[0041] S1:BIOS通过SATA链路获取SATA故障。
[0042] 本实施例中通过BIOS监控SATA链路,当SATA硬盘发生故障时,BIOS会检测到SATA链路的SATA故障。
[0043] BIOS检测到并读取SATA故障后,执行步骤S2:根据SATA故障,BIOS收集与SATA故障相关的寄存器。
[0044] S3:BIOS解析与SATA故障相关的寄存器,确定SATA故障类型。
[0045] BIOS读取一些相关的error status寄存器,通过这些寄存器的置位状态判断SATA故障类型。可以通过编写BIOS代码,通过BIOS代码解析与SATA故障相关的寄存器,可以识别出当前SATA链路中的SATA故障类型。其中,SATA故障类型包括:CRC错误、Uncorrectable error错误、Media Change错误以及Command Aborted错误。
[0046] S4:判断SATA故障类型是否与待抓取的故障类型一致。
[0047] S5:如果是,BIOS将PCH中与待抓取的故障类型对应的GPIO信号置位。
[0048] 同样,根据以上步骤S4和S5,可以编写debug版的BIOS代码,来判断SATA故障类型是否与待抓取的故障类型一致,如果SATA故障类型与待抓取的故障类型一致,将PCH中对应的GPIO信号置位。如果SATA故障类型与待抓取的故障类型不一致,返回步骤S1,继续进行监控,即:BIOS继续通过SATA链路获取SATA故障。由于服务器主板PCH上的GPIO引脚与协议分析仪的trigger连接器连接,将PCH中对应的GPIO信号置位后,能够触发协议分析仪的硬件trigger,从而将SATA硬盘trace抓取出来。
[0049] 本实施例中服务器抓取SATA硬盘trace的原理示意图可以参见图2,结合图1中的步骤和图2中的原理可知,本实施例根据SATA硬盘报出的具体故障,直接通过BIOS进行读取,如果该SATA故障正好是待抓取的故障类型,BIOS直接通过PCH上的GPIO信号触发协议分析仪,从而能够快速抓取SATA故障,因此有利于提高SATA故障抓取的效率。而且,本实施例中可以根据待抓取的SATA故障编写debug版的BIOS,能够抓取实际运行中更多种类的SATA故障,从而适应服务器复杂系统中出现的各种复杂错误,有利于提高SATA故障抓取的可靠性。
[0050] 进一步地,本实施例中步骤S2之后,还包括:BIOS将与SATA故障相关的寄存器分别发送至OS和BMC。
[0051] BIOS收集与SATA故障相关的寄存器之后,一方面执行步骤S3-S5,另一方面将所收集的与SATA故障相关的寄存器打包发送至OS和BMC。BIOS将故障寄存器信息发送至BMC,能够在BMC sel log中记录该故障,作为带外监控使用;将故障寄存器信息发送至OS,能够实现中断,以便于后续通过OS处理SATA故障。
[0052] 在图1和图2所示实施例的
基础之上参见图3,图3为本申请实施例所提供的一种用于服务器抓取SATA硬盘trace的系统的结构示意图。由图3可知,本实施例中用于服务器抓取SATA硬盘trace的系统主要包括三部分:协议分析仪、连接模块和抓取模块。其中,连接模块用于连接服务器主板PCH上的GPIO引脚与协议分析仪的trigger连接器;抓取模块用于通过BIOS监控SATA故障,对SATA故障进行解析并根据SATA故障将PCH的GPIO信号置位。
[0053] 进一步地,连接模块可以采用同轴线缆。抓取模块包括:SATA故障获取单元、寄存器收集单元、解析单元、判断单元和置位单元。其中,SATA故障获取单元用于监控SATA链路,当SATA链路发生错误时获取SATA故障;寄存器收集单元用于根据SATA故障,收集与SATA故障相关的寄存器;解析单元用于解析与SATA故障相关的寄存器,确定SATA故障类型;判断单元用于判断SATA故障类型是否与待抓取的故障类型一致,当SATA故障类型与待抓取的故障类型一致时,启动置位单元;置位单元用于响应判断单元,将PCH中与待抓取的故障类型对应的GPIO信号置位。本实施例中抓取模块和连接模块的设置,能够及时抓取待抓取的SATA故障类型,从而为后续的故障分析提供便利。而且抓取模块中直接利用BIOS监控SATA故障,通过SATA故障获取单元在第一时间获取到SATA故障,当SATA硬盘报出故障时,能够通过寄存器收集单元、解析单元、判断单元和置位单元的有机配合,直接通过PCH上的GPIO信号触发协议分析仪。因此,本申请中用于服务器抓取SATA硬盘trace的系统故障抓取类型多、故障抓取效率和可靠性高。
[0054] 进一步地,本实施例的系统中还包括发送单元,所述发送单元与寄存器收集单元连接,用于将SATA故障相关的寄存器分别发送至OS和BMC。
[0055] 本申请中用于服务器抓取SATA硬盘trace的系统的工作原理和工作方法,在图1和图2所示的实施例中已经详细阐述,两者之间可以互相参照,在此不再赘述。
[0056] 以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种
修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。