掌桥专利:专业的专利平台
掌桥专利
首页

一种硬盘拔插测试方法、系统及相关组件

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及硬盘测试领域,特别涉及一种硬盘拔插测试方法、系统及相关组件。

背景技术

硬盘热插拔测试的设计目的主要是验证硬盘的热插拔功能、异常场景下自恢复能力以及在IO(Input/Output,输入输出)压力下热插拔是否会导致硬盘故障信息增加。当前硬盘热插拔一般由人工手动执行查验,每次插拔都需要工作人员手动检查插拔前后的数据结果进而比对硬盘是否故障,一次测试需要几十次插拔的前后比对和结果记录,工作人员的工作量过大,耗时较大,且容易发生错误。尤其是在测试硬盘机柜例如4U108JOBD这种待测硬盘接口非常多的情况下,人工成本较高,测试的效率太低。

因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。

发明内容

有鉴于此,本发明的目的在于提供一种高效的硬盘拔插测试方法、系统及相关组件。其具体方案如下:

一种硬盘拔插测试方法,应用于测试主机,包括:

当收到目标硬盘对目标接口的插入信息,识别所述目标硬盘的盘符;

根据当前测试模式进行测试,收集所述目标硬盘的数据;

当收到所述目标硬盘的拔出信息并等待所述当前测试模式对应的时间段后再次收到所述目标硬盘插入所述目标接口的插入信息,根据当前测试模式进行测试,收集所述目标硬盘的数据,重复执行该步骤直至执行次数达到预设次数;

将所有所述目标硬盘的数据打包,作为所述目标硬盘对所述目标接口的测试数据结果;

其中所述目标接口为硬盘机柜或硬盘背板中的任一硬盘接口。

优选的,所述识别所述目标硬盘的盘符之前,还包括:

清除所述目标接口和/或所述目标接口对应的日志。

优选的,所述收集所述目标硬盘的数据的过程,包括:

收集所述目标硬盘测试中盘故障信息。

优选的,所述识别所述目标硬盘的盘符之后、所述根据当前测试模式进行测试,收集所述目标硬盘的数据之前,还包括:

收集所述目标硬盘测试前盘故障信息。

优选的,所述当前测试模式为带IO拔插测试模式、无IO慢速插拔模式或无IO快速插拔模式。

优选的,若所述当前测试模式为所述带IO拔插测试模式,则所述根据当前测试模式进行测试的过程,包括:

对所述目标硬盘进行fio读写。

优选的,所述硬盘拔插测试方法还包括:

根据所述测试数据结果,判断所述目标硬盘和/或所述目标接口是否通过测试。

相应的,本申请还公开了一种硬盘拔插测试系统,应用于测试主机,包括:

识别模块,用于当收到目标硬盘对目标接口的插入信息,识别所述目标硬盘的盘符;

测试模块,用于根据当前测试模式进行测试,收集所述目标硬盘的数据,还用于当收到所述目标硬盘的拔出信息并等待所述当前测试模式对应的时间段后再次收到所述目标硬盘插入所述目标接口的插入信息,根据当前测试模式进行测试,收集所述目标硬盘的数据,重复执行该步骤直至执行次数达到预设次数;

打包模块,用于将所有所述目标硬盘的数据打包,作为所述目标硬盘对所述目标接口的测试数据结果;

其中所述目标接口为硬盘机柜或硬盘背板中的任一硬盘接口。

相应的,本申请还公开了一种硬盘拔插测试装置,包括:

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

处理器,用于执行所述计算机程序时实现如上文任一项所述硬盘拔插测试方法的步骤。

相应的,本申请还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述硬盘拔插测试方法的步骤。

本申请公开了一种硬盘拔插测试方法,应用于测试主机,包括:当收到目标硬盘对目标接口的插入信息,识别所述目标硬盘的盘符;根据当前测试模式进行测试,收集所述目标硬盘的数据;当收到所述目标硬盘的拔出信息并等待所述当前测试模式对应的时间段后再次收到所述目标硬盘插入所述目标接口的插入信息,根据当前测试模式进行测试,收集所述目标硬盘的数据,重复执行该步骤直至执行次数达到预设次数;将所有所述目标硬盘的数据打包,作为所述目标硬盘对所述目标接口的测试数据结果;其中所述目标接口为硬盘机柜或硬盘背板中的任一硬盘接口。本申请由测试主机执行硬盘拔插测试方法,在收到插入信息后,测试主机主动识别盘符、进行测试并收集数据,多次拔插测试后,将所有的数据打包作为测试数据结果,从而完成目标硬盘插入目标接口的拔插测试,该过程中不需要人工记录或分析数据,大幅节省了人力消耗,同时提高了测试效率和测试准确度。

附图说明

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

图1为本发明实施例中一种硬盘拔插测试方法的步骤流程图;

图2为本发明实施例中一种硬盘拔插测试系统的结构分布图。

具体实施方式

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

