一种用于分布式存储系统读写优化方法及装置与流程

文档序号:26139592发布日期:2021-08-03 14:23阅读:119来源:国知局
一种用于分布式存储系统读写优化方法及装置与流程

本发明属于分布式存储技术领域,具体涉及一种用于分布式存储系统读写优化方法及装置。



背景技术:

目前对分布式存储系统功能需求越来越强大,既要保证存储容量,又要保证存储稳定性及速率。现有分布式存储系统通过副本模式保证稳定性,而采取常规副本模式,使得分布式存储系统的集群内磁盘空间利用率低,如3副本场景下磁盘利用率只有33%;现有分布式存储系统通常采用ssd盘和hdd盘相结合的方式,利用ssd盘速率快,hdd盘存储容量大的性能,将ssd盘和hdd盘绑定,以ssd作为hdd的缓存盘,但若故障一块ssd盘,将会影响多块hdd盘;现有分布式存储系统采用纠删模式保证存储数据的准确性,但若所有磁盘均采用纠删则对cpu、内存要求高,同时影响读/写性能。

此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种用于分布式存储系统读写优化方法及装置,是非常有必要的。



技术实现要素:

针对现有技术的上述现有分布式存储系统的磁盘空间利用率低、存储性能得不到保证,且现有的纠删方式影响读写性能的缺陷,本发明提供一种用于分布式存储系统读写优化方法及装置,以解决上述技术问题。

第一方面,本发明提供一种用于分布式存储系统读写优化方法,包括如下步骤:

s1.搭建分布式存储系统集群,将ssd盘设置为副本模式的高速缓存池,以及将hdd盘设置为纠删模式的普通存储池;

s2.根据客户端读写请求的地址偏移和数据长度,将数据分块处理,并根据数据块与数据块阈值的关系,实现高速缓存池及普通存储池的分类存储与读取;

s3.根据客户端读写请求的模式,调整高速缓存池数据水位,进行数据下刷,以及提取普通存储池数据到高速缓存池,进行数据上拉。

进一步地,步骤s1具体步骤如下:

s11.搭建分布式存储系统集群;

s12.将ssd盘组成高速缓存池,并配置高速缓存池的冗余模式为副本;

s13.将hdd盘组成普通存储池,并配置普通存储池的冗余模式为纠删。

进一步地,步骤s2具体步骤如下:

s21.获取客户端读写请求的地址偏移和数据长度,设置数据块阈值,将数据分块处理;

当客户端请求为写请求时,进入步骤s22;

当客户端请求为读请求时,进入步骤s23;

s22.判断写请求数据块是否大于数据块阈值,将小于等于数据块阈值的写请求数据块存储到高速缓存池,以及将大于数据块阈值的写请求数据块根据地址偏移和数据长度进行拆分,拆分后数据块分类存储到高速缓存池和普通存储池,进入步骤s3;

s23.判断读请求数据块是否大于数据块阈值,从高速缓存池读取小于等于数据块阈值的读取请求数据块,以及对于大于数据块阈值的读请求数据块根据地址偏移和数据长度分别从高速缓存池和普通存储池读取,再将两个读取部分合并。

进一步地,步骤s22具体步骤如下:

s221.判断写请求数据块是否大于数据块阈值;

若否,进入步骤s222;

若是,进入步骤s223;

s222.将写请求数据块存储到高速缓存池,并将写请求数据块的地址偏移和长度写入高速缓存池,进入步骤s3;

s223.获取写请求数据块的地址偏移和数据长度与纠删模式下处理数据单位长度进行比对,将写请求数据块划分为对齐数据块和非对齐数据块;

s224.将对齐数据块写入普通存储池,而将非对齐数据块写入高速缓存池,并将写请求数据块的地址偏移和长度写入高速缓存池,进入步骤s3。

进一步地,步骤s23具体步骤如下:

s231.判断读请求数据块是否大于数据块阈值;

若否,进入步骤s232;

若是,进入步骤s233;

s232.根据地址偏移和长度从高速缓存池读取读请求数据块,进入步骤s3;

s233.从高速缓存池读取地址偏移和长度,并根据地址偏移和长度分别从高速缓存池和普通存储池读取数据,再将高速缓存池读取的数据与普通存储池读取的数据进行合并,进入步骤s3。

