一种存储阵列控制器IO队列调度方法与装置制造方法及图纸

技术编号:21140360 阅读:23 留言:0更新日期:2019-05-18 04:57
本发明专利技术提出了一种存储阵列控制器IO队列调度方法与装置,包括IO请求分发单元、IO请求调度单元、IO请求执行单元和状态监控器;IO分发单元接收来自主机的IO请求,分为IO读和IO写;IO调度单元接收来自IO分发单元的IO请求,送入不同的队列,并按优先级排序,IO调度单元接收来自状态监控器关于介质状态的信息,引入IO写请求的优先级计算加权因子进行优先级缩放,将最高优先级的IO请求,发往IO执行单元;IO执行单元接收来自IO调度单元的IO请求,发往下层模块。本发明专利技术解决了控制器存储介质接口带宽利用不充分的问题,在满足用户QoS满意度的同时,提升了存储器的读写速度以及每秒处理IO请求的能力。

An IO Queue Scheduling Method and Device for Storage Array Controller

【技术实现步骤摘要】
一种存储阵列控制器IO队列调度方法与装置
本专利技术属于计算机网络数据存储领域,具体涉及到一种存储阵列中的IO队列调度方法与装置。
技术介绍
伴随着云计算迅速普及和各行业对于数据资产保存和利用意识的增强,以及通过互联网、大数据对产业进行变革的意愿,以大容量非易失性闪存作为介质的阵列存储技术正在数据中心迅速兴起,快速取代传统机械硬盘技术。数据中心、服务器通过通信网络连接众多的客户端计算机。用户在客户端通过通信网络,将IO请求发往阵列存储控制器,完成数据的获取和更新,如附图1。用户发往数据中心的IO请求通常采用了一种称为标记命令队列(TCQ)的技术,用以标记IO请求的优先级和队列类型。TCQ技术面向多主机、多设备应用环境,支持256级队列深度,用于服务器和数据中心。由于终端用户众多,发往数据中心的IO请求数量庞大,如果不采取有效的策略进行调度,易造成IO请求堆积,存储介质接口带宽利用率不足的问题,进而造成客户服务满意度下降。固态硬盘由于一些工作机制的原因,如在写入之前必须先擦除,存在写放大效应(writeamplification),读写速度存在差异。通常IO读的速度是IO写速度的3~5倍。考虑IO写对带宽的占用显著高于IO读请求,在调度方案设计中,适当的降低IO写调度优先级能提高存储阵列的整体性能表现。现有队列调度技术在队列管理方案方面存在缺陷,易导致存储介质接口带宽利用不充分的问题。
技术实现思路
针对现有技术的不足,本专利技术提出了一种存储阵列控制器IO队列调度方法与装置。本专利技术的核心是一个IO调度器,包括IO请求分发单元、IO请求调度单元、IO请求执行单元和状态监控器。IO请求分发单元接收来自主机的IO请求,按IO请求类型将队列分为两大类,分别是IO读和IO写;对IO读请求按读取目标物理地址所在的存储介质单元进一步区分划为不同的队列,读取目标物理地址所在的存储介质单元相同的IO请求划入同一队列。IO请求调度单元接收来自IO请求分发单元的IO请求,送入不同的队列,并按优先级从大到小的顺序排序。同一队列相同优先级的IO请求按先进先出原则排序。IO请求调度单元接收来自状态监控器关于介质状态的信息,记为A。用Ai=1表示监控器已经收到第i个存储介质单元执行最近IO请求的操作结果,用Ai=0表示监控器未收到第i个存储介质单元执行最近IO请求的操作结果。引入写/擦除/Trim一类IO请求的优先级计算加权因子α,对这一类IO请求的优先级进行缩放,其中α∈(0,1]。用ρij表示第i队列、第j个排序IO请求的优先级。按{ρij*Ai}计算每个IO读队列最高优先级IO的实时优先级;按{α*ρij*Ai}计算IO写/擦除/Trim队列最高优先级IO的实时优先级,其中*表示乘法运算。对计算结果进行排序,将最高优先级的IO请求,发往IO请求执行单元。IO请求执行单元接收来自IO请求调度单元的IO请求,发往下层模块进行执行读写等操作。进一步,用ρij表示第i队列、第j个排序IO的优先级,如果该优先级的IO请求多于1个,则按先进先出原则调度,即ρij0>ρij1>ρij2。进一步,对IO队列的调度过程是:1)按{ρij*Ai}计算每个IO读队列最高优先级IO的实时优先级;2)按{α*ρij*Ai}计算IO写请求队列最高优先级IO的实时优先级;3)计算结果分为3种情况描述:一是全为0,此时没有可供调度的IO,或者有可供调度的IO但存储介质处于busy状态;二是仅有一个非0值,则将该IO请求送往IO执行单元;三是有多于一个的非0值,则对计算结果进行排序,从中选出最大值所对应的IO,发往IO执行单元。一种存储阵列控制器IO队列调度装置,包括IO请求分发单元,IO请求调度单元,IO请求执行单元,状态监控器;所述IO请求分发单元,接收来自主机的IO请求,按IO请求类型将队列分为两大类,第一类包括IO读请求,第二类包括IO写请求;对IO读请求按读取目标物理地址所在的存储介质单元进一步区划分为不同的队列;所述IO请求调度单元,接收来自IO请求分发单元的IO请求,送入不同的队列,并按优先级从大到小的顺序排序,同一队列相同优先级的IO请求按先进先出原则排序;所述IO请求调度单元接收来自状态监控器关于介质状态的信息,记着A,用Ai=1表示监控器已经收到第i个存储介质执行最近IO请求的操作结果,用Ai=0表示监控器未收到第i个存储介质执行最近IO请求的操作结果;引入IO写请求的优先级计算加权因子α,对这一类IO请求的优先级进行缩放,其中α∈(0,1],用ρij表示第i队列、第j个排序IO请求的优先级,按{ρij*Ai}计算每个IO读队列最高优先级IO的实时优先级;按{α*ρij*Ai}计算IO写请求队列最高优先级IO的实时优先级,其中*表示乘法运算,对计算结果进行排序,将最高优先级的IO请求,发往IO请求执行单元;所述IO请求执行单元,接收来自IO请求调度单元的IO请求,发往下层模块进行执行读写等操作;所述状态监控器,监控关于介质状态的信息。本专利技术的关键技术一是多维度(优先级,IO请求类型,存储介质状态信息)信息约束下的队列调度技术,二是IO写请求的优先级缩放技术。与现有技术相比,创造性体现在:按IO请求类型将队列分为两大类,分别是IO读和IO写;对IO读请求按读取目标物理地址所在的存储介质单元进一步区分为不同的队列;对IO写请求的优先级引入加权因子进行优先级缩放。本专利技术技术方案技术进步体现在,在满足用户QoS满意度的同时,提升了存储器的读写速度以及每秒处理IO请求能力两个方面的性能表现。本专利技术解决了控制器存储介质接口带宽利用不充分的问题,具有简单、实用、易实现的优点,在满足用户QoS满意度的同时,提升了存储器的读写速度以及每秒处理IO请求能力两个方面的性能表现,呈现的积极效果有:一,不同用户特别是高优先级用户的QoS服务满意度得到保障;二,存储器读写速度性能提升;三,存储器每秒处理IO请求的能力提升。附图说明图1是计算机网络结构图;图2是存储阵列硬件结构图;图3是存储阵列控制器软件功能结构图;图4是本专利技术IO调度器结构图;图5是IO请求分发处理流程;图6是分类后的IO队列;图7是同一队列内相同优先级IO请求遵循的先进先出原则示意图;图8是IO请求调度处理流程图。具体实施方式为了更加清楚明白理解本专利技术的目的、技术方案和优点,下面结合实施例和附图,对本专利技术作进一步的详细说明,本专利技术的示意性实施方式及其说明仅用于解释本专利技术,并不作为对本专利技术的限定。请参阅图1,来自客户端计算机的IO请求通过通信网络发往数据中心,存储阵列通过主机接口接收来自网络的IO请求,参阅图2和图3。其中,图2是存储阵列的硬件结构图,存储阵列控制器通过存储介质接口挂载多颗存储介质单元,这些存储介质单元可独立并行工作。图3是存储阵列控制器的软件功能结构图,运行的软件主要包括阵列控制软件、SSD(SolidStateDrives)固件、IO调度器。主机访问存储控制器通过逻辑地址块(LBA),而存储控制器通过物理地址访问存储介质。存储控制器维护逻辑地址到物理地址的映射表,这个表可以存于片上的RAM资源、固态存储介质或者板载的DRAM资源。在本实施例中,映射表存储于板载DRA本文档来自技高网...

