CN116339978A - 资源分配方法、装置、设备及存储介质 - Google Patents
资源分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116339978A CN116339978A CN202310158648.0A CN202310158648A CN116339978A CN 116339978 A CN116339978 A CN 116339978A CN 202310158648 A CN202310158648 A CN 202310158648A CN 116339978 A CN116339978 A CN 116339978A
- Authority
- CN
- China
- Prior art keywords
- resources
- resource
- pool
- active zone
- private
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013468 resource allocation Methods 0.000 title claims abstract description 50
- 239000007787 solid Substances 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 12
- 238000007726 management method Methods 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种资源分配方法、装置、设备及存储介质,涉及计算机技术领域,该方法包括:将固态硬盘的资源划分为公有池资源及私有池资源;基于公有池资源及私有池资源响应active zone活动区域的资源需求;其中,active zone的最大资源数量是基于公有池资源的数量、私有池资源的数量及active zone的最大数量确定的,因此通过公有池资源和私有池资源结合的方式,可保证active zone的资源需求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源分配方法、装置、设备及存储介质。
背景技术
随着互联网、云计算、物联网、大数据等技术的发展及广泛应用,在人类生活中,时时刻刻都会产生海量的数据,这些海量的数据需要进行处理和存储,信息技术的高速发展对存储系统的性能提出了更高的要求。固态硬盘因为其读写速度快、能耗低,而被广泛应用。因而,对固态硬盘的性能、容量的要求都更高,随着闪存技术的发展、主控芯片的性能提高,固态硬盘的相关技术不断更新,使得能够尽可能满足多种应用的需求。
随着SSD(Solid State Drive,固态硬盘)及NVMe(NVM Express,非易失性内存主机控制器接口规范)技术的发展,当前NVMe 2.0中ZNS(Zoned Namespace,分区命名空间)已经正式发布,并且在各大厂商已经开始推进使用与试点,ZNS技术成为SSD与NVMe中热点之一,如何提高ZNS SSD的可靠性、丰富功能成为SSD厂商及NVMe组织等的重要课题。
现有方案中,在ZNS SSD中,写入操作会针对不同的zone进行区分,针对不同zone的写入要落入不同的资源区中,在SSD内部资源较为紧缺,在大压力多zone同时写入时,会出现资源争抢现象,在通常的实现中会使用先到先得的方法来响应写入操作,这样容易导致部分zone的写入操作争抢不到资源出现性能抖动。
发明内容
本申请提供一种资源分配方法、装置、设备及存储介质,用以解决现有技术中在大压力多zone同时写入时,会出现部分zone的写入操作争抢不到资源出现性能抖动的技术问题。
本申请提供一种资源分配方法,包括:
将固态硬盘的资源划分为公有池资源及私有池资源;
基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
根据本申请提供的一种资源分配方法,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求,包括:
在未检测到所述active zone的资源配置参数的情况下,为所述active zone申请第一数量个私有池资源,其中,所述第一数量是基于所述私有池资源的数量及所述activezone的最大数量确定的。
根据本申请提供的一种资源分配方法,所述为所述active zone申请第一数量个私有池资源之后,还包括:
在所述第一数量个私有池资源不满足所述active zone的资源需求的情况下,为所述active zone申请公有池资源。
根据本申请提供的一种资源分配方法,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求,包括:
在检测到所述active zone的资源配置参数的情况下,确定所述资源配置参数对应的资源数量;
在所述资源数量为第二数量,且所述第二数量小于第一数量的情况下,为所述active zone申请第二数量个私有池资源,并将剩余的私有池资源释放到公有池,其中,所述第一数量是基于所述私有池资源的数量及所述active zone的最大数量确定的。
根据本申请提供的一种资源分配方法,所述确定所述资源配置参数对应的资源数量之后,还包括:
在所述资源数量为第二数量,且所述第二数量大于所述最大资源数量的情况下,为所述active zone申请最大资源,其中,所述最大资源包括最大私有池资源及最大公有池资源。
根据本申请提供的一种资源分配方法,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求之后,还包括:
在所述active zone的私有池资源达到释放条件的情况下,将所述私有池资源释放到所述active zone的私管理单元;
在所述active zone的公有池资源达到释放条件的情况下,将所述公有池资源释放到公有池。
根据本申请提供的一种资源分配方法,所述公有池资源的数量为M0个,所述私有池资源的数量为M1个,所述active zone的最大数量为N;
所述active zone的最大资源数量U满足以下条件:
本申请还提供一种资源分配装置,包括:
划分单元,用于将固态硬盘的资源划分为公有池资源及私有池资源;
分配单元,用于基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述资源分配方法。
本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述资源分配方法。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述资源分配方法。
本申请提供的资源分配方法、装置、设备及存储介质,通过将固态硬盘的资源划分为公有池资源及私有池资源;基于公有池资源及私有池资源响应active zone活动区域的资源需求,且active zone的最大资源数量是基于公有池资源的数量、私有池资源的数量及active zone的最大数量确定的,因此通过公有池资源和私有池资源结合的方式,可保证active zone的资源需求。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的资源分配方法的流程示意图;
图2是本申请提供的资源分配装置的结构示意图;
图3是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例为应用于ZNS SSD的资源分配方法,下面先从SSD进行解释说明:
SSD中可分为三个部分,分别为主控芯片、与非型闪存以及缓存芯片。
其中,主控芯片,用于运行包括SSD的固件在内的操作指令,主控芯片上存在与主机端(host)相连的接口。
与非型闪存,其中与非型闪存中包含两个部分:逻辑执行单元(logical unitnumber,LUN)用于处理主控芯片下发的命令,并根据命令在闪存芯片上读取、写入或者擦除目标数据,一个闪存芯片上存在多个LUN,典型的为4或8个,这些LUN可以并行处理命令,此处不作限定。闪存芯片用于存储目标数据,其中闪存芯片为Nand型闪存,根据电子单元密度的差异,Nand型闪存还可以分为单层式存储单元(single-level cell,SLC)、多层式存储单元(multi-level cell,MLC)以及三层式存储单元(trinary-level cell,TLC),此处不对Nand型闪存的类型作限定,在SSD中,通常包含有8、16或32块Nand型闪存芯片组成的阵列。
缓存芯片,用于存储主控芯片上运行的操作指令所暂时需要的数据,缓存芯片的类型主要为动态随机存取存储器(dynamic random access memory,DRAM),也可以为静态随机存取存储器(static random access memory,SRAM)此处不做限定。在Nand Flash型闪存中,存储数据依靠的是单元(cell)的0/1变更实现的,在写操作时,修改相应单元的0或者1,Cell是最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit数据,NandFlash型芯片中,最小写入的单元是页(page),一般的大小为4千字节(kilobyte,KB)或512字节(byte,B),此处不做限定,最小擦除单元为块(block),对应于SSD硬件端的块称为物理块(physical block),SSD写入数据是以超级页(super page,superPage)的方式写入,一个superPage分布在不同的physicalblock上。
ZNS是基于zone大小的管理空间的一种NVMe协议的新特性,该协议主要是为了能够减小SSD的写放大、提升SSD性能的一种特殊应用,他要求上层应用必须按照完全的顺序进行下发,SSD中也不允许出现乱序的写入动作。
ZNS SSD即为分区命名空间固态硬盘,ZNS是从OC(Open Channel,开放通道)SSD(固态硬盘)基础上发展而来的,将整个SSD内部的存储区域分为多个zone空间,每一段zone空间管理一段LBA(物理page和逻辑地址之间的映射),不同的zone空间之间的数据可以是独立的。实现了把FTL(Flash Translation Layer,闪存转换层)从SSD内部迁移到上层的主机端,把SSD内部开放给了主机端,这样用户可以根据自己需要,比较灵活的拥有自己特定的FTL。
现有方案中,在ZNS SSD中,写入操作会针对不同的zone进行区分,针对不同zone的写入要落入不同的资源区中,在SSD内部资源较为紧缺,在大压力多zone同时写入时,会出现资源争抢现象,在通常的实现中会使用先到先得的方法来响应写入操作,这样容易导致部分zone的写入操作争抢不到资源出现性能抖动。
针对上述技术问题,本实施例提供一种资源分配方法,通过将固态硬盘的资源划分为公有池资源及私有池资源;基于公有池资源及私有池资源响应每一个active zone活动区域的资源需求,且每一个active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的,如此通过公有池资源和私有池资源结合的方式,保证每一个active zone的资源需求。
下面结合图1描述申请实施例提供的资源分配方法。如图1所示,为本申请实施例提供的资源分配方法的流程示意图,该方法主要包括如下步骤:
步骤101,将固态硬盘的资源划分为公有池资源及私有池资源;
其中,公有池资源指代可响应所有zone的写入和读取操作的资源,私有池资源指代只有处理它指定的zone的写入和读取操作的资源。
比如,设备地址空间的每一个zone都有一个wp(write pointer,写指针),用于跟踪下一次写入的位置,本实施例中将wp资源分为公有池资源及私有池资源,即从私有池资源中为某一个zone分配的wp资源仅可处理该zone的写入操作,从公有池资源中为某一个zone分配的wp资源在处理完该zone的写入操作后,还可供其他的zone使用。
还比如,每一个zone的写入操作包括zone打开、zone关闭、zone擦除,zone原子操作,因此会为每个zone提供一个资源锁,串行以上处理,保证zone及其对应的NAND区域操作的原子性。但是在zone写入和读取操作中就会出现频繁地获取zone资源锁及释放资源锁的操作,导致资源锁争抢及资源锁处理单元负担过重,出现性能下降,也会使ZNS SSD的性能优势急剧下降,本实施例中还将资源锁分为公有池资源及私有池资源,即从私有池资源中为某一个zone分配的资源锁仅可处理该zone的写入和读取操作,从公有池资源中为某一个zone分配的资源锁在处理完该zone的写入和读取操作后,还可供其他的zone使用。
此外需要说明的是,本实施例中的资源还指代其他所有可响应zone的写入和读取操作的资源,在此不一一赘述。
进一步地,本实施例中,为了保证每一个zone均有资源可用,还需先确定activezone活动区域的最大数量,比如根据固态硬盘当前的运行状态确定active zone活动区域(即同时写入zone)的最大数量为N后,初始化一定数据的资源,初始化之后固态硬盘的最大资源数量为M,最后根据active zone活动区域的最大数量N将固态硬盘的M个资源划分成多个公有池资源和多个私有池资源,其中,在ZNS协议中,active zone活动区域的最大数量是由SSD决定的,通常情况下最大数量为32。
具体地,本实施例中固态硬盘的公有池资源和私有池资源是基于以下原则进行划分的:
M=M0+M1=M0+P*N
其中,M0为公有池资源的数量,M1为私有池资源的数量,P为为active zone的每个zone申请的私有池资源的数量。
步骤102,基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
本实施例中,确保active zone的每个zone的最大资源数量为P+M0个,其中,P与私有池资源的数量M1及active zone的最大数量N有关,也即active zone的每个zone的最大资源数量U满足以下条件:
本实施例中,给当前创建的active zone的每一个zone最多分配P个私有池资源和M0个公有池资源,其中,P个私有池资源为每个zone最多可分配的私有池资源,M0个公有池资源为每个zone最多可分配的公有池资源,由此通过私有池与公有池管理方法,将ZNS SSD中active zone的各zone性能进行控制,基于私有池资源的设定,保证所有zone都有资源可用,基于公有池资源的设定,实现对于需求较高的zone分配更多的资源,保证了整体性能的前提下,避免单个zone因为资源争抢而出现长时间得不到资源,出现业务IO中断情况,如此当前创建的active zone的每一个zone均有资源可用,且由于私有池资源的设定,多zone并发操作下,zone之间不会存在资源争抢的现象。
本实施例提供的资源分配方法,通过将固态硬盘的资源划分为公有池资源及私有池资源;基于公有池资源及私有池资源响应active zone活动区域的资源需求,且activezone的最大资源数量是基于公有池资源的数量、私有池资源的数量及active zone的最大数量确定的,如此通过公有池资源和私有池资源结合的方式,保证active zone的资源需求。
在一些实施例中,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求,包括:
在未检测到所述active zone的资源配置参数的情况下,为所述active zone申请第一数量个私有池资源,其中,所述第一数量是基于所述私有池资源的数量及所述activezone的最大数量确定的。
其中,第一数量为固态硬盘当前可以为active zone中的每一个zone可分配的最大资源私有池数量。
可以理解地,通常情况下,在创建zone后,会再创建zone配置文件,同时将zone加入到zone配置文件后,激活zone配置文件,保存zone配置文件,这才是创建一个zone完整的流程。
本实施例中,对zone配置文件进行解析,确定用户是否为active zone进行资源配置,若在zone配置文件中未检测到active zone的资源配置参数,则根据私有池资源M1的数量及active zone的最大数量N确定active zone的每一个zone最多可分配私有池资源的第一数量P,其中,P=M1/N。
本申请实施例中,为active zone的zone申请第一数量个私有池资源后,该zone优先使用为其申请的私有池资源。
本实施例提供的资源分配方法,在用户未对创建的active zone进行资源配置时,为创建的active zone的每一个zone申请其可最多申请的第一数量个私有池资源,由于申请的私有池资源仅可供该zone使用,因此可以保证在多zone同时写入时,通过私有池的方式保证每一个zone的最低业务响应权限。
在一些实施例中,所述为所述active zone申请第一数量个私有池资源之后,还包括:
在所述第一数量个私有池资源不满足所述active zone的资源需求的情况下,为所述active zone申请公有池资源。
本实施例中,在为active zone的zone申请的第一数量个私有池资源不满足active zone的资源需求的情况下,可以先为不满足active zone的资源需求的zone临时申请一个公有池资源,在一个公有池资源仍不满足其资源需求的情况下,继续为其临时申请一个公有池资源。
本实施例中,公有池资源采用先到先得的方式,也即在公有池资源的数量为M0的情况下,本实施例中的active zone的每一个zone最多可申请公有池资源的数量为M0个,最少为0个。
本实施例提供的资源分配方法,在active zone的私有池资源不满足其资源需求的情况下,为其临时申请公有池资源,如此通过私有池和公有池的结合方式,保证activezone的不同zone的资源需求。
在一些实施例中,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求,包括:
在检测到所述active zone的资源配置参数的情况下,确定所述资源配置参数对应的资源数量;
在所述资源数量为第二数量,且所述第二数量小于第一数量的情况下,为所述active zone申请第二数量个私有池资源,并将剩余的私有池资源释放到公有池,其中,所述第一数量是基于所述私有池资源的数量及所述active zone的最大数量确定的。
其中,第二数量指代用户为active zone中的zone申请配置的资源数量,第一数量为固态硬盘当前可以为active zone中的zone可分配的最大私有池资源数量,本实施例中第一数量的确定方式同以上实施例中一致,在此不再赘述。
本实施例中,对zone配置文件进行解析,确定用户是否为active zone进行资源配置,若在zone配置文件中检测到active zone的资源配置参数,则确定资源配置参数对应的资源数量。
由于固态硬盘可为zone分配第一数量个私有池资源,且各zone的私有池资源仅可供各zone进行使用,本实施例中,在用户申请配置的资源数量小于固态硬盘当前可以为该zone分配的最大资源数量的情况下,优先为该zone申请第一数量个私有池资源并将该zone剩余的私有池资源释放到公有池,以供其他zone使用。
本实施例中,在资源数量为第二数量,且第二数量大于第一数量但小于最大资源数量的情况下,先为该zone申请第一数量个私有池资源,之后根据先到先得的原则为该zone申请公有池资源。
在一些实施例中,所述确定所述资源配置参数对应的资源数量之后,还包括:
在所述资源数量为第二数量,且所述第二数量大于所述最大资源数量的情况下,为所述active zone申请最大资源,其中,所述最大资源包括最大私有池资源及最大公有池资源。
本实施例中,在用户为active zone中的zone申请配置的资源数量超出了固态硬盘当前可以为active zone中的每一个zone分配的最大资源数量的情况下,则基于固态硬盘当前可以为active zone中的每一个zone分配的最大资源数量为其进行资源配置。
本实施例提供的资源分配方法,通过固态硬盘当前可以为active zone中的每一个zone分配的资源状况及用户为active zone中的zone申请配置的资源状况对各zone进行配置,实现了不同业务流的zone使用不同的性能。
在一些实施例中,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求之后,还包括:
在所述active zone的私有池资源达到释放条件的情况下,将所述私有池资源释放到所述active zone的私管理单元;
在所述active zone的公有池资源达到释放条件的情况下,将所述公有池资源释放到公有池。
其中,私管理单元指代管理active zone的各zone的私有池资源的管理单元。
本实施例中,在active zone的zone使用完它的私有池资源后,将它的私有池资源释放到私有池管理单元,由此私有池管理单元可确保它的私有池资源仅供它使用,不会被其他的zone使用。
在active zone的zone使用完它的公有池资源后,将它的公有池资源释放到公有池中,释放到公有池中的资源通过先到先得的方式分配给其他zone。
本实施例提供的资源分配方法,通过将使用完的私有池资源释放到active zone的私管理单元,使用完的公有池资源释放到公有池,因此通过公有池资源和私有池资源结合的方式,可保证不出现部分zone的写入操作争抢不到资源而出现性能抖动。
下面对本申请提供的资源分配装置进行描述,下文描述的资源分配装置与上文描述的资源分配方法可相互对应参照。
如图2所示,为本实施例提供的资源分配装置,该装置包括:划分单元210和分配单元220。
其中,划分单元210,用于将固态硬盘的资源划分为公有池资源及私有池资源;
本实施例中,公有池资源指代可响应所有zone的写入和读取操作的资源,私有池资源指代只有处理它指定的zone的写入和读取操作的资源。
比如,设备地址空间的每一个zone都有一个wp(write pointer,写指针),用于跟踪下一次写入的位置,本实施例中将wp资源分为公有池资源及私有池资源,即从私有池资源中为某一个zone分配的wp资源仅可处理该zone的写入操作,从公有池资源中为某一个zone分配的wp资源在处理完该zone的写入操作后,还可供其他的zone使用。
还比如,每一个zone的写入操作包括zone打开、zone关闭、zone擦除,zone原子操作,因此会为每个zone提供一个资源锁,串行以上处理,保证zone及其对应的NAND区域操作的原子性。但是在zone写入和读取操作中就会出现频繁地获取zone资源锁及释放资源锁的操作,导致资源锁争抢及资源锁处理单元负担过重,出现性能下降,也会使ZNS SSD的性能优势急剧下降,本实施例中还将资源锁分为公有池资源及私有池资源,即从私有池资源中为某一个zone分配的资源锁仅可处理该zone的写入和读取操作,从公有池资源中为某一个zone分配的资源锁在处理完该zone的写入和读取操作后,还可供其他的zone使用。
此外需要说明的是,本实施例中的资源还指代其他所有可响应zone的写入和读取操作的资源,在此不一一赘述。
进一步地,本实施例中,为了保证每一个zone均有资源可用,还需先确定activezone活动区域的最大数量,比如根据固态硬盘当前的运行状态确定active zone活动区域(即同时写入zone)的最大数量为N后,初始化一定数据的资源,初始化之后固态硬盘的最大资源数量为M,最后根据active zone活动区域的最大数量N将固态硬盘的M个资源划分成多个公有池资源和多个私有池资源,其中,在ZNS协议中,active zone活动区域的最大数量是由SSD决定的,通常情况下最大数量为32。
具体地,本实施例中固态硬盘的公有池资源和私有池资源是基于以下原则进行划分的:
M=M0+M1=M0+P*N
其中,M0为公有池资源的数量,M1为私有池资源的数量,P为为active zone的每个zone申请的私有池资源的数量。
分配单元220,用于基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
本实施例中,确保active zone的每个zone的最大资源数量为P+M0个,其中,P与私有池资源的数量M1及active zone的最大数量N有关,也即active zone的每个zone的最大资源数量U满足以下条件:
本实施例中,给当前创建的active zone的每一个zone最多分配P个私有池资源和M0个公有池资源,其中,P个私有池资源为每个zone最多可分配的私有池资源,M0个公有池资源为每个zone最多可分配的公有池资源,由此通过私有池与公有池管理方法,将ZNS SSD中active zone的各zone性能进行控制,基于私有池资源的设定,保证所有zone都有资源可用,基于公有池资源的设定,实现对于需求较高的zone分配更多的资源,保证了整体性能的前提下,避免单个zone因为资源争抢而出现长时间得不到资源,出现业务IO中断情况,如此当前创建的active zone的每一个zone均有资源可用,且由于私有池资源的设定,多zone并发操作下,zone之间不会存在资源争抢的现象。
在一些实施例中,分配单元220,还用于在未检测到所述active zone的资源配置参数的情况下,为所述active zone申请第一数量个私有池资源,其中,所述第一数量是基于所述私有池资源的数量及所述active zone的最大数量确定的。
在一些实施例中,分配单元220,还用于在所述第一数量个私有池资源不满足所述active zone的资源需求的情况下,为所述active zone申请公有池资源。
在一些实施例中,分配单元220,还用于在检测到所述active zone的资源配置参数的情况下,确定所述资源配置参数对应的资源数量;
在所述资源数量为第二数量,且所述第二数量小于第一数量的情况下,为所述active zone申请第二数量个私有池资源,并将剩余的私有池资源释放到公有池,其中,所述第一数量是基于所述私有池资源的数量及所述active zone的最大数量确定的。
在一些实施例中,分配单元220,还用于在所述资源数量为第二数量,且所述第二数量大于所述最大资源数量的情况下,为所述active zone申请最大资源,其中,所述最大资源包括最大私有池资源及最大公有池资源。
在一些实施例中,该装置还包括:释放单元,用于在所述active zone的私有池资源达到释放条件的情况下,将所述私有池资源释放到所述active zone的私管理单元;
在所述active zone的公有池资源达到释放条件的情况下,将所述公有池资源释放到公有池。
在一些实施例中,所述公有池资源的数量为M0个,所述私有池资源的数量为M1个,所述active zone的最大数量为N;
所述active zone的最大资源数量U满足以下条件:
本实施例中提供的资源分配装置,通过将固态硬盘的资源划分为公有池资源及私有池资源;基于公有池资源及私有池资源响应每一个active zone活动区域的资源需求,且每一个active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的,如此通过公有池资源和私有池资源结合的方式,保证每一个active zone的资源需求。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(Communications Interface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行资源分配方法,该方法包括:
将固态硬盘的资源划分为公有池资源及私有池资源;
基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的资源分配方法,该方法包括:
将固态硬盘的资源划分为公有池资源及私有池资源;
基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的资源分配方法,该方法包括:
将固态硬盘的资源划分为公有池资源及私有池资源;
基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种资源分配方法,其特征在于,包括:
将固态硬盘的资源划分为公有池资源及私有池资源;
基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
2.根据权利要求1所述的资源分配方法,其特征在于,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求,包括:
在未检测到所述active zone的资源配置参数的情况下,为所述active zone申请第一数量个私有池资源,其中,所述第一数量是基于所述私有池资源的数量及所述active zone的最大数量确定的。
3.根据权利要求2所述的资源分配方法,其特征在于,所述为所述active zone申请第一数量个私有池资源之后,还包括:
在所述第一数量个私有池资源不满足所述active zone的资源需求的情况下,为所述active zone申请公有池资源。
4.根据权利要求1所述的资源分配方法,其特征在于,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求,包括:
在检测到所述active zone的资源配置参数的情况下,确定所述资源配置参数对应的资源数量;
在所述资源数量为第二数量,且所述第二数量小于第一数量的情况下,为所述activezone申请第二数量个私有池资源,并将剩余的私有池资源释放到公有池,其中,所述第一数量是基于所述私有池资源的数量及所述active zone的最大数量确定的。
5.根据权利要求4所述的资源分配方法,其特征在于,所述确定所述资源配置参数对应的资源数量之后,还包括:
在所述资源数量为第二数量,且所述第二数量大于所述最大资源数量的情况下,为所述active zone申请最大资源,其中,所述最大资源包括最大私有池资源及最大公有池资源。
6.根据权利要求1至5任一项所述的资源分配方法,其特征在于,所述基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求之后,还包括:
在所述active zone的私有池资源达到释放条件的情况下,将所述私有池资源释放到所述active zone的私管理单元;
在所述active zone的公有池资源达到释放条件的情况下,将所述公有池资源释放到公有池。
8.一种资源分配装置,其特征在于,包括:
划分单元,用于将固态硬盘的资源划分为公有池资源及私有池资源;
分配单元,用于基于所述公有池资源及所述私有池资源响应active zone活动区域的资源需求;
其中,所述active zone的最大资源数量是基于所述公有池资源的数量、所述私有池资源的数量及所述active zone的最大数量确定的。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述资源分配方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310158648.0A CN116339978A (zh) | 2023-02-23 | 2023-02-23 | 资源分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310158648.0A CN116339978A (zh) | 2023-02-23 | 2023-02-23 | 资源分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116339978A true CN116339978A (zh) | 2023-06-27 |
Family
ID=86892151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310158648.0A Pending CN116339978A (zh) | 2023-02-23 | 2023-02-23 | 资源分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116339978A (zh) |
-
2023
- 2023-02-23 CN CN202310158648.0A patent/CN116339978A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237769B2 (en) | Memory system and method of controlling nonvolatile memory | |
US10884630B2 (en) | Storage system | |
BR112016019305B1 (pt) | Controlador de arranjo, disco de estado sólido, e método para controlar disco de estado sólido para gravar dados | |
US12086432B2 (en) | Gradually reclaim storage space occupied by a proof of space plot in a solid state drive | |
CN114968081A (zh) | 数据存储系统中的基于利用率的动态共享缓冲器 | |
US11960756B2 (en) | Management of storage space in solid state drives to support proof of space activities | |
US11775188B2 (en) | Communications to reclaim storage space occupied by proof of space plots in solid state drives | |
US11543980B2 (en) | Allocating variable media types of memory devices in a memory system | |
US11520699B2 (en) | Using a common pool of blocks for user data and a system data structure | |
CN115756327A (zh) | 一种固态硬盘及其数据写方法、装置、主机和存储介质 | |
US10891073B2 (en) | Storage apparatuses for virtualized system and methods for operating the same | |
CN112889036B (zh) | 基于类别的动态存储器插槽分配 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN113939797B (zh) | 用于存储器子系统的锁定管理 | |
KR20220165855A (ko) | 스토리지 장치 및 그의 동작 방법 | |
CN114391139A (zh) | 存储器组件中的使用经调整参数的垃圾收集 | |
CN115527585A (zh) | 用于存储器管理的超额配给组件 | |
CN116339978A (zh) | 资源分配方法、装置、设备及存储介质 | |
KR20150096177A (ko) | 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치 | |
KR20190026269A (ko) | 뉴메모리 기반 메모리 관리 방법 및 이를 수행하는 장치들 | |
KR20230115197A (ko) | 다른 타입의 블록들을 관리하는 스토리지 컨트롤러, 이의 동작 방법, 및 이를 포함하는 스토리지 장치의 동작하는 방법 | |
KR20230166803A (ko) | 높은 퍼지 성능을 제공하는 스토리지 장치 및 그것의 메모리 블록 관리 방법 | |
KR20230172729A (ko) | 스토리지 장치 및 이의 동작 방법 | |
CN116501243A (zh) | 存储控制器及其操作方法、存储装置的操作方法 | |
CN117632255A (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 |