一种固态硬盘的故障定位方法及装置与流程

文档序号:16467567发布日期:2019-01-02 22:52阅读:175来源:国知局

本发明数据存储技术领域,更具体地说,涉及一种固态硬盘的故障定位方法、装置、设备及可读存储介质。



背景技术:

固态硬盘ssd(solidstatedrives)又称固盘,是用固态电子存储芯片阵列而制成的硬盘,其中包括flash。其中,flash由众多数据块组成,每个数据块包括多个页,flash即为flash闪存(flashmemory),其为非易失性(non-volatile)内存,在没有电流供应的条件下也能够长久地保存数据,其存储特性相当于硬盘。

目前,当固态硬盘应用于存储设备后,其相应的调试串口会被去除,如此当产品化后的固态硬盘出现软件故障后,由于缺少必要的调试串口,无法及时定位其故障所在。为了定位其故障所在,需要将出现故障的固态硬盘取回实验室进行调试查询,此种方式不仅效率低下,而且会耽误存储设备上正常业务的运行,降低存储设备的性能。

因此,如何及时定位固态硬盘的故障所在,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种固态硬盘的故障定位方法、装置、设备及可读存储介质,以实现及时定位固态硬盘的故障所在。

为实现上述目的,本发明实施例提供了如下技术方案:

一种固态硬盘的故障定位方法,包括:

当固态硬盘出现故障时,按照预设的事件记录策略记录故障位置信息至ddr;

将所述ddr中的故障位置信息存储至所述固态硬盘的flash;

从所述flash中获取所述故障位置信息,并依据所述故障位置信息定位所述固态硬盘的故障。

其中,所述当固态硬盘出现故障时,按照预设的事件记录策略记录故障位置信息至ddr之前,还包括:

按照所述事件记录策略和预设的覆盖规则记录所述固态硬盘的运行信息至所述ddr。

其中,所述将所述ddr中的故障位置信息存储至所述固态硬盘的flash,包括:

根据flash数据块的地址确定当前要使用的目标数据块,并将所述ddr中的故障位置信息存储至所述目标数据块。

其中,所述根据flash数据块的地址确定当前要使用的目标数据块之后,还包括:

判断所述目标数据块是否为坏块;

若否,则判断所述目标数据块是否存在可用页,当所述目标数据块存在可用页时,执行所述将所述ddr中的故障位置信息存储至所述目标数据块的步骤。

其中,还包括:

当所述固态硬盘由通电状态转换至未通电状态时,将所述目标数据块的地址存储至所述固态硬盘的管理器,以便所述固态硬盘由未通电状态转换至通电状态时,读取所述管理器中的所述目标数据块的地址,并根据所述目标数据块的地址定位所述目标数据块。

其中,所述根据所述目标数据块的地址定位所述目标数据块之后,还包括:

从所述目标数据块中读取所述故障位置信息至所述ddr;

采用nvme命令导出所述ddr中的故障位置信息,并将导出的故障位置信息进行可视化展示。

其中,所述将所述ddr中的故障位置信息存储至所述固态硬盘的flash,包括:

按照预设的并发数将所述ddr中的故障位置信息存储至所述固态硬盘的flash。

一种固态硬盘的故障定位装置,包括:

记录模块,用于当固态硬盘出现故障时,按照预设的事件记录策略记录故障位置信息至ddr;

存储模块,用于将所述ddr中的故障位置信息存储至所述固态硬盘的flash;

定位模块,用于从所述flash中获取所述故障位置信息,并依据所述故障位置信息定位所述固态硬盘的故障。

一种固态硬盘的故障定位设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任意一项所述的固态硬盘的故障定位方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的固态硬盘的故障定位方法的步骤。

通过以上方案可知,本发明实施例提供的一种固态硬盘的故障定位方法,包括:当固态硬盘出现故障时,按照预设的事件记录策略记录故障位置信息至ddr;将所述ddr中的故障位置信息存储至所述固态硬盘的flash;从所述flash中获取所述故障位置信息,并依据所述故障位置信息定位所述固态硬盘的故障

