数据擦除命令测试方法和相关装置

文档序号:1506878 发布日期:2020-02-07 浏览:17次 >En<

阅读说明:本技术 数据擦除命令测试方法和相关装置 (Data erasure command test method and related device ) 是由 杨明娟 于 2019-10-22 设计创作,主要内容包括:本申请的实施例提供了一种数据擦除命令测试方法和相关装置,涉及命令测试领域。方法包括:将预设数据写入存储设备的多个存储区域,其中,多个存储区域占据存储设备的存储空间的一部分;执行待测试的数据擦除命令对每个存储区域进行数据擦除;在对每个存储区域进行数据擦除完成后,当每个存储区域中的擦除数据均符合数据擦除命令对应的擦除结果时,确定数据擦除命令在存储设备上正常执行。由于多个存储区域占据存储设备的存储空间的一部分,在存储设备上执行待测试的数据擦除命令能够更快速地完成数据擦除,故而能够减少从物理层面将数据删除的命令的测试时间,提高测试效率,并减小对存储设备的磨损。(The embodiment of the application provides a data erasure command testing method and a related device, and relates to the field of command testing. The method comprises the following steps: writing preset data into a plurality of storage areas of a storage device, wherein the plurality of storage areas occupy a part of a storage space of the storage device; executing a data erasing command to be tested to erase data in each storage area; after the data erasing of each storage area is completed, when the erasing data in each storage area all accord with the erasing result corresponding to the data erasing command, the data erasing command is determined to be normally executed on the storage device. Because the plurality of storage areas occupy a part of the storage space of the storage device, the data erasing can be completed more quickly by executing the data erasing command to be tested on the storage device, so that the test time of the command for deleting data from a physical layer can be reduced, the test efficiency is improved, and the abrasion to the storage device is reduced.)

数据擦除命令测试方法和相关装置

技术领域

本申请涉及命令测试领域,具体而言,涉及一种数据擦除命令测试方法和相关装置。

背景技术

随着科技的发展,数据安全越来越受人们的重视。在删除数据时,为了更加彻底地删除数据,目前通常采用从物理层面将数据删除的命令进行数据删除,例如,在NVMe(Non-Volatile Memory express,NVMe协议)接口标准中,Sanitize(擦除)命令用于擦除存储设备中的数据,并且可以从物理层面彻底将数据删除,例如用户数据、Cache(高速缓冲存储器)中缓存的数据、元数据(Metadata)等。

然而,对于大容量的存储设备,测试对该存储设备执行从物理层面将数据删除的命令是否成功时,现有的测试方法存在着测试时间长,测试效率低下,并且会对存储设备造成较大磨损的问题。因此,如何减少从物理层面将数据删除的命令的测试时间,提高测试效率,减小对存储设备的磨损成为亟待解决的问题。

发明内容

本申请的目的包括,例如,提供了一种数据擦除命令测试方法和相关装置,其能够减少从物理层面将数据删除的命令的测试时间,提高测试效率,并减小对存储设备的磨损。

本申请的实施例可以这样实现:

第一方面,本申请实施例提供一种数据擦除命令测试方法,包括:将预设数据写入存储设备的多个存储区域,其中,所述多个存储区域占据所述存储设备的存储空间的一部分;执行待测试的数据擦除命令对每个所述存储区域进行数据擦除,以将所述预设数据修改为擦除数据;在对每个所述存储区域进行数据擦除完成后,判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果;当每个所述存储区域中的擦除数据均符合所述数据擦除命令对应的擦除结果时,确定所述数据擦除命令在所述存储设备上正常执行。

在可选的实施方式中,所述将预设数据写入存储设备的多个存储区域的步骤包括:将所述存储空间划分为N个存储区域;从所述N个存储区域中选择M个存储区域,并将所述预设数据分别写入所述M个存储区域。

在可选的实施方式中,所述将预设数据写入存储设备的多个存储区域的步骤包括:将所述存储空间划分为顺序排列的N个存储区域;从所述N个存储区域中选择M个存储区域,并将所述预设数据分别写入所述M个存储区域,其中,所述M个存储区域至少包括所述N个存储区域中的首个存储区域、最后一个存储区域中的一个。

