CN115662489A - 硬盘测试方法、装置、电子设备和存储介质 - Google Patents

硬盘测试方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN115662489A
CN115662489A CN202211337030.2A CN202211337030A CN115662489A CN 115662489 A CN115662489 A CN 115662489A CN 202211337030 A CN202211337030 A CN 202211337030A CN 115662489 A CN115662489 A CN 115662489A
Authority
CN
China
Prior art keywords
test
partition
alignment
consistency test
hard disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211337030.2A
Other languages
English (en)
Inventor
王士涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211337030.2A priority Critical patent/CN115662489A/zh
Publication of CN115662489A publication Critical patent/CN115662489A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供硬盘测试方法、装置、电子设备和存储介质,该方法包括:将硬盘空间划分为第一分区、第二分区和第三分区,在一致性测试前,在第一分区生成针对文件***的第一哈希值,再向第二分区写入对齐数据块,向第三分区写入非对齐数据块,以并行进行一致性测试,在完成一致性测试后,在第一分区生成针对文件***的第二哈希值,获取针对一致性测试的测试结果,以根据两个哈希值,判断一致性测试是否对文件***造成损坏,根据测试结果,判断一致性测试是否出现数据不一致现象。通过将对齐一致性测试与非对齐一致性测试在同一个硬盘的不同分区中并行测试,大大缩短测试时间,且充分考虑到硬盘在实际场景中对齐和非对齐同时运行时的数据一致性。

Description

