发明名称 IO调度方法及装置
摘要 本发明公开了一种IO调度方法及装置,其中方法包括如下步骤:在存储系统初始化时,为存储系统中的每一个物理磁盘建立一个一一对应的FIFO队列;为FIFO队列中插入的每一个IO请求建立一个一一对应的IO请求的冲突链表;在执行插入每个IO请求至FIFO队列后,从所述队列的头部IO请求开始扫描,判断队列冲突,并通过记载IO请求的冲突链表,将待处理的事件准备起来,利用冲突链表来送达链表中的其他IO请求冲突解除已经的通知。其避免了用固态硬盘作为缓存处理时而引起的大量IO冲突,有效地提高I/O读写速率以及传输速率。
申请公布号 CN103823636B 申请公布日期 2017.04.05
申请号 CN201210469189.X 申请日期 2012.11.19
申请人 苏州捷泰科信息技术有限公司 发明人 裴金干;王术;刘虹越;王旭光
分类号 G06F3/06(2006.01)I 主分类号 G06F3/06(2006.01)I
代理机构 广州华进联合专利商标代理有限公司 44224 代理人 陈振
主权项 一种IO调度方法,其特征在于,包括如下步骤:步骤S100、在存储系统初始化时,为存储系统中的每一个物理磁盘建立一个一一对应的FIFO队列;接收上层文件系统发送的IO请求,根据所述IO请求,获取IO请求中所包含的磁盘信息,并根据所述磁盘信息将IO请求插入到与目标物理磁盘对应的FIFO队列中,为FIFO队列中插入的每一个IO请求建立一个一一对应的IO请求的冲突链表,所述IO请求的冲突链表用于记录物理磁盘对应的FIFO队列中所有与已经存在的每一个IO请求有冲突的IO请求;步骤S200、在执行插入每个IO请求至FIFO队列后,从所述FIFO队列的头部IO请求开始扫描,判断所述FIFO队列中的已存在的IO请求与当前插入的IO请求是否存在冲突,若判断结果为是,执行步骤S300;若判断结果为否,执行步骤S400;步骤S300、立刻停止扫描,设置第一回调函数,将当前插入的IO请求添加到FIFO队列中存在冲突的IO请求所对应的冲突链表中,并标识当前插入的IO请求,待与当前插入的IO请求冲突的IO请求处理完成后,重新从FIFO队列的头部IO请求开始扫描,判断所述FIFO队列中的已存在的IO请求与当前插入的IO请求是否存在冲突,直至FIFO队列中排序在当前插入的IO请求插入位置之前的且与所述当前插入的IO请求存在IO冲突的IO请求都处理结束后,再根据所述第一回调函数设置的事件,执行插入的IO请求的事件;步骤S400、直接执行插入IO请求的异步IO操作,并使用下层服务的块设备处理当前IO请求,设置第二回调函数;在IO请求被下层服务的块设备处理完成后,调用第二回调函数,再根据所述第二回调函数设置的通知进行调度处理。
地址 215021 江苏省苏州市苏州工业园区星湖街218号纳米科技园A4楼505室