System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种分布式存储的空间分配方法组成比例_技高网

一种分布式存储的空间分配方法组成比例

技术编号:44344664 阅读:3 留言:0更新日期:2025-02-25 09:32
本发明专利技术属于存储空间分配技术领域,具体涉及一种分布式存储的空间分配方法,创建缓存硬盘池和数据硬盘池;为缓存硬盘池和数据硬盘池配置不同的最小分配单元;根据数据长度和数据硬盘池的冗余策略,选择写入的硬盘池;缓存硬盘池的数据进行合并,合并后写入数据硬盘池。上述存储空间分配过程无需依赖,用户写入的数据长度。数据硬盘池采用较大的分配单元,减少了空间碎片和元数据,同时,结合基于空间浪费率的合并终止条件进行数据合并,数据合并条件和合并数据的终止条件均是空间浪费率,合并后的数据长度均小于且接近分配单元的整数倍,有效减少空间浪费。

【技术实现步骤摘要】

本专利技术属于存储空间分配,尤其涉及一种分布式存储的空间分配方法


技术介绍

1、分布式存储是一种计算机数据存储架构,它将数据存储在多台服务器上,以实现数据的高可靠性、可扩展性和性能。同时,分布式存储将分散的存储资源构成虚拟的存储设备。在分布式存储中,每台服务器都可以称为一个存储节点,它们通过网络连接相互通信和协作,以实现数据的分布式存储和管理。

2、存储系统为写入数据分配存储空间有最小分配单元min_alloc_size。用户写入数据,存储系统分配的大小为n*min_alloc_size,n为正整数。当写入数据长度的范围变化较小时,配置合适的min_alloc_size,不会出现大量空间浪费、空间碎片和元数据过多的问题。

3、但是,随着存储技术的发展,存储系统的数据越来越复杂,写入的数据长度范围变化非常大。若min_alloc_size配置过大,写入数据较小时,分配的存储空间远大于写入的数据,从而导致空间浪费。若min_alloc_size配置过小,写入数据较大时,分配的存储空间需要多个最小分配单元,数据可能被存储在多个不连续的存储空间,读取该数据的性能变差,同时,用于描述该数据存储位置信息的元数据也会增加。写入数据长度小于最小分配单元或者不是最小分配单元的整数倍,导致存储空间浪费。写入的数据长度远大于最小分配单元,数据被存储在多个不连续的存储空间,读取该数据的性能变差,同时,用于描述该数据存储位置信息的元数据也会增加。

4、因此,如何对现有的分布式存储空间分配过程进行改进,以避免写入数据长度小于最小分配单元或者不是最小分配单元的整数倍,导致存储空间浪费或者写入的数据长度远大于最小分配单元,数据被存储在多个不连续的存储空间,读取该数据的性能变差的情况发生,是目前亟需解决的技术问题。


技术实现思路

1、本专利技术的目的在于提供一种分布式存储的空间分配方法,用以对现有的分布式存储空间分配过程进行改进,以避免写入数据长度小于最小分配单元或者不是最小分配单元的整数倍,导致存储空间浪费或者写入的数据长度远大于最小分配单元,数据被存储在多个不连续的存储空间,读取该数据的性能变差的情况发生。

2、为解决上述技术问题,本专利技术采用的技术方案如下:

3、一种分布式存储的空间分配方法,包括以下步骤:

4、s1:创建缓存硬盘池和数据硬盘池;

5、s2:为缓存硬盘池和数据硬盘池配置不同的最小分配单元;

6、s3:根据数据长度和数据硬盘池的冗余策略,选择写入的硬盘池;

7、s4:缓存硬盘池的数据进行合并,合并后写入数据硬盘池。

8、优选的,步骤s1中创建缓存硬盘池和数据硬盘池的具体过程如下:

9、s11:创建缓存硬盘池并设置缓存硬盘池冗余策略,所述缓存硬盘池为固态硬盘ssd,用于临时存储数据长度较小的数据;

10、s12:创建数据硬盘池并设置数据硬盘池冗余策略,所述数据硬盘池为机械硬盘hhd,用于存储数据长度较大或者多个数据合并后的数据。

11、优选的,所述缓存硬盘池在进行数据存储时,所述缓存硬盘池的数据存储冗余策略为:

12、在存储时设置n副本,n副本指的是将待存储的数据复制n份,存储到不同的存储节点,每个存储节点的ssd数量d1根据业务性能确定;

13、当业务要求k的每秒进行读写操作的次数iops,存储节点数量为n,每个ssd能提供m的每秒进行读写操作的次数iops,则每个存储节点选择d1个ssd,d1=(k*n)/m,若d1不为整数,则向上取整。

14、优选的,所述数据硬盘池在进行数据存储时,预设有冗余策略,所述数据硬盘池的数据存储冗余策略为:n副本或者纠删码;

15、纠删码是将数据分为k个数据块,并进行编码,生成m个校验块,有任意k个数据块或者校验块以重建完整数据;每个存储节点的hdd数量d2根据存储数据量确定;

16、当预计存储的数据量预计为total,存储节点的数量为n,每个硬盘的容量s,冗余策略的数据利用率为util,则每个存储节点选择d2个硬盘,d2=total/(s*n*util));若d2不为整数,则向上取整。