在可选的实施方式中,当数据擦除命令为Block Erase Sanitize块清除命令时,所述擦除结果包括第一预设数据,所述第一预设数据包括全0数据、全1数据或预设格式数据;所述判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果的步骤包括:判断每个所述存储区域中的擦除数据是否均符合所述第一预设数据。

在可选的实施方式中,当数据擦除命令为Crypto Erase Sanitize加密清除命令时,所述判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果的步骤包括:判断每个所述存储区域中的擦除数据是否与所述预设数据一致。

在可选的实施方式中,当数据擦除命令为Overwrite Sanitize覆盖写清除命令时,所述擦除结果包括第二预设数据,所述第二预设数据包括预设格式数据;所述判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果的步骤包括:判断每个所述存储区域中的擦除数据是否均符合所述第二预设数据。

第二方面,本申请实施例提供一种数据擦除命令测试装置,包括:写入模块,用于将预设数据写入存储设备的多个存储区域,其中,所述多个存储区域占据所述存储设备的存储空间的一部分;擦除模块,用于执行待测试的数据擦除命令对每个所述存储区域进行数据擦除,以将所述预设数据修改为擦除数据;判断模块,用于在对每个所述存储区域进行数据擦除完成后,判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果;所述判断模块,还用于当每个所述存储区域中的擦除数据均符合所述数据擦除命令对应的擦除结果时,确定所述数据擦除命令在所述存储设备上正常执行。

在可选的实施方式中,所述写入模块用于将所述存储空间划分为N个存储区域;所述写入模块还用于从所述N个存储区域中选择M个存储区域,并将所述预设数据分别写入所述M个存储区域。

第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据擦除命令测试方法。

第四方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有机器可执行指令,所述处理器用于执行所述机器可执行指令以实现上述的数据擦除命令测试方法。

本申请实施例提供的数据擦除命令测试方法和相关装置,该方法包括:将预设数据写入存储设备的多个存储区域,其中,多个存储区域占据存储设备的存储空间的一部分;执行待测试的数据擦除命令对每个存储区域进行数据擦除,以将预设数据修改为擦除数据;在对每个存储区域进行数据擦除完成后,判断每个存储区域中的擦除数据是否均符合数据擦除命令对应的擦除结果;当每个存储区域中的擦除数据均符合数据擦除命令对应的擦除结果时,确定数据擦除命令在存储设备上正常执行。由于多个存储区域占据存储设备的存储空间的一部分,在存储设备上执行待测试的数据擦除命令能够更快速地完成数据擦除,故而能够减少从物理层面将数据删除的命令的测试时间,提高测试效率,并减小对存储设备的磨损。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的数据擦除命令测试方法的一种流程示意图。

图2为存储设备的多个存储区域的一种分布示意图。

图3示出了本申请实施例提供的数据擦除命令测试方法的另一种流程图。

图4为存储设备的多个存储区域的另一种分布示意图。

图5示出了本申请实施例提供的数据擦除命令测试方法的另一种流程图。

图6示出了本申请实施例提供的Sanitize命令的测试方法的一种流程图。

图7示出了本申请实施例提供的一种数据擦除命令测试装置的功能模块图。

图8示出了本申请实施例所提供的电子设备的结构框图。

图标:200-数据擦除命令测试装置;210-写入模块;220-擦除模块;230-判断模块;300-电子设备;310-存储器;320-通信接口;330-处理器;340-总线。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。

在实现本申请实施例的技术方案的过程中,本申请发明人发现:

随着科技的发展,数据安全越来越受人们的重视。在删除数据时,为了更加彻底地删除数据,目前通常采用从物理层面将数据删除的命令进行数据删除。例如,在NVMe接口标准中,Sanitize命令和Secure Erase命令均可以用来删除数据,其中,Secure Erase命令只是擦除FTL表项,Sanitize命令不仅可以擦除FTL表项,还可以从物理层面彻底将数据删除,从而Sanitize命令相较于Secure Erase命令能够更加彻底删除数据。