当前硬盘热插拔一般由人工手动执行查验,每次插拔都需要工作人员手动检查插拔前后的数据结果进而比对硬盘是否故障,一次测试需要几十次插拔的前后比对和结果记录,工作人员的工作量过大,耗时较大,且容易发生错误。尤其是在测试硬盘机柜例如4U108JOBD这种待测硬盘接口非常多的情况下,人工成本较高,测试的效率太低。

本申请由测试主机执行硬盘拔插测试方法,在收到插入信息后,测试主机主动识别盘符、进行测试并收集数据,多次拔插测试后,将所有的数据打包作为测试数据结果,从而完成目标硬盘插入目标接口的拔插测试,该过程中不需要人工记录或分析数据,大幅节省了人力消耗,同时提高了测试效率和测试准确度。

本发明实施例公开了一种硬盘拔插测试方法,应用于测试主机,参见图1所示,包括:

S1:当收到目标硬盘对目标接口的插入信息,识别目标硬盘的盘符;

其中,插入信息通过监测目标接口的在位信号获取,如果在位信号出现,则测试主机生成相应的插入信息。

可以理解的是,盘符的识别存在识别失败的可能,一旦识别失败则需要根据实际插入情况、识别时间等参数,修改脚本count_down参数,然后重新开始测试。

进一步的,步骤S1识别目标硬盘的盘符之前,还包括:

清除目标接口和/或目标接口对应的日志。

可以理解的是,实施对当前目标硬盘的测试前,应删除上次测试遗留的数据日志,避免干扰本次测试。

S2:根据当前测试模式进行测试,收集目标硬盘的数据;

可以理解的是,在步骤S1识别目标硬盘的盘符之后、步骤S2根据当前测试模式进行测试,收集目标硬盘的数据之前,还可包括:

收集目标硬盘测试前盘故障信息。

S3:当收到目标硬盘的拔出信息并等待当前测试模式对应的时间段后再次收到目标硬盘插入目标接口的插入信息,根据当前测试模式进行测试,收集目标硬盘的数据,重复执行该步骤直至执行次数达到预设次数;

可以理解的是,步骤S1-S3中目标硬盘实际插入目标接口或拔出目标接口的动作,由外部施力完成,一般可选择人工或柔性机械手的方式实现。

步骤S2和S3中收集目标硬盘的数据的过程,包括:

收集目标硬盘测试中盘故障信息。

可以理解的是,每次目标硬盘插入目标接口,均进行测试并收集目标硬盘的数据,这些数据以测试次数作为序号标记区分。测试的执行次数可根据客户需求进行选择,一般可设为30次或50次。

具体的,当前测试模式可选为带IO拔插测试模式、无IO慢速插拔模式或无IO快速插拔模式。

其中,无IO慢速插拔模式下一般要求对目标硬盘与目标接口热插拔的间隔为30s,无IO快速插拔模式一般要求对目标硬盘与目标接口热插拔的间隔为2s,带IO插拔测试模式下一般要求对目标硬盘跑压力4K的随机读写,并进行慢速热插拔。具体的,若当前测试模式为带IO拔插测试模式,则根据当前测试模式进行测试的过程,包括:对目标硬盘进行fio读写。

S4:将所有目标硬盘的数据打包,作为目标硬盘对目标接口的测试数据结果;

其中目标接口为硬盘机柜或硬盘背板中的任一硬盘接口。

其中,硬盘机柜可选各类机柜,例如4U108JOBD,该机柜包括4个硬盘背板,共可容纳108颗硬盘,每个硬盘接口都可作为目标接口。本实施例中硬盘拔插测试方法适用于各类硬盘测试和/或硬盘接口测试,测试时待测的硬盘或硬盘接口作为对应的目标硬盘或目标接口,如果只测硬盘或硬盘接口,则测试时选用的目标接口或目标硬盘为测试确认无误的标准接口或标准硬盘。

进一步的,硬盘拔插测试方法还可包括:

S5:根据测试数据结果,判断目标硬盘和/或目标接口是否通过测试。

其中,是否通过测试的判断,包括但不限于目标硬盘能否正常被识别、和/或盘符准确无错乱、和/或插拔后是否有坏道出现、和/或每次插入速率协商是否正常、和/或系统无挂死或宕机。而且,除了使用所有测试结束后的测试数据结果进行判断外,还可在测试过程中直接进行判断,如果判断得出当前目标硬盘和/或目标接口未通过测试,可直接停止测试,并将所有的数据打包为测试数据结果。

可以理解的是,本实施例中硬盘拔插测试方法应用于测试主机,可基于shell脚本,采用系统自带指令实现,其脚本组成可包括hotplug_fast.sh、hotplug_io.sh、hotplug_slow.sh、run_test.sh,此时插拔模式的设置程序可如下所示:

#脚本用法usage

