重庆时时彩单双窍门 www.4mum.com.cn 下载文档到电脑,查找使用更方便.(PDF附带说明图片)
30 金币 0人已下载
CN201410160560.3
2014.04.21
CN103927136A
2014.07.16
授权
有权
||||||
2017.02.22|||2014.08.13|||2014.07.16
授权|||实质审查的生效|||公开
本发明实施例提供一种输入输出IO类型的识别方法和装置。本发明输入输出IO类型的识别方法,包括:接收IO请求;根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有类型集合的判别条件;各已有类型集合中所包括的各IO请求属于同一个IO顺序流;若判断获知所述IO请求满足一已有类型集合的判别条件,则将所述IO请求作为一个新的元素加入到所述已有类型集合中。本发明实施例实现了对顺序流的识别,提升预取的命中率,大幅提高读数据的性能。
权利要求书1. 一种输入输出IO类型的识别方法,其特征在于,包括:接收IO请求;根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有类型集合的判别条件;各已有类型集合中所包括的各IO请求属于同一个IO顺序流;若判断获知所述IO请求满足一已有类型集合的判别条件,则将所述IO请求作为一个新的元素加入到所述已有类型集合中。2. 根据权利要求1所述的方法,其特征在于,所述属性信息包括所述IO请求的时间信息和对应存储设备的位置信息;所述预设算法为欧式距离法;相应地,根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有的类型集合的判别条件包括:根据所述时间信息和所述位置信息,利用欧式距离法计算所述IO请求与各已有类型集合的中心之间的间距;将计算出的间距与对应的已有类型集合的距离阈值进行比较,若间距不大于距离阈值,则获知所述IO请求满足所述对应的已有类型集合的判别条件。3. 根据权利要求2所述的方法,其特征在于,还包括:若间距大于距离阈值,则获知所述IO请求不满足所述类型集合的判别条件;若所述IO请求不满足所有已有类型集合的判别条件,则将所述IO请求作为唯一的元素,生成一个新的类型集合。4. 根据权利要求1至3任一所述的方法,其特征在于,所述将所述IO请求作为一个新的元素加入到所述类型集合中之后,还包括:根据所述IO请求的属性信息,更新所述类型集合的判别条件。5. 根据权利要求4所述的方法,其特征在于,还包括:删除预定时间内没有新元素加入的类型集合。6. 一种输入输出IO类型的识别装置,其特征在于,包括:接收???,用于接收IO请求;判断???,用于根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有类型集合的判别条件;各已有类型集合中所包括的各IO请 求属于同一个IO顺序流;处理???,用于若判断获知所述IO请求满足一已有类型集合的判别条件,则将所述IO请求作为一个新的元素加入到所述已有类型集合中。7. 根据权利要求6所述的装置,其特征在于,所述属性信息包括所述IO请求的时间信息和对应存储设备的位置信息;所述预设算法为欧式距离法;相应地,所述判断??榘ǎ?BR>计算单元,用于根据所述时间信息和所述位置信息,利用欧式距离法计算所述IO请求与各已有类型集合的中心之间的间距;比较单元,用于将计算出的间距与对应的已有类型集合的距离阈值进行比较,若间距不大于距离阈值,则获知所述IO请求满足所述对应的已有类型集合的判别条件。8. 根据权利要求7所述的装置,其特征在于,所述比较单元还用于若间距大于距离阈值,则获知所述IO请求不满足所述类型集合的判别条件;若所述IO请求不满足所有已有类型集合的判别条件,则将所述IO请求作为唯一的元素,生成一个新的类型集合。9. 根据权利要求6至8任一项所述的装置,其特征在于,还包括:更新???,用于所述将所述IO请求作为一个新的元素加入到所述类型集合中之后,根据所述IO请求的属性信息,更新所述类型集合的判别条件。10. 根据权利要求9所述的装置,其特征在于,还包括:删除???,用于删除预定时间内没有新元素加入的类型集合。
说明书输入输出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顺序流; 处理???,用于若判断获知所述IO请求满足一已有类型集合的判别条件,则将所述IO请求作为一个新的元素加入到所述已有类型集合中。 结合第二方面,在第二方面的第一种可能实现的方式中,所述属性信息包括所述IO请求的时间信息和对应存储设备的位置信息;所述预设算法为欧式距离法; 相应地,所述判断??榘ǎ?计算单元,用于根据所述时间信息和所述位置信息,利用欧式距离法计算所述IO请求与各已有类型集合的中心之间的间距; 比较单元,用于将计算出的间距与对应的已有类型集合的距离阈值进行比较,若间距不大于距离阈值,则获知所述IO请求满足所述对应的已有类型集合的判别条件。 结合第二方面第一种可能实现的方式,在第二方面的第二种可能实现的方式中,所述比较单元还用于若间距大于距离阈值,则获知所述IO请求不满足所述类型集合的判别条件;若所述IO请求不满足所有已有类型集合的判别条件,则将所述IO请求作为唯一的元素,生成一个新的类型集合。 结合第二方面、第二方面第一种至第二种任一种可能实现的方式,在第 二方面第三种可能实现的方式中,还包括: 更新???,用于所述将所述IO请求作为一个新的元素加入到所述类型集合中之后,根据所述IO请求的属性信息,更新所述类型集合的判别条件。 结合第二方面第三种可能实现的方式,在第二方面的第四种可能实现的方式中,还包括: 删除???,用于删除预定时间内没有新元素加入的类型集合。 本发明实施例输入输出IO类型的识别方法和装置,通过接收IO请求,根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有类型集合的判别条件;各已有类型集合中所包括的各IO请求属于同一个IO顺序流,若判断获知所述IO请求满足一已有类型集合的判别条件,则将所述IO请求作为一个新的元素加入到所述已有类型集合中。即根据IO请求的属性信息将IO请求划分到合适类型集合中,属于同一类型集合中的IO请求为一路顺序流,从而实现了对顺序流的识别,提升预取的命中率,大幅提高读数据的性能,解决了现有技术中当IO乱序时对顺序流识别错误的问题。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1为本发明输入输出IO类型的识别方法实施例一的流程图; 图2为本发明IO类型的识别方法实施例二的流程图; 图3为本发明IO类型的识别方法实施例三的流程图; 图4为本发明IO类型的识别方法实施例三的结构示意图; 图5为本发明IO类型的识别的装置实施例一的结构示意图; 图6为本发明IO类型识别的装置实施例二的结构示意图。 具体实施方式 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例?;诒痉⒚髦械氖凳├?,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明?;さ姆段?。 图1为本发明输入输出IO类型的识别方法实施例一的流程图,如图1所示,本实施例的方法可以包括: 步骤101、接收IO请求。 其中,可以为接收主机发送的IO请求,该IO请求可以是顺序IO,也可以是随机IO。 步骤102、根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有类型集合的判别条件;各已有类型集合中所包括的各IO请求属于同一个IO顺序流。 其中,所述IO请求的属性信息可以包括IO请求的时间信息、IO请求的大小以及IO请求对应存储设备的位置信息等任一种属性,也可以为多种属性组合使用构成所述IO请求的属性信息,除此之外还可以根据IO请求的业务特征进行灵活的配置。 其中,所述已有类型集合判别条件可以根据所述IO请求的属性信息进行灵活设置。 步骤103、若判断获知所述IO请求满足一已有类型集合的判别条件,则将所述IO请求作为一个新的元素加入到所述已有类型集合中。 本实施例,通过接收IO请求,根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有类型集合的判别条件;各类型集合中所包括的各IO请求属于同一个IO顺序流,若判断获知所述IO请求满足一已有类型集合的判别条件,则将所述IO请求作为一个新的元素加入到所述已有类型集合中。即根据IO请求的属性信息将IO请求划分到合适类型集合中,属于同一类型集合中的IO请求为一路顺序流,从而实现了对顺序流的识别,提升预取的命中率,大幅提高读数据的性能,解决了现有技术中当IO乱序时对顺序流识别错误的问题。 图2为本发明IO类型的识别方法实施例二的流程图,如图2所示,本实施例的方法可以包括: 步骤201、接收IO请求。 其中,可以接收主机发送的IO请求,该IO请求可以是顺序IO也可以是随机IO。 步骤202、根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有类型集合的判别条件;若满足则执行步骤203,若不满足则执行步骤204。 其中,各类型集合中所包括的各IO请求属于同一个IO顺序流。 其中,所述属性信息包括所述IO请求的时间信息和对应存储设备的位置信息;所述预设算法为欧式距离法; 相应地,根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有的类型集合的判别条件包括:根据所述时间信息和所述位置信息,利用欧式距离法计算所述IO请求与各已有类型集合的中心之间的间距;将计算出的间距与对应的已有类型集合的距离阈值进行比较。 若间距不大于距离阈值,则获知IO请求满足所述类型集合的判别条件;若间距大于距离阈值,则获知所述IO请求不满足所述类型集合的判别条件,当所述IO请求不满足所有已有类型集合的判别条件时,则执行步骤204。 具体地,IO请求对应存储设备的位置信息为IO请求对应的数据块在磁盘中的位置信息。 步骤203、将所述IO请求作为一个新的元素加入到所述类型集合中。 步骤204、将所述IO请求作为唯一的元素,生成一个新的类型集合。 步骤205、若所述类型集合中有新的元素加入,则根据新加入的IO请求的属性信息,更新所述类型集合的判别条件。 步骤206、删除预定时间内没有新元素加入的类型集合。 本实施例通过接受IO请求,根据所述IO请求的时间信息和对应存储设备的位置判断所述IO请求是否满足已有类型集合的判别条件,若满足已有类型集合的判别条件,则将所述IO请求作为新的元素加入到所述类型集合中个,并根据新加入的IO请求的属性信息更新所述类型集合的判别条件,若不满足所有已有类型集合的判别条件,则将IO请求作为唯一的元素生成新的类型集合,进一步地,对预定时间内没有新的元素加入的类型集合进行删除,从而实现了对IO类型的识别,被划分到同一类型集合的IO请求属于同一顺 序流IO,各类型集合为不同的顺序流IO,进而实现多路顺序流的识别,提升预取的命中率,大幅提高读数据的性能。 下面采用一个具体的实施例,对图2所示方法实施例的技术方案进行详细说明。图3为本发明IO类型的识别方法实施例三的流程图,图4为本发明IO类型的识别方法实施例三的结构示意图,如图3所示,本实施例的方法可以包括: S301:存储设备接收主机发送的IO请求a。 S302:存储设备根据IO请求a的时间信息和位置信息判断其所在小段数据单元(Chunk)是否属于已有类型。 其中,时间信息为存储设备接收到主机发送的IO请求a的时间,位置信息为IO请求a对应数据块在磁盘中的位置信息。 具体地,判断是否属于已有类型过程如下:根据已有类型中一个集合中的各IO请求的时间信息和位置信息计算出该集合的平均时间信息和平均距离信息,即将各IO请求作为一个对象,将其映射到一个2维空间中,在该空间中计算出该集合的中心信息,使用相同的方法计算已有类型集合中各个集合的中心信息;当接受到IO请求a则根据其时间信息和位置信息使用欧式距离法计算IO请求a到各已有类型集合的中心的间距,将计算出的间距与对应的类型集合的距离阈值进行比较。 S303:若属于已有类型集合中任一集合则进入步骤304,若不属于已有类型集合中任一集合则进入步骤305。 具体地,在S302中计算出的IO请求a到各已有类型集合的中心间距若不大于对应的各类型集合的距离阈值,则获知IO请求a满足该类型集合的判别条件;若否,则获知IO请求a不满足该类型结合的判别条件。 S304:将IO请求a加入到合适的类型集合中,如图4所示,并根据IO请求a的属性信息更新该类型集合的判别条件,并进入S306。 具体地,每一个集合在生成之后,由于顺序IO是在一段地址空间上单向进行访问的,集合中的对象随着新到的IO请求是在不断更新的,所以集合的判别条件也应该相应的被更新,以适应对新的IO类型进行识别。 S305:将IO请求a作为唯一的元素,生成一个新的集合,如图4所示,并根据IO请求a的属性信息更新该新集合的判别条件,进入S306。 在S304和S305中,当IO请求a被划入合适集合中,根据IO请求a将主机所需数据返回给主机后,可以将IO请求a所在的Chunk保留其IO属性信息,用于维护其所属类型集合的集合信息,Chunk里其他数据信息进行清除。 S306:对在预设时间内没有新元素加入的类型集合进行删除。 具体地,由于进入存储系统的数据是在不断更新的,比如视频点播中,播放完的视频文件必须尽快淘汰而不能一直存在于内存中,所以无论是新类型集合的创建还是IO类型的识别都是动态的。 当存储设备接收到其他IO请求时,可以采用S301-S306的具体识别方法,该方法可适用于任意类型IO的识别,根据上述步骤将IO请求划分到合适类型集合中,一个类型集合中的各IO请求,对应同一顺序流,不同的类型集合对应不同顺序流,进而有效地实现了多路顺序流的识别,提升预取的命中率,大幅提高读数据的性能。进一步地,使用上述方法可以有效避免顺序流由于其他路顺序IO的存在而被误认为是随机IO,排除了多路顺序流之间的干扰,在分别识别出多路顺序流的情况下,可以对每一路顺序IO采取相应的预取/缓存措施,达到存储系统性能最优化;在多路顺序流IO和随机IO并存的情况下,排除随机IO的干扰,能够正确识别出顺序流IO,避免随机IO被误识别为顺序IO,造成预取/缓存措施错误,带来不必要的性能损耗;对于IO属性的灵活配置,在多个维度上对顺序IO和随机IO进行识别,较大程度缓和IO乱序对算法造成的影响。 图5为本发明IO类型的识别的装置实施例一的结构示意图,如图5所示,本实施例的装置可以包括:接收???1、判断???2以及处理???3,其中,接收???1用于接收IO请求,判断???2用于根据所述IO请求的属性信息以及预设算法判断所述IO请求是否满足已有类型集合的判别条件;各已有类型集合中所包括的各IO请求属于同一个IO顺序流,处理???3用于若判断获知所述IO请求满足一已有类型集合的判别条件,则将所述IO请求作为一个新的元素加入到所述已有类型集合中。 本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。 图6为本发明IO类型识别的装置实施例二的结构示意图,如图6所示, 本实施例的装置在图5所示装置结构的基础上,进一步地,所述属性信息包括所述IO请求的时间信息和对应存储设备的位置信息,所述预设算法为欧式距离法,判断???2可以包括:计算单元121和比较单元122,其中,计算单元121用于根据所述时间信息和所述位置信息,利用欧式距离法计算所述IO请求与各已有类型集合的中心之间的间距,比较单元122用于将计算出的间距与对应的已有类型集合的距离阈值进行比较,若间距不大于距离阈值,则获知所述IO请求满足所述对应的已有类型集合的判别条件。 其中,所述比较单元122还用于若间距大于距离阈值,则获知所述IO请求不满足所述类型集合的判别条件;若所述IO请求不满足所有已有类型集合的判别条件,则将所述IO请求作为唯一的元素,生成一个新的类型集合。 进一步地,该装置还包括更新???1和删除???2,其中,更新???1用于所述将所述IO请求作为一个新的元素加入到所述类型集合中之后,根据所述IO请求的属性信息,更新所述类型集合的判别条件,删除???2用于删除预定时间内没有新元素加入的类型集合。 本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。 在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上??梢愿菔导实男枰≡衿渲械牟糠只蛘呷康ピ词迪直臼凳├桨傅哪康?。 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件 功能单元的形式实现。 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。 本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能??榈幕纸芯倮得?,实际应用中,可以根据需要而将上述功能分配由不同的功能??橥瓿?,即将装置的内部结构划分成不同的功能???,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围?! ∧谌堇醋宰ɡ鴚ww.www.4mum.com.cn转载请标明出处
编号: cj20190412175248833161
类型: 共享资源
格式: PDF
大?。?1.54MB
上传时间: 2019-04-13
[email protected] 2017-2018 www.4mum.com.cn网站版权所有经营许可证编号:粤ICP备17046363号-1