Sanitize命令包含三种类型,分别为Block Erase Sanitize(块清除)命令、Crypto Erase Sanitize(加密清除)命令和Overwrite Sanitize(覆盖写清除)命令。BlockErase Sanitize命令是从Block(块)级别去擦除存储设备的盘片的数据,以删除数据;Crypto Erase Sanitize命令是通过擦除安全密钥的方式销毁数据,以删除数据;Overwrite Sanitize命令是通过一次或多次的覆盖写的方式改变物理数据的内容,以删除数据,从而Sanitize命令可以从物理层面彻底将数据删除。

由于Sanitize命令会从物理层面彻底将数据删除,删除数据的时间比普通的数据删除命令花费的时间长很多。并且,Sanitize命令的清除时间还与存储设备的盘片的容量大小有关,容量越大盘片,Sanitize命令的清除时间越长。目前的Sanitize命令的测试方法通常采用通过在存储设备的全盘写满数据,然后对该存储设备执行Sanitize命令,等到Sanitize命令完成后,再读全盘的数据确认Sanitize命令是否正常执行。故而对于大容量的盘片,如果采用现有的Sanitize命令的测试方法,存在着测试时间长,对存储设备的磨损较大的缺点,并且与Sanitize命令相同,目前的从物理层面将数据删除的命令的测试同样存在着测试时间长,测试效率低下,对存储设备的磨损较大的缺点。

因此,为了改善上述缺陷,本申请实施例提出一种数据擦除命令测试方法和相关装置,其能够减少从物理层面将数据删除的命令的测试时间,提高测试效率,并减小对存储设备的磨损。需要说明的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。

请参照图1,图1示出了本申请实施例提供的数据擦除命令测试方法的一种流程示意图。

S100,将预设数据写入存储设备的多个存储区域,其中,多个存储区域占据存储设备的存储空间的一部分。

在本实施例中,存储设备可以是NAND(NAND flash memory)、Nor闪存(NORFlash)、固态硬盘(Solid State Disk,SSD)等存储器。如图2所示,存储设备的存储空间大小为1TB(Tera byte,万亿字节),可以从这1TB的存储空间中划分出1号、2号、3号、4号、5号、6号存储区域作为上述的多个存储区域,然后将预设数据写入该多个存储区域的每个存储区域中。需要说明的是,上述的多个存储区域的大小可以均相同或者不同,并且,上述的多个存储区域实际仅占据存储设备的存储空间的一部分。也即是说,从存储设备的存储空间中确定多个存储区域可以是随机确定或者是根据预设规则确定的,本申请实施例对于多个存储区域的确定方式不做限定。

S110,执行待测试的数据擦除命令对每个存储区域进行数据擦除,以将预设数据修改为擦除数据。

在本实施例中,待测试的数据擦除命令在删除存储区域的数据时,实际是通过将存储区域中原始的数据修改为擦除数据,即执行待测试的数据擦除命令对每个存储区域进行数据擦除,可以将每个存储区域中的预设数据均修改为擦除数据,其中,对于不同的待测试的数据擦除命令,上述的擦除数据可以不同。待测试的数据擦除命令即为从物理层面将数据删除的命令,可以是SATA(Serial Advanced Technology Attachment,串行高级技术附件)接口标准中的Sanitize命令,或者是NVMe接口标准中的Sanitize命令、Trim命令、deallocate命令等,因此本申请实施例对于待测试的数据擦除命令(即从物理层面将数据删除的命令)的类型不作限定。

可以理解的是,由于上述的多个存储区域实际仅占据存储设备的存储空间的一部分,相较于对存储设备的全部存储空间执行待测试的数据擦除命令,对上述的多个存储区域执行待测试的数据擦除命令所花的时间更少,且同样能够反映出待测试的数据擦除命令是否能够在存储设备上正常执行。

S120,在对每个存储区域进行数据擦除完成后,判断每个存储区域中的擦除数据是否均符合数据擦除命令对应的擦除结果;当每个存储区域中的擦除数据均符合数据擦除命令对应的擦除结果时,执行S130;当每个存储区域中的擦除数据均符合数据擦除命令对应的擦除结果时,执行S140。