if[$#!=2];then

echo“you must input test mod and slot:io/fast/slow;slot1,2,3,…20”

echo“$0is slot1”

exit-1

具体测试流程可如下所示:

插拔过程中对数据的记录和判断可如下所示:

进一步的,还可包括对测试日志的一键处理,如下所示:

最后打包的测试数据结果以收集的日志形式呈现,包括config_good.log、dmesg.log、fio.log、hotplug.log、lsscsi_a.log、lsscsi_b.log、mcelog.log、message.log、sel.log、tmp.log等,具有结构清晰、数据全面、便于问题排查的优点,还可利用脚本还原测试流程,重新展现上文中测试的过程。该方法脚本具有跨平台移植性强的优点,可在CentOS平台、AliOS平台、Red hat平台等之间无差别平移应用,且根据不同厂商HDD(Hard Disk Drive,电脑硬盘)/SSD(Solid State Disk,固态硬盘)/NVME(Non-VolatileMemory express,非易失性内存主机控制器接口规范)硬盘获取信息的工具不同,可添加对应指令以适配绝大数盘类拔插测试,此外,还可根据实际情况优化每款盘插入识别等待时间参数,更进一步地节省测试时长。

本申请公开了一种硬盘拔插测试方法,应用于测试主机,包括:当收到目标硬盘对目标接口的插入信息,识别目标硬盘的盘符;根据当前测试模式进行测试,收集目标硬盘的数据;当收到目标硬盘的拔出信息并等待当前测试模式对应的时间段后再次收到目标硬盘插入目标接口的插入信息,根据当前测试模式进行测试,收集目标硬盘的数据,重复执行该步骤直至执行次数达到预设次数;将所有目标硬盘的数据打包,作为目标硬盘对目标接口的测试数据结果;其中目标接口为硬盘机柜或硬盘背板中的任一硬盘接口。本申请由测试主机执行硬盘拔插测试方法,在收到插入信息后,测试主机主动识别盘符、进行测试并收集数据,多次拔插测试后,将所有的数据打包作为测试数据结果,从而完成目标硬盘插入目标接口的拔插测试,该过程中不需要人工记录或分析数据,大幅节省了人力消耗,同时提高了测试效率和测试准确度。

相应的,本申请还公开了一种硬盘拔插测试系统,应用于测试主机,参见图2所示,包括:

识别模块1,用于当收到目标硬盘对目标接口的插入信息,识别所述目标硬盘的盘符;

测试模块2,用于根据当前测试模式进行测试,收集所述目标硬盘的数据,还用于当收到所述目标硬盘的拔出信息并等待所述当前测试模式对应的时间段后再次收到所述目标硬盘插入所述目标接口的插入信息,根据当前测试模式进行测试,收集所述目标硬盘的数据,重复执行该步骤直至执行次数达到预设次数;

打包模块3,用于将所有所述目标硬盘的数据打包,作为所述目标硬盘对所述目标接口的测试数据结果;

其中所述目标接口为硬盘机柜或硬盘背板中的任一硬盘接口。

本申请由测试主机执行,在收到插入信息后,测试主机主动识别盘符、进行测试并收集数据,多次拔插测试后,将所有的数据打包作为测试数据结果,从而完成目标硬盘插入目标接口的拔插测试,该过程中不需要人工记录或分析数据,大幅节省了人力消耗,同时提高了测试效率和测试准确度。

在一些具体的实施例中,识别模块1在识别所述目标硬盘的盘符之前,还用于:

清除所述目标接口和/或所述目标接口对应的日志。

在一些具体的实施例中,测试模块2收集所述目标硬盘的数据的过程,包括:

收集所述目标硬盘测试中盘故障信息。

在一些具体的实施例中,所述识别所述目标硬盘的盘符之后、所述根据当前测试模式进行测试,收集所述目标硬盘的数据之前,测试模块2还用于:

收集所述目标硬盘测试前盘故障信息。

在一些具体的实施例中,所述当前测试模式为带IO拔插测试模式、无IO慢速插拔模式或无IO快速插拔模式。

在一些具体的实施例中,若所述当前测试模式为所述带IO拔插测试模式,则所述根据当前测试模式进行测试的过程,包括:

对所述目标硬盘进行fio读写。

在一些具体的实施例中,打包模块3还用于:

根据所述测试数据结果,判断所述目标硬盘和/或所述目标接口是否通过测试。

相应的,本申请还公开了一种硬盘拔插测试装置,包括:

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

处理器,用于执行所述计算机程序时实现如上文任一项所述硬盘拔插测试方法的步骤。

相应的,本申请还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述硬盘拔插测试方法的步骤。

其中,所述硬盘拔插测试方法的具体内容可以参照上文实施例中的细节描述,此处不再赘述。

其中,所述硬盘拔插测试装置和所述可读存储介质具有与上文实施例中硬盘拔插测试方法相同的技术效果,此处不再赘述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种硬盘拔插测试方法、系统及相关组件进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术分类

06120114704381