[发明专利]一种基于虚拟磁盘层的IO流控制方法及装置有效
申请号: | 201510549101.9 | 申请日: | 2015-08-31 |
公开(公告)号: | CN105159609A | 公开(公告)日: | 2015-12-16 |
发明(设计)人: | 王俊 | 申请(专利权)人: | 北京神州云科数据技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李相雨 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 虚拟 磁盘 io 控制 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种基于虚拟磁盘层的IO流控制方法及装置。
背景技术
传统的磁盘驱动建立在通用块设备层之下,当外部发送到块设备接口的OutstandingIO(未完成的IO)超出磁盘硬件处理能力时,缓存到块设备队列Queue中,队列的深度QueueDepth可以设置,当块设备队列Queue中缓存的IO个数超出QueueDepth长度时,阻塞IO进程,直到因为下层IO处理完毕使得队列长度小于QueueDepth,才能重新唤醒IO进程。
但是,传统的磁盘驱动缓存队列方法有以下缺陷:第一,当缓存的IO个数超出QueueDepth长度时,导致执行IO的进程阻塞。在中高端存储设备上对随机IOPS(Input/OutputOperationsPerSecond,即每秒进行读写操作的次数)的要求很高,要求达到10-100万级别,若发生进程阻塞-唤醒,会对IOPS处理能力造成极大影响,导致性能不达标;第二,单个缓存队列会造成读IO等待写IO的情况,使得读IO的响应时间增大并且不稳定。
发明内容
针对现有技术中存在的容易导致执行IO的进程阻塞以及在读写并发情况下读IO的相应时间大且不稳定的缺陷,本发明提供了一种基于虚拟磁盘层的IO流控制方法及装置。
一方面,本发明提供的一种基于虚拟磁盘层的IO流控制方法,包括:
建立虚拟磁盘;
在所述虚拟磁盘中设置读IO队列和写IO队列;
执行IO读时,将读IO缓存到读IO队列中,执行写IO时,将写IO缓存到写IO队列中。
进一步地,所述虚拟磁盘,将磁盘的几何空间划分为保留区和数据区。
进一步地,所述保留区包括:超级块区、位图bitmap索引区、坏块重定向索引区以及坏块重定向数据区。
进一步地,所述将读IO缓存到读IO队列中,将写IO缓存到写IO队列中的步骤之前,还包括:
针对每一个所述队列设定最大正在处理IO个数的值threshold;
判断所述队列的正在处理IO个数是否大于threshold值,若是,则不执行,否则,依次发送待执行的IO到所述队列中,直到所述队列的正在处理IO个数等于threshold值。
进一步地,所述队列接收发送待执行的IO时,相应的正在处理IO个数加1,完成IO时,相应的正在处理IO个数减1。
另一方面,本发明还提供一种基于虚拟磁盘层的IO流控制装置,包括:
建立模块,用于建立虚拟磁盘;
设置模块,用于在所述虚拟磁盘中设置读IO队列和写IO队列;
存储模块,用于执行IO读时,将读IO缓存到读IO队列中,执行写IO时,将写IO缓存到写IO队列中。
进一步地,所述建立模块具体用于:所述虚拟磁盘,将磁盘的几何空间划分为保留区和数据区。
进一步地,所述建立模块具体用于:所述保留区包括:超级块区、位图bitmap索引区、坏块重定向索引区以及坏块重定向数据区。
进一步地,所述存储模块还用于:
针对每一个所述队列设定最大正在处理IO个数的值threshold;
判断所述队列的正在处理IO个数是否大于threshold值,若是,则不执行,否则,依次发送待执行的IO到所述队列中,直到所述队列的正在处理IO个数等于threshold值。
进一步地,所述存储模块还用于:所述队列接收发送待执行的IO时,相应的正在处理IO个数加1,完成IO时,相应的正在处理IO个数减1。
本发明提供的一种基于虚拟磁盘层的IO流控制方法及装置,通过引入虚拟磁盘,在所述虚拟磁盘中设置读IO队列和写IO队列;执行读IO时,将读IO缓存到读IO队列中,执行写IO时,将写IO缓存到写IO队列中。可以实现应用于下层的任何类型的磁盘驱动,都不会产生阻塞进程导致的性能问题,使得IOPS性能在磁盘驱动上不产生瓶颈。同时,降低了读写并发情况下读IO的响应时间,提高了读IO响应时间的稳定性。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1是本发明一个实施例中一种基于虚拟磁盘层的IO流控制方法的流程示意图;
图2是本发明一个实施例中发送bio的队列接口函数流程示意图;
图3是本发明一个实施例中一种基于虚拟磁盘层的IO流控制装置的结构示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州云科数据技术有限公司,未经北京神州云科数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510549101.9/2.html,转载请声明来源钻瓜专利网。