在本实施例中,待测试的数据擦除命令对应的擦除结果即为上述的擦除数据,也即是说在对每个存储区域进行数据擦除完成后,实际判断的是每个存储区域中的数据是否均为擦除数据;当每个存储区域中的数据均为擦除数据时,执行S130;当存在存储区域中的数据不为擦除数据时,执行S140。

S130,确定数据擦除命令在存储设备上正常执行。

S140,确定数据擦除命令在存储设备上执行异常。

由于上述的多个存储区域实际仅占据存储设备的存储空间的一部分,相较于对存储设备的全部存储空间执行待测试的数据擦除命令,对上述的多个存储区域执行待测试的数据擦除命令所花的时间更少,对存储设备的磨损更小,故而本申请实施例提供的数据擦除命令测试方法能够减少从物理层面将数据删除的命令的测试时间,提高测试效率,并减小对存储设备的磨损。

进一步的,在图2的基础上,下面给出一种完整方案可能的实现方式,具体请参照图3,图3示出了本申请实施例提供的数据擦除命令测试方法的另一种流程图。需要说明的是,本发明实施例提供的数据擦除命令测试方法并不以图3以及以下的具体顺序为限制,应当理解,在其它实施例中,本发明实施例提供的数据擦除命令测试方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图3所示的具体流程进行详细阐述。

S100具体可以包括:S101-A,将存储空间划分为N个存储区域。

具体的,参照图4,可以将该存储设备的存储空间划分为64个存储区域。

S102-A,从N个存储区域中选择M个存储区域,并将预设数据分别写入M个存储区域。

继续参照图4,可以从划分出的64个存储区域中任意选择6个存储区域(例如,10号、11号、31号、33号、39号、50号存储区域),然后将预设数据分别写入该6个存储区域中。需要说明的是,本申请实施例对于上述N和M的具体数量不做限定,仅需确保M小于N即可。

在另一种可能的实施例中,请参照图5,S100具体可以包括:S101-B,将存储空间划分为顺序排列的N个存储区域。

具体的,再参照图4,可以将该存储设备的存储空间划分为64个顺序排列的存储区域,其中,该64个顺序排列的存储区域可以是按物理地址顺序排列的。

S102-B,从N个存储区域中选择M个存储区域,并将预设数据分别写入M个存储区域,其中,M个存储区域至少包括N个存储区域中的首个存储区域、最后一个存储区域中的一个。

继续参照图4,N个存储区域中的首个存储区域为1号存储区域,最后一个存储区域为64号存储区域,从而,可以从该64个存储区域中选择1号存储区域、64号存储区域中至少选择一个存储区域,然后再从剩下的存储区域中任意选择4个存储区域,然后将预设数据分别写入这6个存储区域中。

可以理解的是,S102-B实际解决的是确保能够从存储设备的存储空间中选取位于起始的存储区域以及位于结尾的存储区域,确保选取到边界区域,以提高数据擦除命令测试方法的准确度。

进一步的,当数据擦除命令为Block Erase Sanitize命令时,擦除结果包括第一预设数据,第一预设数据包括全0数据、全1数据或预设格式数据,对于如何判断每个存储区域中的擦除数据是否均符合数据擦除命令对应的擦除结果,S120具体可以包括:判断每个存储区域中的擦除数据是否均符合第一预设数据;当每个存储区域中的擦除数据均符合第一预设数据时,执行S130;当存在存储区域中的擦除数据不符合第一预设数据时,执行S140。其中,预设格式数据为即为自定义格式数据,例如,“012345678…”、“45678901…”或者“01010101…”等格式的数据。

当数据擦除命令为Crypto Erase Sanitize命令时,对于如何判断每个存储区域中的擦除数据是否均符合数据擦除命令对应的擦除结果,S120具体可以包括:判断每个存储区域中的擦除数据是否与预设数据一致;当每个存储区域中的擦除数据均与预设数据一致时,执行S130;当存在存储区域中的擦除数据不与预设数据一致时,执行S140。

