一种基于ZNS固态硬盘的智能写分配方法和装置转让专利

申请号 : CN202210437084.X

文献号 : CN114546295B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘烈超刘兴斌

申请人 : 武汉麓谷科技有限公司

摘要 :

本发明提供了一种基于ZNS固态硬盘的智能写分配方法和装置,方法包括:接收存储应用下发的待写入数据;为所述待写入数据分配目标写对象;提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;根据所述写入分区类型,为所述待写入数据分配写入区。本发明实施例提供的智能写分配方法和装置,通过面向存储应用的对象属性特征提取,将写入数据分类存储,能够保持不同聚类类型对象分开存储,顺序性和随机性对象分开存储,冷热数据对象分开存储,减少了数据混合存储造成的性能损失,避免了基于LBA数据分类算法的真实数据属性丢失造成的分类失效问题,同时保持了算法通用性,同时充分发挥闪存介质的性能优势。

权利要求 :

1.一种基于ZNS固态硬盘的智能写分配方法,其特征在于,所述方法包括:接收存储应用下发的待写入数据,所述待写入数据为新写入数据;

根据待写入数据的类型,将不同的目标写对象分配给待写入数据,所述目标写对象是指构建在ZNS固态硬盘存储系统之上的文件系统分配单元、数据库操作单元、块设备操作单元;

提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;其中所述多维数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问频率的频率特征;

根据所述写入分区类型,为所述待写入数据分配写入区。

2.根据权利要求1所述的智能写分配方法,其特征在于,所述多维数据属性特征中的所述聚合性特征根据如下方式提取:基于样本写入数据的数据关联度,采用无监督学习算法将样本写入数据划分多种访问类型分组;

在所述多种访问类型中确定所述目标写对象的访问类型,作为所述多维数据属性特征中的所述聚合性特征。

3.根据权利要求2所述的智能写分配方法,其特征在于,所述无监督学习算法为梯度提升决策树、K‑means、层次聚类分析或DBSCAN。

4.根据权利要求1所述的智能写分配方法,其特征在于,所述多维数据属性特征中的所述顺序特征根据如下方式提取:若所述目标写对象的存储索引方式为面向键值的存储,则基于目标写对象的名字字符串进行字典排序,得到所述目标写对象的顺序序列,作为所述多维数据属性特征中的所述顺序特征。

5.根据权利要求1所述的智能写分配方法,其特征在于,所述多维数据属性特征中的所述顺序特征根据如下方式提取:若所述目标写对象的存储索引方式为基于地址或逻辑编号的存储,则基于目标写对象对应的地址或逻辑编号进行二进制值排序,得到所述目标写对象的顺序序列,作为所述多维数据属性特征中的所述顺序特征。

6.根据权利要求1所述的智能写分配方法,其特征在于,所述多维数据属性特征中的所述频率特征根据如下方式提取:为所述目标写对象设置对应的二进制计数器;

当向所述目标写对象写入一次数据时,所述二进制计数器的计数加1;

每隔固定时间段,将所述二进制计数器中的计数右移一位;

根据所述二进制计数器中的计数确定所述多维数据属性特征中的所述频率特征。

7.根据权利要求1所述的智能写分配方法,其特征在于,在为所述待写入数据分配写入区之后,所述方法还包括:将所述写入区标记为写完成写入区;

从ZNS固态硬盘存储空间的空闲分区池中分配与所述写入区多维数据属性特征相同的分区;

当所述ZNS固态硬盘存储空间的空闲分区池中的可用分区数量小于预设值时,启动垃圾回收机制生成新的可用分区。

8.一种基于ZNS固态硬盘的智能写分配装置,其特征在于,所述装置包括:写入数据接收模块,用于接收存储应用下发的待写入数据,所述待写入数据为新写入数据;

对象分配模块,根据待写入数据的类型,将不同的目标写对象分配给待写入数据,所述目标写对象是指构建在ZNS固态硬盘存储系统之上的文件系统分配单元、数据库操作单元、块设备操作单元;