【技术保护点】
1.一种存储阵列控制器IO队列调度方法,其特征在于,包括:IO请求分发单元接收来自主机的IO请求,按IO请求类型将队列分为两大类,第一类包括IO读请求,第二类包括IO写请求;对IO读请求按读取目标物理地址所在的存储介质单元进一步区分划为不同的队列,读取目标物理地址所在的存储介质单元相同的IO请求划入同一队列;IO请求调度单元接收来自IO请求分发单元的IO请求,送入不同的队列,并按优先级从大到小的顺序排序,同一队列相同优先级的IO请求按先进先出原则排序;IO请求调度单元接收来自状态监控器关于介质状态的信息,记为A,用Ai=1表示监控器已经收到第i个存储介质单元执行最近IO请求的操作结果,用Ai=0表示监控器未收到第i个存储介质单元执行最近IO请求的操作结果;引入所述第二类IO请求的优先级计算加权因子α,对这一类IO请求的优先级进行缩放,其中α∈(0,1],用ρij表示第i队列、第j个排序IO请求的优先级,按{ρij*Ai}计算每个IO读队列最高优先级IO的实时优先级;按{α*ρij*Ai}计算IO写请求请求队列最高优先级IO的实时优先级,其中*表示乘法运算,对计算结果进行排序,将最高优先级的IO请求,发往IO请求执行单元;IO请求执行单元接收来自IO请求调度单元的IO请求,发往下层模块进行读写操作。...

