1.一种基于ZNS SSD系统的资源分配方法,其特征在于,构建ZNS SSD系统,该系统包括:主机和ZNS SSD设备;所述ZNS SSD设备中设置有分流模块、资源分配模块、动态映射模块和请求响应模块;ZNS SSD设备中为每一个应用程序的IO流请求开辟一个对应的IO队列;
基于ZNS SSD系统的资源分配方法,包括以下步骤:
主机将不同应用程序的IO流请求放入不同的SQ中进行发送;
通过分流模块将不同SQ中的IO流请求存放在对应的IO队列中;
采用资源分配模块周期性计算每个IO队列的强度,并通过所有IO队列的强度的比值为每个IO队列分配资源;
根据块级映射机制和资源分配模块的分配结果动态地为每个zone映射具体的物理块;
通过轮询的方式从所有的IO队列中取出IO流请求并响应,响应成功后返回给CQ;
块级映射机制包括:为每一个zone建立物理块级别的地址映射表和一个内部构造表,开始时映射表为空,若接收到的IO流请求为写请求,在响应该写请求时,首先确认该写请求的目标zone中是否有足够的物理空间写入该写请求中的所有数据;若有,则直接写入;若无,则确认该写请求所属的IO队列,从与该IO队列绑定的Chip/DIE资源中去分配新物理块来进行映射,并将新物理块的ID填充到目标zone的地址映射表中。
2.根据权利要求1所述的一种基于ZNS SSD系统的资源分配方法,其特征在于,资源分配模块进行资源分配的具体过程为:每隔10ms计算一次各IO队列中的IO流请求的总字节数,用总字节数量化表示IO队列的强度,根据所有IO队列的强度之间的比值计算资源分配比例,根据资源分配比例为每个IO队列分配资源。
3.根据权利要求2所述的一种基于ZNS SSD系统的资源分配方法,其特征在于,资源分配模块为IO流请求分配的主要资源是Chip/DIE,每个IO队列至少分配得到一个Chip/DIE。
4.根据权利要求2所述的一种基于ZNS SSD系统的资源分配方法,其特征在于,每个IO流请求分配得到的资源的空闲程度相近。
5.根据权利要求1所述的一种基于ZNS SSD系统的资源分配方法,其特征在于,根据zone的并行度决定每次分配物理块的数量,将zone的一次分配看做是一个区间,按照顺序编号,并将每个区间分配的物理块数量以及起始逻辑块记录在内部构造表里。
6.根据权利要求1所述的一种基于ZNS SSD系统的资源分配方法,其特征在于,若IO流请求为读请求,在块级映射机制下的响应过程包括:S11.解析所述读请求的起始逻辑地址和请求大小,得到分区序号和目标逻辑页;
S12.通过分区序号所对应的zone的内部构造表确定目标逻辑页对应区间的区间序号;
S13.根据区间序号和该区间的起始逻辑块索引得到逻辑块地址和块内偏移;
S14.在该zone的地址映射表中根据逻辑块地址索引到物理块地址,再根据块内偏移索引到物理页;
S15.将物理页中读到的数据返回给主机。