IO请求控制方法和装置制造方法及图纸

技术编号:6952354 阅读:428 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种IO请求控制方法,包括:将磁盘的最大IO带宽分为两个逻辑部分,包括第一部分带宽和第二部分带宽,其中该第一部分带宽具有最低IO带宽;将所有IO并发通过数个IO队列访问磁盘。本发明专利技术还公开一种IO请求控制装置,包括IO代理模块,其中该IO代理模块将磁盘的最大IO带宽分为两个逻辑部分,包括第一部分带宽和第二部分带宽,其中该第一部分带宽具有最低IO带宽,并且将所有IO并发通过数个IO队列访问磁盘。本发明专利技术对IO请求进行有效控制及调度,使得IO请求对磁盘造成的压力随着请求数的增加具有线性增长的特点,在充分发挥磁盘IO性能的前提下,大大提高大并发IO访问的系统稳定性,特别适于会对磁盘产生大量并发的访问请求的应用环境。

【技术实现步骤摘要】

本专利技术涉及磁盘控制方法,特别涉及磁盘 ο请求控制方法。
技术介绍
磁盘访问控制在规模较大的存储系统中是非常关键的模块,这是因为一方面磁盘作为目前主流计算机服务器的硬件瓶颈点,提高磁盘访问速度,最大限度发挥磁盘10(输入输出)性能就能有效提高系统的整体性能;另一方面,在某些读、写具有不同优先级的场合,必须对磁盘访问进行有效控制才能提供稳定的服务。在传统的电视播出机构、新兴的互联网视频供应商以及互联网网盘供应商等环境下,都会遇到海量数据的存储问题,通用的磁盘访问模型是不加限制的并行访问,这种方法实现难度低,在小并发量访问的前提下能够有效发挥磁盘性能,但是不适合大并发量的访问,在规模较大的并发访问情况下,容易发生磁盘抖动,严重的甚至会导致系统失去响应, 带来灾难性后果。以目前最流行的VOD点播业务提供商为例,随着网络带宽的升级以及编码技术的革新,限制VOD业务开展最关键的因素已经从网络带宽逐渐转移到磁盘存储。由于VOD业务是一个请求占用一个单独的信道来实现互动,通用的磁盘并行访问模型效率低,不能有效发挥磁盘的性能,直接导致运营商单个请求成本过高,陷入VOD运营不盈利的尴尬。目前操作系统对磁盘的调度算法主要有先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)以及循环扫描算法(CSCAN)等,这些算法对于单个或者少量的并发IO请求,均能够有效提高IO响应速度,但由于操作系统对于大并发的IO请求没有特殊的优化,在大并发的IO请求状况下会产生如下问题随着并发数的增加,系统调度产生的开销增加到不能忽略;读、写具有相同的优先级,不能保证读或者写优先级高的场合;读写对磁盘造成的压力难以计算,难以评估磁盘的剩余负载能力;磁盘有可能进入抖动状态,造成灾难性后果。
技术实现思路
本专利技术的目的是提供一种IO请求控制方法。本专利技术的目的还在于提供一种IO请求控制装置。本专利技术的技术方案包括一种IO请求控制方法,包括将磁盘的最大IO带宽分为两个逻辑部分,包括第一部分带宽和第二部分带宽,其中该第一部分带宽具有最低IO带宽;将所有IO并发通过数个 IO队列访问磁盘。在读优先模式下,所述第一部分带宽是最小写带宽,所述第二部分带宽是读带宽。 检查当前已使用的写带宽是否超出了该最小写带宽。在写优先模式下,所述第一部分带宽是最小读带宽,所述第二部分带宽是写带宽。 检查当前已使用的读带宽是否超出了该最小读带宽。其中,检查当前剩余的IO带宽是否满足目前的IO请求所需的带宽,如果是则返回带宽,如果否则拒绝请求。在当前IO请求小于该最大IO并发访问数时,以空队列访问磁盘。本专利技术还包括一种IO请求控制装置,包括IO代理模块,其中该IO代理模块将磁盘的最大IO带宽分为两个逻辑部分,包括第一部分带宽和第二部分带宽,其中该第一部分带宽具有最低IO带宽,并且将所有IO并发通过数个IO队列访问磁盘。在读优先模式下,所述第一部分带宽是最小写带宽,所述第二部分带宽是读带宽。 该IO代理模块检查当前已使用的写带宽是否超出了该最小写带宽。在写优先模式下,所述第一部分带宽是最小读带宽,所述第二部分带宽是写带宽。 该IO代理模块检查当前已使用的读带宽是否超出了该最小读带宽。该IO代理模块检查当前剩余的IO带宽是否满足目前的IO请求所需的带宽,如果是则返回带宽,如果否则拒绝请求。该IO代理模块在当前IO请求小于该最大IO并发访问数时,以空队列访问磁盘。本专利技术的积极进步效果在于对IO请求进行有效控制及调度,使得IO请求对磁盘造成的压力随着请求数的增加具有线性增长的特点,在充分发挥磁盘IO性能的前提下,大大提高大并发IO访问的系统稳定性,特别适于会对磁盘产生大量并发的访问请求的应用环境。附图说明图1是本专利技术的实施例1的示意图。图2是本专利技术的实施例2的示意图。具体实施例方式以下结合附图所示实施例对本专利技术作详细说明。对于磁盘来说,实验表明,磁盘的IO输出并不随着并发访问数的增长呈线性增长,而是呈现一个拱门型的抛物线。因此,任何一个存储系统存在一个能够最大限度发挥磁盘输入输出(10)性能的并发访问数,在本说明书中记为MagicN。在MagicN个并发访问数下,能够达到的最大IO输出,在本说明书中记为MAX_RW_I0。通过设置不同的并发访问数n,记录在某一时间段内每个线程IO读取、写入的字节数,所有线程IO读取、写入字节数的总和作为磁盘的IO输出,通过统计可以得出磁盘的最大IO输出,获取MagicN。本专利技术的方法将磁盘的最大IO带宽逻辑上分成两部分,第一部分带宽和第二部分带宽。在读优先模式下,所述第一部分带宽是最小写带宽,第二部分带宽是可变的读带宽。所述的最小写带宽是需要保证的最低写请求带宽,用于写请求,在本说明书记为MIN_W_ 10,则最大读带宽为MAX_RW_I0_MIN_W_I0。而在写优先模式下,所述第一部分带宽是最小读带宽,第二部分带宽是可变的写带宽。在不同的应用中,可以设定写请求优先,或是读请求优先。下面描述读请求和写请求分别在写优先和读优先的情况下的控制过程。实施例1,如图1所示的,对于读请求的处理过程。当收到一个读请求时,如果应用是写请求优先的情况下(参见图1的左边部分),则判断是否有空余的带宽供该读请求使用,参见步骤110。具体为,当前实际读负载占用带宽标记为CR_I0,当前实际写负载占用带宽标记为CW_I0,那么当前系统的空闲带宽为 MAX_Rff_I0-Cff_I0-CR_I0 ;比较系统的空闲带宽与实际请求的读带宽(SR_I0),如果有剩余的IO带宽可供该读请求使用,则返回带宽(步骤400),否则就拒绝该请求(步骤300)。如果是在读优先的情况下(参见图1右边部分),由于存在最小写带宽MIN_W_I0, 可供分配给读请求的最大带宽为MAX_RW_I0_MIN_W_I0,因此判断是否有剩余带宽的方法有所不同(步骤210)。当前实际可分配给读请求的带宽为MAX_RW_I0-MIN_W_I0-CR_I0,比较这个值与实际请求的读带宽,如果有IO带宽可供该读请求使用,进入到下一步判断,反之拒绝请求(步骤300)。通过步骤210的计算,即使存在IO带宽可供读请求使用,也并不表示这个IO带宽是空闲的,因为在读优先模式下,如果读请求未饱和,存在CW_I0 > MIN_ff_I0的情况。这就要判断是否要对写请求进行调度或者释放来满足读请求。步骤220与步骤110相同,比较系统的空闲带宽与实际请求的读带宽,如果有剩余的IO带宽可供该读请求使用,则返回带宽(步骤400),否则需要释放写带宽来满足读请求(步骤230)。实施例2,对于写请求的处理过程如图2所示,与读请求类似,当受到一个写请求处理时,如果是读请求优先,则检查当前剩余带宽(步骤Iio'),即MAX_RW_I0-CR_I0_CW_I0,如果数值小于写请求所需的带宽,则返回所请求的带宽(步骤400'),否则由于资源耗尽而拒绝请求(步骤300')。如果是写优先级高,则先检查是否存在带宽可满足写请求(210'),如果不存在拒绝请求(300')。否则判断是否需要释放读请求来满足写请求所需带宽(步骤220'), 如果是,则释放带宽(230'),而如果否,则返回带宽(400')。在图2中,本文档来自技高网
...

