一种固态硬盘的检测方法和设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种固态硬盘的检测方法和设备。
背景技术
随着计算机技术的不断发展,人们对于计算机所提供服务的要求也越来越高,尤其随着大数据出现,对于计算机存储空间的需求也急剧增加,因此,扩展计算机外存成为解决计算机有限存储空间的重要手段。
为扩展计算机外存,通常情况下,可以选择利用机械硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid State Disk,SSD)进行外存扩展。其中,HDD为传统普通硬盘,主要由盘片、磁头、盘片转轴以及控制电机和磁头控制器等器件组成;而SSD由控制单元和存储单元组成,其中存储单元主要使用闪存颗粒制作而成,二者相比,SSD内部不存在任何机械部件,抗震防摔,而且,由于SSD利用闪存颗粒进行数据存储,与HDD相比,具有读写速度快而且功耗较低、无噪声等优点。虽然在价格方面较为昂贵,但随着大容量闪存颗粒的出现,SDD的价格也会越来越低,使其更广泛地应用于服务器、存储器等设备中。
然而,由于SDD固态硬盘的特性,当其出现故障时,例如,电流过大或者温度过高,导致SDD中数据无法恢复,影响服务器等设备的正常工作,因此,如何及时监控并上报SDD运行状态,以保证SDD可靠运行成为急需解决的重要问题。
发明内容
有鉴于此,本申请实施例提供了一种固态硬盘的检测方法和设备,以实时检测固态硬盘的工作状态,以保证固态硬盘可靠运行,从而为服务器的正常运行提供保障。
第一方面,本申请实施例提供了固态硬盘的检测方法,固态硬盘包括第一控制器和第二控制器,该方法包括:
接收所述第一控制器发送的所述固态硬盘的第一工作参数和所述第二控制器发送的所述固态硬盘的第二工作参数;
判断所述第一工作参数与所述第二工作参数的差值是否超过预设阈值;
若否,则根据历史工作参数、所述第一工作参数和所述第二工作参数判断所述固态硬盘是否异常;
其中,所述历史工作参数、所述第一工作参数和所述第二工作参数至少包括温度、电流、功率中一种。
可选的,当所述第一工作参数与所述第二工作参数的差值超过所述预设阈值时,所述方法还包括:
判断所述第一工作参数和/或所述第二工作参数是否为空值;
当所述第一工作参数为空值,确定所述第一控制器工作异常;
和/或,
当所述第二工作参数为空值,确定所述第二控制器工作异常。
可选的,所述方法还包括:
当所述第一控制器工作异常且所述第二控制器工作正常时,发送异常信号给所述第二控制器,以使得所述第二控制器根据所述异常信号对所述第一控制器进行复位。
可选的,所述方法还包括:
当所述第二控制器工作异常且所述第一控制器工作正常时,发送异常信号给所述第一控制器,以使得所述第一控制器根据所述异常信号对所述第二控制器进行复位。
第二方面,本申请实施例提供了一种固态硬盘的检测设备,该检测设备包括:
第一控制器,用于获取所述固态硬盘的第一工作参数,并向处理器发送所述第一工作参数;
第二控制器,用于获取所述固态硬盘的第二工作参数,并向所述处理器发送所述第二工作参数;
所述处理器,用于接收所述第一工作参数和所述第二工作参数,并判断所述第一工作参数和所述第二工作参数的差值是否超过预设阈值,当未超过预设阈值时,再根据历史工作参数、所述第一工作参数和所述第二工作参数判断所述固态硬盘是否异常;
其中,所述历史工作参数、所述第一工作参数和所述第二工作参数至少包括温度、电流、功率中一种。
可选的,所述处理器还用于,当所述第一工作参数与所述第二工作参数的差值超过所述预设阈值时,判断所述第一工作参数和/或所述第二工作参数是否为空值;
当所述第一工作参数为空值,确定所述第一控制器工作异常;
和/或,
当所述第二工作参数为空值,确定所述第二控制器工作异常。
可选的,当所述第一控制器工作异常且所述第二控制器工作正常时,所述处理器还用于,发送异常信号给所述第二控制器;
所述第二控制器,用于根据所述异常信号对所述第一控制器进行复位。
可选的,当所述第二控制器工作异常且所述第一控制器工作正常时,所述处理器还用于,发送异常信号给所述第一控制器;
所述第一控制器,用于根据所述异常信号对所述第一控制器进行复位。
可选的,所述设备还包括:监控器;
所述监控器,用于监控所述第一控制器和所述第二控制器,当所述第一控制器和/或所述第二控制器工作异常时,对所述第一控制器和/或所述第二控制器进行复位。
可选的,所述监控器包括第一监控器和第二监控器;
所述第一监控器,用于监控所述第一控制器,当所述第一控制器工作异常时,对所述第一控制器进行复位;
所述第二监控器,用于监控所述第二控制器,当所述第二控制器工作异常时,对所述第二控制器进行复位。
与现有技术相比,本申请至少具有以下优点:
本申请实施例中,固态硬盘包括第一控制器和第二控制器,第一控制器和第二控制均可以获取固态硬盘的工作参数,同时接收第一控制器发送的第一工作参数和第二控制器发送的第二工作参数,当第一工作参数和第二工作参数的差值在一定预设范围时,表明第一控制器和第二控制器获取的工作参数正常,则根据历史工作参数、第一工作参数以及第二工作参数判断固态硬盘的是否出现异常,从而可以实时监控固态硬盘的工作状态,以保证固态硬盘可靠运行。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种固态硬盘的检测方法流程图;
图2为本申请实施例提供的检测SSD异常流程图;
图3为本申请实施例提供的一种固态硬盘的检测设备结构图;
图4为本申请实施例提供的一种应用场景框架示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人经过研究发现,传统的监控SSD方法是,利用主控芯片获取SSD的工作参数,例如温度、电流、功率等信息,然后通过总线将获取的工作参数上传至主机,由主机进行数据分析,并根据分析结果判断SSD的运行情况。然而,当主控芯片出现异常,无法获取SSD工作参数或者由于主控芯片自身原因导致获取的工作参数异常,则会使得主机无法判断SSD的工作情况或者判断不准确。
为了解决这一问题,在本申请实施例中,利用固态硬盘的两个控制器,即第一控制器和第二控制器,同时采集SSD的工作参数,当接收第一控制器和第二控制器分别发送的工作参数时,判断两个工作参数的差值是否超过预设阈值,如果没有超过预设阈值,表明两个工作参数为正常值,则根据两个工作参数以及历史工作参数,判断SSD是否出现异常,可见,本申请实施例提供的方法,与现有技术中仅用一个控制器采集工作参数判断SSD运行状态相比,增加了冗余机制,即在两个工作参数均正常的情况下,判断SSD的运行情况,提高了判断的准确性,以便当SSD异常时,可以及时通知服务器进行维护,保证存储设备的稳定运行,减少生产生活中数据的丢失。
下面结合附图,通过实施例来详细说明本申请实施例中固态硬盘的检测方法和设备的具体实现方式。
示例性方法
参见图1,该图为本申请实施例提供的一种固态硬盘的检测方法流程图,其中,固态硬盘包括第一控制器和第二控制器,如图1所示,该方法应用于处理器,具体可以包括:
S101:接收所第一控制器发送的固态硬盘的第一工作参数和第二控制器发送的固态硬盘的第二工作参数。
本实施例中,第一控制器和第二控制器均可以获取固态硬盘的工作参数,并将各自获取的工作参数发送给处理器。其中,工作参数可以为温度、电流、功率等参数。
需要说明的是,第一控制器和第二控制器采集的工作参数相同,也就是说,当第一工作参数包括固态硬盘的温度,则第二工作参数也包括固态硬盘的温度;当第一工作参数包括固态硬盘的温度和电流,则第二工作参数也包括固态硬盘的温度和电流。
在实际应用中,第一控制器可以为SSD中的NAND Flash主控芯片,第二控制器可以为SSD的外扩微控制器单元(Microcontroller Unit,MCU)。在具体实现时,可以在SSD外围增加温度传感器和电流传感器,主控芯片可以通过集成电路总线(Inter-IntegratedCircuit,IIC)从温度传感器或电流传感器读取SSD工作时的温度或电流;MCU也可以通过IIC从温度传感器或电流传感器读取SSD工作时的温度或电流,然后,主控芯片和MCU可以通过系统管理总线(System Management Bus,SMBus)将各自获取的电流和温度发送给处理器。
S102:判断第一工作参数与第二工作参数的差值是否超过预设阈值。
本实施例中,当处理器接收到第一工作参数和第二工作参数,首先计算第一工作参数与第二工作参数的差值,然后判断二者差值是否超过预设阈值。其中,预设阈值可以根据SSD运行情况进行设定。
可以理解的是,由于第一工作参数是由第一控制器获取的SSD工作时温度、电流等参数,第二工作参数是由第二控制器获取的SSD工作时的温度、电流等参数,理论上两个工作参数的参数值应该相等,考虑到实际应用中,在获取和传输工作参数过程中的误差,在比较两个工作参数时,允许出现一定的误差值,即预设阈值。
当两个工作参数的差值小于或等于预设阈值时,表明二者差异较小,可以用于判断SSD的运行情况,因此,当未超过预设阈值时,执行S103。
在实际应用中,为提高判断的准确性,第一控制器和第二控制器可以多次获取SSD的工作参数,然后,处理器将第一控制器发送的多个第一工作参数取平均值,作为第一平均值;将第二控制器发送的多个第二工作参数取平均值,作为第二平均值;计算第一平均值和第二平均值的差值,判断该差值是否超过预设阈值,如果否,则执行S103。
S103:则根据历史工作参数、第一工作参数和第二工作参数判断所述固态硬盘是否异常。
本实施例中,当第一工作参数与第二工作参数的差值为未超过预设阈值时,表明第二工作参数和第一工作参数为正常值,则根据历史工作参数、第一工作参数和第二工作参数判断固态硬盘是否异常。其中,历史工作参数、第一工作参数和第二工作参数至少包括温度、电流、功率中一种。
在实际应用中,历史工作参数为处理器存储的第一控制器和第二控制器在过去时间内发送的工作参数,该参数表示SSD运行正常的参数。也就是说,将第一工作参数与第二工作参数与历史工作参数比较,如果第一工作参数、第二工作参数均与历史工作参数相符,则表明SSD运行正常;如果第一工作参数、第二工作参数与历史工作参数不相符,表明SSD运行异常,则及时通知服务器进行维护。在具体实现时,可以将第一工作参数、第二工作参数分别与历史工作参数做差,当差值均满足预设条件时,则表明相符,否则不相符。
为便于理解,例如,第一工作参数包括第一温度31度,第二工作参数包括第二温度32度,预设阈值正负2度,历史温度为34,预设条件为小于或等于正负3度,通过计算,第一温度和第二温度的差值未超过预设阈值,同时第一温度、第二温度与历史温度的差值也均满足预设条件,则表明SSD工作正常;如果,历史温度35,第一温度与历史温度的差值为4度,不满足预设条件,则表明SSD工作异常。
在实际应用中,当根据第一工作参数、第二工作参数以及历史工作参数判断SSD工作正常时,可以利用第一工作参数、第二工作参数更新历史工作参数,以便处理器可以更新存储的工作参数,以利用更新后的历史工作参数进行后续的判断。在具体实现时,可以针对第一控制器和第二控制器分别存储工作参数,也就是说,对于第一控制器,对应第一历史工作参数,对于第二控制器,对应第二历史工作参数,则根据第一工作参数与第一历史工作参数判断固态硬盘是否异常、根据第二工作参数与第二历史工作参数判断固态硬盘是否异常。
当根据第一工作参数、第二工作参数以及历史工作参数判断SSD工作异常时,记录异常事件,以便维护人员可以根据日志进行查看维护。
在本申请实施例一种可能的实现方式中,当第一工作参数与第二工作参数超过预设阈值时,该方法还包括:根据历史工作参数判断第一工作参数和/或所述第二工作参数是否空值;当第一工作参数为空值,确定第一控制器工作异常;和/或,当第二工作参数为空值,确定第二控制器工作异常。
在本实施例中,当第一工作参数与第二工作参数的差值超过预设阈值时,表明两个工作参数中至少有一个参数异常,为确定出异常的工作参数,在具体实现时,判断第一工作参数、第二工作参数是否为空值,如果第一工作参数为空值,说明第一控制器工作出现异常;同理,如果第二工作参数为空值,则确定第二工作参数为异常值,表明第二控制器工作出现异常。
在实际应用中,当两个工作参数中由任一工作参数为空值时,则将二者的差值定义为无穷大,从而使得二者差值超过了预设阈值,当差值超过阈值时,表明工作参数出现异常,则可以进一步判断出现异常的工作参数。
当第一控制器或第二控制器由于宕机而出现异常时,为保证其正常工作,本申请实施例还提供了一种解决控制器异常的方法,具体包括:当第一控制器工作异常且第二控制器工作正常时,发送异常信号给第二控制器,以使得第二控制器根据异常信号对所述第一控制器进行复位;或者,当第二控制器工作异常且第一控制器工作正常时,发送异常信号给第一控制器,以使得第一控制器根据异常信号对第二控制器进行复位。
在实际应用中,第一控制器可以通过通用输入/输出(General Input Output)接口与第二控制器的复位接口连接,第二控制器通过GPIO接口与第一控制器的复位接口相连接,当仅第一控制器工作异常时,处理器向第二控制器发送异常信号,第二控制器根据接收的异常信号,通过GPIO接口向第一控制器的复位接口发送复位信号,以重启第一控制器;同理,当仅第二控制器工作异常,处理器向第一控制器发送异常信号,第一控制器根据接收的异常信号,通过GPIO接口向第二控制器的复位接口发送复位信号,以重启第二控制器。其中,异常信号可以携带有异常控制器的标识,以便另一个控制器可以根据标识对该标识对应的控制器进行复位。
需要说明的是,在本实施例中,第一控制器还可以通过其他接口与第二控制器的复位接口进行连接,本实例在此不进行限定。
可以理解的是,当对控制器进行重启操作之后,可以根据控制器发送的工作参数判断其是否恢复正常,如果已恢复正常工作,说明控制器运行时出现宕机;如果未恢复正常,则需要向服务器上报异常事件,以便通知用户及时处理,避免影响存储设备的正常使用。
由上述实施例可以看出,在本申请实施例中,利用固态硬盘的两个控制器,即第一控制器和第二控制,同时采集SSD的工作参数,当接收第一控制器和第二控制器分别采集的工作参数时,判断两个工作参数的差值是否超过预设阈值,如果未超过预设阈值,表明两个工作参数为正常值,则根据两个工作参数以及历史工作参数,判断SSD是否出现异常,可见,在本申请实施例提供的方法,与现有技术中仅用一个控制器采集工作参数判断SSD运行状态相比,增加了冗余机制,在两个控制器发送的工作参数均正常的情况下,判断SSD的运行情况,提高了判断的准确性,以便当SSD异常时,可以及时通知服务器进行维护,保证存储设备的稳定运行,减少生产生活中数据的丢失。
另外,当两个控制器中任一控制器出现异常时,可以利用另一控制器对异常控制器进行复位操作,增加了异常情况的处理机制,防止因宕机而造成SSD工作异常,增加了SSD运行的可靠性。参见图2,该图为本申请实施例提供的检测SSD异常流程图,如图2所示,首先接收第一控制器发送的第一工作参数和第二控制发送的第二工作参数,判断两个工作参数的差值是否超过预设阈值,若否,则根据历史工作参数、第一工作参数和第二工作参数判断SSD运行情况,并重新获取工作参数;如果超过预设阈值,则判断两个工作参数是否有空值存在的情况,如果不存在,则记录异常工作参数,重新获取数据;如果存在空值,则判断两个工作参数是否均为空值,如果均为空值,则可以由其它设备对两个控制器进行复位,然后重新获取数据;当不均为空值时,判断第一工作参数是否为空值,当第一参数为空值时,表明第一控制器异常,则发送异常信号给第二控制器,由第二控制器对第一控制器进行复位,记录异常工作参数,并重新获取数据;如果第一工作参数不为空值,则向第一控制器发送异常信号,由第一控制器对第二控制器进行复位操作,然后记录异常工作参数,并重新获取数据。
示例性装置
基于上述方法实施例,本申请提供了一种固态硬盘的检测设备,下面将结合附图对该检测设备进行说明。
参见图3,该图为本申请实施例提供的一种固态硬盘的检测设备结构图,如图3所示,该设备包括:
第一控制器301,用于获取所述固态硬盘的第一工作参数,并向处理器发送所述第一工作参数;
第二控制器302,用于获取所述固态硬盘的第二工作参数,并向所处处理器发送所述第二工作参数;
所述处理器303,用于接收所述第一工作参数和所述第二工作参数,并判断所述第一工作参数和所述第二工作参数的差值是否超过预设阈值,当未超过预设阈值时,再根据历史工作参数、所述第一工作参数和所述第二工作参数判断所述固态硬盘是否异常;
其中,所述历史工作参数、所述第一工作参数和所述第二工作参数至少包括温度、电流、功率中一种。
可选的,所述处理器还用于,当所述第一工作参数与所述第二工作参数的差值超过所述预设阈值时,判断所述第一工作参数和/或所述第二工作参数是否为空值;
当所述第一工作参数为空值,确定所述第一控制器工作异常;
和/或,
当所述第二工作参数为空值,确定所述第二控制器工作异常。
可选的,当所述第一控制器工作异常且所述第二控制器工作正常时,所述处理器还用于,发送异常信号给所述第二控制器;
所述第二控制器,用于根据所述异常信号对所述第一控制器进行复位;
或者,
当所述第二控制器工作异常且所述第一控制器工作正常时,所述处理器还用于,发送异常信号给所述第一控制器;
所述第一控制器,用于根据所述异常信号对所述第一控制器进行复位。
可选的,所述设备还包括:监控器;
所述监控器,用于监控所述第一控制器和所述第二控制器,当所述第一控制器和/或所述第二控制器工作异常时,对所述第一控制器和/或所述第二控制器进行复位。
本实施例中,监控器可以独立监控控制器的工作状态,当监控器监测到第一控制器出现异常时,自动对第一监控器进行复位操作,从而使得监控器可以灵活监测控制器的工作状态。在具体实现时,监控器可以为看门狗监控芯片,该监控芯片可以实时监控第一控制和第二控制器的工作状态,当监测其中任一控制器出现异常时,对该异常的控制器进行复位操作,以重启该异常控制器。
可选的,所述监控器包括第一监控器和第二监控器;
所述第一监控器,用于监控所述第一控制器,当所述第一控制器工作异常时,,对所述第一控制器进行复位;
所述第二监控器,用于监控所述第二控制器,当所述第二控制器工作异常时,对所述第二控制器进行复位。
本实施例中,为便于对两个控制器工作状态的监控,可以分别为两个控制器配置一个监控器,由第一监控器监控第一控制器,第二监控器监控第二控制器。当监控器监测到其对应的控制器出现异常时,对其对应的控制器进行复位操作,以重新启动该控制器,防止出现宕机而影响存储设备的使用。
需要说明的是,本实施例中各模块的具体实现可以参见图1所述方法实施例的实现,本实施例在此不再赘述。
由上述实施例可以看出,在本申请实施例中,利用固态硬盘的两个控制器,即第一控制器和第二控制器,同时采集SSD的工作参数,当接收第一控制器和第二控制器分别采集的工作参数时,判断两个工作参数的差值是否超过预设阈值,如果未超过预设阈值,表明两个工作参数为正常值,则根据两个工作参数以及历史工作参数,判断SSD是否出现异常,可见,在本申请实施例提供的方法,与现有技术中仅用一个控制器采集工作参数判断SSD运行状态相比,增加了冗余机制,在两个工作参数均正常的情况下,判断SSD的运行情况,提高了判断的准确性,以便当SSD异常时,可以及时通知服务器进行维护,保证存储设备的稳定运行,减少生产生活中数据的丢失。
另外,当两个控制器中任一控制器出现异常时,可以利用另一控制器对异常控制器进行复位操作,增加了异常情况的处理机制,防止因宕机而造成SSD工作异常,增加了SSD运行的可靠性。而且,当两个控制器均异常时,还可以利用监控器对两个控制器进行复位操作,为及时处理异常情况提供了进一步保证。
为便于理解本申请的技术方案,下面将结合具体应用场景进行说明,参见图4,该图为本申请实施例提供的应用场景示例图,如图4所示,固态硬盘包括主控制器和微控制器单元,两个控制器均可以从温度传感器和电流传感器获取SSD工作时的温度和电流,两个控制器各自将获取的参数值发送给主机,当主机判断出两个控制器获取的参数其中有一个控制器发送的参数为空值时,则确定该空值对应的控制器异常,当主控制器异常时,则主机向微控制器单元发送异常信号,该异常信号中携带有主控制器的标识,以使得微控制器根据异常信号中的标识对主控制器进行复位;当微控制器单元异常时,主机向主控制器发送异常信号,该异常信号中携带有微控制器单元的标识,以使得主控制器根据异常信号中的标识对微控制器单元进行复位;当主控制器和微控制器单元均异常时,看门狗1对微控制器单元进行复位,看门狗2对主控制器进行复位,从而重新启动异常的控制器,以保证主机可以获取SSD的工作参数,以保证可以实时监控SSD的运行情况,提高SSD运行的可靠性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的器及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。