本发明专利技术提供了一种磁盘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。
【技术实现步骤摘要】
本专利技术涉及计算机存储器
,尤其涉及一种磁盘 ο请求队列调度的方法。
技术介绍
当磁盘驱动器接到操作系统的读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日专利技术者金振成 申请人:云海创想信息技术(无锡)有限公司, 深圳市创新科信息技术有限公司本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:金振成,
申请(专利权)人:云海创想信息技术无锡有限公司,深圳市创新科信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。