CN117316252A - 一种分布式zns ssd异常断电校验数据一致性的快速测试方法 - Google Patents

一种分布式zns ssd异常断电校验数据一致性的快速测试方法 Download PDF

Info

Publication number
CN117316252A
CN117316252A CN202311307701.5A CN202311307701A CN117316252A CN 117316252 A CN117316252 A CN 117316252A CN 202311307701 A CN202311307701 A CN 202311307701A CN 117316252 A CN117316252 A CN 117316252A
Authority
CN
China
Prior art keywords
data
test
zone
ssd
zns
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
CN202311307701.5A
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.)
Wuhan Lugu Technology Co ltd
Original Assignee
Wuhan Lugu 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 Wuhan Lugu Technology Co ltd filed Critical Wuhan Lugu Technology Co ltd
Priority to CN202311307701.5A priority Critical patent/CN117316252A/zh
Publication of CN117316252A publication Critical patent/CN117316252A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供一种分布式ZNS SSD异常断电校验数据一致性的快速测试方法,对测试环境要求简单,配置方便,可以适配多种环境,同时支持一对多批量测试。利用FIO和Socket工具搭建了一种分布式检测ZNS SSD异常断电的测试环境,通过启用FIO Server/Client Debug模式,Socket交互通信,实现了ZNS SSD异常断电数据校验的低成本、快速测试。本发明根据不同的ZNS SSD的差异,实现定制化测试方案,充分将测试端的处理器计算资源和ZNS SSD性能相互匹配,并在测试端分布式重新生成待校验数据,避免了大量数据的传输,利用测试端处理器核心数量实现多线程并行数据一致性校验,减少了控制端与测试端之间的数据传输量和计算压力,并提高了系统执行效率,提高了数据校验的速度。

Description