【技术保护点】
1.一种IO请求控制方法,其特征在于,该方法包括:将磁盘的最大IO带宽分为两个逻辑部分,包括第一部分带宽和第二部分带宽,其中该第一部分带宽具有最低IO带宽;将所有IO并发通过数个IO队列访问磁盘。

【技术特征摘要】
1.一种IO请求控制方法,其特征在于,该方法包括将磁盘的最大IO带宽分为两个逻辑部分,包括第一部分带宽和第二部分带宽,其中该第一部分带宽具有最低IO带宽;将所有IO并发通过数个IO队列访问磁盘。2.根据权利要求1所述的IO请求控制方法,其特征在于,在读优先模式下,所述第一部分带宽是最小写带宽,所述第二部分带宽是读带宽;检查当前已使用的写带宽是否超出了该最小写带宽。3.根据权利要求1所述的方法,其特征在于,在写优先模式下,所述第一部分带宽是最小读带宽,所述第二部分带宽是写带宽;检查当前已使用的读带宽是否超出了该最小读带觅ο4.根据权利要求2或3所述的方法,其特征在于,检查当前剩余的IO带宽是否满足目前的IO请求所需的带宽,如果是则返回带宽,如果否则拒绝请求。5.根据权利要求2或3所述的方法,其特征在于,在当前IO请求小于该最大IO并发访问数时,以空队列访问磁盘。6.一种IO请求控制装置,其特征在于,该装置包括IO代理模块,其中...

【专利技术属性】
技术研发人员:刘振中汤晓斌沈冠祎顾炜
申请(专利权)人:上海文广科技集团有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1