特征提取模块,用于提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;其中所述数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问频率的频率特征;

分区分配模块,用于根据所述写入分区类型,为所述待写入数据分配写入区。

9.一种电子设备,其特征在于,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至7任一项所述方法。

10.一种计算机可读存储介质,其上存储有可执行指令,其特征在于,所述可执行指令被处理器执行时使处理器执行如权利要求1至7任一项所述方法。

说明书 :

一种基于ZNS固态硬盘的智能写分配方法和装置

技术领域

[0001] 本发明涉及ZNS固态硬盘领域,特别涉及一种基于ZNS固态硬盘的智能写分配方法和装置。

背景技术

[0002] 高性能的SSD固态硬盘作为磁盘的替代品广泛应用在企业级存储系统中,SSD沿用磁盘的访问接口,屏蔽了闪存的操作特性,现有技术中,存储应用将逻辑地址转换为LBA地址,SSD内部的FTL将LBA逻辑地址转换为NAND实际物理地址,数据写入时,不同模式和热度的数据混合存储,不能充分发挥闪存介质的性能优势,由于NAND需要异位更新,逻辑上的数据覆写造成的无效数据需要垃圾回收,数据混合时会严重影响垃圾回收性能,因此,在固态存储系统中引入写入分类技术可以优化整体存储系统性能。
[0003] 目前的写入分类技术主要分为两种,一种是针对某一种特定的存储应用,对数据做分类存储,这种分类技术通用性不高,无法自适应不同的存储应用;另一种是SSD内部在LBA层面对数据做分类存储,由于SSD收到的LBA地址丧失应用层属性信息,经过存储应用逻辑转换后的LBA已经和原有的数据属性不相同,以两种固定大小的文件各自顺序写入,两个数据流交叉循环覆盖存储为例,空盘时SSD写入的数据LBA地址完全顺序,分属于不同的文件,当存储空间占满后,需要删除旧文件,生成新的文件写入,删除的文件本身占用的LBA并不是连续,造成回收后生成的新文件后续的LBA规律被打乱,因此建立在LBA之上的数据分类技术无法有效提取出数据真实属性。
[0004] ZNS固态硬盘是作为新型固态硬盘具有开放闪存操作接口的特性,因此亟需设计一种基于ZNS固态硬盘的智能写分配算法,根据数据的真实属性做分类存储。

发明内容