17、优选的,步骤s2中为缓存硬盘池配置不同的最小分配单元的过程为:基于缓存硬盘池存储的临时数据的数据长度较小,为缓存硬盘池配置较小的最小分配单元,所述为缓存硬盘池配置较小的最小分配单元为allocate_1,allocate_1的大小为4kb或8kb或16kb或32kb;

18、数据硬盘池最小分配单元配置为allocate_2,allocate_2的大小为64kb或128kb或256kb或512kb。

19、优选的,步骤s3中根据数据长度和数据硬盘池的冗余策略选择写入的硬盘池的具体过程如下:

20、s31:当写入数据长度为l时,计算数据写入数据硬盘池的空间浪费率w;

21、s32:将计算的空间浪费率w与预设的空间浪费率阈值wt进行对比;

22、s33:当w≤wt,数据写入数据硬盘池;当w>wt,数据写入缓存硬盘池。

23、优选的,在步骤s31中,当若冗余策略为n副本时,计算数据写入数据硬盘池的空间浪费率w的具体过程如下:

24、s311:计算实际占用空间r1,具体计算公式如下:

25、r1=[(l+allocate_2-1)/allocate_2]*allocate_2*n;

26、s312:计算实际空间利用率util_r1,具体计算公式如下:

27、util_r1=(r1-l)/r1*100%;

28、s313:计算理论空间利用率util_m1,具体计算公式如下:

29、util_m1=1/n*100%;

30、s314:计算空间浪费率w,具体计算公式如下:

31、w=(util_m1-util_r1)/util_m1*100%;

32、其中,[x]表示取整操作,即取x的整数部分。

33、优选的,在步骤s31中,当冗余策略为ec k+m时,计算数据写入数据硬盘池的空间浪费率w的具体过程如下:

34、计算实际占用空间r2,

35、r2=[(l+k*allocate_2-1)/(k*allocate_2)]*(k+m)*allocate_2;

36、计算实际空间利用率util_r2,具体计算公式如下:

37、util_r2=(r2-l)/r2*100%;

38、计算理论空间利用率util_m2,具体计算公式为:

39、util_m2=k/(k+m)*100%

40、计算空间浪费率w,具体计算公式为:

41、w=(util_m2-util_r2)/util_m2*100%。

42、优选的,步骤本文档来自技高网...

【技术保护点】

1.一种分布式存储的空间分配方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种分布式存储的空间分配方法,其特征在于,步骤S1中创建缓存硬盘池和数据硬盘池的具体过程如下:

3.根据权利要求2所述的一种分布式存储的空间分配方法,其特征在于,所述缓存硬盘池在进行数据存储时,所述缓存硬盘池的数据存储冗余策略为:

4.根据权利要求2所述的一种分布式存储的空间分配方法,其特征在于,所述数据硬盘池在进行数据存储时,预设有冗余策略,所述数据硬盘池的数据存储冗余策略为:n副本或者纠删码;

5.根据权利要求1所述的一种分布式存储的空间分配方法,其特征在于,步骤S2中为缓存硬盘池配置不同的最小分配单元的过程为:基于缓存硬盘池存储的临时数据的数据长度较小,为缓存硬盘池配置较小的最小分配单元,所述为缓存硬盘池配置较小的最小分配单元为allocate_1,allocate_1的大小为4KB或8KB或16KB或32KB;

6.根据权利要求5所述的一种分布式存储的空间分配方法,其特征在于,步骤S3中根据数据长度和数据硬盘池的冗余策略选择写入的硬盘池的具体过程如下:

7.根据权利要求6所述的一种分布式存储的空间分配方法,其特征在于,在步骤S31中,当若冗余策略为n副本时,计算数据写入数据硬盘池的空间浪费率W的具体过程如下:

8.根据权利要求6所述的一种分布式存储的空间分配方法,其特征在于,在步骤S31中,当冗余策略为EC K+M时,计算数据写入数据硬盘池的空间浪费率W的具体过程如下:

9.根据权利要求6所述的一种分布式存储的空间分配方法,其特征在于,步骤S4中缓存硬盘池的数据进行合并,合并后写入数据硬盘池的具体过程如下:

...

【技术特征摘要】

1.一种分布式存储的空间分配方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种分布式存储的空间分配方法,其特征在于,步骤s1中创建缓存硬盘池和数据硬盘池的具体过程如下:

3.根据权利要求2所述的一种分布式存储的空间分配方法,其特征在于,所述缓存硬盘池在进行数据存储时,所述缓存硬盘池的数据存储冗余策略为:

4.根据权利要求2所述的一种分布式存储的空间分配方法,其特征在于,所述数据硬盘池在进行数据存储时,预设有冗余策略,所述数据硬盘池的数据存储冗余策略为:n副本或者纠删码;

5.根据权利要求1所述的一种分布式存储的空间分配方法,其特征在于,步骤s2中为缓存硬盘池配置不同的最小分配单元的过程为:基于缓存硬盘池存储的临时数据的数据长度较小,为缓存硬盘池配置较小的最小分配单元,所述为缓存硬盘池配置较小...

【专利技术属性】
技术研发人员:董博田庸符青云
申请(专利权)人:四川省华存智谷科技有限责任公司
类型:发明
国别省市:

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

1