可见,当固态硬盘出现故障时,为了及时定位固态硬盘的故障所在,本方法按照预设的事件记录策略记录故障位置信息至ddr,并且,为了避免包含故障位置信息丢失,及时将ddr中的故障位置信息存储至固态硬盘的flash,进而从flash中获取故障位置信息,以定位固态硬盘的故障所在。其中,由于故障位置信息中记录了固态硬盘当前出现的具体故障,因此可直接定位到固态硬盘的故障所在,从而提高了工作效率;并且,由于无需从存储设备上取回固态硬盘,从而不会耽误存储设备上正常业务的运行,也可以提高存储设备的性能。

相应地,本发明实施例提供的一种固态硬盘的故障定位装置、设备及可读存储介质,也同样具有上述技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种固态硬盘的故障定位方法流程图;

图2为本发明实施例公开的另一种固态硬盘的故障定位方法流程图;

图3为本发明实施例公开的一种固态硬盘的故障定位装置示意图;

图4为本发明实施例公开的一种固态硬盘的故障定位设备示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种固态硬盘的故障定位方法、装置、设备及可读存储介质,以实现及时定位固态硬盘的故障。

参见图1,本发明实施例提供的一种固态硬盘的故障定位方法,包括:

s101、当固态硬盘出现故障时,按照预设的事件记录策略记录故障位置信息至ddr;

在本实施例中,预设异常处理机制在存储设备中,当存储设备中的固态硬盘出现故障时,触发该机制,并按照预设的事件记录策略记录故障位置信息至ddr。其中,所述故障位置信息即为固态硬盘当前出现的故障所在。例如:若固态硬盘出现的故障为:事件1运行中断,那么故障位置信息可以为“事件1error”。

需要说明的是,所述事件记录策略为预设的配置信息。这些配置信息包括:记录固态硬盘中的哪些事件、各事件中的哪些变量和各变量的返回值等相关信息。

例如:假设固态硬盘中运行的重要事件为:事件a、事件b、事件c、事件d和事件e,且事件记录策略中预先配置的记录信息为:每个事件的名称和运行结果,那么当某事件出现故障时,故障位置信息即为出现故障的事件名称,和相应的运行结果。当然,技术人员可以根据实际业务的需要灵活调整事件记录策略中的配置信息,以记录与实际业务相关的重要信息,从而可为固态硬盘的故障定位提供便利。

s102、将ddr中的故障位置信息存储至固态硬盘的flash;

具体的,当前固态硬盘出现故障时,用户一般都会先关闭固态硬盘的电源。为了应对此种情况,可及时将ddr中记录的故障位置信息存储至固态硬盘的flash,以避免故障位置信息的丢失。其中,ddr为即为ddrsdram,其为存储设备中的双倍速率同步动态随机存储器,读写效率高但掉电后数据丢失。

s103、从flash中获取故障位置信息,并依据故障位置信息定位固态硬盘的故障。

具体的,由于故障位置信息中记录了具体的故障所在,因此可直接依据故障位置信息定位固态硬盘的故障,而无需将固态硬盘取下,从而提高了故障定位的效率。

可见,为了及时定位固态硬盘的故障,本实施例提供了一种固态硬盘的故障定位方法,当固态硬盘出现故障时,本方法按照预设的事件记录策略记录故障位置信息至ddr,并且,为了避免包含故障位置信息丢失,及时将ddr中的故障位置信息存储至固态硬盘的flash,进而从flash中获取故障位置信息,以定位固态硬盘的故障所在。其中,由于故障位置信息中记录了固态硬盘的具体故障,因此可直接定位到固态硬盘的故障所在,从而提高了工作效率;并且,由于无需从存储设备上取回固态硬盘,从而不会耽误存储设备上正常业务的运行,也可以提高存储设备的性能。

本发明实施例公开了另一种固态硬盘的故障定位方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。

参见图2,本发明实施例提供的另一种固态硬盘的故障定位方法,包括:

s201、按照预设的事件记录策略和预设的覆盖规则记录固态硬盘的运行信息至ddr;

