一种磁盘io请求队列调度的方法

文档序号:6441168阅读:809来源:国知局
专利名称:一种磁盘io请求队列调度的方法
技术领域
本发明涉及计算机存储器技术领域,尤其涉及一种磁盘 ο请求队列调度的方法。
背景技术
当磁盘驱动器接到操作系统的读IO操作指令的时候,就会给磁盘发出一个读数据的指令,并同时将要读取的数据块的地址传递给磁盘,然后磁盘会将读取到的数据传给磁盘驱动器,并由磁盘驱动器返回给操作系统,完成一个读IO的操作;同样的,一个写IO的操作也类似,磁盘驱动器接到写的IO操作的指令和要写入的数据,并将其传递给磁盘,磁盘在数据写入完成之后将操作结果传递回磁盘驱动器,再由磁盘驱动器返回给操作系统, 完成一个写IO的操作。单个IO操作指的就是完成一个写IO或者是读IO的操作。磁盘驱动器可能会一次对磁盘组发出一连串的多个IO指令,这多个IO指令不能立即执行,而是以队列的形式缓存起来,称之为IO请求队列。传统的磁盘IO队列排列主要都是依据IO数据在磁盘中扇区的先后顺序,按照从前到后的顺序从IO请求队列中提取出 IO指令依次执行。但是在实际应用中,不同IO指令的实时性要求是不一样的。当有大量的磁盘IO读写请求时,可能读写一般的文件中数据要求写入存储设备实时性并不那么高,但有时也存在对某些关键数据(比如元数据,配置信息)都要求尽快实时写入存储系统,甚至业务在确保数据实时写入磁盘之前,业务进程一直处于等待状态,严重影响了业务性能。

发明内容
本发明提供了一种磁盘IO请求队列调度的方法,可以保证实时性要求高的数据优先执行。本发明实施例提供一种磁盘IO请求队列调度的方法,包括如下步骤α、文件系统在生成IO请求时,判断该IO请求是否为高实时性IO请求,若是,执行步骤B,否则执行步骤C;B、对该IO请求分配一个高优先级指示,然后执行步骤C ;C、将该IO请求发送至磁盘驱动器;D、磁盘驱动器收到IO请求后,判断IO请求是否含有高优先级指示,若是,执行步骤E,否则执行步骤F;E、将该IO请求送入IO请求队列的最前位置,并返回步骤A ;F、将该IO请求按照扇区位置排序,送入IO请求队列,并返回步骤A。较佳地,步骤A所述判断结果为否,则进一步包括对该IO请求分配默认优先级指示,然后执行步骤C。较佳地,步骤D所述磁盘驱动器收到IO请求后进一步包括磁盘驱动器给每个IO 请求分配一个计时器,如果计时器超时该计时器对应的IO请求还未执行,则直接执行该IO 请求。从以上技术方案可以看出,针对每个IO请求增加一个优先级属性,对于个别关键10,可以设置较高的优先级属性,优先级高的IO请求会相对优先处理。本发明方案在IO队列调度中同时考虑IO数据重要性,优先处理实时性要求高的关键数据。本发明对于关键的数据比较少,但是这些关键实时性、安全性要求非常高的业务应用,作用较为明显。


图1为本发明实施例提供的一种磁盘IO请求队列调度的流程图。
具体实施例方式本发明提出针对每个IO请求增加一个优先级属性,对于个别关键10,可以设置较高的优先级属性,优先级高的IO请求会相对优先处理。业务数据读写时候,可以标示一下该IO的优先级,默认的IO优先级属性是最低“0”或者不标示优先级,同等优先级的IO依然按照扇区位置排序。另外为了防止某些低优先级的IO长时间得不到处理,可以设置一个时间阈值,某些IO长时间得不到处理时候,会适当处理一下。为使本发明技术方案的原理、特点以及技术效果更加清楚,以下通过具体实施例对本发明方案进行详细阐述。图1示出了本发明实施例提供的一种磁盘IO请求队列调度的流程,包括如下步骤步骤101 文件系统在生成IO请求时,判断该IO请求是否为高实时性IO请求,若是,执行步骤102,否则执行步骤103。较佳地,将关键数据(比如元数据,配置信息)的IO请求作为高实时性IO请求。步骤102 对该IO请求分配一个高优先级指示,然后执行步骤104 ;步骤103 对该IO请求分配默认优先级指示,然后执行步骤104。或者,不分配默认优先级指示,直接执行步骤104。步骤104 将该IO请求发送至磁盘驱动器。步骤105 磁盘驱动器收到IO请求后,判断IO请求的优先级指示是高优先级指示还是默认优先级指示,若是高优先级指示执行步骤106,若是默认优先级指示执行步骤 107。所述判断也可以是判断IO请求是否具有优先级指示,若有则执行步骤106,否则执行步骤107。步骤106 将该IO请求送入IO请求队列的最前位置,并返回步骤101。步骤107 将该IO请求按照扇区位置排序,送入IO请求队列,并返回步骤101。较佳地,磁盘驱动器收到IO请求后,还会给每个IO请求分配一个计时器,如果计时器超时该计时器对应的IO请求还未执行,则直接执行该IO请求。本发明提出的磁盘IO请求队列调度的方法,在IO队列调度中同时考虑IO数据重要性,优先处理实时性要求高的关键数据。本发明对于关键的数据比较少,但是这些关键实时性、安全性要求非常高的业务应用,作用较为明显。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种磁盘IO请求队列调度的方法,其特征在于,包括如下步骤A、文件系统在生成IO请求时,判断该IO请求是否为高实时性IO请求,若是,执行步骤 B,否则执行步骤C;B、对该IO请求分配一个高优先级指示,然后执行步骤C;C、将该IO请求发送至磁盘驱动器;D、磁盘驱动器收到IO请求后,判断IO请求是否含有高优先级指示,若是,执行步骤E, 否则执行步骤F;E、将该IO请求送入IO请求队列的最前位置,并返回步骤A;F、将该IO请求按照扇区位置排序,送入IO请求队列,并返回步骤A。
2.根据权利要求1所述的方法,其特征在于,步骤A所述判断结果为否,则进一步包括 对该IO请求分配默认优先级指示,然后执行步骤C。
3.根据权利要求1所述的方法,其特征在于,步骤D所述磁盘驱动器收到IO请求后进一步包括磁盘驱动器给每个IO请求分配一个计时器,如果计时器超时该计时器对应的IO 请求还未执行,则直接执行该IO请求。
全文摘要
本发明提供了一种磁盘IO请求队列调度的方法,包括如下步骤A、文件系统在生成IO请求时,判断该IO请求是否为高实时性IO请求,若是,执行步骤B,否则执行步骤C;B、对该IO请求分配一个高优先级指示,然后执行步骤C;C、将该IO请求发送至磁盘驱动器;D、磁盘驱动器收到IO请求后,判断IO请求是否含有高优先级指示,若是,执行步骤E,否则执行步骤F;E、将该IO请求送入IO请求队列的最前位置,并返回步骤A;F、将该IO请求按照扇区位置排序,送入IO请求队列,并返回步骤A。
文档编号G06F3/06GK102402401SQ20111041619
公开日2012年4月4日 申请日期2011年12月13日 优先权日2011年12月13日
发明者金振成 申请人:云海创想信息技术(无锡)有限公司, 深圳市创新科信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1