技术新讯 > 信息存储应用技术 > 基于固态硬盘的WriteZeroes性能测试方法和装置与流程  >  正文

基于固态硬盘的WriteZeroes性能测试方法和装置与流程

  • 国知局
  • 2024-07-31 19:37:35

本发明涉及固态硬盘测试,特别是涉及一种基于固态硬盘的writezeroes性能测试方法、装置、计算机设备和存储介质。

背景技术:

1、如今ssd技术正在快速发展,随着价格下降,速度和容量继续增长。速度慢、容量小、使用寿命达到质保期的ssd难免被弃用、转售或淘汰下来。这些被弃用、转售、淘汰或正在使用的ssd往往存储有重要且敏感的数据,简单的删除文件或格式化驱动器无法确保从ssd中删除所有数据,通过某些数据恢复软件可以将数据还原。为了将所有数据彻底删除,并且无法通过软件方式复原,避免数据被盗或未经授权利用;在逻辑销毁(不损坏物理芯片)的方法上越来越多的ssd支持write zeroes命令,该命令用于将逻辑块范围设置为零,再成功完成此命令后,此范围内逻辑块的后续读取返回的值全部清除为0,直到对该lba(logical blcokaddress,逻辑块地址,以下简称lba)范围进行写操作为止。write zeroes命令所执行的动作完全不同于通过文件系统复制全0的数据传送到ssd的存储芯片上,ssd收到write zeroes命令后的逻辑块置零过程是没有实际数据传输的。不同的参数配置对write zeroes的性能影响非常大,全盘write zeroes的性能差异可达到小时级别,在支持write zeroes命令的固态硬盘上摸底并优化可提供产品性能的竞争力。

2、目前,行业内的一般做法是用nvme-cli工具测试固态硬盘是否支持write zeroes命令。由于nvme-cli对write zeroes的测试受单笔命令最大只能访问32mb的lba范围,进而导致全盘write zeroes的性能测试效率低下。所以用nvme-cli测试固态硬盘的writezeroes性能均是对某几个lba做小范围的测试,其无法代替整盘做write zeroes的性能评测且测试遍历的范围不够灵活。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种基于固态硬盘的write zeroes性能测试方法、装置、计算机设备和存储介质。

2、一种基于固态硬盘的write zeroes性能测试方法,所述方法包括:

3、对待测固态硬盘进行安全擦除;

4、通过命令读取并记录mdts并判断mdts是否在预期范围内,所述mdts为最大数据传输的大小;

5、如果mdts不在预期范围内则读取mdts参数失败,如果mdts在预期范围内则配置fio中的块大小并进行fio填盘,填盘后闲置一定时间;

6、测试全盘write zeroes在高队列深度下的性能并判断测试完成时间是否在预期时间内,如果在预期时间内则write zeroes性能符合预期并记录全盘write zeroes的带宽和时间;

7、再次进行fio填盘,填盘后闲置一定时间;

8、测试1gb范围内write zeroes在低队列深度下的性能并判断测试完成时间是否在预期时间内,如果在预期时间内则write zeroes在低队列情况下的性能符合预期并记录write zeroes以及块大小对应的带宽和时间。

9、在其中一个实施例中,在所述对待测固态硬盘进行安全擦除的步骤之前还包括:

10、通过nvme工具发送命令读取控制器数据结构;

11、判断待测固态硬盘是否支持write zeroes命令,如果不支持write zeroes命令则退出测试。

12、在其中一个实施例中,在所述判断待测固态硬盘是否支持write zeroes命令的步骤之后还包括:

13、如果支持write zeroes命令则检测write zeroes命令的功能是否正常;

14、用fio在一定的小范围内进行固定数据pattern的写入;

15、用fio搭配支持write zeroes命令的libblkio库及io_uring驱动执行小范围内的write zeroes操作;

16、读取小范围内的数据并判断读取的数据是否为全0,如果为全0则表示writezeroes功能正常,如果读出数据为写入的固定数据pattern则表示write zeroes功能失败。

17、在其中一个实施例中,在所述测试全盘write zeroes在高队列深度下的性能并判断测试完成时间是否在预期时间内的步骤之后还包括:

18、如果不在预期时间内则write zeroes性能fail,记录全盘write zeroes的带宽和时间用于进行分析和优化。

19、在其中一个实施例中,在所述测试1gb范围内write zeroes在低队列深度下的性能并判断测试完成时间是否在预期时间内的步骤之后还包括:

20、如果不在预期时间内则write zeroes在低队列配置下的性能fail,记录writezeroes以及块大小对应的带宽和时间用于进行分析和优化。

21、一种基于固态硬盘的write zeroes性能测试装置,所述装置包括:

22、擦除模块,所述擦除模块用于对待测固态硬盘进行安全擦除;

23、判断模块,所述判断模块用于通过命令读取并记录mdts并判断mdts是否在预期范围内,所述mdts为最大数据传输的大小,如果mdts不在预期范围内则读取mdts参数失败,如果mdts在预期范围内则配置fio中的块大小;

24、填盘模块,所述填盘模块用于进行fio填盘,填盘后闲置一定时间;

25、第一测试模块,所述第一测试模块用于测试全盘write zeroes在高队列深度下的性能并判断测试完成时间是否在预期时间内,如果在预期时间内则write zeroes性能符合预期并记录全盘write zeroes的带宽和时间;

26、第二测试模块,所述第二测试模块用于测试1gb范围内write zeroes在低队列深度下的性能并判断测试完成时间是否在预期时间内,如果在预期时间内则write zeroes在低队列情况下的性能符合预期并记录write zeroes及块大小对应的带宽和时间。

27、在其中一个实施例中,所述装置还包括支持判断模块,所述支持判断模块用于:

28、通过nvme工具发送命令读取控制器数据结构;

29、判断待测固态硬盘是否支持write zeroes命令,如果不支持write zeroes命令则退出测试。

30、在其中一个实施例中,所述装置还包括功能检测模块,所述功能检测模块用于:

31、如果支持write zeroes命令则检测write zeroes命令的功能是否正常;

32、用fio在一定的小范围内进行固定数据pattern的写入;

33、用fio搭配支持write zeroes命令的libblkio库及io_uring驱动执行小范围内的write zeroes操作;

34、读取小范围内的数据并判断读取的数据是否为全0,如果为全0则表示writezeroes功能正常,如果读出数据为写入的固定数据pattern则表示write zeroes功能失败。

35、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。

36、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。

37、上述基于固态硬盘的write zeroes性能测试方法、装置、计算机设备和存储介质,通过命令读取并记录mdts并判断mdts是否在预期范围内,所述mdts为最大数据传输的大小;如果mdts不在预期范围内则读取mdts参数失败,如果mdts在预期范围内则配置fio中的块大小并进行fio填盘,填盘后闲置一定时间;测试全盘write zeroes在高队列深度下的性能并判断测试完成时间是否在预期时间内,如果在预期时间内则write zeroes性能符合预期并记录全盘write zeroes的带宽和时间;再次进行fio填盘,填盘后闲置一定时间;测试1gb范围内write zeroes在低队列深度下的性能并判断测试完成时间是否在预期时间内,如果在预期时间内则write zeroes在低队列情况下的性能符合预期并记录write zeroes以及块大小对应的带宽和时间。本发明能快速高效的通过shell脚本测试固态硬盘在不同队列深度和不同lba范围的性能中存在的异常以及write zeroes处理能力,并给出客观的性能评价。

本文地址:https://www.jishuxx.com/zhuanli/20240731/183276.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。