[0005] 有鉴于此,本发明实施例的目的在于提供一种基于ZNS固态硬盘的智能写分配方法、装置、电子设备和可读存储介质,具体包括:
[0006] 第一方面,本发明实施例提供了一种基于ZNS固态硬盘的智能写分配方法,所述方法包括:
[0007] 接收存储应用下发的待写入数据,所述待写入数据为新写入数据;
[0008] 为所述待写入数据分配目标写对象;
[0009] 提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;其中所述数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问访问频率的频率特征;
[0010] 根据所述写入分区类型,为所述待写入数据分配写入区。
[0011] 可选地,所述多维数据属性特征中的所述聚合性特征根据如下方式提取:
[0012] 基于样本写入数据的数据关联度,采用无监督学习算法将样本写入数据划分多种访问类型分组;
[0013] 在所述多种访问类型中确定所述目标写对象的访问类型,作为所述多维数据属性特征中的所述聚合性特征。
[0014] 可选地,所述无监督学习算法为梯度提升决策树、K‑means、层次聚类分析或DBSCAN。
[0015] 可选地,所述多维数据属性特征中的所述顺序特征根据如下方式提取:
[0016] 若所述目标写对象的存储索引方式为面向键值的存储,则基于目标写对象的名字字符串进行字典排序,得到所述目标写对象的顺序序列,作为所述多维数据属性特征中的所述顺序特征。
[0017] 可选地,所述多维数据属性特征中的所述顺序特征根据如下方式提取:
[0018] 若所述目标写对象的存储索引方式为基于地址或逻辑编号的存储,则基于目标写对象对应的地址或逻辑编号进行二进制值排序,得到所述目标写对象的顺序序列,作为所述多维数据属性特征中的所述顺序特征。
[0019] 可选地,所述多维数据属性特征中的所述频率特征根据如下方式提取:
[0020] 为所述目标写对象设置对应的二进制计数器;
[0021] 当向所述目标写对象写入一次数据时,所述二进制计数器的计数加1;
[0022] 每隔固定时间段,将所述二进制计数器中的计数右移一位;
[0023] 根据所述二进制计数器中的计数确定所述多维数据属性特征中的所述频率特征。
[0024] 可选地,在为所述待写入数据分配写入区之后,所述方法还包括:
[0025] 将所述写入区标记为写完成写入区;
[0026] 从ZNS固态硬盘存储空间的空闲分区池中分配与所述写入区多维数据属性特征相同的分区;
[0027] 当所述ZNS固态硬盘存储空间的空闲分区池中的可用分区数量小于预设值时,启动垃圾回收机制生成新的可用分区。
[0028] 第二方面,本发明实施例提供了一种基于ZNS固态硬盘的智能写分配装置,所述装置包括:
[0029] 写入数据接收模块,用于接收存储应用下发的待写入数据,所述待写入数据为新写入数据;
[0030] 对象分配模块,用于为所述待写入数据分配目标写对象;
[0031] 特征提取模块,用于提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;其中所述数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问访问频率的频率特征;
[0032] 分区分配模块,用于根据所述写入分区类型,为所述待写入数据分配写入区。
[0033] 第三方面,本发明实施例提供了一种电子设备,包括:
[0034] 一个或多个处理器;
[0035] 存储器,用于存储一个或多个程序;
[0036] 其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如第一方面所述方法。
[0037] 第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有可执行指令,所述可执行指令被处理器执行时使处理器执行如第一方面所述方法。
[0038] 本发明实施例提供的基于ZNS固态硬盘的智能写分配方法、装置、电子设备和可读存储介质,利用ZNS固态硬盘开放闪存操作的特点,通过面向存储应用的对象属性特征提取,将写入数据分类存储到ZNS固态硬盘中,能够保持不同聚类类型对象分开存储,顺序性和随机性对象分开存储,冷热数据对象分开存储,减少了数据混合存储造成的性能损失,避免了基于LBA数据分类算法的真实数据属性丢失造成的分类失效问题,同时保持了算法通用性,同时充分发挥闪存介质的性能优势;同时,根据数据分类所分配的写入区采用动态分配的方式,为每一种映射后的写入区动态分配空闲空间,不同的特征属性的对象共享全局的ZNS固态硬盘空间,相较于静态分配的方式,这种动态分配方式能自适应调节不同数据存储比例,共享保留空间,最大化利用存储空间。

附图说明

[0039] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳务的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
[0040] 图1示出了根据本发明实施例提供的基于ZNS固态硬盘的智能写分配方法的流程示意图。
[0041] 图2示出了根据本发明实施例提供的分区管理方法的流程示意图。
[0042] 图3示出了根据本发明实施例提供的基于ZNS固态硬盘的智能写分配装置的结构示意图。
[0043] 图4示出了根据本发明实施例提供的物理电子设备的结构示意图。

具体实施方式

