IO调度方法及IO调度装置制造方法及图纸

技术编号:15391241 阅读:72 留言:0更新日期:2017-05-19 04:39
本发明专利技术涉及计算机存储计算技术领域,尤其涉及一种IO调度方法及IO调度装置。本发明专利技术提供一种IO调度方法,所述的IO调度方法结合固态硬盘地址映射的特点和垃圾回收的特点进行映射;本发明专利技术还提供一种IO调度装置,包括:应用模块、IO调度模块和IO操作模块,其中IO操作模块,用于判断固态硬盘的地址映射表是否存在缓存中以及判断所要进行操作的物理数据块是否在进行垃圾回收操作,若是,则根据IO调度队列的优先级,选择IO操作并下发到固态硬盘进行处理。本发明专利技术解决了固态硬盘写操作需要先擦除后再写入、写操作次数受限等问题,同时结合固态硬盘特点,优化IO栈。

IO scheduling method and IO scheduling device

The invention relates to the technical field of computer storage and calculation, in particular to a IO scheduling method and a IO scheduling device. The present invention provides a method for IO IO scheduling, the scheduling method combined with features and recycling of solid state disk address mapping of the mapping; the invention also provides a device for IO scheduling, including: Application module, IO module and IO operation scheduling module, the IO operation module is used to judge the SSD the physical address mapping table data is stored in the cache and determine whether a block will be operated in the garbage collection operation, if, according to the IO scheduling queue priority, select the IO operation and issued to the SSD for processing. The invention solves the problems that the solid state hard disk write operation needs to be erased first, then written, and the number of write operations is limited, etc. simultaneously, the IO stack is optimized according to the characteristics of the solid state disk.

【技术实现步骤摘要】
IO调度方法及IO调度装置
本专利技术涉及计算机存储计算
,尤其涉及一种IO调度方法及IO调度装置。
技术介绍
随着互联网、云计算、物联网等技术的发展,固态硬盘作为新的一代存储,被广泛应用。目前调度算法主要有两类,一、先进先出服务FIFO;二、电梯算法,也即就近原则进行服务。传统的IO调度方式主要结合机械硬盘的寻址特点采用电梯算法实现,简单利用电梯算法不能充分发挥固态硬盘SSD的特性进行处理。而且,由于缓存的存在,改变了IO的处理逻辑,引入了新的问题,比如IO冲突几率大大增加,需要进行解决。现有技术中,对于存储系统的企业而言,尤其是使用固态硬盘缓存处理过程中,如何高效地、合理地对进行IO调度,从而提高存储系统的读写速度是个很难解决的问题。而固态硬盘相对于机械硬盘,其随机性能接近顺序性能,电梯算法调试方式优势消失。同时固态硬盘也具有自已特点,如:写操作要先擦除后写入、写操作次数受限等。因此,固态硬盘需要新的调度算法。
技术实现思路
为了便于理解,对本申请文件中出现的部分词语,澄清如下:所述轮询,是指依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。鉴于
技术介绍
存在的技术问题,本方法提供了一种解决固态硬盘写操作需要先擦除后再写入、写操作次数受限等问题,同时结合固态硬盘特点,优化IO栈的IO调度方法及IO调度装置。为了达到上述目的,本专利技术是通过以下技术方案实现的:本专利技术提供一种IO调度方法,包括:缓存中,通过IO调度将IO请求形成IO调度队列;判断IO请求的待操作固态硬盘的物理地址是否在地址映射表中:若是则进行下一步;否则将IO请求放回IO调度队列;判断IO请求的待操作固态硬盘是否正在进行垃圾回收操作:若是则将IO请求放回IO调度队列;否则将IO请求进行IO操作。其中,通过IO调度将IO请求形成IO调度队列之前,还包括:记录IO请求进入IO调度队列的时间,进入时间达到预设值的IO请求将被强制进行IO操作。其中,通过IO调度将IO请求形成IO调度队列,包括:在缓存中,以预设值为单位组织IO请求;将IO请求进行IO调度;将IO请求形成IO调度队列。其中,判断IO请求的待操作固态硬盘的物理地址是否在地址映射表中之前,还包括:在缓存中,建立固态硬盘的地址映射表。进一步地,所述IO调度队列包括有多个不同优先级的子队列,根据优先级周期性地对IO调度队列中的IO请求进行IO操作。进一步地,还包括:判断IO请求的待操作固态硬盘的物理地址是否在地址映射表中,若否,则将该IO请求的待操作固态硬盘的物理地址存入临时地址映射表,每个周期后,将临时地址映射表并入地址映射表。本专利技术提供一种IO调度装置,包括:应用模块,用于组织IO请求,并将IO请求发送给IO调度模块;地址映射表创建模块,用于在缓存中建立固态硬盘的地址映射表;IO调度模块,用于接收IO请求,将IO请求加入到IO调度队列中,调度队列包括多个不同优先级的子队列;IO操作模块,用于根据IO调度队列的优先级,选择IO请求并下发到固态硬盘进行处理;第一判断模块,用于判断IO请求的待操作固态硬盘的物理地址的是否在地址映射表中;第二判断模块,判断IO请求的待操作固态硬盘是否正在进行垃圾回收操作。优选地,还包括:时间检测模块,用于记录IO请求进入IO调度队列的时间。优选地,还包括:轮询模块,用于根据子队列的优先级对IO调度队列进行周期性操作。进一步地,还包括:临时地址映射表创建模块,用于创建临时地址映射表,所述临时地址映射表用于暂存未被操作的IO请求的待操作固态硬盘的物理地址,每个周期后,将临时地址映射表并入地址映射表。本专利技术所提供的一种IO调度方法,有益效果如下:1.本专利技术结合固态硬盘的特点,通过判断IO请求的待操作固态硬盘的物理地址是否在地址映射表中;判断IO请求的待操作固态硬盘是否正在进行垃圾回收操作,使固态硬盘的IO调度过程具有缓存感知、垃圾回收感知的功能,解决了固态硬盘写操作需要先擦除后再写入、写操作次数受限等问题,提高固态硬盘的读写速度,从一定方面也提高了固态硬盘的使用寿命;2.本专利技术设有时间检测模块,在IO进行队列之前,记录IO的操作时间,系统通过时间检测模块检测IO队列中是否有IO操作达到最长的等待时间,如果达到最长等待时间,IO将被强制处理,避免了某些IO长时间没有处理的情况,提高提高固态硬盘的读写效率;本专利技术所提供的IO调度装置与IO调度方法的有益效果类似,不再赘述。附图说明:图1为本专利技术实施例所提供的IO调度方法的流程示意图;图2为本专利技术实施例所提供的IO调度装置的模块示意图;具体实施方式:依照附图详细说明关于本专利技术的示例性实施例。本专利技术提供一种IO调度方法,包括:缓存中,通过IO调度将IO请求形成IO调度队列;判断IO请求的待操作固态硬盘的物理地址是否在地址映射表中:若是则进行下一步;否则将IO请求放回IO调度队列;判断IO请求的待操作固态硬盘是否正在进行垃圾回收操作:若是则将IO请求放回IO调度队列;否则将IO请求进行IO操作。请参考图1,图1为本专利技术实施例所提供的IO调度方法的流程示意图;本实施例提供一种IO调度方法,结合固态硬盘地址映射的特点和垃圾回收的特点进行映射,包括以下步骤:S101、缓存中,通过IO调度将IO请求形成IO调度队列;其中,具体步骤为:在缓存中,以预设值为单位组织IO请求,在本实施例中,以页为单位进行组织IO请求,页的大小为4K;作为一种可实施方式,预设值还可以设置为2K、8K、16K、32K等。将IO请求进行IO调度;将IO请求形成IO调度队列。所述IO调度队列包括有多个不同优先级的子队列,在本实施例中,IO调度队列是一个多子队列数据结构,每个子队列具有不同的优先级。每个子队列的IO数目相等,均等于QueueMax。当一个子队列(N)的IO请求数达到最大值时,将从子队列链表底部抽取IO请求移到前一个子队列。作为一种可实施方式,所述IO调度队列还可以包括一个数组,数组的长度为优先级的个数,设置序号为0为最高调度优先级。数组的每个元素包括一个链表指针,该指针用于指向属于该优先级的IO请求。另外还可以采用链表、树等其他数据结果进行存储。作为另一种可实施方式,所述数组元素还可以保存当前是否有IO请求需要处理的信息。除此之外,所述数据元素还可以保存与应用属性、固态盘属性相关的信息。根据优先级周期性地对IO调度队列中的IO请求进行IO操作,在本实施例中,IO操作模块从优先级最高的队列进行处理,当一个队列处理完成之后即进行休眠状态;当时间片轮转到之后,继续上述处理,直至队列中所有的操作均被请求完成。其中,时间片轮转是分时操作系统任务调度机制。在完成指定的任务后,可以将系统转入休眠状态,当达到预设的时间或者达到调度条件后,可以继续执行。在步骤S101进行的同时,记录IO请求进入IO调度队列的时间,进入时间达到预设值的IO请求将被强制进行IO操作。在本实施例中,通过一个时间检测模块记录IO请求进入IO调度队列的时间。作为一种可实施方式,系统通过deadline检测模块检测IO队列中是否有IO操作达到最长的等待时间Qmax,如果达到最长等待时间,IO将被强制处理。所述deadline检测模块,通过本文档来自技高网...
IO调度方法及IO调度装置

