【技术实现步骤摘要】
本专利技术涉及I/O调度
,尤其涉及一种I/O请求调度方法及调度器。
技术介绍
通常,在数据中心尤其是虚拟化数据中心中,存储器由多个I/O请求对象共享使用,在这种共享使用的场景下,对于服务质量QoS有一定的要求,即:要求能够公平地为多个I/O请求对象分配存储器的资源,并且高效地利用所分配的资源。I/O调度器在服务质量的保障方面起着决定性作用。目前,已有的基于时间片且满足一定服务质量保障公平性的I/O调度器包括:CFQ(CompletelyFairQueuing)调度器、Argon调度器和FIOS(FlashI/OScheduler)调度器:CFQ在正在服务的I/O请求对象的时间片尚未用完且目前没有I/O请求时,会空闲等待一段时间,等待同一I/O请求对象的下一个I/O请求的达到。Argon与CFQ的工作原理类似。FIOS将CPU时间划分为调度时段,在单个调度时段内部,为每个I/O请求对象分配时间片;在单个调度时段内,当I/O请求对象的I/O请求队列非空且时间片尚未用完时,连续服务此I/O请求对象的I/O请求;当I/O请求对象的时间片用完后,在本调度时段内不再服务此I/O请求对象的I/O请求。但是,CFQ与Argon在一个时间片内连续服务或空闲等待同一个I/O请求对象的I/O请求,会导致其它I/O请求对象的I/O请求长时间得不到服务,从而响应I/O请求对象的I/O请求的时间过长。而FIOS在一个I/O请求对象的时间片尚未用完且具有I/O请求时,则连续服务此I/O请求对象的I/O请求,不服务其它I/O请求对象的I/O请求,也会导致其它I/O请求对象的I/ ...
【技术保护点】
一种I/O请求调度方法,其特征在于,包括:在进入当前调度时段时,侦测在所述当前时段访问存储设备的I/O请求对象,为侦测到的每个I/O请求对象分配一个时间片,并为侦测到的每个I/O请求对象设定调度时间阈值;其中,为侦测到的每个I/O请求对象分配的时间片之和小于或等于所述当前调度时段;在当前调度时段内,轮流对时间片尚未用完且具有I/O请求的I/O请求对象执行如下步骤,直到所述当前调度时段内不存在时间片尚未用完且具有I/O请求的I/O请求对象:从所述时间片尚未用完且具有I/O请求的I/O请求对象中选择一个I/O请求对象,调度所选择的I/O请求对象的I/O请求并记录调度时长,直到所述调度时长达到所选择的I/O请求对象的调度时间阈值,或者,所述调度时长尚未达到所选择的I/O请求对象的调度时间阈值但所选择的I/O请求对象的I/O请求均被调度完成时,结束对所选择的I/O请求对象的I/O请求的调度。
【技术特征摘要】
1.一种I/O请求调度方法,其特征在于,包括:在进入当前调度时段时,侦测在所述当前时段访问存储设备的I/O请求对象,为侦测到的每个I/O请求对象分配一个时间片,并为侦测到的每个I/O请求对象设定调度时间阈值;其中,为侦测到的每个I/O请求对象分配的时间片之和小于或等于所述当前调度时段;在当前调度时段内,轮流对时间片尚未用完且具有I/O请求的I/O请求对象执行如下步骤,直到所述当前调度时段内不存在时间片尚未用完且具有I/O请求的I/O请求对象:从所述时间片尚未用完且具有I/O请求的I/O请求对象中选择一个I/O请求对象,调度所选择的I/O请求对象的I/O请求并记录调度时长,直到所述调度时长达到所选择的I/O请求对象的调度时间阈值,或者,所述调度时长尚未达到所选择的I/O请求对象的调度时间阈值但所选择的I/O请求对象的I/O请求均被调度完成时,结束对所选择的I/O请求对象的I/O请求的调度。2.根据权利要求1所述的方法,其特征在于,还包括:在所述当前调度时段内,当所有时间片尚未用完的I/O请求对象的I/O请求均被调度完成时,启动预期计时;在启动所述预期计时后,当所述预期计时的时长尚未达到预设的计时阈值,且侦测到时间片尚未用完的I/O请求对象产生新的I/O请求时,结束所述预期计时,并调度所述新的I/O请求。3.根据权利要求1所述的方法,其特征在于,还包括:在所述当前调度时段内,当所有时间片尚未用完的I/O请求对象的I/O请求均被调度完成时,启动预期计时;在启动所述预期计时后,轮流对时间片已经用完且具有I/O请求的I/O请求对象执行如下步骤:从所述时间片已经用完且具有I/O请求的I/O请求对象中选择一个I/O请求对象,调度所选择的I/O请求对象的I/O请求并记录调度时长,直到所述调度时长达到所选择的I/O请求对象的调度时间阈值,或者,所述调度时长尚未达到所选择的I/O请求对象的调度时间阈值但所选择的I/O请求对象的I/O请求均被调度完成时,结束对所选择的I/O请求对象的I/O请求的调度。4.根据权利要求1所述的方法,其特征在于,所述每个I/O请求对象的I/O请求包括:读请求和写请求;所述读请求排在读请求队列中,所述写请求排在写请求队列中;则,所述调度所选择的I/O请求对象的I/O请求包括:在预设的读请求调度时长内,调度所述读请求队列中的读请求;在预设的写请求调度时长内,调度所述写请求队列中的写请求;其中,每个I/O请求对象的读请求调度时长与写请求调度时长之和小于或等于每个I/O请求对象的调度时间阈值。5.根据权利要求4所述的方法,其特征在于,还包括:在调度所述读请求队列中的读请求时,如果所述写请求队列中的写请求发生阻塞,则记录所述写请求阻塞时长,并在所述写请求阻塞时长达到预设的写请求阻塞时间阈值时,调度所述写请求队列中的写请求;在调度所述写请求队列中的写请求时,如果所述读请求队列中的读请求发生阻塞,则记录所述读请求阻塞时长,并在所述读请求阻塞时长达到预设的读请求阻塞时间阈值时,调度所述读请求队列中的读请求。6.根据权利要求1-5中任意一项所述的方法,其特征在于,所述为侦测到的每个I/O请求对象设定调度时间阈值,具体为:根据侦测到的I/O请求对象的个数和侦测到的每个I/O请求对象的响应时间需求,为侦测到的每个I/O请求对象设定调度时间阈值。7.一种I/O请求调度器,其特征在于,包括:分配模块,用于在进入当前调度时段时,侦测在所述当前时段访问存储设备的I/O请求对...
【专利技术属性】
技术研发人员:张子刚,蒋德钧,熊劲,
申请(专利权)人:华为技术有限公司,中国科学院计算技术研究所,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。