进一步地,步骤s233中,当高速缓存池读取的数据与普通存储池读取的数据存在重合数据块时,使用高速缓存池的数据库替换普通存储池的重合数据块。

进一步地,步骤s3具体步骤如下:

s31.获取客户端读写请求模式,依据请求命中算法判断分布式存储系统是否将处于大块数据读场景;

若是,进入步骤s32;

若否,进入步骤s33;

s32.将普通存储池数据提取到高速缓存池,提高读性能,返回步骤s2;

s33.提取高速缓存池中满足下刷条件的冷数据,将冷数据下刷到普通存储池。

进一步地,步骤s31具体步骤如下:

s311.获取客户端读写请求模式;

s312.判断客户端是否将发送大于数据量阈值的读请求;

若是,进入步骤s313;

若否,进入步骤s314;

s313.判断客户端将发送的读请求中数据块是否大于数据块阈值;

若是,判定客户端请求模式为大块读场景;

若否,进入步骤s314;

s314.判定客户端请求模式为非大块读场景。

进一步地,步骤s33具体步骤如下:

s331.判断高速缓存池水位是否超过水位阈值;

若是,进入步骤s333;

若否,进入步骤s332;

s332.判断高速缓存池中是否有超过设定时间段未访问数据;

若是,将超过设定时间段未访问数据设定为冷数据,进入步骤s334;

若否,返回步骤s2;

s333.获取保存时间在时间点阈值之前的数据,设定为冷数据;

s334。将冷数据下刷到普通存储池。

第二方面,本发明提供一种用于分布式存储系统读写优化装置,包括:

存储分层模块,用于搭建分布式存储系统集群,将ssd盘设置为副本模式的高速缓存池,以及将hdd盘设置为纠删模式的普通存储池;

数据分块读写模块,用于根据客户端读写请求的地址偏移和数据长度,将数据分块处理,并根据数据块与数据块阈值的关系,实现高速缓存池及普通存储池的分类存储与读取;

上拉和下刷模块,用于根据客户端读写请求的模式,调整高速缓存池数据水位,进行数据下刷,以及提取普通存储池数据到高速缓存池,进行数据上拉。

本发明的有益效果在于,

本发明提供的用于分布式存储系统读写优化方法及装置,提高客户端访问速度,提高磁盘利用率,降低成本,解除ssd盘和hdd盘没有绑定关系,不管是ssd或者hdd盘损坏,都只是影响其负责的数据,大大减小损坏影响范围。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明的方法流程示意图一;

图2是本发明的方法流程示意图二;

图3是本发明的系统示意图;

图中,1-存储分层模块;2-数据分块读写模块;3-上拉和下刷模块。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

实施例1:

如图1所示,本发明提供一种用于分布式存储系统读写优化方法,包括如下步骤:

s1.搭建分布式存储系统集群,将ssd盘设置为副本模式的高速缓存池,以及将hdd盘设置为纠删模式的普通存储池;

s2.根据客户端读写请求的地址偏移和数据长度,将数据分块处理,并根据数据块与数据块阈值的关系,实现高速缓存池及普通存储池的分类存储与读取;

s3.根据客户端读写请求的模式,调整高速缓存池数据水位,进行数据下刷,以及提取普通存储池数据到高速缓存池,进行数据上拉。

实施例2:

如图2所示,本发明提供一种用于分布式存储系统读写优化方法,包括如下步骤:

s1.搭建分布式存储系统集群,将ssd盘设置为副本模式的高速缓存池,以及将hdd盘设置为纠删模式的普通存储池;具体步骤如下:

s11.搭建分布式存储系统集群;

s12.将ssd盘组成高速缓存池,并配置高速缓存池的冗余模式为副本;

s13.将hdd盘组成普通存储池,并配置普通存储池的冗余模式为纠删;

s2.根据客户端读写请求的地址偏移和数据长度,将数据分块处理,并根据数据块与数据块阈值的关系,实现高速缓存池及普通存储池的分类存储与读取;具体步骤如下:

s21.获取客户端读写请求的地址偏移和数据长度,设置数据块阈值,将数据分块处理;