【技术保护点】
一种IO调度方法,其特征在于,包括:缓存中,将IO请求形成IO调度队列;判断IO请求的待操作固态硬盘的物理地址是否在地址映射表中:若是,进行下一步;否,将IO请求放回IO调度队列;判断IO请求的待操作固态硬盘是否正在进行垃圾回收操作:若是,将IO请求放回IO调度队列;否,将IO请求进行IO操作。

【技术特征摘要】
1.一种IO调度方法,其特征在于,包括:缓存中,将IO请求形成IO调度队列;判断IO请求的待操作固态硬盘的物理地址是否在地址映射表中:若是,进行下一步;否,将IO请求放回IO调度队列;判断IO请求的待操作固态硬盘是否正在进行垃圾回收操作:若是,将IO请求放回IO调度队列;否,将IO请求进行IO操作。2.据权利要求1所述的IO调度方法,其特征在于,通过IO调度将IO请求形成IO调度队列之前,还包括:记录IO请求进入IO调度队列的时间,进入时间达到预设值的IO请求将被强制进行IO操作。3.根据权利要求1所述的IO调度方法,其特征在于,通过IO调度将IO请求形成IO调度队列,包括:在缓存中,以预设值为单位组织IO请求;将IO请求进行IO调度;将IO请求形成IO调度队列。4.根据权利要求1所述的IO调度方法,其特征在于,判断IO请求的待操作固态硬盘的物理地址是否在地址映射表中之前,还包括:在缓存中,建立固态硬盘的地址映射表。5.根据权利要求1所述的IO调度方法,其特征在于,所述IO调度队列包括有多个不同优先级的子队列,根据优先级周期性地对IO调度队列中的IO请求进行IO操作。6.根据权利要求5所述的IO调度方法,其特征在于,还包括:判断IO请求的待操作固态硬盘的物理地...

【专利技术属性】
技术研发人员:吴庆民
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1