当数据擦除命令为Overwrite Sanitize命令时,擦除结果包括第二预设数据,第二预设数据包括预设格式数据。对于如何判断每个存储区域中的擦除数据是否均符合数据擦除命令对应的擦除结果,S120具体可以包括:判断每个存储区域中的擦除数据是否均符合第二预设数据;当每个存储区域中的擦除数据均符合第二预设数据时,执行S130;当存在存储区域中的擦除数据不符合第二预设数据时,执行S140。其中,预设格式数据为即为用户自定义格式的数据,例如,“13579246…”、“147258…”或者“0101010…”等格式的数据。

进一步的,为了确保在写入预设数据之前,多个存储区域中没有数据,提高预设数据的写入速度,在S100之前,方法还包括:对存储设备的存储空间进行格式化。

需要说明的是,上述的预设数据可以是随机数据。

下面将以Sanitize命令的实际测试为例,对本申请实施例所提供的数据擦除命令测试方法做进一步解释。其中,存储设备为支持NVMe接口标准的存储设备(以下简称为NVMe设备)。

请参照图6,步骤1,检测NVMe设备是否支持Sanitize命令。例如,在Linux环境下可以通过“fdisk-l”命令找到NVMe设备。然后通过“Identify”命令和“Sanicap”标志位检测NVMe设备是否支持Sanitize命令。如果“Sanicap”的标志位的值为“0”,则返回不支持Sanitize命令,结束本次Sanitize命令的测试;如果Sanicap的标志位的值不为“0”,其中“Sanicap”的标志位包括“bit0”、“bit1”和“bit2”,则执行步骤2。

步骤2,检测NVMe设备支持Sanitize命令的类型。具体的,“bit1=1”表示NVMe设备支持Block Erase Sanitize命令,“bit0=1”表示NVMe设备支持Crypto Erase Sanitize命令,“bit2=1”表示NVMe设备支持Overwrite Sanitize命令,相应的,当“bit1=0”、“bit0=0”或者“bit2=0”时,则表示NVMe设备不支持对应的命令。当NVMe设备支持Block EraseSanitize命令时,则执行步骤3;当NVMe设备支持Crypto Erase Sanitize命令时,则执行步骤4;当NVMe设备支持Overwrite Sanitize命令时,则执行步骤5。

步骤3,先将NVMe设备格式化,将NVMe设备的存储空间划分为N个存储区域,挑选其中的M个存储区域写入预设数据(例如写入随机数据)。具体的,可以通过“vdbench工具”向NVMe设备下发写命令,“vdbench工具”在一个脚本中可以指定在目标设备的不同地址范围内写入数据。在对M个存储区域写入预设数据结束后,还可以校验M个存储区域的预设数据的数据一致性,以保证数据的写入正确性。

在对M个存储区域写入预设数据结束后,执行Block Erase Sanitize命令对M个存储区域的每个存储区域进行数据擦除,以将预设数据修改为擦除数据。

由于在执行Block Erase Sanitize命令对M个存储区域的每个存储区域进行数据擦除时,不能确定Block Erase Sanitize命令是否执行完成,可以通过“Get log page”命令确认当前的Block Erase Sanitize命令是否完成。具体的,执行“Get log page”命令,如果检查到“Sanitize Status”的“bit2:0=1”,表示Block Erase Sanitize命令正在进行,则等待预设时间后再次执行“Get log page”命令,直至“Sanitize Status”的“bit2:0=2”。当“Sanitize Status”的“bit2:0=2”时,表示Block Erase Sanitize命令已经完成。

在Block Erase Sanitize命令执行完成后,读取M个存储区域中的擦除数据。具体的,可以通过“dd工具”将M个存储区域中的擦除数据读取出来,如果M个存储区域的每个存储区域中的数据均为全0数据、全1数据或“Vendor数据”(即上述的预设格式数据),则表示Block Erase Sanitize命令在NVMe设备上正常执行,否则表示Block Erase Sanitize命令在NVMe设备上执行异常。