在本实施例中,按照预设的事件记录策略和预设的覆盖规则记录固态硬盘的运行信息。也就是说,在固态硬盘的运行过程中,其运行信息均会依照事件记录策略进行记录。并且,考虑到ddr的存储空间有限,按照预设的覆盖规则覆盖固态硬盘的运行信息。例如:假设覆盖规则为:当ddr的可用空间不足20%时,将ddr中记录的运行信息删除。需要说明的是,当固态硬盘出现故障时,记录的运行信息即包括故障位置信息。其中,覆盖规则可根据实际情况进行灵活调整,故本实施例在此不做具体限定。

s202、当固态硬盘出现故障时,按照预设的事件记录策略记录故障位置信息至ddr;

s203、将ddr中的故障位置信息存储至固态硬盘的flash;

s204、从flash中获取故障位置信息,并依据故障位置信息定位固态硬盘的故障。

可见,为了及时定位固态硬盘的故障,本实施例提供了另一种固态硬盘的故障定位方法,本方法按照预设的事件记录策略和预设的覆盖规则记录固态硬盘的运行信息至ddr,当固态硬盘出现故障时,按照预设的事件记录策略记录故障位置信息至ddr;即:在固态硬盘运行过程中,记录固态硬盘的运行信息,当突遇固态硬盘异常时,运行信息定然包括异常信息,该异常信息即本说明书中的故障位置信息。

并且,为了避免包含故障位置信息丢失,及时将ddr中的故障位置信息存储至固态硬盘的flash,进而从flash中获取故障位置信息,以定位固态硬盘的故障所在。其中,由于故障位置信息中记录了固态硬盘的具体故障,因此可直接定位到固态硬盘的故障所在,从而提高了工作效率;并且,由于无需从存储设备上取回固态硬盘,从而不会耽误存储设备上正常业务的运行,也可以提高存储设备的性能。

基于上述任意实施例,需要说明的是,所述将所述ddr中的故障位置信息存储至所述固态硬盘的flash,包括:

根据flash数据块的地址确定当前要使用的目标数据块,并将所述ddr中的故障位置信息存储至所述目标数据块。

其中,所述根据flash数据块的地址确定当前要使用的目标数据块之后,还包括:

判断所述目标数据块是否为坏块;

若否,则判断所述目标数据块是否存在可用页,当所述目标数据块存在可用页时,执行所述将所述ddr中的故障位置信息存储至所述目标数据块的步骤。

其中,还包括:

当所述固态硬盘由通电状态转换至未通电状态时,将所述目标数据块的地址存储至所述固态硬盘的管理器,以便所述固态硬盘由未通电状态转换至通电状态时,读取所述管理器中的所述目标数据块的地址,并根据所述目标数据块的地址定位所述目标数据块。

其中,所述根据所述目标数据块的地址定位所述目标数据块之后,还包括:

从所述目标数据块中读取所述故障位置信息至所述ddr;

采用nvme命令导出所述ddr中的故障位置信息,并将导出的故障位置信息进行可视化展示。

需要说明的是,nvme(non-volatilememoryexpress)是一种建立在m.2接口上的类似ahci的协议,其为闪存类存储的专属协议。

基于上述任意实施例,需要说明的是,所述将所述ddr中的故障位置信息存储至所述固态硬盘的flash,包括:

按照预设的并发数将所述ddr中的故障位置信息存储至所述固态硬盘的flash。

具体的,并发数可依据逻辑单元的数量和当前处理的数据量进行预设和调整。其中,逻辑单元简称为lun,即为logicalunitnumber,用于标记固态硬盘中的不同数据块,每个逻辑单元可包括多个数据块,且每个逻辑单元可与主机芯片相对应。

基于上述任意实施例,需要说明的是,依据本说明书提供的固态硬盘的故障定位方法,可按照下述步骤实施日志记录:

1、根据实际情况为主机的每个核划分对应的ddr空间,并计算总空间的大小;

2、划分保存日志信息的flash数据块,其中,数据块分布在不同的channel的lun上;

3、根据总空间的大小计算日志信息需要占用的页数(一页按16k),并规定写并发数n;

4、为flash数据块建立坏块表,坏块表在第一次上电时来源于出厂坏块扫描,以后每次上电时如果发现坏块,及时更新坏块表;

