CN110767258B - 数据擦除命令测试方法和相关装置 - Google Patents

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

Info

Publication number
CN110767258B
CN110767258B CN201911006361.6A CN201911006361A CN110767258B CN 110767258 B CN110767258 B CN 110767258B CN 201911006361 A CN201911006361 A CN 201911006361A CN 110767258 B CN110767258 B CN 110767258B
Authority
CN
China
Prior art keywords
data
command
erasing
storage
storage areas
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.)
Active
Application number
CN201911006361.6A
Other languages
English (en)
Other versions
CN110767258A (zh
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.)
Jiangsu Xinsheng Intelligent Technology Co ltd
Original Assignee
Jiangsu Xinsheng 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 Jiangsu Xinsheng Intelligent Technology Co ltd filed Critical Jiangsu Xinsheng Intelligent Technology Co ltd
Priority to CN201911006361.6A priority Critical patent/CN110767258B/zh
Publication of CN110767258A publication Critical patent/CN110767258A/zh
Application granted granted Critical
Publication of CN110767258B publication Critical patent/CN110767258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically

Abstract

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

Description

数据擦除命令测试方法和相关装置
技术领域
本申请涉及命令测试领域,具体而言,涉及一种数据擦除命令测试方法和相关装置。
背景技术
随着科技的发展,数据安全越来越受人们的重视。在删除数据时,为了更加彻底地删除数据,目前通常采用从物理层面将数据删除的命令进行数据删除,例如,在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)、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (7)

1.一种数据擦除命令测试方法,其特征在于,包括:
将预设数据写入存储设备的多个存储区域,其中,所述多个存储区域占据所述存储设备的存储空间的一部分;
执行待测试的数据擦除命令对每个所述存储区域进行数据擦除,以将所述预设数据修改为擦除数据;
在对每个所述存储区域进行数据擦除完成后,判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果;
当每个所述存储区域中的擦除数据均符合所述数据擦除命令对应的擦除结果时,确定所述数据擦除命令在所述存储设备上正常执行;
所述将预设数据写入存储设备的多个存储区域的步骤包括:
将所述存储空间划分为顺序排列的N个存储区域;
从所述N个存储区域中选择M个存储区域,并将所述预设数据分别写入所述M个存储区域,其中,所述M个存储区域至少包括所述N个存储区域中的首个存储区域、最后一个存储区域中的一个。
2.根据权利要求1所述的方法,其特征在于,当数据擦除命令为Block Erase Sanitize块清除命令时,所述擦除结果包括第一预设数据,所述第一预设数据包括全0数据、全1数据或预设格式数据;
所述判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果的步骤包括:
判断每个所述存储区域中的擦除数据是否均符合所述第一预设数据。
3.根据权利要求1所述的方法,其特征在于,当数据擦除命令为Crypto EraseSanitize加密清除命令时,所述判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果的步骤包括:
判断每个所述存储区域中的擦除数据是否与所述预设数据一致。
4.根据权利要求1所述的方法,其特征在于,当数据擦除命令为Overwrite Sanitize覆盖写清除命令时,所述擦除结果包括第二预设数据,所述第二预设数据包括预设格式数据;
所述判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果的步骤包括:
判断每个所述存储区域中的擦除数据是否均符合所述第二预设数据。
5.一种数据擦除命令测试装置,其特征在于,包括:
写入模块,用于将预设数据写入存储设备的多个存储区域,其中,所述多个存储区域占据所述存储设备的存储空间的一部分;
擦除模块,用于执行待测试的数据擦除命令对每个所述存储区域进行数据擦除,以将所述预设数据修改为擦除数据;
判断模块,用于在对每个所述存储区域进行数据擦除完成后,判断每个所述存储区域中的擦除数据是否均符合所述数据擦除命令对应的擦除结果;
所述判断模块,还用于当每个所述存储区域中的擦除数据均符合所述数据擦除命令对应的擦除结果时,确定所述数据擦除命令在所述存储设备上正常执行;
将预设数据写入存储设备的多个存储区域包括:将所述存储空间划分为顺序排列的N个存储区域;从所述N个存储区域中选择M个存储区域,并将所述预设数据分别写入所述M个存储区域,其中,所述M个存储区域至少包括所述N个存储区域中的首个存储区域、最后一个存储区域中的一个。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的数据擦除命令测试方法。
7.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有机器可执行指令,所述处理器用于执行所述机器可执行指令以实现如权利要求1-4中任一项所述的数据擦除命令测试方法。
CN201911006361.6A 2019-10-22 2019-10-22 数据擦除命令测试方法和相关装置 Active CN110767258B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911006361.6A CN110767258B (zh) 2019-10-22 2019-10-22 数据擦除命令测试方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911006361.6A CN110767258B (zh) 2019-10-22 2019-10-22 数据擦除命令测试方法和相关装置

