CN117991992A - 基于小分区zns ssd的数据写入方法、系统、设备及介质 - Google Patents
基于小分区zns ssd的数据写入方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN117991992A CN117991992A CN202410221208.XA CN202410221208A CN117991992A CN 117991992 A CN117991992 A CN 117991992A CN 202410221208 A CN202410221208 A CN 202410221208A CN 117991992 A CN117991992 A CN 117991992A
- Authority
- CN
- China
- Prior art keywords
- partition
- group
- data
- writing
- partitions
- 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
Links
- 238000005192 partition Methods 0.000 title claims abstract description 418
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000011084 recovery Methods 0.000 claims abstract description 62
- 238000013508 migration Methods 0.000 claims description 23
- 230000005012 migration Effects 0.000 claims description 23
- 238000004064 recycling Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机存储技术领域,公开了一种基于小分区ZNS SSD的数据写入方法、系统、设备及介质,该方法包括以下步骤:S1、在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;S2、根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;S3、根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;S4、根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组。本发明为每个用户以及垃圾回收分配独立的分区保存写入,减少用户间以及前后台写入的干扰。
Description
技术领域
本发明涉及计算机存储技术领域,特别是涉及一种基于小分区ZNS SSD的数据写入方法、系统、设备及介质。
背景技术
由于ZNS接入规则特殊,目前有三种使主机软件适配ZNS接口的方法,分别是主机端FTL、端到端数据放置和文件系统。主机端FTL需要在主机端模拟原本设备端FTL的部分功能,如地址映射和垃圾回收,向上层提供块接口,不需要修改现有应用,但是没有利用ZNSSSD可以进行自定义数据放置的优势;端到端数据放置主要适用于符合顺序写入规则的应用;因此当前大部分应用还是需要通过文件系统使用ZNS SSD。F2FS是一种针对闪存介质设计的日志结构文件系统,通过修改可以用于ZNS上,但F2FS没有考虑到小分区之间的性能干扰,在同一时刻多个用户写入设备不同分区时会因为干扰导致性能下降,且后台垃圾回收也会对前台租户写入产生影响,无法利用小分区的并行性,每个租户写入时只打开单个小分区进行写入,直接在小分区ZNS SSD上使用性能较低。因此,现有技术有待改进。
发明内容
本发明提供一种基于小分区ZNS SSD的数据写入方法、系统、设备及介质,解决如何利用小分区ZNS SSD的特性减轻多用户之间写入干扰以及前后台写入干扰的问题。
为解决上述技术问题,本发明第一方面提供一种基于小分区ZNS SSD的数据写入方法,包括以下步骤:
S1、在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;
S2、根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;
S3、根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;
S4、根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组。
进一步地,根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组,包括以下步骤:
S21、创建两个线程分别对第一分区和第二分区进行写入,并记录写入带宽;所述第一分区为未加入冲突组的任意一个分区,所述第二分区为所述第一分区以外未加入冲突组的其余分区;
S22、创建一个冲突组,将所述第一分区加入所述冲突组;
S23、从所述第二分区中任选一个分区作为更新后的第一分区,对所述第二分区进行更新;
S24、将更新后的第一分区作为基础分区,并创建两个新线程分别写入所述基础分区和更新后的第二分区;若所述基础分区与更新后的第二分区的写入带宽大于预设数值,则将对应的第二分区加入所述第一冲突组;若否,则对所述冲突组进行更新,并将对应的第二分区加入更新后的冲突组;
S25、重复步骤S23-S24,直至所有分区都位于冲突组中。
进一步地,根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组,包括以下步骤:
S31、读取所述配置文件,确定当前用户对应的分区数量上限;
S32、任选一个冲突组进行遍历,若当前冲突组中已有分区被打开,则访问下一个冲突组;若当前冲突组中没有分区被打开,则从当前冲突组中分配一个空闲分区到当前用户的用户分区组中;若所有冲突组中均有分区被打开,则从第一个遍历到的冲突组中选取分区到当前用户的用户分区组中;
S33、对当前用户进行更新,并重复步骤S31-S32,直至构建所有用户的用户分区组。
进一步地,根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组,包括以下步骤:
S41、接收所述写入请求,并根据所述待写入数据对应的文件路径以及文件元数据,对所述待写入数据的类型进行判断;
S42、若为用户写入,则根据所述写入请求中的用户信息确定用户分区组,根据写入长度以及用户分区组中分区数量确定每个分区的写入数据量并并行写入;若为垃圾回收写入,则根据所述文件元数据中的访问信息确定所述待写入数据所属的文件类型,并根据所述文件类型将所述待写入数据分配至对应的回收分区组中进行写入。
进一步地,根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组,包括以下步骤:
S431、若所述待写入数据为迁移数据,则为垃圾回收写入,将所述迁移数据数量最少的用户分区作为受害者区;所述迁移数据为用户分区组中的写满分区内的有效数据;
S432、读取所述受害者区中有效数据所属文件元数据中的访问信息,并确定所述受害者区中有效数据所属文件类型;
S433、根据所述受害者区中有效数据所属文件类型,将所述受害者区中的迁移数据迁移至所述回收分区组中;
S434、重复步骤S432-S433,直至所述受害者区中的所有失效数据迁移完成;
S435、将所述受害者区重置并标记为空闲分区;
S436、重复步骤S431-S435,直至所述空闲分区的数量高于预设阈值。
进一步地,所述文件元数据中的访问信息包括总读取长度和总失效长度;所述回收分区组包括普通回收分区组、高并行度回收分区组和低并行度回收分区组;其中,
所述根据所述文件元数据中的访问信息确定所述待写入数据所属的文件类型,并根据所述文件类型将所述待写入数据分配至对应的回收分区组中进行写入,包括以下步骤:
S421、将所述文件元数据中的访问信息内,所述总读取长度大于第一预设值且所述总失效长度小于第二预设值的所述待写入数据作为一类文件;将所述文件元数据中的访问信息内,所述总读取长度小于第三预设值且所述总失效长度大于第四预设值的所述待写入数据作为二类文件;将不符合一类文件且不符合二类文件的待写入数据作为三类文件;
S422、将所述一类文件迁移至所述高并行度回收分区组,将所述二类文件迁移至所述低并行度回收分区组;将所述三类文件迁移至所述普通回收分区组。
进一步地,所述普通回收分区组中分区的数量为所述用户分区组中最大分区数量,所述高并行度回收分区组中分区的数量为所述普通回收分区组的第一预设倍数,所述低并行度回收分区组中分区的数量为所述普通回收分区组的第二预设倍数。
本发明第二方面提供一种基于小分区ZNS SSD的数据写入系统,包括:
文件配置模块,用于在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;
冲突组划分模块,用于根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;
分区组构建模块,用于根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;
数据写入模块,用于根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组。
本发明第三方面提供一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面中任意一项所述的基于小分区ZNS SSD的数据写入方法。
本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述第一方面中任意一项所述的基于小分区ZNS SSD的数据写入方法。
与现有技术相比,本发明实施例的有益效果在于:
本发明提供一种基于小分区ZNS SSD的数据写入方法、系统、设备及介质,通过提出分区组的概念:分区组由多个打开的分区组成,分区组的并行度表示其中分区的数量,对分区组中的多个分区可以同时进行读写;对用户数据写入以及垃圾回收迁移写入进行了改进,将其并行写入到性能隔离的分区组中,从而避免写入之间的干扰;在垃圾回收迁移数据时,将不同访问特点的文件迁移到不同并行度的分区组中,在满足设备性能隔离分区数量限制的条件下,最大化读取性能,同时减少写放大;并考虑到了分区之间的干扰,将分区划分为冲突组,分配时尽量避免同时打开同一个冲突组中的分区进行写入,从而减少分区间的干扰。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明某一实施例提供的一种基于小分区ZNS SSD的数据写入方法的流程图;
图2是本发明某一实施例提供的步骤S2的流程图;
图3是本发明某一实施例提供的步骤S3的流程图;
图4是本发明某一实施例提供的构建相互隔离的用户分区组过程图;
图5是本发明某一实施例提供的步骤S4的流程图;
图6是本发明另一实施例提供的步骤S4的流程图;
图7是本发明某一实施例提供的待写入数据写入回收分区组的流程图;
图8是本发明某一实施例提供的隔离写入过程图;
图9是本发明某一实施例提供的一种基于小分区ZNS SSD的数据写入系统的装置图;
图10是本发明某一实施例提供的一种电子设备的结构图。
具体实施方式
下面结合附图和实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在一实施例中,如图1所示,本发明第一方面提供一种基于小分区ZNS SSD的数据写入方法,包括:
S1、在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;具体的,本申请提出在ZNS SSD设备中设置由多个打开的分区组成的分区组,使得分区组的并行度表示其中分区的数量以及分区组中的多个分区可以同时进行读写。本申请将ZNS SSD设备分为用户写入分区组、垃圾回收分区组、写满分区组以及空闲分区,用户写入分区组即用户分区组,是分配给用户的分区,用于存储用户的待写入数据。垃圾回收作为一个特殊的用户,为其分配多个分区组以写入不同访问特点的数据。用户写入分区组中的分区与垃圾回收分区组中的分区位于不同的闪存芯片上,避免由分区引起的性能干扰。而在配置文件中配置每个用户对应的分区数量上限,便于后期构建各个用户对应的用户分区组并隔离,进而利用ZNS SSD设备的并行性,使得各个用户能同时写入数据,并减少分区间的干扰。
S2、根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;
在一实施例中,步骤S2如图2所示,包括以下步骤:
S21、创建两个线程分别对第一分区和第二分区进行写入,并记录写入带宽;所述第一分区为未加入冲突组的任意一个分区,所述第二分区为所述第一分区以外未加入冲突组的其余分区;其中,写入带宽高于预设带宽时表示分区之间没有干扰,预设带宽为若干个带宽求平均;
S22、创建一个冲突组,将所述第一分区加入所述冲突组;
S23、从所述第二分区中任选一个分区作为更新后的第一分区,对所述第二分区进行更新;
S24、将更新后的第一分区作为基础分区,并创建两个新线程分别写入所述基础分区和更新后的第二分区;若所述基础分区与更新后的第二分区的写入带宽大于预设数值,则将对应的第二分区加入所述第一冲突组;若否,则对所述冲突组进行更新,并将对应的第二分区加入更新后的冲突组;
S25、重复步骤S23-S24,直至所有分区都位于冲突组中。
其中,预设数值的计算方法为任意选择一个分区作为基础分区,遍历选择其余的分区,创建两个线程同时分别写入基础分区与选择的分区,并记录写入带宽,这些写入带宽的平均值即为预设数值;具体的,由于设备限制,会有多个分区包含的擦除块位于同一块闪存芯片的情况出现,导致分区之间会有性能干扰。为了避免同时写入有性能干扰的分区,文件系统将所有的分区分为一系列冲突组,ZNS SSD设备的所有分区按照相互之间是否有性能干扰划分为多个冲突组,每个冲突组中的分区之间有干扰,不同冲突组中的分区之间没有干扰;本申请的分区组表示多个分区的集合,为每个用户以及垃圾回收维护各自的打开分区组,分配时轮询冲突组,从每个冲突组中选择一个空闲分区,从而尽量使打开分区位于不同的冲突组中,避免多个写入之间产生干扰,以实现多个用户性能隔离。
S3、根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;
在一实施例中,步骤S3如图3所示,包括以下步骤:
S31、读取所述配置文件,确定当前用户对应的分区数量上限;
S32、任选一个冲突组进行遍历,若当前冲突组中已有分区被打开,则访问下一个冲突组;若当前冲突组中没有分区被打开,则从当前冲突组中分配一个空闲分区到当前用户的用户分区组中;若所有冲突组中均有分区被打开,则从第一个遍历到的冲突组中选取分区到当前用户的用户分区组中;
S33、对当前用户进行更新,并重复步骤S31-S32,直至构建所有用户的用户分区组。
其中,构建相互隔离的用户分区组的过程如图4所示,为了避免写入干扰,需要为每个用户分配相应数量的分区构成用户分区组并行写入,每个分区组内的分区以及不同分区组内的分区应该尽量避免相互干扰,即当前所有打开的分区应尽量位于不同的冲突组中。而在用户分区组中一个或多个分区写满后,则关闭分区,同时重复步骤S31-S32分配相应数量的分区;如果设备上冲突组的数量不够多,不足以构建所有分区组,同时在后续构建隔离分区组时,会忽略分区之间的相互干扰;一般情况下小分区ZNS SSD提供的冲突组数量足够多,能够满足多用户同时写入的需求。本申请为每个用户以及垃圾回收分配独立的分区保存写入,减少租户间以及前后台写入的干扰;为每个用户以及垃圾回收维护独立的分区组,分区组中包含多个同时打开的分区,可以同时进行读写,充分利用并行性。
由于ZNS SSD中的每个分区必须顺序写入,整个分区擦除后才能再次写入,因此在更新时通常采用异地更新策略,将之前的写入数据标记为无效,在新的地方分配空间进行写入。当设备存储空间不足时,需要释放无效空间,因此需要进行垃圾回收。垃圾回收时需要将选中分区内的有效数据迁移,这会造成后台写入可能会与用户写入干扰,导致用户写入性能下降的情况发生。而为了避免这种情况,本申请为垃圾回收时迁移数据分配了相应的回收分区组进行写入,并根据用户分区组中的分区数量决定回收分区组中分区的数量。
S4、根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组;
在一实施例中,步骤S4如图5所示,包括以下步骤:
S41、接收所述写入请求,并根据所述待写入数据对应的文件路径以及文件元数据,对所述待写入数据的类型进行判断;
S42、若为用户写入,则根据所述写入请求中的用户信息确定用户分区组,根据写入长度以及用户分区组中分区数量确定每个分区的写入数据量并并行写入;若为垃圾回收写入,则根据所述文件元数据中的访问信息确定所述待写入数据所属的文件类型,并根据所述文件类型将所述待写入数据分配至对应的回收分区组中进行写入。
具体的,当写入文件时,根据路径中的用户标识信息将文件与相应打开分区组对应,待写入数据为用户写入时,将其写入对应的用户分区组;待写入数据为垃圾回收写入时,将其写入对应的回收分区组;而当某一分区组写满后,将该分区显式关闭,然后从没有分区被打开的冲突组中选择空闲分区分配给分区组。一般,ZNS SSD设备前四个分区为传统分区,可以支持随机写入,用于保存文件系统元数据和文件元数据,通常文件系统元数据储存在第一、二个分区中,在挂载和卸载时进行读取和写入,文件元数据保存在第三、四分区中,目录和文件信息采用索引方式进行数据存储。本申请根据写入请求中的信息,对待写入数据的类型进行判断,可支持多个用户并行写入相互隔离的对应分组中,避免相互之间的性能干扰。
在一实施例中,步骤S4如图6所示,包括以下步骤:
S431、若所述待写入数据为迁移数据,则为垃圾回收写入,将所述迁移数据数量最少的用户分区作为受害者区;所述迁移数据为用户分区组中的写满分区内的有效数据;
S432、读取所述受害者区中有效数据所属文件元数据中的访问信息,并确定所述受害者区中有效数据所属文件类型;
S433、根据所述受害者区中有效数据所属文件类型,将所述受害者区中的迁移数据迁移至所述回收分区组中;
S434、重复步骤S432-S433,直至所述受害者区中的所有失效数据迁移完成;
S435、将所述受害者区重置并标记为空闲分区;
S436、重复步骤S431-S435,直至所述空闲分区的数量高于预设阈值。
由于ZNS SSD设备冲突组数量的限制,不能通过为每个用户分配相同数量的隔离分区构成回收分区组的方式来实现用户写入和垃圾回收写入之间的性能隔离,针对该情况,本申请将所有用户的迁移数据写入到全局的回收分区组中,避免为每个单独用户分配分区组。
为了释放无效数据占用的空间,在设备剩余空闲分区数量小于阈值(总分区数量的5%)时,系统开始进行垃圾回收,垃圾回收选择的受害者为写满分区组中有效数据最少的分区组,将其有效数据根据文件类型迁移到回收分区组中,然后重置受害者分区,标记为空闲。而为了降低垃圾回收过程中数据迁移开销,系统将迁移文件根据访问特点分类,将不同访问特点的文件迁移到不同并行度的分区组中,使得无效数据集中。
在一实施例中,所述文件元数据中的访问信息包括总读取长度和总失效长度;所述回收分区组包括普通回收分区组、高并行度回收分区组和低并行度回收分区组;其中,待写入数据写入回收分区组的流程如图7所示,包括以下步骤:
S421、将所述文件元数据中的访问信息内,所述总读取长度大于第一预设值且所述总失效长度小于第二预设值的所述待写入数据作为一类文件;将所述文件元数据中的访问信息内,所述总读取长度小于第三预设值且所述总失效长度大于第四预设值的所述待写入数据作为二类文件;将不符合一类文件且不符合二类文件的待写入数据作为三类文件;
S422、将所述一类文件迁移至所述高并行度回收分区组,将所述二类文件迁移至所述低并行度回收分区组;将所述三类文件迁移至所述普通回收分区组。
隔离写入过程如图8所示,本申请在文件元数据中记录文件访问信息,包含文件的总读取长度和总失效长度;其中,总读取长度大的文件表明读取较多,可以放置到分区数量更多的分区组中提升读取时的并行性。更新以及部分删除操作会导致文件数据的失效,本申请通过总失效长度记录失效数据总量,将失效数据总量多的文件存储到分区数量较少的分区组中可以将可能产生的失效数据集中,减少后期垃圾回收迁移的数据量;同时系统记录总文件数量、所有文件总读取和总失效长度用于文件分类;每次访问文件时更新文件元数据和系统总数据。
本申请根据文件访问信息将文件分为三类:读多更新少(一类文件)、读少更新多(二类文件)、普通(三类文件)。当文件总读长度超过文件平均总读取长度的两倍且文件总删除长度低于文件总平均失效长度的二分之一时,文件被归类为一类文件;当文件总读取长度低于文件平均总读长度的二分之一且文件总失效长度高于文件平均总失效长度的二倍时,文件被归类为二类文件;其余文件被归类为三类文件。
本申请同时分配三个不同分区数量的回收分区组,即不同写入并行度的分区组以存储待写入数据。一类文件放置到高并行度回收分区组中,加速文件数据的读取,并通过提升读取性能的方式降低多租户数据混合对读取产生的影响;二类文件放置到低并行度回收分区组中,减少后期垃圾回收时迁移的数据量,降低写放大;三类文件放置到普通回收分区组中;通过这种方式,在满足设备冲突组数量限制的同时,提供了更高的性能。
在一实施例中,所述普通回收分区组中分区的数量为所述用户分区组中最大分区数量,所述高并行度回收分区组中分区的数量为所述普通回收分区组的第一预设倍数,所述低并行度回收分区组中分区的数量为所述普通回收分区组的第二预设倍数。
具体的,假设用户分区组中最大分区数量为k,那么普通回收分区组中分区的数量为k,高并行度回收分区组中分区数量为1.5×k,低并行度回收分区组中分区数量为0.5×k,向上取整;其分配方式同用户分区组。本申请
本申请实施例中基于如何利用小分区ZNS SSD的特性减轻多用户之间写入干扰以及前后台写入干扰的问题,设计了一种基于小分区ZNS SSD的数据写入方法,其实现了在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;根据干扰规则,将所述ZNSSSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组。的技术方案;本发明为每个用户以及垃圾回收分配独立的分区保存写入,减少用户间以及前后台写入的干扰。
在另一实施例中,如图9所示,本发明第二方面提供一种基于小分区ZNS SSD的数据写入系统,包括:
文件配置模块10,用于在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;
冲突组划分模块20,用于根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;
分区组构建模块30,用于根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;
数据写入模块40,用于根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组。
需要说明的是,上述一种基于基于小分区ZNS SSD的数据写入系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。关于一种基于小分区ZNS SSD的数据写入系统的具体限定参见上文中对于一种基于小分区ZNS SSD的数据写入方法的限定,二者具有相同的功能和作用,在此不再赘述。
本发明第三方面提供了一种电子设备,该电子设备包括:
处理器、存储器和总线;
所述总线,用于连接所述处理器和所述存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,可执行指令使处理器执行如本申请的第一方面所示的一种基于小分区ZNS SSD的数据写入方法对应的操作。
在一个可选实施例中提供了一种电子设备,如图10所示,图10所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。
处理器5001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是PCI总线或EISA总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器5003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器5003用于存储执行本申请方案的应用程序代码,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
本发明第四方面提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的一种基于小分区ZNS SSD的数据写入方法。
本申请的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
此外,本发明的实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
综上,本发明涉及计算机存储技术领域,公开了一种基于小分区ZNS SSD的数据写入方法、系统、设备及介质,该方法包括以下步骤:S1、在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;S2、根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;S3、根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;S4、根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组。本发明为每个用户以及垃圾回收分配独立的分区保存写入,减少用户间以及前后台写入的干扰。
本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于小分区ZNS SSD的数据写入方法,其特征在于,包括以下步骤:
S1、在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;
S2、根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;
S3、根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;
S4、根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组。
2.根据权利要求1所述的一种基于小分区ZNS SSD的数据写入方法,其特征在于,所述根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组,包括以下步骤:
S21、创建两个线程分别对第一分区和第二分区进行写入,并记录写入带宽;所述第一分区为未加入冲突组的任意一个分区,所述第二分区为所述第一分区以外未加入冲突组的其余分区;
S22、创建一个冲突组,将所述第一分区加入所述冲突组;
S23、从所述第二分区中任选一个分区作为更新后的第一分区,对所述第二分区进行更新;
S24、将更新后的第一分区作为基础分区,并创建两个新线程分别写入所述基础分区和更新后的第二分区;若所述基础分区与更新后的第二分区的写入带宽大于预设数值,则将对应的第二分区加入所述第一冲突组;若否,则对所述冲突组进行更新,并将对应的第二分区加入更新后的冲突组;
S25、重复步骤S23-S24,直至所有分区都位于冲突组中。
3.根据权利要求1所述的一种基于小分区ZNS SSD的数据写入方法,其特征在于,所述根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组,包括以下步骤:
S31、读取所述配置文件,确定当前用户对应的分区数量上限;
S32、任选一个冲突组进行遍历,若当前冲突组中已有分区被打开,则访问下一个冲突组;若当前冲突组中没有分区被打开,则从当前冲突组中分配一个空闲分区到当前用户的用户分区组中;若所有冲突组中均有分区被打开,则从第一个遍历到的冲突组中选取分区到当前用户的用户分区组中;
S33、对当前用户进行更新,并重复步骤S31-S32,直至构建所有用户的用户分区组。
4.根据权利要求1所述的一种基于小分区ZNS SSD的数据写入方法,其特征在于,所述根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组,包括以下步骤:
S41、接收所述写入请求,并根据所述待写入数据对应的文件路径以及文件元数据,对所述待写入数据的类型进行判断;
S42、若为用户写入,则根据所述写入请求中的用户信息确定用户分区组,根据写入长度以及用户分区组中分区数量确定每个分区的写入数据量并并行写入;若为垃圾回收写入,则根据所述文件元数据中的访问信息确定所述待写入数据所属的文件类型,并根据所述文件类型将所述待写入数据分配至对应的回收分区组中进行写入。
5.根据权利要求4所述的一种基于小分区ZNS SSD的数据写入方法,其特征在于,所述根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组,包括以下步骤:
S431、若所述待写入数据为迁移数据,则为垃圾回收写入,将所述迁移数据数量最少的用户分区作为受害者区;所述迁移数据为用户分区组中的写满分区内的有效数据;
S432、读取所述受害者区中有效数据所属文件元数据中的访问信息,并确定所述受害者区中有效数据所属文件类型;
S433、根据所述受害者区中有效数据所属文件类型,将所述受害者区中的迁移数据迁移至所述回收分区组中;
S434、重复步骤S432-S433,直至所述受害者区中的所有失效数据迁移完成;
S435、将所述受害者区重置并标记为空闲分区;
S436、重复步骤S431-S435,直至所述空闲分区的数量高于预设阈值。
6.根据权利要求4所述的一种基于小分区ZNS SSD的数据写入方法,其特征在于,所述文件元数据中的访问信息包括总读取长度和总失效长度;所述回收分区组包括普通回收分区组、高并行度回收分区组和低并行度回收分区组;其中,
所述根据所述文件元数据中的访问信息确定所述待写入数据所属的文件类型,并根据所述文件类型将所述待写入数据分配至对应的回收分区组中进行写入,包括以下步骤:
S421、将所述文件元数据中的访问信息内,所述总读取长度大于第一预设值且所述总失效长度小于第二预设值的所述待写入数据作为一类文件;将所述文件元数据中的访问信息内,所述总读取长度小于第三预设值且所述总失效长度大于第四预设值的所述待写入数据作为二类文件;将不符合一类文件且不符合二类文件的待写入数据作为三类文件;
S422、将所述一类文件迁移至所述高并行度回收分区组,将所述二类文件迁移至所述低并行度回收分区组;将所述三类文件迁移至所述普通回收分区组。
7.根据权利要求6所述的一种基于小分区ZNS SSD的数据写入方法,其特征在于,所述普通回收分区组中分区的数量为所述用户分区组中最大分区数量,所述高并行度回收分区组中分区的数量为所述普通回收分区组的第一预设倍数,所述低并行度回收分区组中分区的数量为所述普通回收分区组的第二预设倍数。
8.一种基于小分区ZNS SSD的数据写入系统,其特征在于,包括:
文件配置模块,用于在配置文件中配置每个用户同时打开ZNS SSD设备中分区的数量;
冲突组划分模块,用于根据干扰规则,将所述ZNS SSD设备中的所有分区划分为多个冲突组;所述干扰规则为分区之间是否存在性能干扰;
分区组构建模块,用于根据所述配置文件,在多个所述冲突组中选择分区构建相互隔离的用户分区组和回收分区组;
数据写入模块,用于根据写入请求中待写入数据的类型,将所述待写入数据并行写入对应的用户分区组或回收分区组。
9.一种电子设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的基于小分区ZNS SSD的数据写入方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的基于小分区ZNS SSD的数据写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410221208.XA CN117991992A (zh) | 2024-02-28 | 2024-02-28 | 基于小分区zns ssd的数据写入方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410221208.XA CN117991992A (zh) | 2024-02-28 | 2024-02-28 | 基于小分区zns ssd的数据写入方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117991992A true CN117991992A (zh) | 2024-05-07 |
Family
ID=90887066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410221208.XA Pending CN117991992A (zh) | 2024-02-28 | 2024-02-28 | 基于小分区zns ssd的数据写入方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117991992A (zh) |
-
2024
- 2024-02-28 CN CN202410221208.XA patent/CN117991992A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797436B2 (en) | Memory system and method for controlling nonvolatile memory | |
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
US7949839B2 (en) | Managing memory pages | |
US7516266B2 (en) | System and method capable of sequentially writing data to a flash memory | |
CN103294604A (zh) | 闪存器件和使用闪存器件的电子设备 | |
EP2718823A1 (en) | Dual flash translation layer | |
CN111930643B (zh) | 一种数据处理方法及相关设备 | |
JP3044005B2 (ja) | データ格納制御方式 | |
CN108733306A (zh) | 一种文件合并方法及装置 | |
US6928456B2 (en) | Method of tracking objects for application modifications | |
CN112463058B (zh) | 一种碎片数据整理方法、装置及存储节点 | |
CN109558456A (zh) | 一种文件迁移方法、装置、设备及可读存储介质 | |
JP2018160189A (ja) | メモリシステム | |
CN115168304A (zh) | 一种数据处理方法、装置、存储介质及设备 | |
CN112148226A (zh) | 一种数据存储方法及相关装置 | |
CN112068777A (zh) | 数据存储介质的管理方法、系统、终端设备及存储介质 | |
US20100180072A1 (en) | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program | |
KR20090007926A (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN110312986B (zh) | 用于在固态设备上存储数据的流的机会性使用 | |
CN113010111A (zh) | Ssd访问加速方法、装置、计算机设备及存储介质 | |
CN117215485A (zh) | Zns ssd管理方法及数据写入方法、存储装置、控制器 | |
CN117130955A (zh) | 用于管理相关联的存储器的方法和系统 | |
US7681009B2 (en) | Dynamically updateable and moveable memory zones | |
US20230024734A1 (en) | Storage method, storage device and storage system | |
CN117991992A (zh) | 基于小分区zns ssd的数据写入方法、系统、设备及介质 |
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 |