[发明专利]输入输出IO类型的识别方法和装置有效
申请号: | 201410160560.3 | 申请日: | 2014-04-21 |
公开(公告)号: | CN103927136B | 公开(公告)日: | 2017-02-22 |
发明(设计)人: | 熊鸣昊 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F13/16 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 输入输出 io 类型 识别 方法 装置 | ||
技术领域
本发明实施例涉及通信和存储技术,尤其涉及一种输入输出IO类型的识别方法和装置。
背景技术
随着流媒体的广泛发展,对存储系统的读性能要求越来越高。仅仅是把主机的读请求下发到磁盘中的方式可以满足业务,但每一个读请求都需要下盘造成一个大块连续的数据可能需要经过多次读盘才能获取,这时磁盘的高延时将极大影响用户对数据访问的体验。所以,根据已有输入输出(Input/Output,简称IO)模型进行判断,将可能会被读到的数据提前预取到存储系统的内存中等待主机读请求过来直接命中,预取是提升读性能特别是大块顺序读业务性能的最重要的方法。
IO主要分为顺序IO和随机IO两类。而为了提高存储系统的读性能需要判断是否预取,主要依赖于对顺序流的IO的识别。现有技术中的顺序流识别方法中,对每个数据块引入一个顺序度计数;数据块被读入高速缓冲存储区(cache)时,该数据块的顺序度计数是其前一个位置数据块的顺序度计数加1;若前一个位置上的数据块不存在,那么本身的顺序度计数就是1;若当前数据块的顺序度计数没有达到顺序度阀值,则可以认为该数据块为随机数据;若当前数据块的顺序度计数达到顺序度阀值,则可以认为该数据块为顺序数据。
使用现有顺序流识别方法对主机IO进行识别时,主机发送的请求是顺序的,但到达存储系统并不一定是顺序的,在传输过程中有可能出现乱序,该方案不能识别乱序的顺序流,并且若同时有多个顺序流业务在执行的时候,现有技术的方法往往也不能正确识别顺序流。其中最主要的原因在于,多路顺序流业务之间是存在干扰的。当一个存储单元中(一个逻辑单元号(Logical Unit Number,简称LUN)或者磁盘阵列(Redundant Arrays of Independent Disks,简称RAID))存在多个顺序业务时,由于这些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顺序流;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410160560.3/2.html,转载请声明来源钻瓜专利网。