硬盘测试方法、装置、电子设备和存储介质
技术领域
本发明涉及数据处理技术领域,特别涉及一种硬盘测试方法、一种硬盘测试装置、一种电子设备和一种计算机可读存储介质。
背景技术
通常地,服务器会大量使用固态硬盘来存取数据,而固态硬盘包括SLC(Single-Level Cell,单层单元闪存)颗粒或MLC(Multi-Level Cell,多层单元闪存)颗粒的存储单元,然而无论是SLC颗粒还是MLC颗粒,都属于NAND(计算机闪存设备)闪存存储单元,这种硬盘的扇区是4K,到目前的NTFS(New Technology File System,新技术文件***)规范,NTFS格式的起始簇的扇区位置是2M,即2048K位置,可以被4K整除,无疑是不会造成浪费。到了Win7的时代,NTFS格式的起始簇的扇区位置是1M,即1024K的位置,无疑也是可以被4K整除,不会造成浪费,这叫做对齐情况,然而数据块存在不能完全占用的情况或者存在浪费固态硬盘簇空间的情况,即不能被4K整除,这叫做非对齐情况。
为了保证数据的完整性是优先级最高的,需要考虑对齐情况下和非对齐情况下的Data Integrity(数据完整性),然而传统测试方法是对齐一致性和非对齐一致性分开测试,这两个测试各自需要49-52h(小时),测试时间总共需要100h以上,测试效率极低,且无法直观看到对齐和非对齐在一个硬盘里同时运行时的测试情况。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的硬盘测试方法。
本发明实施例还提供了一种硬盘测试装置、电子设备和存储介质,以保证上述方法的实施。
为了解决上述问题,本发明实施例公开了一种硬盘测试方法,所述方法包括:
将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;
在对齐一致性测试和非对齐一致性测试前,在所述第一分区中生成针对文件***的第一哈希值;
向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,以及向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试;
在完成所述对齐一致性测试和所述非对齐一致性测试后,在所述第一分区中生成针对所述文件***的第二哈希值,并获取针对所述对齐一致性测试的第一测试结果以及针对所述非对齐一致性测试的第二测试结果;
根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,并根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,以及根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象。
可选地,所述将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区,包括:
查询所述待测试硬盘的硬盘空间的容量大小;
根据所述容量大小,将所述待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;其中,所述第一分区小于所述第二分区和所述第三分区,所述第二分区和所述第三分区同等大小。
可选地,所述对齐数据块包括不同大小的对齐数据块;所述向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,包括:
按照从小到大的顺序,向所述第二分区依次写入所述不同大小的对齐数据块,并在每次写入一个对齐数据块时配置不同的第一队列深度进行测试;其中,所述对齐数据块的大小包括4K、8K、16K、32K、64K、128K、256K,所述第一队列深度包括1、2、4、8、16、32、64。
可选地,所述非对齐数据块包括不同大小的非对齐数据块;所述向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试,包括:
按照从小到大的顺序,向所述第三分区依次写入所述不同大小的非对齐数据块,并在每次写入一个非对齐数据块时配置不同的第二队列深度进行测试;其中,所述非对齐数据块的大小包括512b、2K、3K、17K、65K、129K、257K,所述第二队列深度包括1、2、4、8、16、32、64。
可选地,所述第一测试结果为针对所述对齐一致性测试的第一运行结果日志;所述根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,包括:
检查所述第一运行结果日志中是否出现报错字段;
若所述第一运行结果日志中出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时出现数据不一致现象;
若所述第一运行结果日志中未出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时未出现数据不一致现象。
可选地,所述第二测试结果为针对所述非对齐一致性测试的第二运行结果日志;所述根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象,包括:
检查所述第二运行结果日志中是否出现报错字段;
若所述第二运行结果日志中出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时出现数据不一致现象;
若所述第二运行结果日志中未出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时未出现数据不一致现象。
可选地,所述方法还包括:
采用所述第一测试结果和所述第二测试结果,综合分析所述对齐一致性测试和所述非对齐一致性测试对所述待测试硬盘的盘体影响。
可选地,所述根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,包括:
比较所述第一哈希值和所述第二哈希值;
若所述第一哈希值和所述第二哈希值一致,则判断所述对齐一致性测试和所述非对齐一致性测试未对所述文件***造成损坏;
若所述第一哈希值和所述第二哈希值不一致,则判断所述对齐一致性测试和所述非对齐一致性测试有对所述文件***造成损坏。
可选地,在所述将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区之前,所述方法还包括:
对所述待测试硬盘进行格式化。
本发明实施例还公开了一种硬盘测试装置,所述装置包括:
分区划分模块,用于将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;
第一哈希值生成模块,用于在对齐一致性测试和非对齐一致性测试前,在所述第一分区中生成针对文件***的第一哈希值;
测试模块,用于向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,以及向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试;
第二哈希值生成模块,用于在完成所述对齐一致性测试和所述非对齐一致性测试后,在所述第一分区中生成针对所述文件***的第二哈希值,并获取针对所述对齐一致性测试的第一测试结果以及针对所述非对齐一致性测试的第二测试结果;
判断模块,用于根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,并根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,以及根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象。
可选地,所述分区划分模块包括:
容量大小查询子模块,用于查询所述待测试硬盘的硬盘空间的容量大小;
分区划分子模块,用于根据所述容量大小,将所述待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;其中,所述第一分区小于所述第二分区和所述第三分区,所述第二分区和所述第三分区同等大小。
可选地,所述对齐数据块包括不同大小的对齐数据块;所述测试模块包括:
对齐一致性测试子模块,用于按照从小到大的顺序,向所述第二分区依次写入所述不同大小的对齐数据块,并在每次写入一个对齐数据块时配置不同的第一队列深度进行测试;其中,所述对齐数据块的大小包括4K、8K、16K、32K、64K、128K、256K,所述第一队列深度包括1、2、4、8、16、32、64。
可选地,所述非对齐数据块包括不同大小的非对齐数据块;所述测试模块包括:
非对齐一致性测试子模块,用于按照从小到大的顺序,向所述第三分区依次写入所述不同大小的非对齐数据块,并在每次写入一个非对齐数据块时配置不同的第二队列深度进行测试;其中,所述非对齐数据块的大小包括512b、2K、3K、17K、65K、129K、257K,所述第二队列深度包括1、2、4、8、16、32、64。
可选地,所述第一测试结果为针对所述对齐一致性测试的第一运行结果日志;所述判断模块包括:
第一检查子模块,用于检查所述第一运行结果日志中是否出现报错字段;
第一判断子模块,用于若所述第一运行结果日志中出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时出现数据不一致现象;
第二判断子模块,用于若所述第一运行结果日志中未出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时未出现数据不一致现象。
可选地,所述第二测试结果为针对所述非对齐一致性测试的第二运行结果日志;所述判断模块包括:
第二检查子模块,用于检查所述第二运行结果日志中是否出现报错字段;
第三判断子模块,用于若所述第二运行结果日志中出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时出现数据不一致现象;
第四判断子模块,用于若所述第二运行结果日志中未出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时未出现数据不一致现象。
可选地,所述装置还包括:
综合分析模块,用于采用所述第一测试结果和所述第二测试结果,综合分析所述对齐一致性测试和所述非对齐一致性测试对所述待测试硬盘的盘体影响。
可选地,所述判断模块包括:
比较子模块,用于比较所述第一哈希值和所述第二哈希值;
第五判断子模块,用于若所述第一哈希值和所述第二哈希值一致,则判断所述对齐一致性测试和所述非对齐一致性测试未对所述文件***造成损坏;
第六判断子模块,用于若所述第一哈希值和所述第二哈希值不一致,则判断所述对齐一致性测试和所述非对齐一致性测试有对所述文件***造成损坏。
可选地,在所述将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区之前,所述装置还包括:
格式化模块,用于对所述待测试硬盘进行格式化。
本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的硬盘测试方法。
本发明实施例还公开了一个或多个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的硬盘测试方法。
与现有技术相比,本发明实施例包括以下优点:
在本发明实施例中,通过将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区,在对齐一致性测试和非对齐一致性测试前,在第一分区中生成针对文件***的第一哈希值,然后向第二分区写入对齐数据块,以进行对齐一致性测试,以及向第三分区写入非对齐数据块,以进行非对齐一致性测试,在完成对齐一致性测试和非对齐一致性测试后,在第一分区中生成针对文件***的第二哈希值,并获取针对对齐一致性测试的第一测试结果以及针对非对齐一致性测试的第二测试结果,根据第一哈希值和第二哈希值,判断对齐一致性测试和非对齐一致性测试是否对文件***造成损坏,并根据第一测试结果,判断对齐一致性测试是否出现数据不一致现象,以及根据第二测试结果,判断非对齐一致性测试是否出现数据不一致现象。本发明实施例通过将对齐一致性测试与非对齐一致性测试在同一个硬盘的不同分区中并行测试,大大缩短测试时间,极大提高测试效率,且充分考虑到硬盘在实际应用场景中对齐一致性和非对齐一致性同时运行时的数据一致性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种硬盘测试方法的步骤流程图;
图2是本发明实施例提供的另一种硬盘测试方法的步骤流程图;
图3是本发明实施例提供的硬盘测试流程图;
图4是本发明实施例提供的一种硬盘测试装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明实施例提供的一种硬盘测试方法的步骤流程图,该方法具体可以包括如下步骤:
步骤101,将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区。
在本发明实施例中,待测试硬盘可以是SSD(Solid State Drives,固态硬盘)。其中,SSD硬盘是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成,其在接口的规范和定义、功能及使用方法上与传统硬盘的完全相同,在产品外形和尺寸上也完全与传统硬盘一致,但I/O性能相对于传统硬盘大大提升。
在本发明实施例中,可以将某一个SSD硬盘作为待测试硬盘,然后通过liunx指令编辑相对应的shell脚本,针对该待测试硬盘同时进行对齐一致性测试和非对齐一致性测试。在对齐一致性测试和非对齐一致性测试前,可以先将待测试硬盘的硬盘空间合理划分为三个分区,三个分区分别是第一分区、第二分区和第三分区。
在具体实现中,可以使用mkpart命令将待测试硬盘的硬盘空间划分为三个分区。示例性地,可以使用“mkpart 1st 0%20%”、“mkpart 2nd 20%60%”、“mkpart 3rd 60%100%”这些命令,来将待测试硬盘的硬盘空间划分为三个分区,三个分区的比例可以是2:4:4。
步骤102,在对齐一致性测试和非对齐一致性测试前,在所述第一分区中生成针对文件***的第一哈希值。
本发明实施例创新性地将对齐一致性测试和非对齐一致性测试在同一个硬盘的不同分区中并行测试,为一致性测试领域开创新篇章,然而由于无法排除并行测试过程是否会对文件***造成损坏,而对于研发测试规范来说,文件***损坏的情况是不被允许的。
因此,本发明实施例在对齐一致性测试和非对齐一致性测试前,在第一分区中生成针对文件***的第一哈希值,以校验并行测试过程是否对文件***造成损坏。
在具体实现中,可以使用fio工具在第一分区中写入校验数据块,从而挂载第一分区,得到针对文件***的第一哈希值,然后取消挂载。其中,校验数据块可以是预设大小的数据,比如10GB的数据,第一哈希值可以是md5值。
其中,fio工具可以是用来对硬盘进行压力测试和验证,它是一个可以产生很多线程或进程并执行用户指定的特定类型I/O操作的工具,fio工具的主要用途是编写和模拟的I/O负载匹配的作业文件。
其中,md5(Message-Digest Algorithm 5,消息摘要算法第五版)是计算机安全领域中的一种散列函数,用于确保信息传输完整一致。
步骤103,向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,以及向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试。
在本发明实施例中,利用第一分区生成针对文件***的一致性测试前后的哈希值,来判断一致性测试对文件***是否有损坏,然后利用其余两个分区,即第二分区和第三分区,分别去测试对齐情况下和非对齐情况下的数据混合写。
具体地,第二分区和第三分区可以是用于并行测试对齐情况和非对齐情况,其中第二分区可以是用于进行对齐一致性测试,第三分区可以是用于进行非对齐一致性测试,而对齐一致性测试可以是通过向第二分区写入对齐数据块来实现,非对齐一致性测试可以是通过向第三分区写入非对齐数据块来实现。
需要说明的是,本发明实施例的对齐一致性测试和非对齐一致性测试是同时运行的。
步骤104,在完成所述对齐一致性测试和所述非对齐一致性测试后,在所述第一分区中生成针对所述文件***的第二哈希值,并获取针对所述对齐一致性测试的第一测试结果以及针对所述非对齐一致性测试的第二测试结果。
在本发明实施例中,在完成一致性测试后,也即是在完成对齐一致性测试和非对齐一致性测试后,可以在第一分区中生成针对文件***的第二哈希值,并且可以获取针对对齐一致性测试的第一测试结果以及针对非对齐一致性测试的第二测试结果。其中,第二哈希值可以是md5值,第一测试结果和第二测试结果均可以包括待测试硬盘的smart log、***message、dmesg信息以及BMC信息。
步骤105,根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,并根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,以及根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象。
在本发明实施例中,第一哈希值和第二哈希值均是在第一分区中针对文件***生成的,而第一哈希值是一致性测试前生成的,第二哈希值是一致性测试后生成的,通过第一哈希值和第二哈希值,可以判断一致性测试是否对文件***造成损坏,也即是可以判断对齐一致性测试和非对齐一致性测试是否对文件***造成损坏。
除此之外,本发明实施例还可以判断一致性测试是否出现数据不一致现象,具体地,对齐一致性测试过程中可以生成第一测试结果,因此可以根据第一测试结果,判断对齐一致性测试是否出现数据不一致现象。同样地,非对齐一致性测试过程中可以生成第二测试结果,因此可以根据第二测试结果,判断非对齐一致性测试是否出现数据不一致现象。
综上,在本发明实施例中,通过将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区,在对齐一致性测试和非对齐一致性测试前,在第一分区中生成针对文件***的第一哈希值,然后向第二分区写入对齐数据块,以进行对齐一致性测试,以及向第三分区写入非对齐数据块,以进行非对齐一致性测试,在完成对齐一致性测试和非对齐一致性测试后,在第一分区中生成针对文件***的第二哈希值,并获取针对对齐一致性测试的第一测试结果以及针对非对齐一致性测试的第二测试结果,根据第一哈希值和第二哈希值,判断对齐一致性测试和非对齐一致性测试是否对文件***造成损坏,并根据第一测试结果,判断对齐一致性测试是否出现数据不一致现象,以及根据第二测试结果,判断非对齐一致性测试是否出现数据不一致现象。本发明实施例通过将对齐一致性测试与非对齐一致性测试在同一个硬盘的不同分区中并行测试,大大缩短测试时间,极大提高测试效率,且充分考虑到硬盘在实际应用场景中对齐一致性和非对齐一致性同时运行时的数据一致性。
参照图2,示出了本发明实施例提供的另一种硬盘测试方法的步骤流程图,该方法具体可以包括如下步骤:
步骤201,对待测试硬盘进行格式化。
在本发明实施例中,可以先对待测试硬盘进行格式化,以便于后续将待测试硬盘的硬盘空间进行分区,具体可以使用format指令来格式化待测试硬盘。需要说明的是,本发明实施例对待测试硬盘进行格式化,是为了清理待测试硬盘里的日志数据,以避免影响测试结果。
步骤202,将所述待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区。
在本发明实施例中,待测试硬盘可以是SSD硬盘,可以将某一个SSD硬盘作为待测试硬盘,然后通过liunx指令编辑相对应的shell脚本,针对该待测试硬盘同时进行对齐一致性测试和非对齐一致性测试。在对齐一致性测试和非对齐一致性测试前,可以先将待测试硬盘的硬盘空间合理划分为三个分区,三个分区分别是第一分区、第二分区和第三分区。
在具体实现中,可以使用mkpart命令将待测试硬盘的硬盘空间划分为三个分区。示例性地,可以使用“mkpart 1st 0%20%”、“mkpart 2nd 20%60%”、“mkpart 3rd 60%100%”这些命令,来将待测试硬盘的硬盘空间划分为三个分区,三个分区的比例可以是2:4:4。
本发明的一个可选实施例中,步骤202可以包括以下子步骤:
子步骤S11,查询所述待测试硬盘的硬盘空间的容量大小;
子步骤S12,根据所述容量大小,将所述待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;其中,所述第一分区小于所述第二分区和所述第三分区,所述第二分区和所述第三分区同等大小。
在本发明实施例中,可以先查询待测试硬盘的硬盘空间的容量大小,然后根据查询得到的容量大小,按照预设比例,比如2:4:4的比例,将待测试硬盘的硬盘空间划分为三个分区。
由于第一分区是用于校验一致性测试是否对文件***造成损坏,所以可以将最小的分区作为第一分区,即第一分区可以小于第二分区和第三分区。由于第二分区和第三分区是用于并行测试对齐情况和非对齐情况,所以可以将同等大小的两个分区分别作为第二分区和第三分区,即第二分区和第三分区同等大小。
步骤203,在对齐一致性测试和非对齐一致性测试前,在所述第一分区中生成针对文件***的第一哈希值。
在本发明实施例中,在对齐一致性测试和非对齐一致性测试前,在第一分区中生成针对文件***的第一哈希值,以校验并行测试过程是否对文件***造成损坏。具体地,可以使用fio工具在第一分区中写入校验数据块,从而挂载第一分区,得到针对文件***的第一哈希值,然后取消挂载。其中,校验数据块可以是预设大小的数据,比如10GB的数据,第一哈希值可以是md5值。
步骤204,向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,以及向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试。
在本发明实施例中,第二分区和第三分区可以是用于并行测试对齐情况和非对齐情况,其中第二分区可以是用于进行对齐一致性测试,第三分区可以是用于进行非对齐一致性测试,而对齐一致性测试可以是通过向第二分区写入对齐数据块来实现,非对齐一致性测试可以是通过向第三分区写入非对齐数据块来实现。
需要说明的是,本发明实施例的对齐一致性测试和非对齐一致性测试是同时运行的。
本发明的一个可选实施例中,所述对齐数据块包括不同大小的对齐数据块;步骤204可以包括以下子步骤:
子步骤S21,按照从小到大的顺序,向所述第二分区依次写入所述不同大小的对齐数据块,并在每次写入一个对齐数据块时配置不同的第一队列深度进行测试;其中,所述对齐数据块的大小包括4K、8K、16K、32K、64K、128K、256K,所述第一队列深度包括1、2、4、8、16、32、64。
在本发明实施例中,对齐数据块可以包括不同大小的对齐数据块,对齐数据块即是能被4K整除的数据块,示例性地,对齐数据块的大小可以包括4K、8K、16K、32K、64K、128K、256K。
需要说明的是,每个对齐数据块可以是一种数据单位。示例性地,4K大小的对齐数据块,其数据单位是4K;8K大小的对齐数据块,其数据单位是8K;16K大小的对齐数据块,其数据单位是16K;32K大小的对齐数据块,其数据单位是32K;64K大小的对齐数据块,其数据单位是64K;128K大小的对齐数据块,其数据单位是128K;256K大小的对齐数据块,其数据单位是256K。
在对齐一致性测试中,可以按照从小到大的顺序,向第二分区依次写入4K、8K、16K、32K、64K、128K、256K大小的对齐数据块。
数据一致性是指针对同一个数据块,利用不同的QD(Queue Depth,磁盘控制器所发出的批量指令的最大条数),验证是否有数据不一致现象,其中QD即是队列深度。
因此在每次写入一个对齐数据块时,可以配置不同的第一队列深度QD1进行测试。其中,第一队列深度QD1可以包括1、2、4、8、16、32、64。
需要说明的是,每个对齐数据块在配置每个第一队列深度QD1进行测试时,所需测试时间为0.5h(小时)。
作为一示例,对于对齐一致性测试而言,可以在第二分区先写入4K大小的对齐数据块A,并且分别配置第一队列深度QD1为1、2、4、8、16、32、64,由此得到针对对齐数据块A的第一测试结果A,测试时间总共为3.5h;然后在第二分区写入8K大小的对齐数据块B,并且分别配置第一队列深度QD1为1、2、4、8、16、32、64,由此得到针对对齐数据块B的第一测试结果B,测试时间总共为3.5h;然后在第二分区写入16K大小的对齐数据块C,并且分别配置第一队列深度QD1为1、2、4、8、16、32、64,由此得到针对对齐数据块C的第一测试结果C,测试时间总共为3.5h;然后在第二分区写入32K大小的对齐数据块D,并且分别配置第一队列深度QD1为1、2、4、8、16、32、64,由此得到针对对齐数据块D的第一测试结果D,测试时间总共为3.5h;然后在第二分区写入64K大小的对齐数据块E,并且分别配置第一队列深度QD1为1、2、4、8、16、32、64,由此得到针对对齐数据块E的第一测试结果E,测试时间总共为3.5h;然后在第二分区写入128K大小的对齐数据块F,并且分别配置第一队列深度QD1为1、2、4、8、16、32、64,由此得到针对对齐数据块F的第一测试结果F,测试时间总共为3.5h;最后在第二分区写入256K大小的对齐数据块G,并且分别配置第一队列深度QD1为1、2、4、8、16、32、64,由此得到针对对齐数据块G的第一测试结果G,测试时间总共为3.5h。所述示例仅用于使本领域技术人员更好理解本发明实施例,本发明对此不作出限定。
本发明的一个可选实施例中,所述非对齐数据块包括不同大小的非对齐数据块;步骤204可以包括以下子步骤:
子步骤S31,按照从小到大的顺序,向所述第三分区依次写入所述不同大小的非对齐数据块,并在每次写入一个非对齐数据块时配置不同的第二队列深度进行测试;其中,所述非对齐数据块的大小包括512b、2K、3K、17K、65K、129K、257K,所述第二队列深度包括1、2、4、8、16、32、64。
在本发明实施例中,非对齐数据块可以包括不同大小的非对齐数据块,非对齐数据块即是不能被4K整除的数据块,示例性地,非对齐数据块的大小可以包括512b、2K、3K、17K、65K、129K、257K。
需要说明的是,每个非对齐数据块可以是一种数据单位。示例性地,512b大小的对齐数据块,其数据单位是512b;2K大小的对齐数据块,其数据单位是2K;3K大小的对齐数据块,其数据单位是3K;17K大小的对齐数据块,其数据单位是17K;65K大小的对齐数据块,其数据单位是65K;129K大小的对齐数据块,其数据单位是129K;257K大小的对齐数据块,其数据单位是257K。
在非对齐一致性测试中,可以按照从小到大的顺序,向第三分区依次写入512b、2K、3K、17K、65K、129K、257K大小的非对齐数据块。
数据一致性是指针对同一个数据块,利用不同的QD,验证是否有数据不一致现象,其中QD即是队列深度。
因此在每次写入一个非对齐数据块时,可以配置不同的第二队列深度QD2进行测试。其中,第二队列深度QD2可以包括1、2、4、8、16、32、64。
需要说明的是,每个非对齐数据块在配置每个第二队列深度QD2进行测试时,所需测试时间为0.5h。
作为另一示例,对于非对齐一致性测试而言,可以在第三分区先写入512b大小的非对齐数据块H,并且分别配置第二队列深度QD2为1、2、4、8、16、32、64,由此得到针对非对齐数据块H的第二测试结果H,测试时间总共为3.5h;然后在第三分区写入2K大小的非对齐数据块I,并且分别配置第二队列深度QD2为1、2、4、8、16、32、64,由此得到针对非对齐数据块I的第二测试结果I,测试时间总共为3.5h;然后在第三分区写入3K大小的非对齐数据块J,并且分别配置第二队列深度QD2为1、2、4、8、16、32、64,由此得到针对非对齐数据块J的第二测试结果J,测试时间总共为3.5h;然后在第三分区写入17K大小的非对齐数据块K,并且分别配置第二队列深度QD2为1、2、4、8、16、32、64,由此得到针对非对齐数据块K的第二测试结果K;然后在第三分区写入65K大小的非对齐数据块L,并且分别配置第二队列深度QD2为1、2、4、8、16、32、64,由此得到针对非对齐数据块L的第二测试结果L,测试时间总共为3.5h;然后在第三分区写入129K大小的非对齐数据块M,并且分别配置第二队列深度QD2为1、2、4、8、16、32、64,由此得到针对非对齐数据块M的第二测试结果M,测试时间总共为3.5h;最后在第三分区写入257K大小的非对齐数据块N,并且分别配置第二队列深度QD2为1、2、4、8、16、32、64,由此得到针对非对齐数据块N的第二测试结果N,测试时间总共为3.5h。所述示例仅用于使本领域技术人员更好理解本发明实施例,本发明对此不作出限定。
步骤205,在完成所述对齐一致性测试和所述非对齐一致性测试后,在所述第一分区中生成针对所述文件***的第二哈希值,并获取针对所述对齐一致性测试的第一测试结果以及针对所述非对齐一致性测试的第二测试结果。
在本发明实施例中,在完成一致性测试后,也即是在完成对齐一致性测试和非对齐一致性测试后,可以在第一分区中生成针对文件***的第二哈希值,并且可以获取针对对齐一致性测试的第一测试结果以及针对非对齐一致性测试的第二测试结果。其中,第二哈希值可以是md5值,第一测试结果和第二测试结果均可以包括待测试硬盘的smart log、***message、dmesg信息以及BMC信息。
步骤206,根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,并根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,以及根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象,以及采用所述第一测试结果和所述第二测试结果,综合分析所述对齐一致性测试和所述非对齐一致性测试对所述待测试硬盘的盘体影响。
在本发明实施例中,第一哈希值和第二哈希值均是在第一分区中针对文件***生成的,而第一哈希值是一致性测试前生成的,第二哈希值是一致性测试后生成的,通过第一哈希值和第二哈希值,可以判断一致性测试是否对文件***造成损坏,也即是可以判断对齐一致性测试和非对齐一致性测试是否对文件***造成损坏。
除此之外,本发明实施例还可以判断一致性测试是否出现数据不一致现象,具体地,对齐一致性测试过程中可以生成第一测试结果,因此可以根据第一测试结果,判断对齐一致性测试是否出现数据不一致现象。同样地,非对齐一致性测试过程中可以生成第二测试结果,因此可以根据第二测试结果,判断非对齐一致性测试是否出现数据不一致现象。
除此之外,测试硬盘可能会对盘体造成影响,由于本发明实施例是将对齐一致性测试与非对齐一致性测试在同一个硬盘的不同分区中并行测试,因此可以采用第一测试结果和第二测试结果,综合分析对齐一致性测试和非对齐一致性测试对待测试硬盘的盘体影响。
在具体实现中,第一测试结果是针对对齐一致性测试的第一运行结果日志,第二测试结果是针对非对齐一致性测试的第二运行结果日志,可以检查第一运行结果日志和第二运行结果日志中是否出现异常日志,如果出现异常日志,那么研发人员可以进行日志分析,以查找出一致性测试对待测试硬盘的盘体影响。
本发明的一个可选实施例中,所述第一测试结果为针对所述对齐一致性测试的第一运行结果日志;步骤206可以包括以下子步骤:
子步骤S41,检查所述第一运行结果日志中是否出现报错字段;
子步骤S42,若所述第一运行结果日志中出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时出现数据不一致现象;
子步骤S43,若所述第一运行结果日志中未出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时未出现数据不一致现象。
在本发明实施例中,第一测试结果可以是针对对齐一致性测试的第一运行结果日志,第一运行结果日志具体可以包括待测试硬盘的smart log、***message、dmesg信息以及BMC信息。
在具体实现中,可以检查第一运行结果日志中是否出现报错字段,报错字段可以是io error。如果第一运行结果日志中出现报错字段io error,那么可以判断在同一个对齐数据块且不同的第一队列深度时出现数据不一致现象;如果第一运行结果日志中没有出现报错字段io error,那么可以判断在同一个对齐数据块且不同的第一队列深度时没有出现数据不一致现象。
作为一示例,在第二分区依次写入4K、8K、16K、32K、64K、128K、256K大小的对齐数据块,依次得到第一运行结果日志A~G,假设第一运行结果日志A、C、D、E、F中没有出现报错字段io error,由此说明对齐数据块A在不同的第一队列深度QD1下没有出现数据不一致现象,以及对齐数据块C在不同的第一队列深度QD1下没有出现数据不一致现象,以及对齐数据块D在不同的第一队列深度QD1下没有出现数据不一致现象,以及对齐数据块E在不同的第一队列深度QD1下没有出现数据不一致现象,以及对齐数据块F在不同的第一队列深度QD1下没有出现数据不一致现象,由此进一步说明4K、16K、32K、64K、128K的指标过关。然而第一运行结果日志B、G中出现报错字段io error,由此说明对齐数据块B在不同的第一队列深度QD1下出现数据不一致现象,以及对齐数据块G在不同的第一队列深度QD1下出现数据不一致现象,由此进一步说明8K和256K的指标不过关。所述示例仅用于使本领域技术人员更好理解本发明实施例,本发明对此不作出限定。
本发明的一个可选实施例中,所述第二测试结果为针对所述非对齐一致性测试的第二运行结果日志;步骤206可以包括以下子步骤:
子步骤S51,检查所述第二运行结果日志中是否出现报错字段;
子步骤S52,若所述第二运行结果日志中出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时出现数据不一致现象;
子步骤S53,若所述第二运行结果日志中未出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时未出现数据不一致现象。
在本发明实施例中,第二测试结果可以是针对非对齐一致性测试的第二运行结果日志,第二运行结果日志具体可以包括待测试硬盘的smart log、***message、dmesg信息以及BMC信息。
在具体实现中,可以检查第二运行结果日志中是否出现报错字段,报错字段可以是io error。如果第二运行结果日志中出现报错字段io error,那么可以判断在同一个非对齐数据块且不同的第二队列深度时出现数据不一致现象;如果第二运行结果日志中没有出现报错字段io error,那么可以判断在同一个非对齐数据块且不同的第二队列深度时没有出现数据不一致现象。
作为另一示例,在第三分区依次写入512b、2K、3K、17K、65K、129K、257K大小的非对齐数据块,依次得到第二运行结果日志H~N,假设第二运行结果日志I、J、K、L中没有出现报错字段io error,由此说明非对齐数据块I在不同的第二队列深度QD2下没有出现数据不一致现象,以及非对齐数据块J在不同的第二队列深度QD2下没有出现数据不一致现象,以及非对齐数据块K在不同的第二队列深度QD2下没有出现数据不一致现象,以及非对齐数据块L在不同的第二队列深度QD2下没有出现数据不一致现象,由此进一步说明2K、3K、17K、65K的指标过关。然而第二运行结果日志H、M、N中出现报错字段io error,由此说明非对齐数据块H在不同的第二队列深度QD2下出现数据不一致现象,以及非对齐数据块M在不同的第二队列深度QD2下出现数据不一致现象,以及非对齐数据块N在不同的第二队列深度QD2下出现数据不一致现象,由此进一步说明512b、129K和256K的指标不过关。所述示例仅用于使本领域技术人员更好理解本发明实施例,本发明对此不作出限定。
本发明的一个可选实施例中,步骤206可以包括以下子步骤:
子步骤S61,比较所述第一哈希值和所述第二哈希值;
子步骤S62,若所述第一哈希值和所述第二哈希值一致,则判断所述对齐一致性测试和所述非对齐一致性测试未对所述文件***造成损坏;
子步骤S63,若所述第一哈希值和所述第二哈希值不一致,则判断所述对齐一致性测试和所述非对齐一致性测试有对所述文件***造成损坏。
在本发明实施例中,第一哈希值和第二哈希值均是在第一分区中针对文件***生成的md5值,而第一哈希值是一致性测试前生成的md5值,第二哈希值是一致性测试后生成的md5值。本发明实施例可以通过比较第一哈希值和第二哈希值,来判断出一致性测试是否对文件***造成损坏,也即是判断出对齐一致性测试和非对齐一致性测试是否对文件***造成损坏。
如果第一哈希值和第二哈希值一致,由此判断出对齐一致性测试和非对齐一致性测试没有对文件***造成损坏。示例性地,如果没有出现异常日志新增,那么第一哈希值是不变的,即第一哈希值和第二哈希值是一致的,从而判断出对齐一致性测试和非对齐一致性测试没有对文件***造成损坏。
如果第一哈希值和第二哈希值不一致,由此判断出对齐一致性测试和非对齐一致性测试有对文件***造成损坏。示例性地,如果出现异常日志新增,那么第一哈希值是改变的,即第一哈希值和第二哈希值是不一致的,从而判断出对齐一致性测试和非对齐一致性测试有对文件***造成损坏。
由此可见,相比传统测试方法是对齐一致性和非对齐一致性分开测试,这两个测试各自需要49-52h,加起来连续测试需要耗费四天多时间,测试效率极低,且目前主流厂商平台没有关注实际应用场景中对齐和非对齐同时运行场景时数据一致性和盘体问题。本发明实施例针对现有技术缺点,设计出一种全新的方法,创新性的将对齐一致性和非对齐一致性进行同场景测试,补足传统测试方法的短板,本发明实施例可以模拟出存储设备在使用过程中实际应用场景,为一致性测试领域开创新篇章。
具体而言,本发明实施例针对传统测试方法的缺点,提出一种改善SSD硬盘对齐&非对齐的数据完整性的测试方法,可以将原来的对齐一致性测试和非对齐一致性测试的总测试时间缩短,原先测试对齐和非对齐各自需要48-50h,总共需要100h以上,本发明实施例通过将对齐一致性测试与非对齐一致性测试基于校验第一分区的md5值来合并起来测试,兼容对齐&非对齐的数据单位进行混合写,不仅将原来的100h以上的测试时间缩短到50h以内,极大提高了测试效率,而且还关注到了实际应用场景中对齐和非对齐同时运行场景时数据一致性和盘体问题,这是一种全新的方法,创新性地将对齐一致性和非对齐一致性进行同场景测试,也即是本发明实施例通过对SSD硬盘的不同分区下发不同的数据单位,对其进行混合写测试,以此观察数据对齐和数据不对齐在一个SSD硬盘同时测试时对盘片的影响,从而模拟出存储设备在使用过程中实际应用场景,可以直观看到数据在对齐&非对齐并行测试时对于被测试硬盘的性能数据影响。
综上,在本发明实施例中,通过将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区,在对齐一致性测试和非对齐一致性测试前,在第一分区中生成针对文件***的第一哈希值,然后向第二分区写入对齐数据块,以进行对齐一致性测试,以及向第三分区写入非对齐数据块,以进行非对齐一致性测试,在完成对齐一致性测试和非对齐一致性测试后,在第一分区中生成针对文件***的第二哈希值,并获取针对对齐一致性测试的第一测试结果以及针对非对齐一致性测试的第二测试结果,根据第一哈希值和第二哈希值,判断对齐一致性测试和非对齐一致性测试是否对文件***造成损坏,并根据第一测试结果,判断对齐一致性测试是否出现数据不一致现象,以及根据第二测试结果,判断非对齐一致性测试是否出现数据不一致现象。本发明实施例通过将对齐一致性测试与非对齐一致性测试在同一个硬盘的不同分区中并行测试,大大缩短测试时间,极大提高测试效率,且充分考虑到硬盘在实际应用场景中对齐一致性和非对齐一致性同时运行时的数据一致性。
为了使本领域技术人员能够更好地理解本发明实施例,下面通过以下示例对本发明实施例加以说明:
参考图3,示出了本发明实施例提供的硬盘测试流程图,硬盘测试流程具体可以如下:
S301,开始;
S302,使用format指令对待测试硬盘进行格式化;
S303,查询待测试硬盘的硬盘空间的容量大小,根据容量大小,使用mkpart命令将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;其中,第一分区小于第二分区和第三分区,第二分区和第三分区同等大小;
S304,在对齐一致性测试和非对齐一致性测试前,在第一分区中生成针对文件***的第一哈希值;
S305,第二分区用来对齐一致性测试:向第二分区依次写入4K、8K、16K、32K、64K、128K、256K大小的对齐数据块,并在每次写入一个对齐数据块时分别配置1、2、4、8、16、32、64大小的第一队列深度进行测试;以及,第三分区用来非对齐一致性测试:向第三分区依次写入512b、2K、3K、17K、65K、129K、257K大小的非对齐数据块,并在每次写入一个非对齐数据块时分别配置1、2、4、8、16、32、64大小的第二队列深度进行测试;
S306,在完成对齐一致性测试和非对齐一致性测试后,在第一分区中生成针对文件***的第二哈希值,并获取针对对齐一致性测试的第一运行结果日志以及针对非对齐一致性测试的第二运行结果日志;
S307,判断第一哈希值和第二哈希值是否一致;以及,判断第一运行结果日志中是否出现报错字段;以及,判断第二运行结果日志中是否出现报错字段;
S3081,判断为否:若第一哈希值和第二哈希值不一致,则判断出对齐一致性测试和非对齐一致性测试有对文件***造成损坏;以及,若第一运行结果日志中没有出现报错字段,则判断出在同一个对齐数据块且不同的第一队列深度时没有出现数据不一致现象;以及,若第二运行结果日志中没有出现报错字段,则判断出在同一个非对齐数据块且不同的第二队列深度时没有出现数据不一致现象;
S3082,判断为是:若第一哈希值和第二哈希值一致,则判断出对齐一致性测试和非对齐一致性测试没有对文件***造成损坏;以及,若第一运行结果日志中出现报错字段,则判断出在同一个对齐数据块且不同的第一队列深度时出现数据不一致现象;以及,若第二运行结果日志中出现报错字段,则判断出在同一个非对齐数据块且不同的第二队列深度时出现数据不一致现象;
S309,结束。
参考图4,示出了本发明实施例提供的一种硬盘测试装置的结构框图,具体可以包括如下模块:
分区划分模块401,用于将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;
第一哈希值生成模块402,用于在对齐一致性测试和非对齐一致性测试前,在所述第一分区中生成针对文件***的第一哈希值;
测试模块403,用于向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,以及向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试;
第二哈希值生成模块404,用于在完成所述对齐一致性测试和所述非对齐一致性测试后,在所述第一分区中生成针对所述文件***的第二哈希值,并获取针对所述对齐一致性测试的第一测试结果以及针对所述非对齐一致性测试的第二测试结果;
判断模块405,用于根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,并根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,以及根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象。
本发明的一个可选实施例中,所述分区划分模块401可以包括:
容量大小查询子模块,用于查询所述待测试硬盘的硬盘空间的容量大小;
分区划分子模块,用于根据所述容量大小,将所述待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;其中,所述第一分区小于所述第二分区和所述第三分区,所述第二分区和所述第三分区同等大小。
本发明的一个可选实施例中,所述对齐数据块包括不同大小的对齐数据块;所述测试模块403可以包括:
对齐一致性测试子模块,用于按照从小到大的顺序,向所述第二分区依次写入所述不同大小的对齐数据块,并在每次写入一个对齐数据块时配置不同的第一队列深度进行测试;其中,所述对齐数据块的大小包括4K、8K、16K、32K、64K、128K、256K,所述第一队列深度包括1、2、4、8、16、32、64。
本发明的一个可选实施例中,所述非对齐数据块包括不同大小的非对齐数据块;所述测试模块403可以包括:
非对齐一致性测试子模块,用于按照从小到大的顺序,向所述第三分区依次写入所述不同大小的非对齐数据块,并在每次写入一个非对齐数据块时配置不同的第二队列深度进行测试;其中,所述非对齐数据块的大小包括512b、2K、3K、17K、65K、129K、257K,所述第二队列深度包括1、2、4、8、16、32、64。
本发明的一个可选实施例中,所述第一测试结果为针对所述对齐一致性测试的第一运行结果日志;所述判断模块405可以包括:
第一检查子模块,用于检查所述第一运行结果日志中是否出现报错字段;
第一判断子模块,用于若所述第一运行结果日志中出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时出现数据不一致现象;
第二判断子模块,用于若所述第一运行结果日志中未出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时未出现数据不一致现象。
本发明的一个可选实施例中,所述第二测试结果为针对所述非对齐一致性测试的第二运行结果日志;所述判断模块405可以包括:
第二检查子模块,用于检查所述第二运行结果日志中是否出现报错字段;
第三判断子模块,用于若所述第二运行结果日志中出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时出现数据不一致现象;
第四判断子模块,用于若所述第二运行结果日志中未出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时未出现数据不一致现象。
本发明的一个可选实施例中,所述装置还可以包括:
综合分析模块,用于采用所述第一测试结果和所述第二测试结果,综合分析所述对齐一致性测试和所述非对齐一致性测试对所述待测试硬盘的盘体影响。
本发明的一个可选实施例中,所述判断模块405可以包括:
比较子模块,用于比较所述第一哈希值和所述第二哈希值;
第五判断子模块,用于若所述第一哈希值和所述第二哈希值一致,则判断所述对齐一致性测试和所述非对齐一致性测试未对所述文件***造成损坏;
第六判断子模块,用于若所述第一哈希值和所述第二哈希值不一致,则判断所述对齐一致性测试和所述非对齐一致性测试有对所述文件***造成损坏。
本发明的一个可选实施例中,在所述将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区之前,所述装置还可以包括:
格式化模块,用于对所述待测试硬盘进行格式化。
综上,在本发明实施例中,通过将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区,在对齐一致性测试和非对齐一致性测试前,在第一分区中生成针对文件***的第一哈希值,然后向第二分区写入对齐数据块,以进行对齐一致性测试,以及向第三分区写入非对齐数据块,以进行非对齐一致性测试,在完成对齐一致性测试和非对齐一致性测试后,在第一分区中生成针对文件***的第二哈希值,并获取针对对齐一致性测试的第一测试结果以及针对非对齐一致性测试的第二测试结果,根据第一哈希值和第二哈希值,判断对齐一致性测试和非对齐一致性测试是否对文件***造成损坏,并根据第一测试结果,判断对齐一致性测试是否出现数据不一致现象,以及根据第二测试结果,判断非对齐一致性测试是否出现数据不一致现象。本发明实施例通过将对齐一致性测试与非对齐一致性测试在同一个硬盘的不同分区中并行测试,大大缩短测试时间,极大提高测试效率,且充分考虑到硬盘在实际应用场景中对齐一致性和非对齐一致性同时运行时的数据一致性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述硬盘测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述硬盘测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的硬盘测试方法、装置、电子设备和计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种硬盘测试方法,其特征在于,所述方法包括:
将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;
在对齐一致性测试和非对齐一致性测试前,在所述第一分区中生成针对文件***的第一哈希值;
向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,以及向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试;
在完成所述对齐一致性测试和所述非对齐一致性测试后,在所述第一分区中生成针对所述文件***的第二哈希值,并获取针对所述对齐一致性测试的第一测试结果以及针对所述非对齐一致性测试的第二测试结果;
根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,并根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,以及根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象。
2.根据权利要求1所述的方法,其特征在于,所述将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区,包括:
查询所述待测试硬盘的硬盘空间的容量大小;
根据所述容量大小,将所述待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;其中,所述第一分区小于所述第二分区和所述第三分区,所述第二分区和所述第三分区同等大小。
3.根据权利要求1所述的方法,其特征在于,所述对齐数据块包括不同大小的对齐数据块;所述向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,包括:
按照从小到大的顺序,向所述第二分区依次写入所述不同大小的对齐数据块,并在每次写入一个对齐数据块时配置不同的第一队列深度进行测试;其中,所述对齐数据块的大小包括4K、8K、16K、32K、64K、128K、256K,所述第一队列深度包括1、2、4、8、16、32、64。
4.根据权利要求1所述的方法,其特征在于,所述非对齐数据块包括不同大小的非对齐数据块;所述向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试,包括:
按照从小到大的顺序,向所述第三分区依次写入所述不同大小的非对齐数据块,并在每次写入一个非对齐数据块时配置不同的第二队列深度进行测试;其中,所述非对齐数据块的大小包括512b、2K、3K、17K、65K、129K、257K,所述第二队列深度包括1、2、4、8、16、32、64。
5.根据权利要求3所述的方法,其特征在于,所述第一测试结果为针对所述对齐一致性测试的第一运行结果日志;所述根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,包括:
检查所述第一运行结果日志中是否出现报错字段;
若所述第一运行结果日志中出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时出现数据不一致现象;
若所述第一运行结果日志中未出现报错字段,则判断在同一个对齐数据块且不同的第一队列深度时未出现数据不一致现象。
6.根据权利要求4所述的方法,其特征在于,所述第二测试结果为针对所述非对齐一致性测试的第二运行结果日志;所述根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象,包括:
检查所述第二运行结果日志中是否出现报错字段;
若所述第二运行结果日志中出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时出现数据不一致现象;
若所述第二运行结果日志中未出现报错字段,则判断在同一个非对齐数据块且不同的第二队列深度时未出现数据不一致现象。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
采用所述第一测试结果和所述第二测试结果,综合分析所述对齐一致性测试和所述非对齐一致性测试对所述待测试硬盘的盘体影响。
8.根据权利要求1所述的方法,其特征在于,所述根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,包括:
比较所述第一哈希值和所述第二哈希值;
若所述第一哈希值和所述第二哈希值一致,则判断所述对齐一致性测试和所述非对齐一致性测试未对所述文件***造成损坏;
若所述第一哈希值和所述第二哈希值不一致,则判断所述对齐一致性测试和所述非对齐一致性测试有对所述文件***造成损坏。
9.根据权利要求1所述的方法,其特征在于,在所述将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区之前,所述方法还包括:
对所述待测试硬盘进行格式化。
10.一种硬盘测试装置,其特征在于,所述装置包括:
分区划分模块,用于将待测试硬盘的硬盘空间划分为第一分区、第二分区和第三分区;
第一哈希值生成模块,用于在对齐一致性测试和非对齐一致性测试前,在所述第一分区中生成针对文件***的第一哈希值;
测试模块,用于向所述第二分区写入对齐数据块,以进行所述对齐一致性测试,以及向所述第三分区写入非对齐数据块,以进行所述非对齐一致性测试;
第二哈希值生成模块,用于在完成所述对齐一致性测试和所述非对齐一致性测试后,在所述第一分区中生成针对所述文件***的第二哈希值,并获取针对所述对齐一致性测试的第一测试结果以及针对所述非对齐一致性测试的第二测试结果;
判断模块,用于根据所述第一哈希值和所述第二哈希值,判断所述对齐一致性测试和所述非对齐一致性测试是否对所述文件***造成损坏,并根据所述第一测试结果,判断所述对齐一致性测试是否出现数据不一致现象,以及根据所述第二测试结果,判断所述非对齐一致性测试是否出现数据不一致现象。
11.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9中任一项所述的硬盘测试方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的硬盘测试方法的步骤。
CN202211337030.2A 2022-10-28 2022-10-28 硬盘测试方法、装置、电子设备和存储介质 Pending CN115662489A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211337030.2A CN115662489A (zh) 2022-10-28 2022-10-28 硬盘测试方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211337030.2A CN115662489A (zh) 2022-10-28 2022-10-28 硬盘测试方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN115662489A true CN115662489A (zh) 2023-01-31

