一种顺序读预读的方法、装置、设备及介质制造方法及图纸

技术编号:33063763 阅读:33 留言:0更新日期:2022-04-15 09:53
本发明专利技术提供了一种基于ICFS分布式块存储系统的顺序读预读的方法、装置、设备及可读介质,该方法包括:响应于OSD接收到客户端下发的读请求,判断客户端下发的读请求是否为顺序读请求;响应于客户端下发的读请求为顺序读请求,根据读请求中待读取的数据对象创建预读滑动窗口;响应于预读滑动窗口创建完成,根据读请求中待读取的数据对象计算新的需要预读的卷对象;将计算出的新的需要预读的卷对象加入到预读滑动窗口的待预读对象队列中并执行预读。通过使用本发明专利技术的方案,能够提升ICFS分布式块存储系统的顺序读场景性能,提高了磁盘利用率。用率。用率。

【技术实现步骤摘要】
一种顺序读预读的方法、装置、设备及介质


[0001]本专利技术涉及计算机领域,并且更具体地涉及一种基于ICFS分布式块存储系统的顺序读预读的方法、装置、设备及可读介质。

技术介绍

[0002]在块存储场景的ICFS(一种分布式对象存储系统)分布式对象存储系统中,用户使用的虚拟逻辑卷上的连续的逻辑空间,实际是由存储底层的多个 4M 大小的对象组成的,这些对象通过 Crush 数据分布算法均匀的分布在底层OSD(对象存储设备)上,承载实际的读写业务。这种分布策略能够提升面对随机读写业务时磁盘的并发度,提高存储系统的可靠性与可扩展性,但同时也为顺序读场景预读机制的实现带来了一定难度。具体存在以下难点:1. 场景识别困难,对于传统集中式存储系统,顺序读预读业务场景的判断只需要判断一段时间内,用户下发的读请求是否连续即可。而对于分布式块存储系统,用户使用的是存储系统抽象出的多个虚拟卷,这些虚拟卷分别被拆分为多个对象后,通过数据分布算法均匀混合的分布在不同 PG(放置组)上。而 PG 又分布在不同节点的各个OSD上。当用户的多个虚拟卷同时承载业务时,单个OSD上可能承载着多个卷的数据对象的读写,这就导致了分布式存储系统本地判断顺序读场景的困难。
[0003]2.预读实现困难,传统的集中式存储系统软件实现仅使用单进程,总进程可统筹管理磁盘的读写与预读。而ICFS分布式块存储系统中,为避免单点故障影响整个集群,每个OSD各自分管自身的数据读写。单个虚拟卷的顺序读涉及到多个OSD上的数据读写,而OSD彼此之间的通信需要跨进程或跨节点的网络通信。如果沿用传统的预读机制实现,复杂性和有效性难以令人满意。

技术实现思路