[0044] 以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0045] 在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0046] 在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0047] 高性能的SSD固态硬盘作为磁盘的替代品广泛应用在企业级存储系统中,SSD沿用磁盘的访问接口,屏蔽了闪存的操作特性,现有技术中,存储应用将逻辑地址转换为LBA地址,SSD内部的FTL将LBA逻辑地址转换为NAND实际物理地址,数据写入时,不同模式和热度的数据混合存储,不能充分发挥闪存介质的性能优势,由于NAND需要异位更新,逻辑上的数据覆写造成的无效数据需要垃圾回收,数据混合时会严重影响垃圾回收性能,因此,在固态存储系统中引入写入分类技术可以优化整体存储系统性能。
[0048] 目前的写入分类技术主要分为两种,一种是针对某一种特定的存储应用,对数据做分类存储,这种分类技术通用性不高,无法自适应不同的存储应用;另一种是SSD内部在LBA层面对数据做分类存储,由于SSD收到的LBA地址丧失应用层属性信息,经过存储应用逻辑转换后的LBA已经和原有的数据属性不相同,以两种固定大小的文件各自顺序写入,两个数据流交叉循环覆盖存储为例,空盘时SSD写入的数据LBA地址完全顺序,分属于不同的文件,当存储空间占满后,需要删除旧文件,生成新的文件写入,删除的文件本身占用的LBA并不是连续,造成回收后生成的新文件后续的LBA规律被打乱,因此建立在LBA之上的数据分类技术无法有效提取出数据真实属性。
[0049] ZNS固态硬盘是作为新型固态硬盘具有开放闪存操作接口的特性,因此亟需设计一种基于ZNS固态硬盘的智能写分配算法,根据数据的真实属性做分类存储。
[0050] 有鉴于此,本公开实施例的目的在于提供一种基于ZNS固态硬盘的智能写分配方法、装置、电子设备和可读存储介质,以下结合附图详细描述本发明实施例公开的内容。
[0051] 图1示出了本发明实施例提供的基于ZNS固态硬盘的智能写分配方法的流程示意图,具体内容如下:
[0052] 步骤S110,接收存储应用下发的待写入数据,所述待写入数据为新写入数据。
[0053] 本发明实施例中的存储应用是指具有数据存储需求、向ZNS固态硬盘发出数据写命令的外部应用程序。ZNS固态硬盘可以通过前端接口响应该写命令,并识别和接收存储应用下发的待写入数据。
[0054] 本发明实施例中的智能写分配方法既支持待写入数据为新写入的数据,也支持待写入数据为对已写入的数据进行更新。两种不同形式的待写入数据都是本发明实施例中的智能写分配方法实施的目标数据。
[0055] 有别于现有技术中的写分配方法仅针对某一种特定的存储应用,对数据做分类存储。本发明实施例中的待写入数据可以是任意存储应用下发的,具有较好的通用性。
[0056] 步骤S120,为所述待写入数据分配目标写对象。
[0057] 在ZNS固态硬盘中,一般会为待写入数据分配其匹配的目标写对象。目标写对象是指文件系统分配单元、数据库操作单元、块设备操作单元等所有构建在ZNS固态硬盘存储系统之上的各种存储系统操作单元。ZNS固态硬盘存储系统可以根据待写入数据的类型,将不同的目标写对象分配给待写入数据,即该目标写对象是待写入数据进行写操作的操作单元。此时,存储应用内部的管理算法负责索引该目标写对象。
[0058] 步骤S110中提到,本发明实施例既支持待写入数据为新写入的数据,也支持待写入数据为对已写入的数据进行更新。具体而言,当系统检测到待写入数据为新写入的数据时,才需要为所述待写入数据分配目标写对象;而当系统检测到待写入数据为对已写入的数据进行更新时,直接使用首次写入时所分配的目标写对象即可。
[0059] 实际处理上,本步骤中可以进行写对象的数据属性标注,根据存储应用的类型为对象的属性字段赋值,该标注也是后续特征提取操作的依据和输入。具体标注的内容可包括对象类型、对象推荐属性归类等。
[0060] 步骤S130,提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;其中所述数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问访问频率的频率特征。
[0061] 本步骤中,基于ZNS固态硬盘开放了闪存操作接口的特征,使得面向存储应用设计的对象包含了存储应用的真实属性,比如数据之间逻辑上的前后关系、数据访问上的关联性、数据类型、逻辑数据的真实访问频率等。因此,避免了现有技术中SSD内部在LBA层面对数据做分类存储,由于SSD收到的LBA地址丧失应用层属性信息,经过存储应用逻辑转换后的LBA已经和原有的数据属性不相同,从而真实属性丢失而导致分类存储不准确的问题。
[0062] 具体地,本发明实施例中的存储应用的真实属性主要体现为目标写对象的多维数据属性特征,其中所述多维数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问访问频率的频率特征。在获取了目标写对象的多维数据属性特征后,可以将多维数据属性特征映射为写入分区类型,从而确定待写入数据适合写入ZNS固态硬盘中的哪个ZONE分区。
[0063] 本发明实施例中,所述多维数据属性特征中用于表征所述目标写对象访问类型的聚合性特征根据如下方式提取:基于样本写入数据的数据关联度,采用无监督学习算法将样本写入数据划分访问类型分组;在所述多种访问类型中确定所述目标写对象的访问类型,作为所述多维数据属性特征中的所述聚合性特征。
[0064] 具体地,聚合性特征是存储应用的真实属性之一,用于体现数据访问上的关联性,关联强的数据写入同一ZONE分区,能够提到数据访问的效率,能充分发挥闪存介质的性能优势。聚合性特征提取可以采用机器学习中的无监督学习算法将目标写对象分成多种访问类型分组。访问类型分组可以根据文件系统分配、数据库操作等类型进行聚合分组,也可以是与写入数据类型相关的其他类型指标进行聚合分组,本发明实施例不做具体限定。进一步地,无监督学习算法主要基于数据的关联度,可采用梯度提升决策树、K‑means、层次聚类分析(HCA)、DBSCAN等算法将数据聚合成不同的分组。目标写对象被分到任一分组中,会打上该分组对应的标签,作为目标写对象的聚合性特征。
[0065] 本发明实施例中,所述多维数据属性特征中用于表征所述目标写对象属性排序的顺序特征可以根据如下方式提取:若所述目标写对象的存储索引方式为面向键值的存储,则基于目标写对象的名字字符串进行字典排序,得到所述目标写对象的顺序序列,作为所述多维数据属性特征中的所述顺序特征。
[0066] 本发明实施例中,所述多维数据属性特征中用于表征所述目标写对象属性排序的顺序特征还可以根据如下方式提取:若所述目标写对象的存储索引方式为基于地址或逻辑编号的存储,则基于目标写对象对应的地址或逻辑编号进行二进制值排序,得到所述目标写对象的顺序序列,作为所述多维数据属性特征中的所述顺序特征。
[0067] 具体地,排序特征是存储应用的真实属性之一,用于体现目标写对象访问的一般顺序。将目标写对象访问顺序接近的对应待写入数据写入同一ZONE分区,能够提到数据访问的效率,能充分发挥闪存介质的性能优势,避免频繁地跨ZONE分区访问数据造成的性能损失。此外,顺序性访问的目标写对象和随机性访问的目标写对象也需要分开存储,以进一步发挥闪存介质的性能优势。顺序特征的提取流程可以设计成插件的形式,支持多种不同的顺序检测方法,根据不同的目标写对象属性进行排序。
[0068] 具体地,例如对于面向键值存储的目标写对象,可以进行基于对象名字符串字典排序方法的顺序性检测;对于将基于地址或逻辑编号的存储对象,进行基于对象名二进制值排序的顺序性检测。访问顺序接近的目标写对象可以赋予相同的顺序特征值,随机性访问的目标写对象可以单独赋予与顺序性访问的目标写对象不同的顺序特征值,以便于后续为随机性访问的目标写对象分配专门适用于随机写入数据的ZONE分区。
[0069] 本发明实施例中,所述多维数据属性特征中用于表征所述目标写对象访问访问频率的频率特征可以根据如下方式提取:为所述目标写对象设置对应的二进制计数器;当向所述目标写对象写入一次数据时,所述二进制计数器的计数加1;每隔固定时间段,将所述二进制计数器中的计数右移一位;根据所述二进制计数器中的计数确定所述多维数据属性特征中的所述频率特征。
[0070] 具体地,排序特征是存储应用的真实属性之一,用于体现目标写对象访问的数据热度。为不同热度的数据分配适配的ZONE分区,能够提到数据访问的效率,能充分发挥闪存介质的性能优势。本步骤中对数据热度的获取不仅通过计数器的方式进行了累加计数,还会定期将计数进行移位操作,使得计数值能够实时、动态地反馈出目标写对象的真实热度。
[0071] 根据上述方法,本发明实施例可以根据写入计数器的情况来判断数据的冷热,为了减少写入计数器的空间复杂度,可以引入多Hash函数的方式,将一个目标写对象经过多次Hash函数映射到一个写入计数器。
[0072] 在获取了包括聚合性特征、顺序特征和频率特征在内的目标写对象的多维数据属性特征之后,将多维数据属性特征映射为写入分区类型。本发明实施例可以提前建立多维数据属性特征与写入分区类型的映射表,通过查找该映射表的方式为具有不同属性特征的数据映射至不同的写入分区类型。
[0073] ZNS固态硬盘开放了闪存的操作特性,根据闪存的特性和不同的厂家策略,ZNS固态硬盘可分成SLC区、MLC区、TLC区、QLC区,以及可支持随机写入的随机写入区等多种存储区域,以及上述不同类型存储区域的组合。ZNS固态硬盘中每一类存储区域都包括多个空闲的ZONE分区,以供本发明实施例提供的方法进行分配和管理。不同的存储区域由于其物理特性,都需要不同的存储性能,从而适应不同类型数据的需要。例如可支持随机写入的随机写入区尤其适用于顺序特征被标记为随机性的写入数据;又例如SLC储存区域,由于其读取数据时间最短,适用于数据热度高、需要频繁访问的重要数据的存储;QLC存储区域数据访问速度最慢,可以用于存储热度低的写入数据。本领域技术人员可以根据上述示例性的不同的存储区域所表现出的不同存储性能建立多维数据属性特征到写入分区类型的映射表,以满足不同聚类类型对象分开存储、顺序性和随机性对象分开存储、冷热数据对象分开存储等要求,充分发挥闪存介质的性能优势。
[0074] 步骤S140,根据所述写入分区类型,为所述待写入数据分配写入区。
[0075] 在确定了多维数据属性特征到写入分区类型的映射后,则在该分区类型的存储区域中为待写入数据分配相应的空间ZONE分区,完成写入操作即可。
[0076] 本发明实施例提供的基于ZNS固态硬盘的智能写分配方法,利用ZNS固态硬盘开放闪存操作的特点,通过面向存储应用的对象属性特征提取,将写入数据分类存储到ZNS固态硬盘中,能够保持不同聚类类型对象分开存储,顺序性和随机性对象分开存储,冷热数据对象分开存储,减少了数据混合存储造成的性能损失,避免了基于LBA数据分类算法的真实数据属性丢失造成的分类失效问题,同时保持了算法通用性,同时充分发挥闪存介质的性能优势。
[0077] 基于上述实施例,附图2示出了本发明实施例提供的分区管理方法的流程示意图,具体包括如下内容。
[0078] 步骤S210,将所述写入区标记为写完成写入区。
[0079] 本发明实施例中基于ZNS固态硬盘开放闪存操作接口的特性,实现了所有写入ZNS固态硬盘的数据全局共享的存储空间的特性。其中任何类型的存储区域中的空闲ZONE分区可以共同组成ZNS固态硬盘中的空闲分区池,任何类型的存储区域中已完成写入数据的ZONE分区可以共同组成ZNS固态硬盘中的写完成ZONE分区池。每个ZONE分区可以单独被标记为空闲或写完成状态。
[0080] 根据前述实施例对待写入数据分配了不同类型的空闲ZONE分区,并写完写入数据的操作后,可以将该ZONE分区的标记转换为写完成ZONE分区。
[0081] 步骤S220,从ZNS固态硬盘存储空间的空闲分区池中分配与所述写入区多维数据属性特征相同的分区。
[0082] 为避免任一类型的空闲ZONE分区不足而导致无法满足,本发明实施例需要动态地进行空闲ZONE分区的分配。由于ZNS固态硬盘中通过存储区域预留或垃圾回收的方式了进行存储空间的管理,因此需要从全局共享的空闲分区池中分配一定的空闲ZONE分区为指定类型的空闲ZONE分区,以实时对特定类型的空闲ZONE分区进行补充分配。补充分配的空闲ZONE分区通常与被标记为写完成的ZONE分区类型相同,保持整个智能写分配系统的动态平衡,从而自适应调节不同数据存储比例,共享保留空间,最大化利用存储空间。
[0083] 步骤S230,当所述ZNS固态硬盘存储空间的空闲分区池中的可用分区数量小于预设值时,启动垃圾回收机制生成新的可用分区。
[0084] 当全局共享的空闲分区池中的空闲ZONE分区不断分配而导致可用分区数量小于预设值时,需要启动垃圾回收机制生成新的可用分区,加入到全局共享的空闲分区池中,从而进一步保持整个ZNS固态硬盘存储空间的利用率。
[0085] 本发明实施例提供的分区管理方法,根据数据分类所分配的写入区采用动态分配的方式,为每一种映射后的写入区动态分配空闲空间,不同的特征属性的对象共享全局的ZNS固态硬盘空间,相较于静态分配的方式,这种动态分配方式能自适应调节不同数据存储比例,共享保留空间,最大化利用存储空间。
[0086] 基于上述任一实施例,附图3示出了本发明实施例提供的基于ZNS固态硬盘的智能写分配装置的结构示意图,具体内容如下。
[0087] 写入数据接收模块310,用于接收存储应用下发的待写入数据,所述待写入数据为新写入数据;
[0088] 对象分配模块320,用于为所述待写入数据分配目标写对象;
[0089] 特征提取模块330,用于提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;其中所述数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问访问频率的频率特征;
[0090] 分区分配模块340,用于根据所述写入分区类型,为所述待写入数据分配写入区。
[0091] 本发明实施例提供的基于ZNS固态硬盘的智能写分配装置,利用ZNS固态硬盘开放闪存操作的特点,通过面向存储应用的对象属性特征提取,将写入数据分类存储到ZNS固态硬盘中,能够保持不同聚类类型对象分开存储,顺序性和随机性对象分开存储,冷热数据对象分开存储,减少了数据混合存储造成的性能损失,避免了基于LBA数据分类算法的真实数据属性丢失造成的分类失效问题,同时保持了算法通用性,同时充分发挥闪存介质的性能优势。
[0092] 基于上述任一实施例,附图4示出了本发明实施例提供的电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器
430中的逻辑指令,以执行如下方法:接收存储应用下发的待写入数据,所述待写入数据为新写入数据;为所述待写入数据分配目标写对象;提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;其中所述多维数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问访问频率的频率特征;根据所述写入分区类型,为所述待写入数据分配写入区。
[0093] 此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0094] 另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:接收存储应用下发的待写入数据,所述待写入数据为新写入数据;为所述待写入数据分配目标写对象;提取所述目标写对象的多维数据属性特征,并将多维数据属性特征映射为写入分区类型;其中所述多维数据属性特征包括用于表征所述目标写对象访问类型的聚合性特征、用于表征所述目标写对象属性排序的顺序特征,以及用于表征所述目标写对象访问访问频率的频率特征;根据所述写入分区类型,为所述待写入数据分配写入区。
[0095] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0096] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0097] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。