Family

ID=84993303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211337030.2A Pending CN115662489A (zh) 2022-10-28 2022-10-28 硬盘测试方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115662489A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340076A (zh) * 2023-05-30 2023-06-27 深圳市晶存科技有限公司 硬盘性能测试方法、装置及介质
CN116524992A (zh) * 2023-06-29 2023-08-01 上海飞斯信息科技有限公司 大容量高速固态存储器容量管理***
CN117762758A (zh) * 2023-12-25 2024-03-26 中国电子技术标准化研究院 一种web***的性能效率一致性测试方法及***

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340076A (zh) * 2023-05-30 2023-06-27 深圳市晶存科技有限公司 硬盘性能测试方法、装置及介质
CN116340076B (zh) * 2023-05-30 2023-10-17 深圳市晶存科技有限公司 硬盘性能测试方法、装置及介质
CN116524992A (zh) * 2023-06-29 2023-08-01 上海飞斯信息科技有限公司 大容量高速固态存储器容量管理***
CN116524992B (zh) * 2023-06-29 2023-09-15 上海飞斯信息科技有限公司 大容量高速固态存储器容量管理***
CN117762758A (zh) * 2023-12-25 2024-03-26 中国电子技术标准化研究院 一种web***的性能效率一致性测试方法及***
CN117762758B (zh) * 2023-12-25 2024-05-14 中国电子技术标准化研究院 一种web***的性能效率一致性测试方法及***

