[发明专利]IO调度方法及装置有效

专利信息
申请号: 201210469189.X 申请日: 2012-11-19
公开(公告)号: CN103823636B 公开(公告)日: 2017-04-05
发明(设计)人: 裴金干;王术;刘虹越;王旭光 申请(专利权)人: 苏州捷泰科信息技术有限公司
主分类号: G06F3/06 分类号: G06F3/06
代理公司: 广州华进联合专利商标代理有限公司44224 代理人: 陈振
地址: 215021 江苏省苏州市苏州工*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: io 调度 方法 装置
【说明书】:

技术领域

发明涉及计算机领域,特别是涉及一种IO调度方法及装置。

背景技术

块设备的IO(InputOutput,输入输出)类型主要分为读和写两类,而磁盘IO处理能力远低于CPU处理能力,导致在某特定时间内有多个IO请求堆积在系统中,等待调度处理,针对于传统磁盘,目前调度算法主要有两类,一、先进先出服务(First Input First Output,FIFO);二、电梯算法,也即就近原则进行服务。

但是在用固态硬盘(Solid State Disk,SSD)作为缓存的情况下,上述调度算法均有其缺点:首先,FIFO不能很好的利用SSD的低延迟,降低了性能,然而电梯算法对于具有随机访问特性的SSD来说又无必要。简单利用这两种调度算法都不能充分发挥SSD的特性进行处理。而且,由于缓存的存在,改变了IO的处理逻辑,引入了新的问题,比如IO冲突几率大大增加,需要进行解决。

现有技术中,对于存储系统的企业而言,尤其是使用固态硬盘缓存处理过程中,如何高效地、合理地对进行IO调度,从而提高存储系统的读写速度是个很难解决的问题。

发明内容

基于上述问题,本发明提供了一种IO调度方法及装置,用以合理地、高效地对块设备存储进行IO调度,从而提高存储系统的读写速度。

本发明提供的一种IO调度方法,所述IO调度方法具体包括下述步骤:

步骤S100、在存储系统初始化时,为存储系统中的每一个物理磁盘建立一个一一对应的FIFO队列;

接收上层文件系统发送的IO请求,根据所述IO请求,获取请求中所包含的磁盘信息,并根据所述磁盘信息将IO请求插入到与目标物理磁盘对应的FIFO队列中,为FIFO队列中插入的每一个IO请求建立一个一一对应的IO请求的冲突链表,所述IO请求的冲突链表用于记录物理磁盘对应的FIFO队列中所有与所述已经存在的每一个IO请求有冲突的IO请求;

步骤S200、在执行插入每个IO请求至FIFO队列后,从所述队列的头部IO请求开始扫描,判断所述队列中的已存在的IO请求与当前插入的请求IO是否存在冲突,若判断结果为是,执行步骤S300;若判断结果为否,执行步骤S400;

步骤S300、立刻停止扫描,设置第一回调函数,将当前插入的IO请求添加到队列中存在冲突的IO请求所对应的冲突链表中,并标识当前插入的IO请求,待与当前插入的IO请求冲突的IO请求处理完成后,重新从队列的头部IO请求开始扫描,判断所述队列中的已存在的IO请求与当前插入的请求IO是否存在冲突,直至等待队列中排序在当前插入的IO请求插入位置之前的且与所述当前插入IO请求存在IO冲突的IO请求都处理结束后,再根据所述第一回调函数设置的事件,执行插入的IO请求的事件;

步骤S400、直接执行插入IO请求的异步IO操作,并使用下层服务的块设备处理当前IO请求,设置第二回调函数;在IO请求被下层服务的块设备处理完成后,调用第二回调函数,再根据所述第二回调函数设置的通知进行调度处理。

进一步地,作为一种可实施方式,在所述步骤S400中,所述根据所述第二回调函数设置的通知,进行调度处理,包括以下步骤:

步骤S410、将处理后IO请求从所述队列中移除;

步骤S420、检测所述处理后IO请求所对应的冲突链表中,是否存在有待处理IO请求且与等待队列中排序前的IO请求都不冲突;

步骤S430、若是,则唤醒待处理IO请求可以执行异步IO操作;

步骤S440、若否,则将待处理IO请求,执行重新从队列的头部IO请求开始扫描,判断当前队列中的已存在的IO请求与当前待处理的请求IO是否存在冲突,直至等待队列中排序在待处理的IO请求插入位置之前的且与所述待处理的IO请求存在IO冲突的IO请求都处理结束,且处理后IO请求所对应的冲突链表中的待处理IO请求与等待队列中排序前的IO请求都不冲突后,再根据所述第二回调函数设置的通知,唤醒待处理IO请求可以执行异步IO操作。

较佳地,作为一种可实施方式,所述IO请求执行异步IO操作包括以下步骤:

执行下层服务写到高速缓冲存储器的操作和索引缩放到内存操作。

较佳地,作为一种可实施方式,所述FIFO队列中每个IO请求插入时所建立冲突链表的初始状态为空。

较佳地,作为一种可实施方式,所述第一回调函数包括IO请求中指向因IO冲突而暂时无法处理的事件操作;所述第二回调函数包括IO请求中指向IO请求已经完成的通知。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州捷泰科信息技术有限公司,未经苏州捷泰科信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210469189.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top