【技术特征摘要】
1.一种存储阵列控制器IO队列调度方法,其特征在于,包括:IO请求分发单元接收来自主机的IO请求,按IO请求类型将队列分为两大类,第一类包括IO读请求,第二类包括IO写请求;对IO读请求按读取目标物理地址所在的存储介质单元进一步区分划为不同的队列,读取目标物理地址所在的存储介质单元相同的IO请求划入同一队列;IO请求调度单元接收来自IO请求分发单元的IO请求,送入不同的队列,并按优先级从大到小的顺序排序,同一队列相同优先级的IO请求按先进先出原则排序;IO请求调度单元接收来自状态监控器关于介质状态的信息,记为A,用Ai=1表示监控器已经收到第i个存储介质单元执行最近IO请求的操作结果,用Ai=0表示监控器未收到第i个存储介质单元执行最近IO请求的操作结果;引入所述第二类IO请求的优先级计算加权因子α,对这一类IO请求的优先级进行缩放,其中α∈(0,1],用ρij表示第i队列、第j个排序IO请求的优先级,按{ρij*Ai}计算每个IO读队列最高优先级IO的实时优先级;按{α*ρij*Ai}计算IO写请求请求队列最高优先级IO的实时优先级,其中*表示乘法运算,对计算结果进行排序,将最高优先级的IO请求,发往IO请求执行单元;IO请求执行单元接收来自IO请求调度单元的IO请求,发往下层模块进行读写操作。2.根据权利要求1所述的一种存储阵列控制器IO队列调度方法,其特征在于,包括:用ρij表示第i队列、第j个排序IO的优先级,如果该优先级的IO请求多于1个,则按先进先出原则调度,即ρij0>ρij1>ρij2。3.根据权利要求1所述的一种存储阵列控制器IO队列调度方法,其特征在于,包括:对IO队列的调度过程是:1)按{ρij*Ai}计算每个IO读队列最高优先级IO的实时...

【专利技术属性】
技术研发人员:邱赐云吴春叶韬吴佳
申请(专利权)人:上海威固信息技术股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1