[0004]有鉴于此,本专利技术实施例的目的在于提出一种基于ICFS分布式块存储系统的顺序读预读的方法、装置、设备及可读介质,通过使用本专利技术的技术方案,能够提升ICFS 分布式块存储系统的顺序读场景性能,提高了磁盘利用率。
[0005]基于上述目的,本专利技术的实施例的一个方面提供了一种基于ICFS分布式块存储系统的顺序读预读的方法,包括以下步骤:响应于OSD接收到客户端下发的读请求,判断客户端下发的读请求是否为顺序读请求;响应于客户端下发的读请求为顺序读请求,根据读请求中待读取的数据对象创建预读滑动窗口;响应于预读滑动窗口创建完成,根据读请求中待读取的数据对象计算新的需要预读的卷对象;将计算出的新的需要预读的卷对象加入到预读滑动窗口的待预读对象队列中并
执行预读。
[0006]根据本专利技术的一个实施例,还包括:响应于执行预读,将预读数据保存在内存的缓存中。
[0007]根据本专利技术的一个实施例,响应于预读滑动窗口创建完成,根据读请求中待读取的数据对象计算新的需要预读的卷对象包括:根据读请求中待读取的数据对象确定预读数据对象的范围;构造预读数据对象的范围内所有对象的对象名;响应于构造的对象名通过 Crush 算法计算得到的PG在OSD的PG分布图内,确定对象名对应的数据对象为需要预读的卷对象。
[0008]根据本专利技术的一个实施例,将计算出的新的需要预读的卷对象加入到预读滑动窗口的待预读对象队列中并执行预读包括:创建一个单独的线程以执行预读;在预读滑动窗口的待预读对象队列中获取需要预读的数据对象,执行预读并循环处理所有需预读的对象。
[0009]本专利技术的实施例的另一个方面,还提供了一种基于ICFS分布式块存储系统的顺序读预读的装置,装置包括:判断模块,判断模块配置为响应于OSD接收到客户端下发的读请求,判断客户端下发的读请求是否为顺序读请求;创建模块,创建模块配置为响应于客户端下发的读请求为顺序读请求,根据读请求中待读取的数据对象创建预读滑动窗口;计算模块,计算模块配置为响应于预读滑动窗口创建完成,根据读请求中待读取的数据对象计算新的需要预读的卷对象;执行模块,执行模块配置为将计算出的新的需要预读的卷对象加入到预读滑动窗口的待预读对象队列中并执行预读。
[0010]根据本专利技术的一个实施例,还包括保存模块,保存模块配置为:响应于执行预读,将预读数据保存在内存的缓存中。
[0011]根据本专利技术的一个实施例,计算模块还配置为:根据读请求中待读取的数据对象确定预读数据对象的范围;构造预读数据对象的范围内所有对象的对象名;响应于构造的对象名通过 Crush 算法计算得到的PG在OSD的PG分布图内,确定对象名对应的数据对象为需要预读的卷对象。
[0012]根据本专利技术的一个实施例,执行模块还配置为:创建一个单独的线程以执行预读;在预读滑动窗口的待预读对象队列中获取需要预读的数据对象,执行预读并循环处理所有需预读的对象。
[0013]本专利技术的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
[0014]本专利技术的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
[0015]本专利技术具有以下有益技术效果:本专利技术实施例提供的基于ICFS分布式块存储系统的顺序读预读的方法,通过响应于OSD接收到客户端下发的读请求,判断客户端下发的读请求是否为顺序读请求;响应于客户端下发的读请求为顺序读请求,根据读请求中待读取的数据对象创建预读滑动窗口;响应于预读滑动窗口创建完成,根据读请求中待读取的数据对象计算新的需要预读的卷对象;将计算出的新的需要预读的卷对象加入到预读滑动窗口的待预读对象队列中并执行预读的技术方案,能够提升ICFS 分布式块存储系统的顺序读场景性能,提高了磁盘利用率。
附图说明
[0016]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0017]图1为根据本专利技术一个实施例的基于ICFS分布式块存储系统的顺序读预读的方法的示意性流程图;图2为根据本专利技术一个实施例的基于ICFS分布式块存储系统的顺序读预读的装置的示意图;图3为根据本专利技术一个实施例的计算机设备的示意图;图4为根据本专利技术一个实施例的计算机可读存储介质的示意图。
具体实施方式
[0018]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。
[0019]基于上述目的,本专利技术的实施例的第一个方面,提出了一种基于ICFS分布式块存储系统的顺序读预读的方法的一个实施例。图1示出的是该方法的示意性流程图。
[0020]如图1中所示,该方法可以包括以下步骤:S1响应于OSD接收到客户端下发的读请求,判断客户端下发的读请求是否为顺序读请求。
[0021]首先需要根据客户端下发的读请求本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ICFS分布式块存储系统的顺序读预读的方法,其特征在于,包括以下步骤:响应于OSD接收到客户端下发的读请求,判断客户端下发的读请求是否为顺序读请求;响应于客户端下发的读请求为顺序读请求,根据读请求中待读取的数据对象创建预读滑动窗口;响应于预读滑动窗口创建完成,根据读请求中待读取的数据对象计算新的需要预读的卷对象;将计算出的新的需要预读的卷对象加入到预读滑动窗口的待预读对象队列中并执行预读。2.根据权利要求1所述的方法,其特征在于,还包括:响应于执行预读,将预读数据保存在内存的缓存中。3.根据权利要求1所述的方法,其特征在于,响应于预读滑动窗口创建完成,根据读请求中待读取的数据对象计算新的需要预读的卷对象包括:根据读请求中待读取的数据对象确定预读数据对象的范围;构造预读数据对象的范围内所有对象的对象名;响应于构造的对象名通过 Crush 算法计算得到的PG在OSD的PG分布图内,确定对象名对应的数据对象为需要预读的卷对象。4.根据权利要求1所述的方法,其特征在于,将计算出的新的需要预读的卷对象加入到预读滑动窗口的待预读对象队列中并执行预读包括:创建一个单独的线程以执行预读;在预读滑动窗口的待预读对象队列中获取需要预读的数据对象,执行预读并循环处理所有需预读的对象。5.一种基于ICFS分布式块存储系统的顺序读预读的装置,其特征在于,所述装置包括:判断模块,所述判断模块配置为响应于OSD接收到客户端下发的读请求,判断客户端下发的读请求是否为顺序读请求;创建模块,所述创建模块配置为响...

【专利技术属性】
技术研发人员:张英杰孟祥瑞
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1