一种分布式ZNS SSD异常断电校验数据一致性的快速测试 方法
技术领域
本申请属于固态硬盘测试技术领域,具体地,涉及一种分布式ZNS SSD异常断电校验数据一致性的快速测试方法。
背景技术
随着云计算、互联网技术的快速发展,日常工作生活中时时刻刻都会产生海量数据需要存储,数据存储技术得到相应的发展以满足爆炸式增长数据的现实存储需求,SSD(Solid State Drives,固态硬盘)为用固态电子存储芯片阵列制成的硬盘,由控制单元和固态存储单元组成。由于其稳定的性能,例如读写速度快、能耗较低,有效地克服了机械硬盘诸多缺点,而被广泛采用。但作为存储媒介的SSD在数据的稳定性上却逊色于机械硬盘,容易受到外部的干扰或者其他意外情形,如异常掉电等,发生数据错误或者丢失,这会造成不可预计损失。为了保证SSD经历突然掉电-正常上电后的数据的完整性,需要在设计SSD的阶段,对能否实现异常掉电时的数据的保护和恢复的性能做进一步的测试和验证,即进行断电测试。
断电测试是SSD测试中常见的场景,正常断电时系统会等待SSD完成IO队列处理之后响应断电指令,正常情况下可以保证数据的完整性和一致性;但是异常断电时不会同步SSD的状态,SSD只能靠板载储能电容完成异常断电的流程,而没有储能电容的SSD只能在重新上电启动的过程中重建各种表项去完成数据恢复,但是无法保证数据的完整性和一致性。
针对SSD异常断电测试,通常的测试方法包括以下几种方法,1)人工手动操作,耗时较长、效率低下,且人工操作容易引入人为错误,测试结果可靠性差,不可重复运行;2)搭建测试环境,通过测试脚本进行测试。上述测试方法是为市面上通用SSD设计的,常规SSD在写入队列深度等于1,测试时仅需记录断电前写入的LBA地址、数据长度以及数据格式等信息,保存的数据量少,掉电保护电容可以满足在发生异常掉点情形,及时对信息的保存。但针对ZNS SSD,将SSD namespace的整个LBA(logical block address,逻辑区块地址)范围划分为若干个等长的区间,等长的LBA区间成为一个zone,每个zone内必须以顺序的方式进行写入,每个zone有其独立的状态机进行管理,允许不同的zone同时进行写入。因此,断电前会记录大量的正在发生写入的Zone的多条信息,这会导致掉电保护电容无法满足掉电保护需要的时间,而增设掉电电容会额外占用较多空间,增加了硬件成本。因此,常规SSD的测试方案并不适用于ZNS SSD。
目前,ZNS SSD异常断电测试一般是只验证异常断电再上电后的功能是否正常,不能检验断电前一刻的数据是否正确存储;也不能检验在不同断电模式数据的稳定性,如长时间断电或脉冲断电时,或者简单的全盘校验数据,耗费测试时间较长。如果需要快速和准确的测试异常断电时的数据完整性和一致性,需要定制断电开发板用于ZNS SSD断电,同时需要花比较多的时间和精力编写底层驱动以Bitmap等方式记录断电前写入的LBA地址、数据长度、数据格式等信息。断电开发板测试环境只适用于SSD设备断电,不适用于整机断电,无法正确评估整机断电时的场景。
现在需要一种简单可行的测试方案,适应各种场景的断电测试,而且能快速、准确的验证数据的完整性和一致性。
发明内容
基于以上的现有技术缺陷,本发明提出一种分布式ZNS SSD异常断电校验数据一致性的测试方法,其特征在于:包括如下步骤:
(1)控制端和测试端均安装FIO和Socket,依次启动控制端启动FIO Server功能和待测端启动FIO Client功能,并通过Socket通知控制端准备完成以及当前测试端的处理器核心数量N;
(2)测试端获取ZNS SSD固态硬盘的zone的属性信息并传输给控制端;控制端提取所述属性信息并进行分类统计分析,根据分析结果通过数据产生单元生成多个大小相等的标准数据样本作为测试数据,控制端通过所述FIO Server功能,向所述测试端ZNS SSD的各个zone存储空间按照预定规则写入所述标准数据样本;同时记录并存储ZNS SSD中各个zone的每笔IO的数据信息;
(3)控制端通过控制电源分配单元PDU执行断电操作使待测端异常断电;间隔一定时间后将待测端上电,待测端启动后通过Socket通知控制端;
(4)数据处理单元读取最后多笔写入的IO的所述数据信息,控制端通过所述数据信息生成测试数据地图;
(5)待测端启动FIO Client功能,通过socket通知控制端准备完成;
(6)控制端启动fio Server功能,通知待测端运行所述测试数据地图并重新生成所述测试数据并进行数据校验,并向异常的zone内写入新数据进行数据修复,并向控制端返回修复结果;
(7)重复步骤(1)-(6),整理并输出测试报告。
进一步,所述属性信息至少包括zone的空间大小,所述数据信息至少包括逻辑区块地址LBA,数据长度以及数据格式,其中所述数据格式至少包括系统元数据,数据库数据以及媒体数据;所述分类统计分析包括:以zone的空间大小为依据,统计相同的zone的数量,并将zone空间的大小按照数量进行排序;所述数据产生单元生成的标准数据样本的大小被配置为与所述数量最多的zone空间大小相同。
进一步,所述数据处理单元包括数据读取模块、多个数据缓存器,检测判断模块;其中数据读取模块用于读取所述特征信息中对应写入zone的测试数据并存储数据缓存器,检测判断模块用于判断读取的测试数据和写入的测试数据的一致性。
进一步,在重新生成测试数据数据前,在所述数据读取模块读取某一zone的所述测试数据前,所述检测判断模块获取当前被读取的zone的所述数据信息,至少包括段起始地址和结束结束地址,以及第一次写入的IO的所述数据信息,最后一次写入的IO的所述数据信息;并判断下述约束条件是否成立:
a.段结束地址与最一次写入的IO的所述数据信息的LBA相同;且段起始地址与第一次写入的IO的所述数据信息的LBA相同;
b.所述数据长度等于最一次和第一次的所述数据信息的LBA的之差;
若条件a或者b成立,则判断为数据保持了一致性,不执行步骤(5)-(6);
若条件a和b不成立,则接着执行步骤(5)-(6)。
进一步,所述步骤(1)进一步包括:对所述ZNS SSD进行初始化步骤包括:1)重新创建数据格式类型不同的多个zone空间;2)按照数据格式类型,将多个zone空间的逻辑地址设置为至少包括第一组空间,第二组空间以及第三组空间,其中各组空间包括多个zone;其中各个zone大小可以相同,可以不同。
进一步,所述向所述测试端ZNS SSD的各个zone存储空间按照预定规则写入所述标准数据样本的步骤满足下述条件:
a.相同组空间的zone被写入的所述标准数据样本的数据类型相同;
b.不同组空间的zone被写入的所述标准数据样本的数据类型不同;
其中所述标准数据样本的数据类型至少包括系统元数据,数据库数据以及媒体数据三种数据类型。
进一步,所述测试端根据所述处理器数量配置有数据缓存器、数据生成单元以及数据校验单元,所述数据缓存器用于存储生成的所述测试数据,所述数据校验单元与测试端的处理器核心一一对应。
进一步,在处理器的每个核心中分别运行所述数据校验单元,在一个数据校验周期内,所述数据校验单元从所述测试数据地图中读取N个所述数据信息,重新生成待检测试数据并写入数据缓存器中;并将所述数据缓存器中的数据与写入的所述标准数据样本进行比对,判断数据是否保持一致性。
进一步,所述预定规则包括:预设写入模式和配置预定参数;所述预设写入模式包括:顺序写、随机写,循环写;所述预定参数包括:多个写入队列深度K,K为大于等于1的正整数。
进一步,所述断电操作包括长时间断电以及短脉冲式断电,通断电管理装置为Quarch设备。
本发明的目的是提供一种分布式ZNS SSD异常断电校验数据一致性的快速测试方法,通过利用FIO/Socket并进行适当的参数配置,搭建适应ZNS SSD的测试方案。该测试方法具有如下优点:
1-对测试环境要求简单,配置方便,可以适配多种环境,同时支持一对多批量测试。
2-适用于各类ZNS SSD固体硬盘,同时简化测试环境,无需断电开发板,无需编写IO驱动,节省开发成本,只需要两台PC在同一网络中就可以完成测试断电前后数据一致性校验。
3-根据不同的ZNS SSD的差异,实现定制化测试方案,充分将测试端的处理器计算资源和ZNS SSD性能相互匹配,并在测试端分布式重新生成待校验数据,每个zone区域待校验数据之间相互独立,并根据测试端处理器核心数量实现多线程并行数据一致性校验,减少了控制端与测试端之间的数据传输量和计算压力,大大测试的稳定性和效率
4-将标准测试数据大小与zone的存储空间大小进行匹配设计,利用zone空间的段地址进行数据一致性校验,最大程度的避免了读取全部zone空间内存储的数据,提高了系统执行效率,提高了数据校验的速度。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
本说明书附图所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容得能涵盖的范围内。
图1为本发明的测试环境搭建原理图;
图2为本发明的数据校验的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请中的实施例进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的ZNS SSD断电测试方法需要定制断电开发板和编写底层IO驱动代码,增加研发成本和开发难度。本发明旨在发明一种简单可行的ZNS SSD的断电测试方法,在基本测试环境校验SSD断电后的数据完整性和一致性。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请提供一种分布式ZNS SSD异常断电校验数据一致性的快速测试方法,利用FIO/Socket搭建分布式的测试平台,根据ZNS SSD中zone的数据类型和空间大小匹配设置标准数据样本的类型和大小,实现了不同的数据类型环境下对ZNS SSD异常断电保持数据一致性的性能的评估,接近真实的使用场景。通过设置标准数据样本的大小,使zone中写入的测试数据与zone空间大小匹配,在一个实施例中,可以将其设置为相等;可以实现数据的分类化处理校验,避免了常规校验方法中需要读取全部的写入的测试数据,提高了书校验的速度和效率。进一步,在进行数据校验时,通过测试端的处理器重新生成待校验测试数据,通过测试端多核心的处理器并行对待校验测试数据进行校验,在存在多个测试端情况下,每个测试端可以独立生成待校验测试数据,不需要控制端集中处理,大大的缩短了校验数据的时间,同时保证了数据的一致性。
为了更清楚明了的理解本申请的技术方案,下面结合附图1-2对本发明的测试方法进行详细描述。
本发明提出一种分布式ZNS SSD异常断电校验数据一致性的测试方法,
参见附图1,本申请的测试系统至少包括控制端、测试端以及电源分配单元PDU以及测试端安装的固态硬盘。
FIO是一个文件系统的benchmark工具,可以测试各种操作系统文件系统的读写性能,可以进行不同大小测试块,不同模式下SSD性能测试。
在一个实施例中,固态硬盘选择为ZNS SSD固态硬盘。
可以理解的,该测试方法包括但不限于以下步骤1-7:
步骤1,搭建测试环境控制端和测试端均安装FIO和Socket,依次启动控制端启动FIO Server功能和待测端启动FIO Client功能,并通过Socket通知控制端准备完成以及当前测试端的处理器核心数量N;
其中FIO为目前主流的第三方IO测试工具,Socket用于描述IP地址和端口,应用程序可以通过socket向网络发送请求或应答请求。
在一个实施例中,通过依次启动控制端启动FIO Server功能和待测端启动FIOClient功能,保证了控制端和测试端正常的消息传递功能,提高了系统的稳定性。
在一个实施例中,测试端启动FIO Client功能后发送局域网消息广播,通过Socket通知控制端完成启动,以及当前测试端的处理器的核心数量N,其中N大于等于2,优选为4以上。通过在控制端、测试端分别配置FIO Server/FIO Client功能,通过Socket完成通信,利用现有的软、硬件资源,不需要添置其他设备,该测试方法对测试环境要求简单,可以适配多种环境,同时支持一对多批量测试;同时无需开发板以及编写IO驱动,节省了测试成本,缩短了测试周期,进一步其通信安全可靠,延时短,保证了IO信息记录的实效和准确性。
在一个实施例中,步骤1)进一步包括:对所述ZNS SSD进行初始化步骤包括:1-1)重新创建数据格式类型不同的多个zone空间;1-2)按照数据格式类型,将多个zone空间的逻辑地址设置为至少包括第一组空间,第二组空间以及第三组空间,其中各组空间包括多个zone;其中各个zone大小可以相同,可以不同。所述向所述测试端ZNS SSD的各个zone存储空间按照预定规则写入所述标准数据样本的步骤满足下述条件:
a.相同组空间的zone被写入的所述标准数据样本的数据类型相同;
b.不同组空间的zone被写入的所述标准数据样本的数据类型不同;
其中所述标准数据样本的数据类型至少包括系统元数据,数据库数据以及媒体数据三种数据类型。
在一个实施例中,所述预定规则包括:预设写入模式和配置预定参数;所述预设写入模式包括:顺序写、随机写,循环写;所述预定参数包括:多个写入队列深度K,K为大于等于1的正整数。
步骤2,通过测试端获取ZNS SSD固态硬盘的zone的属性信息并传输给控制端;控制端提取所述属性信息并进行分类统计分析,根据分析结果通过数据产生单元用于生成多个大小相等标准数据样本作为测试数据,控制端通过所述FIO Server功能,向所述测试端ZNS SSD的各个zone存储空间按照预定规则写入所述标准数据样本;同时记录并存储ZNSSSD中各个zone的每笔IO的数据信息。
在一个实施例中,数据产生单元生成的标准数据样本的大小至少等于一部分zone空间大小。当组空间的各个zone被设置为相同时,通过以标准数据样本的大小为基本单位设置zone的大小,进而仅需将zone空间的段起始和结束地址与该zone写入被记录的IO的数据信息比较,即可判断数据一致性,避免了重复的读取数据和校验数据。
在一个实施例中,若标准数据样本被设置为以循环模式写入,则需要读取zone空间中存储的数据信息与写入的标准数据样本进行比较判断,完成数据的一致性校验。
在一个实施例中,步骤1)进一步包括:对所述ZNS SSD进行初始化步骤包括:1-1)重新创建数据格式类型不同的多个zone空间;1-2)按照数据格式类型,将多个zone空间的逻辑地址设置为至少包括第一组空间,第二组空间以及第三组空间,其中各组空间包括多个zone;其中各个zone大小可以相同,可以不同。所述向所述测试端ZNS SSD的各个zone存储空间按照预定规则写入所述标准数据样本的步骤满足下述条件:
ZNS SSD允许写入队列深度大于1,因此ZNS SSD硬盘会同时存在多笔的IO数据信息,通过控制端的FIO Server功能记录多个zone的多笔IO的的数据信息。常规SSD生异常断电时,由于写入队列深度为1限制,仅存在一笔IO的数据信息,可以靠板载储能电容完成异常断电的流程。而ZNS SSD写入队列深度可以大于1,断电前存在多笔IO的数据信息,板载储能电容存储的电量并不足以支撑如此多的数据。因此常规的测试方法并不适用于ZNS SSD异常断电的流程。虽然可以通过在重新上电启动的过程中重建各种表项去完成数据恢复,但是无法保证数据的完整性和一致性。在异常断电测试时,通过控制端FIO Server功能记录ZNS SSD的IO的数据信息,实现了对断电前一刻的数据是否正确存储的检验;同时避免了简单的全盘校验数据不准确,耗费测试时间较长的缺点。
在一个实施例中,在生成测试数据前,控制端通过测试端获取ZNS SSD的全部zone的信息,并以zone的空间大小为依据,统计相同的zone的数量,并将zone空间的大小按照数量进行排序;所述数据产生单元生成的标准数据样本的大小可被配置为与所述数量最多的zone空间大小相同。进一步,所述数据产生单元生成的标准数据样本的大小可被配置为存在多个,例如分别与所述数量最多、次最多的zone空间大小相同。由此,可以进一步提高校验数据一致性的效率,避免因需要读取zone内的数据而产生大量的读操作和数据量。可以理解的,标准数据样本大小以及数量的配置可以与根据zone空间的数量不同适应性调整。
在将标准数据样本写入对应的zone时,写操作被限定为顺序写入,写入队列深度等于1,因此其LBA是连续的,可以通过比较获取的所述数据信息以及LBA的长度判断数据是否一致而不需要对zone空间内的数据进行读取后再与原测试数据进行比较,简化了数据校验的步骤,提高了校验数据一致性的效率。
步骤3,控制端通过控制电源分配单元PDU执行断电操作使待测端异常断电;间隔一定时间后将待测端上电,待测端启动后通过Socket通知控制端。
在一个实施例中,电源分配单元PDU采用Quarch设备。为了尽可能的接近真实的使用场景,所述断电操作包括长时间断电以及短脉冲式断电。通过不同的断电操作,可以测试得到ZNS SSD在不同断电方式的应用环境中性能表现,进一步提高硬盘的稳定性。
步骤4,数据处理单元读取最后多笔写入的IO的所述数据信息,控制端通过所述数据信息生成测试数据地图。
在一个实施例中,测试数据地图包括断电前一刻,全部发生写操作的zone的数据信息,所述数据信息至少包括逻辑区块地址LBA,数据长度以及数据格式,测试端可以通过发生IO写操作的数据信息对应的生成待测试数据。其中所述数据格式至少包括系统元数据,数据库数据以及媒体数据。在不同的应用情景中,ZNS SSD可以将相同类型的数据格式存储到同一zone空间中,从而便捷的管理各类数据,减少了数据碎片的产生,大大减少了寻址的时间,提高了存储空间的利用效率。通过设置多种数据格式,可以更加真实的模拟各类数据格式在发生异常断电时ZNS SSD的性能参数。
步骤5,待测端启动FIO Client功能,通过socket通知控制端准备完成;
在一个实施例中,可以包括测试端,每个测试端独立运行FIO Client,通过Socket便捷的与控制端实现数据通信,将校验数据一致性的任务下发至每一个对应的测试端,测试端根据测试数据地图独立数据一致性校验检测。采用了分布式测试端进行数据校验,避免了采用控制端集中处理而导致数据量较大、效率低的问题。
步骤6,控制端启动fio Server功能,通知待测端运行所述测试数据地图并重新生成所述测试数据并进行数据校验,并向异常的zone内写入新数据进行数据修复,并向控制端返回修复结果;
在一个实施例中,在重新生成测试数据数据前,在所述数据读取模块读取某一zone的所述测试数据前,检测判断模块获取当前被读取的zone的所述数据信息的信息,获取的信息至少包括段起始地址和结束结束地址,以及第一次写入的IO的所述数据信息,最后一次写入的IO的所述数据信息;并判断下述约束条件是否成立:
a.段结束地址与最一次写入的IO的所述数据信息的LBA相同;且段起始地址与第一次写入的IO的所述数据信息的LBA相同;
b.所述数据长度等于最一次和第一次的所述数据信息的LBA的之差;
若条件a或者b成立,则判断为数据保持了一致性,则判断为数据保持了一致性,不执行重新生成测试数据步骤;
若条件a和b不成立,则接着执行重新生成测试数据步骤。
在一个实施例中,所述数据处理单元包括数据读取模块、多个数据缓存器,检测判断模块;其中数据读取模块用于读取所述特征信息中对应写入zone的测试数据并存储数据缓存器,检测判断模块用于判断读取的测试数据和写入的测试数据的一致性。
在一个实施例中,所述测试端根据所述处理器数量配置有数据缓存器、数据生成单元以及数据校验单元,所述数据缓存器用于存储生成的所述测试数据,所述数据校验单元与测试端的处理器核心一一对应。
在一个实施例中,在处理器的每个核心中分别运行所述数据校验单元,在在一个数据校验周期内,所述数据校验单元从所述测试数据地图中读取N个所述数据信息,重新生成待检测试数据并写入数据缓存器中;并将所述数据缓存器中的数据与写入的所述标准数据样本进行比对,判断数据是否保持一致性。
步骤7,重复n次步骤(1)-(6),整理并输出测试报告。
在一个实施例中,n可以为1-10的正整数。
在一个实施例中,开发的python脚本,用于控制Socket在待测端和控制端之间通讯,程序如下所示:
本说明书中各个实施例采用递进、或并列、或递进和并列结合的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种分布式ZNS SSD异常断电校验数据一致性的快速测试方法,其特征在于:包括如下步骤:
(1)控制端和测试端均安装FIO和Socket,依次启动控制端启动FIO Server功能和待测端启动FIO Client功能,并通过Socket通知控制端准备完成以及当前测试端的处理器核心数量N;
(2)测试端获取ZNS SSD固态硬盘的zone的属性信息并传输给控制端;控制端提取所述属性信息并进行分类和统计分析,根据分析结果通过数据产生单元生成多个大小相等的标准数据样本作为测试数据,控制端通过所述FIO Server功能,向所述测试端ZNS SSD的各个zone存储空间按照预定规则写入所述标准数据样本;同时记录并存储ZNS SSD中各个zone的每笔IO的数据信息;
(3)控制端通过控制电源分配单元PDU执行断电操作使待测端异常断电;间隔一定时间后将待测端上电,待测端启动后通过Socket通知控制端;
(4)数据处理单元读取最后多笔写入的IO的所述数据信息,控制端通过所述数据信息生成测试数据地图;
(5)待测端启动FIO Client功能,通过socket通知控制端准备完成;
(6)控制端启动fio Server功能,通知待测端运行所述测试数据地图并重新生成所述测试数据并进行数据校验,并向异常的zone内写入新数据进行数据修复,并向控制端返回修复结果;
(7)重复步骤(1)-(6),整理并输出测试报告。
2.如权利要求1所述的测试方法,其特征在于:所述属性信息至少包括zone的空间大小,所述数据信息至少包括逻辑区块地址LBA,数据长度以及数据格式,其中所述数据格式至少包括系统元数据,数据库数据以及媒体数据;所述分类统计分析包括:以zone的空间大小为依据,统计相同的zone的数量,并将zone空间的大小按照数量进行排序;所述数据产生单元生成的标准数据样本的大小被配置为与所述数量最多的zone空间大小相同。
3.如权利要求1所述的测试方法,其特征在于:所述数据处理单元包括数据读取模块、多个数据缓存器,检测判断模块;其中数据读取模块用于读取所述特征信息中对应写入zone的测试数据并存储数据缓存器,检测判断模块用于判断读取的测试数据和写入的测试数据的一致性。
4.如权利要求3所述的测试方法,其特征在于:在重新生成测试数据数据前,在所述数据读取模块读取某一zone的所述测试数据前,所述检测判断模块获取当前被读取的zone的所述数据信息,至少包括段起始地址和结束结束地址,以及第一次写入的IO的所述数据信息,最后一次写入的IO的所述数据信息;并判断下述约束条件是否成立:
a.段结束地址与最一次写入的IO的所述数据信息的LBA相同;且段起始地址与第一次写入的IO的所述数据信息的LBA相同;
b.所述数据长度等于最一次和第一次的所述数据信息的LBA的之差;
若条件a或者b成立,则判断为数据保持了一致性,不执行步骤(5)-(6);
若条件a和b不成立,则接着执行步骤(5)-(6)。
5.如权利要求4所述的测试方法,其特征在于:所述步骤(1)进一步包括对所述ZNS SSD进行初始化步骤,所述初始化步骤至少包括:1)重新创建数据格式类型不同的多个zone空间;2)按照数据格式类型,将多个zone空间的逻辑地址设置为至少包括第一组空间,第二组空间以及第三组空间,其中各组空间包括多个zone;其中各个zone大小可以相同,可以不同。
6.如权利要求5所述的测试方法,其特征在于:所述向所述测试端ZNS SSD的各个zone存储空间按照预定规则写入所述标准数据样本的步骤满足下述条件:
a1.相同组空间的zone被写入的所述标准数据样本的数据类型相同;
b1.不同组空间的zone被写入的所述标准数据样本的数据类型不同;
其中所述标准数据样本的数据类型至少包括系统元数据,数据库数据以及媒体数据三种数据类型。
7.如权利要求4所述的测试方法,其特征在于:所述测试端根据所述处理器数量配置有数据缓存器、数据生成单元以及数据校验单元,所述数据缓存器用于存储生成的所述测试数据,所述数据校验单元与测试端的处理器核心一一对应。
8.如权利要求7所述的测试方法,其特征在于:在处理器的每个核心中分别运行所述数据校验单元,在一个数据校验周期内,所述数据校验单元从所述测试数据地图中读取N个所述数据信息,重新生成待检测试数据并写入数据缓存器中;并将所述数据缓存器中的数据与写入的所述标准数据样本进行比对,判断数据是否保持一致性。
9.如权利要求7所述的测试方法,其特征在于:所述预定规则包括:预设写入模式和配置预定参数;所述预设写入模式包括:顺序写、随机写,循环写;所述预定参数包括:多个写入队列深度K,K为大于等于1的正整数。
10.如权利要求1所述测试方法,其特征在于:所述断电操作包括长时间断电以及短脉冲式断电,通断电管理装置为Quarch设备。
CN202311307701.5A 2023-10-10 2023-10-10 一种分布式zns ssd异常断电校验数据一致性的快速测试方法 Pending CN117316252A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311307701.5A CN117316252A (zh) 2023-10-10 2023-10-10 一种分布式zns ssd异常断电校验数据一致性的快速测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311307701.5A CN117316252A (zh) 2023-10-10 2023-10-10 一种分布式zns ssd异常断电校验数据一致性的快速测试方法