5、当需要将ddr中的日志信息存储至flash时,获取当前要使用的数据块pca(flashaddress),即数据块地址,发送写请求至flash控制模块,flash控制模块将ddr中的日志信息存储至flash;其中,若当前数据块的页全部用完,则获取下一个可用的数据块,在此之前,需要先判断此数据块是否为坏块,若不为坏块,则使用该数据块,否则选择下一个数据块,直至选择到好的数据块;

6、固态硬盘下电时将当前使用的数据块pca和并发数n存储至flash控制模块,以便固态硬盘上电时或者人为触发日志恢复时,从flash控制模块的superblock里读取pca和并发数n,并以并发数n发送读取命令到flash控制模块,将flash中的日志信息存储至ddr,并使用工具或者nvme命令将ddr中的日志信息导出并转换为可视化文件,以供技术人员查看。

如此便可以实时将固态硬盘的日志信息保存到ddr中,在错误发生时,其出错的第一现场日志即记录在ddr中,将其保存到flash中,便能够精确的保存错误的第一现场。

下面对本发明实施例提供的一种固态硬盘的故障定位装置进行介绍,下文描述的一种固态硬盘的故障定位装置与上文描述的一种固态硬盘的故障定位方法可以相互参照。

参见图3,本发明实施例提供的一种固态硬盘的故障定位装置,包括:

记录模块301,用于当固态硬盘出现故障时,按照预设的事件记录策略记录故障位置信息至ddr;

存储模块302,用于将所述ddr中的故障位置信息存储至所述固态硬盘的flash;

定位模块303,用于从所述flash中获取所述故障位置信息,并依据所述故障位置信息定位所述固态硬盘的故障。

其中,还包括:

运行信息记录模块,用于按照所述事件记录策略和预设的覆盖规则记录所述固态硬盘的运行信息至所述ddr。

其中,所述存储模块具体用于:

根据flash数据块的地址确定当前要使用的目标数据块,并将所述ddr中的故障位置信息存储至所述目标数据块。

其中,所述存储模块还包括:

判断单元,用于判断所述目标数据块是否为坏块;

执行单元,用于当所述目标数据块不为坏块时,判断所述目标数据块是否存在可用页,当所述目标数据块存在可用页时,执行所述将所述ddr中的故障位置信息存储至所述目标数据块的步骤。

其中,还包括:

地址存储模块,用于当所述固态硬盘由通电状态转换至未通电状态时,将所述目标数据块的地址存储至所述固态硬盘的管理器,以便所述固态硬盘由未通电状态转换至通电状态时,读取所述管理器中的所述目标数据块的地址,并根据所述目标数据块的地址定位所述目标数据块。

其中,还包括:

读取模块,用于从所述目标数据块中读取所述故障位置信息至所述ddr;

导出展示模块,用于采用nvme命令导出所述ddr中的故障位置信息,并将导出的故障位置信息进行可视化展示。

其中,所述存储模块具体用于:

按照预设的并发数将所述ddr中的故障位置信息存储至所述固态硬盘的flash。

可见,本实施例提供了一种固态硬盘的故障定位装置,包括:记录模块、存储模块以及定位模块。当固态硬盘出现故障时,首先由记录模块按照预设的事件记录策略记录故障位置信息至ddr;进而存储模块将ddr中的故障位置信息存储至固态硬盘的flash;最后定位模块从flash中获取故障位置信息,并依据故障位置信息定位固态硬盘的故障。如此各个模块之间分工合作,各司其职,从而提高了工作效率;并且,由于无需从存储设备上取回固态硬盘,从而不会耽误存储设备上正常业务的运行,也可以提高存储设备的性能。

下面对本发明实施例提供的一种固态硬盘的故障定位设备进行介绍,下文描述的一种固态硬盘的故障定位设备与上文描述的一种固态硬盘的故障定位方法及装置可以相互参照。

参见图4,本发明实施例提供的一种固态硬盘的故障定位设备,包括:

存储器401,用于存储计算机程序;

处理器402,用于执行所述计算机程序时实现上述任意实施例所述的固态硬盘的故障定位方法的步骤。

下面对本发明实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种固态硬盘的故障定位方法、装置及设备可以相互参照。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意实施例所述的固态硬盘的故障定位方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1