当客户端请求为写请求时,进入步骤s22;

当客户端请求为读请求时,进入步骤s23;

s22.判断写请求数据块是否大于数据块阈值,将小于等于数据块阈值的写请求数据块存储到高速缓存池,以及将大于数据块阈值的写请求数据块根据地址偏移和数据长度进行拆分,拆分后数据块分类存储到高速缓存池和普通存储池,进入步骤s3;

s23.判断读请求数据块是否大于数据块阈值,从高速缓存池读取小于等于数据块阈值的读取请求数据块,以及对于大于数据块阈值的读请求数据块根据地址偏移和数据长度分别从高速缓存池和普通存储池读取,再将两个读取部分合并;

s3.根据客户端读写请求的模式,调整高速缓存池数据水位,进行数据下刷,以及提取普通存储池数据到高速缓存池,进行数据上拉;具体步骤如下:

s31.获取客户端读写请求模式,依据请求命中算法判断分布式存储系统是否将处于大块数据读场景;

若是,进入步骤s32;

若否,进入步骤s33;

s32.将普通存储池数据提取到高速缓存池,提高读性能,返回步骤s2;

s33.提取高速缓存池中满足下刷条件的冷数据,将冷数据下刷到普通存储池。

在上述实施例中,步骤s22具体步骤如下:

s221.判断写请求数据块是否大于数据块阈值;

若否,进入步骤s222;

若是,进入步骤s223;

s222.将写请求数据块存储到高速缓存池,并将写请求数据块的地址偏移和长度写入高速缓存池,进入步骤s3;

s223.获取写请求数据块的地址偏移和数据长度与纠删模式下处理数据单位长度进行比对,将写请求数据块划分为对齐数据块和非对齐数据块;

s224.将对齐数据块写入普通存储池,而将非对齐数据块写入高速缓存池,并将写请求数据块的地址偏移和长度写入高速缓存池,进入步骤s3。

在上述实施例中,步骤s23具体步骤如下:

s231.判断读请求数据块是否大于数据块阈值;

若否,进入步骤s232;

若是,进入步骤s233;

s232.根据地址偏移和长度从高速缓存池读取读请求数据块,进入步骤s3;

s233.从高速缓存池读取地址偏移和长度,并根据地址偏移和长度分别从高速缓存池和普通存储池读取数据,再将高速缓存池读取的数据与普通存储池读取的数据进行合并,进入步骤s3;当高速缓存池读取的数据与普通存储池读取的数据存在重合数据块时,使用高速缓存池的数据库替换普通存储池的重合数据块。

在某些实施例中,步骤s31具体步骤如下:

s311.获取客户端读写请求模式;

s312.判断客户端是否将发送大于数据量阈值的读请求;

若是,进入步骤s313;

若否,进入步骤s314;

s313.判断客户端将发送的读请求中数据块是否大于数据块阈值;

若是,判定客户端请求模式为大块读场景;

若否,进入步骤s314;

s314.判定客户端请求模式为非大块读场景。

在某些实施例中,步骤s33具体步骤如下:

s331.判断高速缓存池水位是否超过水位阈值;

若是,进入步骤s333;

若否,进入步骤s332;

s332.判断高速缓存池中是否有超过设定时间段未访问数据;

若是,将超过设定时间段未访问数据设定为冷数据,进入步骤s334;

若否,返回步骤s2;

s333.获取保存时间在时间点阈值之前的数据,设定为冷数据;

s334。将冷数据下刷到普通存储池。

实施例3:

如图3所示,本发明提供一种用于分布式存储系统读写优化装置,包括:

存储分层模块1,用于搭建分布式存储系统集群,将ssd盘设置为副本模式的高速缓存池,以及将hdd盘设置为纠删模式的普通存储池;

数据分块读写模块2,用于根据客户端读写请求的地址偏移和数据长度,将数据分块处理,并根据数据块与数据块阈值的关系,实现高速缓存池及普通存储池的分类存储与读取;

上拉和下刷模块3,用于根据客户端读写请求的模式,调整高速缓存池数据水位,进行数据下刷,以及提取普通存储池数据到高速缓存池,进行数据上拉。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1