Publications (1)

Publication Number Publication Date
CN117316252A true CN117316252A (zh) 2023-12-29

Family

ID=89249632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311307701.5A Pending CN117316252A (zh) 2023-10-10 2023-10-10 一种分布式zns ssd异常断电校验数据一致性的快速测试方法

Country Status (1)

Country Link
CN (1) CN117316252A (zh)

Similar Documents

Publication Publication Date Title
CN104317693A (zh) 一种自动检测硬盘性能波动的方法
KR20190131445A (ko) 자동 테스팅 동안 디바이스 결함의 근본 원인을 식별하기 위한 트래픽 캡쳐 및 디버깅 툴
CN112148542B (zh) 一种分布式存储集群的可靠性测试方法、装置及系统
CN102568522A (zh) 硬盘性能的测试方法和装置
CN104317684A (zh) 一种同步自动测试多个usb接口带宽及传输速率的方法
CN110008129B (zh) 一种存储定时快照的可靠性测试方法、装置及设备
CN104660471A (zh) 一种Linux下自动测试PCIE-SSD传输速率和带宽的方法
CN111653307A (zh) 固态硬盘的数据完整性检测方法、系统、设备及存储介质
CN111104275A (zh) 一种闪断ssd硬盘电源的自动化测试方法及装置
CN107577549A (zh) 一种存储重删功能的测试方法
CN116719668A (zh) 一种NVMe固态硬盘组RAID的自动化测试方法及测试系统
CN112466382A (zh) 一种raid阵列的巡检方法和装置
CN109918221B (zh) 一种硬盘报错解析方法、系统、终端及存储介质
CN107807791A (zh) 一种计算机硬盘序列绑定方法及系统
CN110543398A (zh) 一种故障信息的记录方法和系统
CN117316252A (zh) 一种分布式zns ssd异常断电校验数据一致性的快速测试方法
CN116401086A (zh) 内存漏斗错误上报机制的测试方法、装置、设备及介质
CN116361111A (zh) 一种数据获取方法、装置及电子设备
CN115878400A (zh) 测试方法、装置、计算机设备、存储介质和程序产品
CN115658404A (zh) 一种测试方法及系统
CN112486748B (zh) 测试系统及其测试方法
CN115470040A (zh) 基于快照的重删指纹阈值的测试方法、装置、设备、介质
CN111475107A (zh) 一种硬盘格式化的方法、装置及存储介质
CN112486717A (zh) 一种磁盘数据一致性校验方法、系统、终端及存储介质
CN105427890A (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