一种Nvme固态硬盘非4k对齐Trim数据校验方法、系统及装置与流程

文档序号:28740875发布日期:2022-02-07 22:01阅读:754来源:国知局
一种Nvme固态硬盘非4k对齐Trim数据校验方法、系统及装置与流程
一种nvme固态硬盘非4k对齐trim数据校验方法、系统及装置
技术领域
1.本发明涉及计算机技术领域,更具体的说是涉及一种nvme固态硬盘非4k对齐trim数据校验方法、系统及装置。


背景技术:

2.固态硬盘(solid state drive,简称ssd)尤其是nvme ssd已经成为互联网、金融、电子商务等行业大型it系统的重要的关键的基础部件,承担起了存储、处理海量数据的任务。trim技术是一种擦除ssd数据的技术,一方面可以减少ssd的写放大,提升ssd的性能;另一方面可以擦除ssd上的数据,把ssd的现有数据初始化成0,起到保护数据安全的作用。
3.现有的测试ssdtrim后的数据校验方法,一般都是以ftl page页的单位大小即4k对齐的方式去验证的,4k对齐的情况下ssd的数据会被trim成0。
4.但在实际应用中,无论是主机上层应用下发的读写命令还是trim命令有不少是非4k对齐的。非4k对齐的情况,trim不会改变原有数据。
5.可见,当前常见的数据校验方法只是验证了4k对齐的场景,无法有效的覆盖验证非4k对齐trim的应用场景。


技术实现要素:

6.针对以上问题,本发明的目的在于提供一种nvme固态硬盘非4k对齐trim数据校验方法、系统及装置,能够实现nvme固态硬盘非4k对齐的trim数据校验,提升trim场景的测试覆盖度。
7.本发明为实现上述目的,通过以下技术方案实现:一种nvme固态硬盘非4k对齐trim数据校验方法,包括:生成随机数,模拟待测nvme固态硬盘的现实复杂度;初始化待测nvme固态硬盘;向待测nvme固态硬盘的全盘写入固定数据;设置trim命令参数,构造待测nvme固态硬盘的非4k对齐场景;验证待测nvme固态硬盘trim后的数据。
8.进一步,所述生成随机数,模拟待测nvme固态硬盘的现实复杂度包括:根据nvme协议接口命令获取待测nvme固态硬盘所有的逻辑区块数x;
9.用x除以16得到数y;
10.利用预设工具生成一个小于y的随机数z。
11.进一步,所述初始化待测nvme固态硬盘包括:
12.使用nvme低级格式化命令把待测nvme固态硬盘的逻辑区块大小设置为512b;使用nvme低级格式化命令把待测nvme固态硬盘的中的数据全部初始化为0。
13.进一步,所述向待测nvme固态硬盘的全盘写入固定数据包括:
14.向待测nvme固态硬盘的所有逻辑区块地址均写入固定数据0x12345678。
15.进一步,所述设置trim命令参数,构造待测nvme固态硬盘的非4k对齐场景具体包括:
16.设置trim的范围参数为8*z;
17.设置trim的起始逻辑区块地址是8*z-3;
18.使用设置完成的trim的范围参数和trim的起始逻辑区块地址执行nvmetrim命令。
19.进一步,所述验证待测nvme固态硬盘trim后的数据包括:
20.读取待测nvme固态硬盘的逻辑区块的数据;
21.若逻辑区块的数据为0,则逻辑区块实现了4k对齐,使用第一验证机制验证trim后的数据;
22.若逻辑区块的数据为0x12345678,则逻辑区块未实现4k对齐,使用第二验证机制验证trim后的数据。
23.进一步,所述第一验证机制包括:
24.使用读写工具,针对实现4k对齐的逻辑区块,验证起始逻辑区块地址是8*z,长度范围是8*z-8的数据,如果读出的数据全部是0,则trim后的数据正确。
25.进一步,所述第二验证机制包括:
26.使用读写工具,针对待测nvme固态硬盘中实现4k对齐的逻辑区块之外的8个逻辑区块,若每一个逻辑区块起始逻辑区块地址是8*z,长度范围是8*z-8的数据均为0x12345678,则trim后的数据正确。
27.相应的,本发明还公开了一种nvme固态硬盘非4k对齐trim数据校验系统,包括:
28.模拟单元,用于生成随机数,模拟待测nvme固态硬盘的现实复杂度;
29.硬盘初始化单元,用于初始化待测nvme固态硬盘;
30.写数据单元,用于向待测nvme固态硬盘的全盘写入固定数据;
31.设置单元,用于设置trim命令参数,构造待测nvme固态硬盘的非4k对齐场景;验证单元,用于验证待测nvme固态硬盘trim后的数据。
32.进一步,所述模拟单元具体用于:
33.根据nvme协议接口命令获取待测nvme固态硬盘所有的逻辑区块数x;
34.用x除以16得到数y;
35.利用预设工具生成一个小于y的随机数z。
36.进一步,所述硬盘初始化单元具体用于:
37.使用nvme低级格式化命令把待测nvme固态硬盘的逻辑区块大小设置为512b;
38.使用nvme低级格式化命令把待测nvme固态硬盘的中的数据全部初始化为0。
39.进一步,所述写数据单元具体用于:向待测nvme固态硬盘的所有逻辑区块地址均写入固定数据0x12345678。
40.进一步,所述设置单元具体用于:
41.设置trim的范围参数为8*z;
42.设置trim的起始逻辑区块地址是8*z-3;
43.使用设置完成的trim的范围参数和trim的起始逻辑区块地址执行nvmetrim命令。
44.进一步,所述验证单元具体用于:
45.读取待测nvme固态硬盘的逻辑区块的数据;
46.若逻辑区块的数据为0,则逻辑区块实现了4k对齐,使用第一验证机制验证trim后的数据;
47.若逻辑区块的数据为0x12345678,则逻辑区块未实现4k对齐,使用第二验证机制
验证trim后的数据。
48.相应的,本发明公开了一种nvme固态硬盘非4k对齐trim数据校验装置,包括:
49.存储器,用于存储nvme固态硬盘非4k对齐trim数据校验程序;
50.处理器,用于执行所述nvme固态硬盘非4k对齐trim数据校验程序时实现如上文任一项所述nvme固态硬盘非4k对齐trim数据校验方法的步骤。
51.相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有nvme固态硬盘非4k对齐trim数据校验程序,所述nvme固态硬盘非4k对齐trim数据校验程序被处理器执行时实现如上文任一项所述nvme固态硬盘非4k对齐trim数据校验方法的步骤。
52.对比现有技术,本发明有益效果在于:本发明提供了一种nvme固态硬盘非4k对齐trim数据校验方法、系统、装置及可读存储介质,能够提升trim场景的测试覆盖度果,还可以转化成自动化脚本,提高测试效率。本发明适用性强,除了适用于起始地址非4k对齐,长度4k对齐的场景,还适用于起始地址4k对齐,长度非4k对齐的场景,以及起始地址及长度都是非4k对齐的场景。
53.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
54.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
55.附图1是本发明具体实施方式的方法流程图。
56.附图2是本发明具体实施方式的系统结构图。
57.图中,1为模拟单元;2为硬盘初始化单元;3为写数据单元;4为设置单元;5为验证单元。
具体实施方式
58.本发明的核心是提供一种nvme固态硬盘非4k对齐trim数据校验方法,现有技术中,一般都是以ftl page页的单位大小即4k对齐的方式去验证的,4k对齐的情况下ssd的数据会被trim成0。但在实际应用中,无论是主机上层应用下发的读写命令还是trim命令有不少是非4k对齐的。非4k对齐的情况,trim不会改变原有数据。
59.而本发明提供的nvme固态硬盘非4k对齐trim数据校验方法,首先,生成随机数,模拟待测nvme固态硬盘的现实复杂度。然后,初始化待测nvme固态硬盘;向待测nvme固态硬盘的全盘写入固定数据;并进行trim命令参数设置,构造待测nvme固态硬盘的非4k对齐场景。最后,验证待测nvme固态硬盘trim后的数据。由此可见,本发明构建了ssd非4k对齐trim数据校验的流程及测试方法。
60.为了使本技术领域的人员更好地理解本发明方案,本发明的设计的技术用语进行如下说明:
61.4k对齐,指的是符合“4k扇区”定义格式化过的硬盘,并且按照“4k扇区”的规则写
入数据。因为随着硬盘容量不断扩展,使得之前定义的每个扇区512字节不再是那么的合理,于是将每个扇区512字节改为每个扇区4096个字节,也就是现在常说的“4k扇区”。随着ntfs成为了标准的硬盘文件系统,其文件系统的默认分配单元大小也是4096字节,为了使簇与扇区相对应,,即使物理硬盘分区与计算机使用的逻辑分区对齐,保证硬盘读写效率,所以有了“4k对齐”概念。
62.nvme,即nvm express(nvme),或称非易失性内存主机控制器接口规范(non volatile memory host controller interface specification,缩写:nvmhcis),是一个逻辑设备接口规范。它是与ahci类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过pci express(pcie)总线附加的非易失性存储器介质(例如采用闪存的固态硬盘驱动器),虽然理论上不一定要求pcie总线协议。
63.下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
64.实施例一:
65.如图1所示,本实施例提供了一种nvme固态硬盘非4k对齐trim数据校验方法,包括如下步骤:
66.s1:生成随机数,模拟待测nvme固态硬盘的现实复杂度。
67.首先,根据nvme协议接口命令获取待测nvme固态硬盘所有的逻辑区块数x;然后,用x除以16得到数y;最后,利用预设工具生成一个小于y的随机数z。
68.s2:初始化待测nvme固态硬盘。
69.本步骤具体为:使用nvme低级格式化命令把待测nvme固态硬盘的逻辑区块大小设置为512b;同时,使用nvme低级格式化命令把待测nvme固态硬盘的中的数据全部初始化为0。
70.s3:向待测nvme固态硬盘的全盘写入固定数据。
71.本步骤具体为:向待测nvme固态硬盘的所有逻辑区块地址均写入固定数据0x12345678。
72.s4:设置trim命令参数,构造待测nvme固态硬盘的非4k对齐场景。
73.首先,设置trim的范围参数为8*z;然后,设置trim的起始逻辑区块地址是8*z-3;最后,使用设置完成的trim的范围参数和trim的起始逻辑区块地址执行nvmetrim命令。
74.s5:验证待测nvme固态硬盘trim后的数据。
75.因为步骤s3构造的trim范围既包含4k对齐部分也包含4k非对齐部分,所以需要分两类进行验证。
76.4k对齐部分可以trim成功,数据被初始化为0;只有起始地址及长度都4k对齐时,才算4k对齐;任一条件不满足均是非4k对齐。而4k非对齐部分trim失败后,数据仍然是0x12345678。
77.具体来说:
78.首先,读取待测nvme固态硬盘的逻辑区块的数据;若逻辑区块的数据为0,则逻辑区块实现了4k对齐,使用第一验证机制验证trim后的数据;若逻辑区块的数据为
0x12345678,则逻辑区块未实现4k对齐,使用第二验证机制验证trim后的数据。
79.其中,第一验证机制包括:使用读写工具,针对实现4k对齐的逻辑区块,验证起始逻辑区块地址是8*z,长度范围是8*z-8的数据,如果读出的数据全部是0,则trim后的数据正确。也就是说读出此范围内的数据全部是0,说明4k对齐trim后的数据正确;
80.其中,第二验证机制包括:使用读写工具,针对待测nvme固态硬盘中实现4k对齐的逻辑区块之外的8个逻辑区块,若每一个逻辑区块起始逻辑区块地址是8*z,长度范围是8*z-8的数据均为0x12345678,则trim后的数据正确。第二验证机制针对非4k对齐部分,非4k对齐部分的验证范围为4k对齐范围之外的8个lba,读出此范围的数据若全部仍然是0x12345678,说明4k非对齐trim的数据正确。
81.本实施例提供了一种nvme固态硬盘非4k对齐trim数据校验方法,能够提升trim场景的测试覆盖度果,还可以转化成自动化脚本,提高测试效率。本方法适用性强,除了适用于起始地址非4k对齐,长度4k对齐的场景,还适用于起始地址4k对齐,长度非4k对齐的场景,以及起始地址及长度都是非4k对齐的场景。
82.实施例二:
83.基于实施例一,如图2所示,本发明还公开了一种nvme固态硬盘非4k对齐trim数据校验系统,包括:模拟单元1、硬盘初始化单元2、写数据单元3、设置单元4和验证单元5。
84.模拟单元1,用于生成随机数,模拟待测nvme固态硬盘的现实复杂度。模拟单元1具体用于:根据nvme协议接口命令获取待测nvme固态硬盘所有的逻辑区块数x;用x除以16得到数y;利用预设工具生成一个小于y的随机数z。
85.硬盘初始化单元2,用于初始化待测nvme固态硬盘。硬盘初始化单元2具体用于:使用nvme低级格式化命令把待测nvme固态硬盘的逻辑区块大小设置为512b;使用nvme低级格式化命令把待测nvme固态硬盘的中的数据全部初始化为0。
86.写数据单元3,用于向待测nvme固态硬盘的全盘写入固定数据。写数据单元3具体用于:向待测nvme固态硬盘的所有逻辑区块地址均写入固定数据0x12345678。
87.设置单元4,用于设置trim命令参数,构造待测nvme固态硬盘的非4k对齐场景。设置单元4具体用于:设置trim的范围参数为8*z;设置trim的起始逻辑区块地址是8*z-3;使用设置完成的trim的范围参数和trim的起始逻辑区块地址执行nvmetrim命令。
88.验证单元5,用于验证待测nvme固态硬盘trim后的数据。验证单元5具体用于:读取待测nvme固态硬盘的逻辑区块的数据;若逻辑区块的数据为0,则逻辑区块实现了4k对齐,使用第一验证机制验证trim后的数据;若逻辑区块的数据为0x12345678,则逻辑区块未实现4k对齐,使用第二验证机制验证trim后的数据。
89.第一验证机制包括:使用读写工具,针对实现4k对齐的逻辑区块,验证起始逻辑区块地址是8*z,长度范围是8*z-8的数据,如果读出的数据全部是0,则trim后的数据正确。
90.第二验证机制包括:使用读写工具,针对待测nvme固态硬盘中实现4k对齐的逻辑区块之外的8个逻辑区块,若每一个逻辑区块起始逻辑区块地址是8*z,长度范围是8*z-8的数据均为0x12345678,则trim后的数据正确。
91.本实施例提供了一种nvme固态硬盘非4k对齐trim数据校验系统,能够提升trim场景的测试覆盖度果,还可以转化成自动化脚本,提高测试效率。本系统适用性强,除了适用于起始地址非4k对齐,长度4k对齐的场景,还适用于起始地址4k对齐,长度非4k对齐的场
景,以及起始地址及长度都是非4k对齐的场景。
92.实施例三:
93.本实施例公开了一种nvme固态硬盘非4k对齐trim数据校验装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的nvme固态硬盘非4k对齐trim数据校验程序时实现以下步骤:
94.1、生成随机数,模拟待测nvme固态硬盘的现实复杂度。
95.2、初始化待测nvme固态硬盘。
96.3、向待测nvme固态硬盘的全盘写入固定数据。
97.4、设置trim命令参数,构造待测nvme固态硬盘的非4k对齐场景。
98.5、验证待测nvme固态硬盘trim后的数据。
99.进一步的,本实施例中的nvme固态硬盘非4k对齐trim数据校验装置,还可以包括:
100.输入接口,用于获取外界导入的nvme固态硬盘非4k对齐trim数据校验程序,并将获取到的nvme固态硬盘非4k对齐trim数据校验程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
101.输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于usb接口、串行接口等。
102.通讯单元,用于在nvme固态硬盘非4k对齐trim数据校验装置和外部服务器之间建立远程通讯连接,以便于nvme固态硬盘非4k对齐trim数据校验装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
103.键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
104.显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
105.鼠标,可以用于协助用户输入数据并简化用户的操作。
106.本实施例提供了一种nvme固态硬盘非4k对齐trim数据校验装置,能够提升trim场景的测试覆盖度果,还可以转化成自动化脚本,提高测试效率。本装置用性强,除了适用于起始地址非4k对齐,长度4k对齐的场景,还适用于起始地址4k对齐,长度非4k对齐的场景,以及起始地址及长度都是非4k对齐的场景。
107.实施例四:
108.本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有nvme固态硬盘非4k对齐trim数据校验程序,所述nvme固态硬盘非4k对齐trim数据校验程序被处理器执行时实现以下步骤:
109.1、生成随机数,模拟待测nvme固态硬盘的现实复杂度。
110.2、初始化待测nvme固态硬盘。
111.3、向待测nvme固态硬盘的全盘写入固定数据。
112.4、设置trim命令参数,构造待测nvme固态硬盘的非4k对齐场景。
113.5、验证待测nvme固态硬盘trim后的数据。
114.综上所述,本发明能够实现nvme固态硬盘非4k对齐的trim数据校验,提升trim场景的测试覆盖度。
115.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
116.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
117.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
118.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
119.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
120.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
121.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
122.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
123.以上对本发明所提供的nvme固态硬盘非4k对齐trim数据校验方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1