基于系统资源的i/o请求合并调度系统与方法_2

文档序号:8257811阅读:来源:国知局
合并调度的LBA地址不连续I/O请求加以记录,当存储系统对这些合并后的I/O请求予以响应时,请求调度模块105可根据记录中的信息对响应进行拆分处理。
[0043]以上是对本发明的I/O请求合并调度系统的说明,下面以该系统为基础,对I/O请求合并调度方法的步骤进行描述。
[0044]如图2所示,本发明的I/O请求合并调度方法包括:
[0045]步骤201、初始化阶段;用户对系统监控模块103、调度管理模块104和请求调度模块105进行一系列的参数配置,包括系统监控周期、I/O响应时间上限、默认合并距离和合并数目等。
[0046]步骤202、系统监控模块103实时采集计算机的系统参数,所述系统参数包括CPU利用率、内存占用率、I/O吞吐率、请求的访问时间等。
[0047]步骤203、调度管理模块104根据系统监控模块103实时收集到的系统参数评估计算机系统当前的资源利用情况。
[0048]步骤204、调度管理模块104根据计算机系统当前的资源利用情况设置合并距离和最大合并数。
[0049]步骤205、请求调度模块105检查上层的文件系统的I/O请求队列中是否存在I/O请求,若存在,执行下一步,否则重新执行步骤202。
[0050]步骤206、请求调度模块105根据所述I/O请求队列中位置相邻I/O请求的LBA地址和请求长度,计算队列中所有相邻请求之间的间隔距离。
[0051]步骤207、判断步骤206中计算得到的位置相邻I/O请求间的间隔距离是否小于步骤204中所设置的合并距离,若小于,执行下一步,否则,重新执行步骤205。
[0052]步骤208、合并间隔距离小于合并距离的I/O请求,并将原请求从请求队列中删除。
[0053]步骤209、检查当前合并的I/O请求的数目是否超过步骤204中所设置的最大合并数,若是,执行下一步,否则,执行步骤211。
[0054]步骤210、只合并最大合并数的I/O请求,然后执行下一步。
[0055]步骤211、将合并后的I/O请求发送到下层的存储系统。
[0056]步骤212、记录进行合并的I/O请求。
[0057]步骤213、判断请求调度模块105是否收到了存储设备所返回的响应,若收到,执行下一步,否则,重新执行步骤202。
[0058]步骤214、请求调度模块105将存储设备所返回的响应与步骤212所得到的记录进行比较,如果该响应所对应的请求是合并后I/o请求,执行下一步,否则,执行步骤216。
[0059]步骤215、请求调度模块105根据记录中的信息对响应进行拆分处理。
[0060]步骤216、将响应提交给上层的文件系统。
[0061]步骤217、当I/O请求队列中已处理请求达到一定数目后,重新执行步骤202。
[0062]最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
【主权项】
1.一种基于系统资源的I/o请求合并调度系统,位于文件系统(101)与存储设备(106)之间,其特征在于,包括系统监控模块(103)、调度管理模块(104)和请求调度模块(105);其中,所述系统监控模块(103)实时地收集计算机的系统参数,并将所收集到的系统参数发送调度管理模块(104);所述调度管理模块(104)根据所述系统参数评估计算机的资源利用情况,根据评估结果设置合并距离和最大合并数;所述请求调度模块(105)根据所述合并距离和最大合并数对I/O请求进行合并调度,以及拆分所述存储系统对合并后I/O请求的响应,所述I/O请求包括LBA地址不连续I/O请求与LBA地址连续I/O请求。
2.根据权利要求1所述的基于系统资源的I/O请求合并调度系统,其特征在于,所述系统监控模块(103)实时采集的系统参数包括CPU利用率、内存占用率、I/O吞吐率、请求的访问时间。
3.根据权利要求1所述的基于系统资源的I/O请求合并调度系统,其特征在于,所述调度管理模块(104)在评估计算机的资源利用情况时,将系统监控模块(103)所采集的系统参数与计算机所配置的资源情况进行比较,由此得到当前的计算机资源利用情况;当计算机系统资源充足时,所述调度管理模块(104)在设置合并距离与最大合并数时相应地增大合并距离和最大合并数,当计算机系统资源紧张时,所述调度管理模块(104)在设置合并距离与最大合并数时相应地减小合并距离和最大合并数。
4.根据权利要求1所述的基于系统资源的I/O请求合并调度系统,其特征在于,所述请求调度模块(105)在处理LBA地址不连续I/O请求时,可先计算这些请求间的LBA地址间隔,对LBA地址间隔小于合并距离、数目不超过最大合并数的若干LBA地址不连续I/O请求进行合并调度;对实现了合并调度的LBA地址不连续I/O请求加以记录,当存储系统对这些合并后的I/O请求予以响应时,请求调度模块(105)可根据记录中的信息对响应进行拆分处理。
5.基于权利要求1-4之一所述的基于系统资源的I/O请求合并调度系统所实现的合并调度方法,包括: 步骤I)、初始化阶段;用户对系统监控模块(103)、调度管理模块(104)和请求调度模块(105)进行一系列的参数配置,包括系统监控周期、I/O响应时间上限、默认合并距离和合并数目; 步骤2)、系统监控模块(103)实时采集计算机的系统参数,所述系统参数包括CPU利用率、内存占用率、I/o吞吐率、请求的访问时间; 步骤3)、调度管理模块(104)根据系统监控模块(103)实时收集到的系统参数评估计算机系统当前的资源利用情况,并根据评估结果设置合并距离和最大合并数; 步骤4)、当上层文件系统的I/O请求队列中存在I/O请求时,请求调度模块(105)根据合并距离和最大合并数对I/O请求进行合并调度; 步骤5)、当处理完I/O请求队列中一定数目的请求后,回到步骤2),重新评估系统资源利用情况,并设置新的合并距离和最大合并数,继续调度I/O请求。
6.根据权利要求5所述的合并调度方法,其特征在于,所述的步骤4)包括: 步骤4-1)、请求调度模块(105)检查上层的文件系统的I/O请求队列中是否存在I/O请求,若存在,执行下一步,否则重新执行步骤2); 步骤4-2)、请求调度模块(105)根据所述I/O请求队列中位置相邻I/O请求的LBA地址和请求长度,计算队列中所有相邻请求之间的间隔距离; 步骤4-3)、判断步骤4-2)中计算得到的位置相邻I/O请求间的间隔距离是否小于步骤3)中所设置的合并距离,若小于,执行下一步,否则,重新执行步骤4-1); 步骤4-4)、合并间隔距离小于合并距离的I/O请求,并将原请求从请求队列中删除;步骤4-5)、检查当前合并的I/O请求的数目是否超过步骤3)中所设置的最大合并数,若是,执行下一步,否则,执行步骤4-7); 步骤4-6)、只合并最大合并数的I/O请求,然后执行下一步; 步骤4-7)、将合并后的I/O请求发送到下层的存储系统; 步骤4-8)、记录进行合并的I/O请求; 步骤4-9)、判断请求调度模块(105)是否收到了存储设备所返回的响应,若收到,执行下一步,否则,重新执行步骤2); 步骤4-10)、请求调度模块(105)将存储设备所返回的响应与步骤4-8)所得到的记录进行比较,如果该响应所对应的请求是合并后I/O请求,执行下一步,否则,执行步骤4-12); 步骤4-11)、请求调度模块(105)根据记录中的信息对响应进行拆分处理; 步骤4-12)、将响应提交给上层的文件系统。
【专利摘要】本发明涉及一种基于系统资源的I/O请求合并调度系统,位于文件系统与存储设备之间,包括系统监控模块、调度管理模块和请求调度模块;其中,系统监控模块实时地收集计算机的系统参数,并将所收集到的系统参数发送调度管理模块;调度管理模块根据系统参数评估计算机的资源利用情况,根据评估结果设置合并距离和最大合并数;请求调度模块根据合并距离和最大合并数对I/O请求进行合并调度,以及拆分存储系统对合并后I/O请求的响应,I/O请求包括LBA地址不连续I/O请求与LBA地址连续I/O请求。
【IPC分类】G06F3-06
【公开号】CN104571931
【申请号】CN201310471079
【发明人】张武, 尚秋里, 王劲林, 郭秀岩
【申请人】中国科学院声学研究所, 北京中科海力技术有限公司
【公开日】2015年4月29日
【申请日】2013年10月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1