Similar Documents

Publication Publication Date Title
CN115662489A (zh) 硬盘测试方法、装置、电子设备和存储介质
CN111324303B (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
US8135932B2 (en) Initializing of a memory area
CN116662214B (zh) 基于fio的硬盘垃圾回收方法、装置、***及介质
CN115757066A (zh) 硬盘性能测试方法、装置、设备、存储介质和程序产品
CN116088758A (zh) 优化方法、装置、计算机设备、存储介质和程序产品
CN111209257A (zh) 一种文件***碎片化的方法及装置
CN110737924A (zh) 一种数据保护的方法和设备
CN113253932B (zh) 一种分布式存储***的读写控制方法和***
CN110795304B (zh) 分布式存储***性能测试的方法及装置
CN112685275A (zh) 算法策略搜索方法、装置、电子设备及存储介质
CN113467724B (zh) 一种crc校验码存储方法、装置、设备及介质
CN115757099A (zh) 平台固件保护恢复功能自动测试方法和装置
CN111767165A (zh) 数据处理方法、装置及控制设备
CN114968753A (zh) 设备升级测试方法、介质、电子设备及测试***
CN116719682B (zh) 数据保持测试方法和***、电子设备、存储介质
CN113744789B (zh) 一种在研发阶段测试ssd稳定性的方法、***、设备和介质
CN110309038B (zh) 性能测试方法、装置、电子设备及计算机可读存储介质
KR102468381B1 (ko) 병렬 스토리지 장치를 위한 저장매체 검사 장치 및 방법과 이를 위한 컴퓨터 프로그램
CN109656580B (zh) 串口型nand flash数据清零处理方法及***
CN117033099A (zh) 一种***硬盘的压力测试方法、***、装置及存储介质
CN116820923A (zh) 应用程序测试方法、装置、计算机设备和存储介质
CN118113622A (zh) 应用于批量作业排程的检测与修复方法、装置和设备
CN118051494A (zh) 确定spark目标参数的方法、装置及电子设备
CN115964297A (zh) 测试方法、装置、计算机设备、存储介质和程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination