一种基于IO场景识别的读加速方法、装置及电子设备制造方法及图纸

技术编号:20362387 阅读:19 留言:0更新日期:2019-02-16 16:18
本申请实施例公开了一种基于IO场景识别的读加速方法,应用于分布式存储系统,所述方法包括:接收IO读请求;将所述IO读请求的场景与IO场景分组集合进行相似度匹配,确定与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库;启动IO场景预读,将与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征和所述IO读请求对应的磁盘数据预读到内存缓存;响应所述IO读请求,对预读的内存缓存进行读取,返回所述IO读请求对应的数据。通过本方法,可以实现IO读加速。

【技术实现步骤摘要】
一种基于IO场景识别的读加速方法、装置及电子设备
本申请涉及云计算
,更具体地,涉及一种基于IO场景识别的读加速方法、装置及电子设备。
技术介绍
在云计算环境下,采用分布式存储系统读写数据时,通常以数据块为单位,数据块从KB到MB不等。一个文件或大块数据写入到分布式存储系统中,通常要对数据块进行再分块,并随机分布到各个服务器的磁盘中。由于普通机械磁盘读写速度通常比较慢,特别是随机读,如果数据块在KB级别,每秒钟也就几MB。
技术实现思路
鉴于上述问题,本申请提出了一种基于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场景识别的读加速方法流程图。图7示出了本申请第七实施例提出的基于IO场景识别的读加速方法流程图。图8示出了本申请第八实施例提出的基于IO场景识别的读加速方法流程图。图9示出了本申请第九实施例提出的基于IO场景识别的读加速方法流程图。图10示出了本申请第十实施例提出的基于IO场景识别的读加速方法流程图。图11示出了本申请第十一实施例提出的基于IO场景识别的读加速方法流程图。图12示出了本申请第十二实施例提出的基于IO场景识别的读加速方法流程图。图13示出了本申请第十三实施例提供的基于IO场景识别的读加速装置的一种结构框图。图14示出了本申请实施例的用于执行根据本申请实施例的基于IO场景识别的读加速方法的电子设备的框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。目前,采用分布式存储系统读写数据时,当应用层读写一个文件,通常会发起数十万个随机IO读请求到磁盘,读写一个上GB级数据,速度会相当的慢。专利技术人发现,在分布式系统中,(1)无论是随机IO读操作还是顺序IO读操作,读的速度都比较慢;(2)简单的预读,会读更多的数据,带来更多的网络、磁盘读写性能消耗;(3)对于每次大量有规律的非连续的随机读写,比如启动系统和应用,遍历文件系统等速度会很慢。因此,专利技术人提出了本专利技术实施例中的基于IO场景识别的读加速方法。下面将结合附图具体描述本申请中的各实施例。第一实施例请参阅图1,图1示出了本申请第一实施例提供的基于IO场景识别的读加速方法的流程示意图。下面将针对图1所示的流程进行详细的阐述,上述的基于IO场景识别的读加速方法具体地可以包括以下步骤:步骤S110:接收IO读请求。当存储底层收到上层IO读请求时,表明上层出现IO读需求,所述上层可以是中间层、和/或应用层。步骤S120:将所述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场景分组特征库。步骤S130:启动IO场景预读,将与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库和所述IO读请求对应的磁盘数据预读到内存缓存。在步骤S120中确定与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库之后,启动预读场景,将与所述IO读请求的场景相似度相匹配的包含在IO历史数据库中的IO场景分组库对应的IO场景分组特征库和所述IO读请求对应的磁盘数据预读到内存缓存中。所述IO读请求对应的磁盘数据即包含所述IO读请求的磁盘数据。步骤S140:响应所述IO读请求,对预读的内存缓存进行读取,返回所述IO读本文档来自技高网...

【技术保护点】
1.一种基于IO场景识别的读加速方法,其特征在于,应用于分布式存储系统,所述方法包括:接收IO读请求;将所述IO读请求的场景与IO场景分组集合进行相似度匹配,确定与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库;启动IO场景预读,将与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库和所述IO读请求对应的磁盘数据预读到内存缓存;响应所述IO读请求,对预读的内存缓存进行读取,返回所述IO读请求对应的数据。

【技术特征摘要】
2018.06.05 CN 20181056868581.一种基于IO场景识别的读加速方法,其特征在于,应用于分布式存储系统,所述方法包括:接收IO读请求;将所述IO读请求的场景与IO场景分组集合进行相似度匹配,确定与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库;启动IO场景预读,将与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库和所述IO读请求对应的磁盘数据预读到内存缓存;响应所述IO读请求,对预读的内存缓存进行读取,返回所述IO读请求对应的数据。2.如权利要求1所述的方法,其特征在于,所述将所述IO读请求的场景与IO特征场景分组集合进行相似度匹配,确定与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库,包括:初始化时间窗口t1;统计所述时间窗口t1内所述IO读请求的场景特征;将所述IO读请求的场景特征与IO场景分组集合中的IO场景分组库进行匹配;获取与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库。3.如权利要求2所述的方法,其特征在于,所述时间窗口t1初始化为分析窗口t的N%。4.如权利要求2所述的方法,其特征在于,所述将所述IO读请求的场景特征与IO场景分组集合中的IO场景分组库进行匹配对应的IO场景分组特征库,包括:扫描所述IO场景分组集合,将所述IO读请求的场景特征与所述IO场景分组集合中的IO场景分组库进行相似度匹配;确定与所述IO读请求的场景特征匹配成功的IO场景分组库对应的IO场景分组特征库。5.如权利要求4所述,其特征在于,所述扫描所述IO场景分组集合,将所述IO读请求的场景特征与所述IO场景分组集合中的IO场景分组库进行相似度匹配,包括:设定次数tc,统计所述IO场景分组集合的平均偏移值a0;以第一个IO偏移为基础,在连续的所述次数tc内,获得所述IO读请求在所述时间窗口t1内的偏移平均值a1,计算a1与所述平均偏移值a0相减的差,再除以所述平均偏移值a0的商值,比较所述商值与0的大小;如果所述商值等于0,判定所述IO读请求的场景与所述IO场景分组库匹配成功,则将所述IO请求的第一个IO对应的偏移值作为索引参数;如果所述商值不等于0,继续在下一个连续的所述次数tc内计算,直到找不到匹配偏移。6.如权利要求1所述的方法,其特征在于,所述启动IO场景预读,将与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库和所述IO读请求对应的磁盘数据预读到内存缓存,包括:启动IO场景预读;将与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库和所述IO读请求对应的磁盘数据保存到内存缓存;设定时间K,当在所述设定时间K内对所述内存缓存无访问,释放所述内存缓存。7.如权利要求1所述的方法,其特征在于,接收IO读请求,将所述IO读请求的场景与IO特征场景分组集合进行相似度匹配,确定与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库,启动IO场景预读,将与所述IO读请求的场景匹配的IO场景分组库对应的IO场景分组特征库和所述IO读请求对应的磁盘数据预读到内存缓存,响应所述IO读请求,对预读的内存缓存进行读取,返回所述IO读请求对应的数据,包括:访问包含与所述IO读请求的场景匹配的IO场景分组库的内存缓存;如果所述访问的内存缓存中不存在与所述IO读请求的场景匹配的IO场景分组库,则继续向存储节点发起读取请求;如果所述访问的内存缓存中存在与所述IO读请求的场景匹配的IO场景分组库,则返回所述...

【专利技术属性】
技术研发人员:陈元强李文祥吴建辉吕定灿
申请(专利权)人:深圳市木浪云数据有限公司
类型:发明
国别省市:广东,44

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

1