Publications (2)

Publication Number Publication Date
CN110767258A CN110767258A (zh) 2020-02-07
CN110767258B true CN110767258B (zh) 2022-03-22

Family

ID=69332477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911006361.6A Active CN110767258B (zh) 2019-10-22 2019-10-22 数据擦除命令测试方法和相关装置

Country Status (1)

Country Link
CN (1) CN110767258B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003431B (zh) * 2021-09-27 2024-01-12 苏州浪潮智能科技有限公司 一种Nvme固态硬盘非4k对齐Trim数据校验方法、系统及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US7978527B2 (en) * 2008-06-03 2011-07-12 Sandisk Technologies Inc. Verification process for non-volatile storage
CN101552037B (zh) * 2009-02-11 2012-12-26 北京兆易创新科技有限公司 一种非易失存储器的擦除方法及装置
JP5741427B2 (ja) * 2011-12-28 2015-07-01 富士通セミコンダクター株式会社 半導体記憶装置の試験方法及び半導体記憶装置
CN103811066B (zh) * 2012-11-15 2016-12-21 北京兆易创新科技股份有限公司 非易失存储器的擦除方法及系统
CN105095009B (zh) * 2015-06-24 2019-04-19 合肥格易集成电路有限公司 一种存储器的擦除方法和装置
KR102384959B1 (ko) * 2015-10-30 2022-04-11 에스케이하이닉스 주식회사 저장 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
CN105511981A (zh) * 2015-11-24 2016-04-20 上海斐讯数据通信技术有限公司 一种快速检测NAND Flash内存的方法
CN109935264B (zh) * 2017-12-18 2021-03-26 北京兆易创新科技股份有限公司 一种存储单元的擦除方法、装置及存储器
CN110310692A (zh) * 2019-06-28 2019-10-08 上海华虹集成电路有限责任公司 一种增强使用寿命的非易失性存储器擦除控制方法

Also Published As

Publication number Publication date
CN110767258A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
US10372619B2 (en) Data backup method, data recovery method and storage controller
JP5642198B2 (ja) 重複排除データシステムから非参照データセグメントを除去するためのシステムおよび方法
CN110399310B (zh) 一种存储空间的回收方法及装置
US10261705B2 (en) Efficient data consistency verification for flash storage
US20160004474A1 (en) Data Erasing Method and Apparatus Applied to Flash Memory
CN110673789B (zh) 固态硬盘的元数据存储管理方法、装置、设备及存储介质
EP3540587B1 (en) Disk data reading/writing method and device
CN104133641A (zh) 一种外部存储设备文件清除方法以及装置
CN112328168A (zh) 分片管理方法和分片管理装置
CN110727597B (zh) 一种基于日志排查无效代码补全用例的方法
CN110377233B (zh) Ssd读性能优化方法、装置、计算机设备及存储介质
CN109144428B (zh) 一种应用于固态硬盘的垃圾回收方法、设备及介质
CN112835528A (zh) 脏页刷新方法和装置、电子设备和存储介质
CN110767258B (zh) 数据擦除命令测试方法和相关装置
CN105095418B (zh) 一种处理写请求的方法和装置
CN103902468A (zh) 存储系统的数据清除方法和装置
CN110879764B (zh) 一种位图设置方法、装置、设备及可读存储介质
CN111078148B (zh) 基于ssd的缓存方法、装置、ssd和计算机可读存储介质
CN115328851A (zh) 一种数据保护方法、装置、设备及介质
CN114155906A (zh) 一种数据块修复方法、装置、设备及存储介质
CN112162699B (zh) 一种数据读写方法、装置、设备及计算机可读存储介质
CN113948146A (zh) 固态硬盘的测试方法、装置及电子设备
CN108959517B (zh) 文件管理方法、装置及电子设备
CN107526649B (zh) 分区修复方法、装置及电子设备
CN109002265B (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
GR01 Patent grant
GR01 Patent grant