步骤4,先将NVMe设备格式化,将NVMe设备的存储空间划分为N个存储区域,挑选其中的M个存储区域写入预设数据(例如写入随机数据)。具体的,可以通过“vdbench工具”向NVMe设备下发写命令,“vdbench工具”在一个脚本中可以指定在目标设备的不同地址范围内写入数据。在对M个存储区域写入预设数据结束后,还可以校验M个存储区域的预设数据的数据一致性,以保证数据的写入正确性。

在对M个存储区域写入预设数据结束后,执行Crypto Erase Sanitize命令对M个存储区域的每个存储区域进行数据擦除,以将预设数据修改为擦除数据。

由于在执行Crypto Erase Sanitize命令对M个存储区域的每个存储区域进行数据擦除时,不能确定Crypto Erase Sanitize命令是否执行完成,可以通过“Get log page”命令确认当前的Crypto Erase Sanitize命令是否完成。具体的,执行“Get log page”命令,如果检查到“Sanitize Status”的“bit2:0=1”,表示Crypto Erase Sanitize命令正在进行,则等待预设时间后再次执行“Get log page”命令,直至“Sanitize Status”的“bit2:0=2”。当“Sanitize Status”的“bit2:0=2”时,表示Crypto Erase Sanitize命令已经完成。

在Crypto Erase Sanitize命令执行完成后,判断M个存储区域中的每个存储区域的擦除数据与预设数据是否一致,当每个存储区域的擦除数据与预设数据均一致时,则表示Crypto Erase Sanitize命令在NVMe设备上正常执行,否则表示Crypto Erase Sanitize命令在NVMe设备上执行异常。

步骤5,先将NVMe设备格式化,将NVMe设备的存储空间划分为N个存储区域,挑选其中的M个存储区域写入预设数据(例如写入随机数据)。具体的,可以通过“vdbench工具”向NVMe设备下发写命令,“vdbench工具”在一个脚本中可以指定在目标设备的不同地址范围内写入数据。在对M个存储区域写入预设数据结束后,还可以校验M个存储区域的预设数据的数据一致性,以保证数据的写入正确性。

在对M个存储区域写入预设数据结束后,设定Overwrite Sanitize命令的“Overwrite Pattern”(即擦除数据),执行Overwrite Sanitize命令对M个存储区域的每个存储区域进行数据擦除,以将预设数据修改为“Overwrite Pattern”。

由于在执行Overwrite Sanitize命令对M个存储区域的每个存储区域进行数据擦除时,不能确定Overwrite Sanitize命令是否执行完成,可以通过“Get log page”命令确认当前的Overwrite Sanitize命令是否完成。具体的,执行“Get log page”命令,如果检查到“Sanitize Status”的“bit2:0=1”,表示Overwrite Sanitize命令正在进行,则等待预设时间后再次执行“Get log page”命令,直至“Sanitize Status”的“bit2:0=2”。当“Sanitize Status”的“bit2:0=2”时,表示Overwrite Sanitize命令已经完成。

在Overwrite Sanitize命令执行完成后,读取M个存储区域中的擦除数据,判断M个存储区域中的每个存储区域的擦除数据与“Overwrite Pattern”是否一致,当每个存储区域的擦除数据与“Overwrite Pattern”均一致时,则表示Overwrite Sanitize命令在NVMe设备上正常执行,否则表示Overwrite Sanitize命令在NVMe设备上执行异常。

步骤6,Sanitize命令在NVMe设备上正常执行。也即是说,当步骤3、4、5均成功后,才能确定Sanitize命令在NVMe设备上正常执行。

步骤7,Sanitize命令在NVMe设备上执行异常。也即是说,当步骤3、4、5中存在任一个步骤执行失败,则确定Sanitize命令在NVMe设备上执行异常。

进一步的,在执行步骤1-步骤7的过程中,还可以收集步骤1-步骤7中的执行信息,并生成日志文件。

需要说明的是,步骤3至步骤5的执行顺序既可以是按步骤3、4、5的顺序执行,也可以是按步骤3、5、4的顺序执行,或者同时执行,本申请实施例对此不做限定。

