CN114047877A - 一种应用于SSD的NVM Set分配方法 - Google Patents
一种应用于SSD的NVM Set分配方法 Download PDFInfo
- Publication number
- CN114047877A CN114047877A CN202111317724.5A CN202111317724A CN114047877A CN 114047877 A CN114047877 A CN 114047877A CN 202111317724 A CN202111317724 A CN 202111317724A CN 114047877 A CN114047877 A CN 114047877A
- Authority
- CN
- China
- Prior art keywords
- application
- channel
- bandwidth
- read
- channels
- 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 21
- 238000012795 verification Methods 0.000 claims abstract description 10
- 238000012937 correction Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000013403 standard screening design Methods 0.000 description 25
- 239000002245 particle Substances 0.000 description 3
- 238000002955 isolation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004898 kneading Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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/0638—Organizing or formatting or addressing of data
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提出了一种满足各应用容量、带宽和时延需求的NVM Set分配方法,用户输入各应用所需的容量、读写带宽及时延之后,对应用容量总和、带宽总和以及读写时延执行校验操作;之后为每个应用基于其读写时延需求计算所需的实际容量、MU数量和Channel数量,并对所需Channel总和执行校验操作;当所有校验全部通过后,为各应用分配相应的MU及Channel。
Description
技术领域
本发明涉及闪存存储控制领域,更具体涉及一种应用于SSD的NVM Set分配方法。
背景技术
NVM Express(Non-Volatile Memory,NVMe)作为可扩展的主机和非易失性存储子系统之间的通用接口,已广泛应用于企业级PCIe SSD中。得益于PCIe协议和NVMe协议的不断迭代,以及NAND Flash的工艺进步,NVMe SSD峰值性能不断提升(读带宽6GB/s、写带宽4GB/s),时延不断下降(读时延10μs、写时延10-20μs),容量也越来越大(16TB)。SSD容量的增大催生了多用户共享单硬盘的场景,同时也引出了新的问题:多个应用运行在同一硬盘上时,彼此之间互相干扰,在长时间运行时,尽管平均时延满足应用需求,但是时延波动剧烈、QoS下降。针对此类问题,NVMe协议在其1.4版本中加入IOD规范,允许将所有Flash芯片颗粒划分为不同的NVM Set,为每个应用分配独立的NVM Set,实现多应用的物理隔离性,从而保证各应用的时延稳定性。尽管NVMe 1.4详细定义了支持IOD特性所需要的实现细节,但当前并无成熟的针对多应用的NVM Set分配方法,即同时满足各应用需求容量、带宽和时延的分配方法。
发明内容
为了解决上述问题,本发明需要提供一种满足各应用容量、带宽和时延需求的NVMSet分配方法。
本发明采用的具体技术方案如下:
一种应用于SSD的NVM Set分配方法,包括步骤:
a)输入应用集合{Ai|i∈R,0<i≤n},n为应用个数;
b)获取应用集合中每个应用的信息数据;
c)对每个应用的信息数据执行入参校验,如果校验未通过,返回失败信息;
d)计算各应用的实际容量、占用的存储介质单元数量和占用的Channel数量,所述Channel指NAND Flash Channel;
e)验证所有应用需求Channel数量之和是否大于SSD总Channel数量,若是,则返回NVM分配失败信息,若否,为所有应用分配相应的MU和Channel。
进一步的,步骤b所述每个应用的信息数据包括应用读写带宽、应用读写时延和应用标称容量。
进一步的,步骤c所述入参校验包括步骤:
c1)容量校验,各应用标称容量值之和不大于SSD总标称容量Cssduser;
c2)带宽校验:各应用读带宽之和不大于Max{Bfrontend,Bbackend},各应用写带宽之和不大于Max{Bfrintend,Bbackend},其中,前端带宽Bfrontend是Host Memory到SSD ControllerMemory的带宽,后端带宽Bbackend是所有Channel带宽之和;
c3)时延校验:应用读时延不小于整盘SSD的理论最低读时延;应用写时延应不小于整盘SSD的理论最低写时延。
进一步的,步骤d各应用的实际容量、占用的存储介质单元数量和占用的Channel数量计算方法为:
d1)基于应用标称容量计算应用的实际容量和需要占用的存储介质单元数量;
d2)计算满足应用写带宽所需要的存储介质单元数量以及所需要的Channel数量;
d3)计算满足应用读带宽所需要的存储介质单元数量以及所需要的Channel数量;
d4)计算满足应用写时延所需要的存储介质单元数量以及所需要的Channel数量;
d5)计算满足应用读时延所需要的存储介质单元数量以及所需要的Channel数量;
d6)计算应用最终所需存储介质单元数量和Channel数量;
d7)验证所有应用需求的Channel数量之和是否大于SSD总Channel数量,若是,返回NVM分配失败信息,若否,为所有应用分配相应的存储介质单元和Channel。
进一步的,在步骤d2-5的计算步骤完成后还分别包括校正和校验步骤如下:
d21)基于满足应用写带宽所需要的Channel数量校正相应应用写带宽的存储介质单元数量;
d31)基于满足应用读带宽所需要的Channel数量校正相应应用读带宽的存储介质单元数量;
d41)基于满足应用写时延所需要的Channel数量校正相应应用的写时延;
d51)校验满足应用读时延所需要的Channel数量是否大于N4k_data_cnt,若是,则停止后续操作冰返回失败信息,其中,定义单笔IO命令的Channel数据量为D=4096×N4k_data_cnt;
d52)基于满足应用读时延所需要的Channel数量校正相应应用读时延的存储介质单元数量。
进一步的,步骤d7还包括:
d71)校验应用最终所需存储介质单元数量Nmu_i,如果Nmu_i>Nchannel_i×Nmu-per_channel,校正Nchannel_i和Nmu_i,其中,Nchannel_i为第i个应用占用的Channel数量,Nmu_i为第i个应用占用的MU数量,Nmu-per_channel为每个Channel上的存储介质单元数量。
本发明的有益效果为:
提出了一种满足各应用容量、带宽和时延需求的NVM Set分配方法,用户输入各应用所需的容量、读写带宽及时延之后,对应用容量总和、带宽总和以及读写时延执行校验操作;之后为每个应用基于其读写时延需求计算所需的实际容量、MU数量和Channel数量,并对所需Channel总和执行校验操作;当所有校验全部通过后,为各应用分配相应的MU及Channel。本发明可以用于解决支持NVMe 1.4协议的单盘多应用物理资源分配问题,基于所有应用的容量、带宽及时延需求,为各应用准确地分配所需的Channel及MU资源,在实现所有应用物理隔离的前提下,保证了所有应用的带宽指标及时延稳定性。
附图说明
图1为本发明实施例所述方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在企业级SSD中,通常需要在标称容量Cuser之外分配一部分存储空间用于其他用途,包括:
预留空间Cop,用于执行垃圾回收和磨损均衡,容量值大小依赖于预留空间占总容量比例Pop;本发明中所有应用在计算自身实际容量时均使用相同的初始预留空间比例Pop;
RAID存储空间Craid,保存用于数据恢复的冗余信息,容量值大小依赖于RAID容量占总容量比例Praid;本发明中针对不同应用设置相同Praid;
综上所述,应用在SSD中实际分配容量Ctotal的计算公式如下:
Ctotal=Cuser×(1/(1-Pop))×1/(1-Praid)
本发明中将SSD总标称容量记为Cssd_user,将SSD实际容量记为Cssd_total。
上位机与SSD进行数据交互时,数据流如下:
在上位机对SSD执行写入操作时,数据从Host Memory通过PCIe接口总线传输到SSD Controller Memory(简写为Controller Memory),再由Controller Memory通过NANDFlash Channel(简写为Channel)中的DMA硬件单元传输到NAND Flash颗粒芯片的数据寄存器中,最后再将寄存器中数据写入NAND Flash颗粒芯片的物理介质中;读操作则按照反向数据流进行。
Host Memory到Controller Memory性能依赖于PCIe版本及通道数,例如PCIe 4.0单通道带宽2GB/s,则4通道带宽为8GB/s;本发明将Host Memory到Controller Memory带宽记为前端带宽Bfrontend;
SSD通常选择相同类型NAND Flash芯片作为存储介质,这里将单个NAND FLASH芯片称为存储介质单元(简写为MU);相同类型MU具有相同的容量Cmu、读性能Pmu_read、写性能Pmu_write和擦性能Pmu_erase,注意,这里提到的读写性能指的是数据在MU数据寄存器和MU物理介质之间的性能;MU单次最大数据操作量是固定的,这里记单次最大写入数据量为Dmu_write,单次最大读取数据量为Dmu_read。本发明中将SSD包含的MU总数量记为Nmu_total,总容量(即所有MU容量之和)记为Cssd;
SSD Controller通过Channel管理所有MU,也就是在不同Channel上分配相同数量相同类型的MU(Channel数量和MU总数量通常应为2n),其中Channel数量记为Nchannel,每个Channel上的MU数量记为Nmu_per_channel,在各Channel上配置DMA单元(所有Channel DMA应确保性能一致),用于实现数据在Controller Memory与特定Channel中MU数据寄存器之间的传输;本发明将Controller Memory到特定Channel中MU数据寄存器的带宽称为Channel带宽Bchannel,将所有Channel带宽之和称为后端带宽Bbackend,并保证Nmu_per-channel×Pmu_write≥Bchannel。
本发明中指定单笔IO命令数据量为D=4096×N4k_data_cnt,如果某个应用占用Channel数量为Napp-channel;则理论上其写最低时延为:
Lwrite(Napp-channel)=D/(Bfrontend×(Napp_channel/Nchannel))
读最低时延为:
Lread(Napp-channel)
=Pmu_read+D/(Bchannel×min(N4k_data-cnt,Napp_channel))+Lwrite
针对随机读测试用例,每个Channel每次最小的有效数据读取量为4096B,因此当N4k_data_cnt<Napp_channel时,能够有效利用的Channel数量最多为N4k_data_cnt。
通过上述公式,可知整盘SSD的理论最低写时延为Lwrite(Nchannel),最低读时延为Lread(Nchannel),同时可以推导出满足应用写时延Lwrite和读时延Lread所需Channel数量的计算公式:
需要保证Napp-channel(Lread)≤N4k-data_cmt,因为如果N4k-data_cntNapp_channel,能够被有效利用的Channel数量最多为N4k_data_cnt,实际时延必然会大于Lread。
本发明提出了一种满足各应用容量、带宽和时延需求的NVM Set分配方法,首先需要用户输入各应用所需的容量、读写带宽及时延:
输入包含n个应用的应用集合{Ai|i∈R,0<i≤n},各应用包含信息如下:
应用读带宽Bread_i,写带宽Bwrite_i;
应用读时延Lread_i,写时延Lwrite_i;
应用标称容量Cuser_i。
随后,对应用容量总和、带宽总和以及读写时延执行校验操作:
容量校验:各应用标称容量值之和不大于SSD总标称容量Cssd_user;
带宽校验:各应用读带宽之和不大于Max{Bfrontend,Bbackend};各应用写带宽之和不大于Max{Bfrontend,Bbackend};
校验时延:应用读时延不小于lread(Nchannel);应用写时延应不小于Lwrite(Nchannel);
如果某项校验未通过,返回失败并提示用户校验失败相关信息;如果全部校验成功,继续执行后续操作。
之后为每个应用基于其读写时延需求计算各应用的实际容量Ctotal_i、占用的MU数量Nmu_i、占用的Channel数量Nchannel-i,具体步骤如下:
基于Cuser_i计算应用Ai的实际容量Ctotal_i:
Ctotal_i=Cuser_i×1/(1-Pop)×1/(1-Praid)
计算Ai最终所需MU数量Nmu_i和Channel数量Nchannel_i,
如果Nmu_i>Nchannel_i×Nmu_per_channel,校正Nchannel_i
校正Nmu_i,
Nmu_i=Nmu_i+Nchannel_i-(Nmu_i%Nchannel_i)。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种应用于SSD的NVM Set分配方法,其特征在于,包括步骤:
a)输入应用集合{Ai|i∈R,0<i≤n},n为应用个数;
b)获取应用集合中每个应用的信息数据;
c)对每个应用的信息数据执行入参校验,如果校验未通过,返回失败信息;
d)计算各应用的实际容量、占用的存储介质单元数量和占用的Channel数量,所述Channel指NAND Flash Channel;
e)验证所有应用需求Channel数量之和是否大于SSD总Channel数量,若是,则返回NVM分配失败信息,若否,为所有应用分配相应的MU和Channel。
2.根据权利要求1所述的应用于SSD的NVM Set分配方法,其特征在于,步骤b所述每个应用的信息数据包括应用读写带宽、应用读写时延和应用标称容量。
3.根据权利要求2所述的应用于SSD的NVM Set分配方法,其特征在于,步骤c所述入参校验包括步骤:
c1)容量校验,各应用标称容量值之和不大于SSD总标称容量Cssd_user;
c2)带宽校验:各应用读带宽之和不大于Max{Bfrontend,Bbackend},各应用写带宽之和不大于Max{Bfrontend,Bbackend},其中,前端带宽Bfrontend是Host Memory到SSD Controller Memory的带宽,后端带宽Bbackend是所有Channel带宽之和;
c3)时延校验:应用读时延不小于整盘SSD的理论最低读时延;应用写时延应不小于整盘SSD的理论最低写时延。
4.根据权利要求2所述的应用于SSD的NVM Set分配方法,其特征在于,步骤d各应用的实际容量、占用的存储介质单元数量和占用的Channel数量计算方法为:
d1)基于应用标称容量计算应用的实际容量和需要占用的存储介质单元数量;
d2)计算满足应用写带宽所需要的存储介质单元数量以及所需要的Channel数量;
d3)计算满足应用读带宽所需要的存储介质单元数量以及所需要的Channel数量;
d4)计算满足应用写时延所需要的存储介质单元数量以及所需要的Channel数量;
d5)计算满足应用读时延所需要的存储介质单元数量以及所需要的Channel数量;
d6)计算应用最终所需存储介质单元数量和Channel数量;
d7)验证所有应用需求的Channel数量之和是否大于SSD总Channel数量,若是,返回NVM分配失败信息,若否,为所有应用分配相应的存储介质单元和Channel。
5.根据权利要求4所述的应用于SSD的NVM Set分配方法,其特征在于,在步骤d2-5的计算步骤完成后还分别包括校正和校验步骤如下:
d21)基于满足应用写带宽所需要的Channel数量校正相应应用写带宽的存储介质单元数量;
d31)基于满足应用读带宽所需要的Channel数量校正相应应用读带宽的存储介质单元数量;
d41)基于满足应用写时延所需要的Channel数量校正相应应用的写时延;
d51)校验满足应用读时延所需要的Channel数量是否大于N4k_data_cnt,若是,则停止后续操作并返回失败信息,其中,定义单笔IO命令的Channel数据量为D=4096×N4k_data_cnt;
d52)基于满足应用读时延所需要的Channel数量校正相应应用读时延的存储介质单元数量。
6.根据权利要求4所述的应用于SSD的NVM Set分配方法,其特征在于,步骤d7还包括:
d71)校验应用最终所需存储介质单元数量Nmu_i,如果Nmu_i>Nchannel_i×Nmu_per_channel,校正Nchannel_i和Nmu_i,其中,Nchannel_i为第i个应用占用的Channel数量,Nmu_i为第i个应用占用的MU数量,Nmu_per_channel为每个Channel上的存储介质单元数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111317724.5A CN114047877A (zh) | 2021-11-09 | 2021-11-09 | 一种应用于SSD的NVM Set分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111317724.5A CN114047877A (zh) | 2021-11-09 | 2021-11-09 | 一种应用于SSD的NVM Set分配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114047877A true CN114047877A (zh) | 2022-02-15 |
Family
ID=80207619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111317724.5A Pending CN114047877A (zh) | 2021-11-09 | 2021-11-09 | 一种应用于SSD的NVM Set分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047877A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897618A (zh) * | 2018-06-19 | 2018-11-27 | 中国科学技术大学 | 一种异构内存架构下基于任务感知的资源分配方法 |
US20200117369A1 (en) * | 2019-12-12 | 2020-04-16 | Intel Corporation | Solid state drive with multiplexed internal channel access during program data transfers |
CN111506255A (zh) * | 2019-01-31 | 2020-08-07 | 山东存储之翼电子科技有限公司 | 基于nvm的固态硬盘元数据管理方法及系统 |
US20210026563A1 (en) * | 2019-07-26 | 2021-01-28 | Toshiba Memory Corporation | Independent set data lanes for iod ssd |
-
2021
- 2021-11-09 CN CN202111317724.5A patent/CN114047877A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897618A (zh) * | 2018-06-19 | 2018-11-27 | 中国科学技术大学 | 一种异构内存架构下基于任务感知的资源分配方法 |
CN111506255A (zh) * | 2019-01-31 | 2020-08-07 | 山东存储之翼电子科技有限公司 | 基于nvm的固态硬盘元数据管理方法及系统 |
US20210026563A1 (en) * | 2019-07-26 | 2021-01-28 | Toshiba Memory Corporation | Independent set data lanes for iod ssd |
US20200117369A1 (en) * | 2019-12-12 | 2020-04-16 | Intel Corporation | Solid state drive with multiplexed internal channel access during program data transfers |
Non-Patent Citations (1)
Title |
---|
李琼;宋振龙;袁远;谢徐超;: "一种基于NVMeoF存储池的分域共享并发存储架构", 计算机工程与科学, no. 10, 15 October 2020 (2020-10-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107710140B (zh) | 存储系统 | |
US8706962B2 (en) | Multi-tier storage system configuration adviser | |
JP5439581B2 (ja) | ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法 | |
US7743212B2 (en) | Storage system and capacity allocation method therefor | |
US8225039B2 (en) | Storage controller and virtual volume control method | |
US9223713B2 (en) | Allocation of cache to storage volumes | |
US10203876B2 (en) | Storage medium apparatus, method, and program for storing non-contiguous regions | |
CN101727293B (zh) | 一种固态硬盘ssd存储的设置方法、装置和系统 | |
US10572379B2 (en) | Data accessing method and data accessing apparatus | |
CN102122235B (zh) | 一种raid4系统及其数据读写方法 | |
JP6340439B2 (ja) | ストレージシステム | |
CN103688248A (zh) | 一种存储阵列的管理方法、装置和控制器 | |
US8489845B2 (en) | Storage system comprising multiple storage control apparatus | |
US10049042B2 (en) | Storage device, semiconductor memory device, and method for controlling same | |
WO2020172821A1 (zh) | 固态硬盘写放大优化方法 | |
CN102566939B (zh) | 一种固态硬盘及其读-修改-写操作的数据管理方法 | |
US20140173223A1 (en) | Storage controller with host collaboration for initialization of a logical volume | |
US20190243758A1 (en) | Storage control device and storage control method | |
CN103049216A (zh) | 固态硬盘及其数据处理方法、系统 | |
CN116457885A (zh) | 一种数据处理方法、装置及系统 | |
US10133517B2 (en) | Storage control device | |
CN114047877A (zh) | 一种应用于SSD的NVM Set分配方法 | |
CN117332731A (zh) | 一种ssd后端带宽及cpu算力稳态随机写性能评估方法 | |
WO2020134142A1 (zh) | 分布式存储系统中流控的方法、存储设备和系统 | |
CN114527936B (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 |