为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种数据擦除命令测试装置的实现方式,请参阅图7,图7示出了本申请实施例提供的一种数据擦除命令测试装置200的功能模块图。需要说明的是,本实施例所提供的数据擦除命令测试装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该数据擦除命令测试装置200包括:写入模块210、擦除模块220、判断模块230。

可选地,上述模块可以软件或固件(Firmware)的形式存储于存储器中或固化于电子设备的操作系统(Operating System,OS)中,并可由电子设备中的处理器执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器中。

写入模块210用于将预设数据写入存储设备的多个存储区域,其中,多个存储区域占据存储设备的存储空间的一部分。

可以理解的是,写入模块210可以执行上述的S100。

擦除模块220用于执行待测试的数据擦除命令对每个存储区域进行数据擦除,以将预设数据修改为擦除数据。

可以理解的是,擦除模块220可以执行上述的S110。

判断模块230用于在对每个存储区域进行数据擦除完成后,判断每个存储区域中的擦除数据是否均符合数据擦除命令对应的擦除结果。

可以理解的是,判断模块230可以执行上述的S120。

判断模块还用于当每个存储区域中的擦除数据均符合数据擦除命令对应的擦除结果时,确定数据擦除命令在存储设备上正常执行;当存在存储区域中的数据不为擦除数据时,确定数据擦除命令在存储设备上执行异常。

可以理解的是,判断模块230可以执行上述的S130、S140。

在本实施例中,写入模块210具体可以用于将存储空间划分为N个存储区域;以及用于从N个存储区域中选择M个存储区域,并将预设数据分别写入M个存储区域。

可以理解的是,写入模块210可以执行上述的S101-A、S102-A。

可选地,写入模块210具体可以用于将存储空间划分为顺序排列的N个存储区域;以及用于从N个存储区域中选择M个存储区域,并将预设数据分别写入M个存储区域,其中,M个存储区域至少包括N个存储区域中的首个存储区域、最后一个存储区域中的一个。

可以理解的是,写入模块210可以执行上述的S101-B、S102-B。

请参照图8,图8示出了本申请实施例所提供的电子设备的结构框图。电子设备300包括存储器310、通信接口320、处理器330和总线340,所述存储器310、通信接口320和处理器330通过总线340连接,处理器330用于执行存储器310中存储的可执行模块,例如计算机程序。

其中,存储器310可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口320(可以是有线或者无线)实现该电子设备300与其他终端设备之间的通信连接。

总线340可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器310用于存储程序,处理器330在接收到执行指令后,执行所述程序以实现本发明上述实施例揭示的数据擦除命令测试方法。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器330执行时实现上述实施例揭示的数据擦除命令测试方法。

应当理解的是,图8所示的结构仅为电子设备300的结构示意图,电子设备300还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。图8中所示的各组件可以采用硬件、软件或其组合实现。

综上所述,本申请实施例提供的数据擦除命令测试方法和相关装置,该方法包括:将预设数据写入存储设备的多个存储区域,其中,多个存储区域占据存储设备的存储空间的一部分;执行待测试的数据擦除命令对每个存储区域进行数据擦除,以将预设数据修改为擦除数据;在对每个存储区域进行数据擦除完成后,判断每个存储区域中的擦除数据是否均符合数据擦除命令对应的擦除结果;当每个存储区域中的擦除数据均符合数据擦除命令对应的擦除结果时,确定数据擦除命令在存储设备上正常执行。由于多个存储区域占据存储设备的存储空间的一部分,在存储设备上执行待测试的数据擦除命令能够更快速地完成数据擦除,故而能够减少从物理层面将数据删除的命令的测试时间,并减小对存储设备的磨损。

需要说明的是,本申请实施例提供的方法实施例并不以流程图中的具体顺序为限制,应当理解,在其它实施例中,本申请实施例提供的方法实施例其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。

在本申请所提供的实施例中,应该理解到,所揭露的方法和装置,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种闪存存储装置掉电压力测试方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!