一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据分布存储方法、装置、设备及介质与流程

2022-03-05 09:33:46 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种数据分布存储方法、装置、设备及介质。


背景技术:

2.在分布式存储系统中,数据一致性、可靠性和负载均衡是最重要的特性。其中,数据分布问题直接影响集群的负载均衡,优秀的数据分布算法对一个分布式存储系统尤为重要。在分布式存储系统中,数据存储包括两个映射:对象到pg(placement group,归置组)的映射,pg到osd(object-based storage device,基于对象的存储设备)的映射。其中,对象到pg的映射是通过文件切片,将文件按照部署结构切分成固定大小的对象实现;pg到osd的映射是通过crush(controlled replication under scalable hashing)算法实现,根据集群部署结构,使用hash(哈希)算法产生伪随机数对节点进行加权运算,采用层级结构迭代的方法将每个pg映射到一组最适合的osd节点中。
3.然而,在实际应用中,如果存储的单个数据对象太小,影响节点权重的变化较小,容易造成一组相关性高的pg存入相同的存储节点中,此时进行数据访问时就会造成某些节点使用率过高的情况,进而影响集群性能;另一方面,如果对集群的存储规模进行改动,如扩容、缩容、节点或网络故障,此时集群节点的权重值差异也会导致小文件数据对象pg落入相同的存储节点,造成存储数据分布不均衡,进而影响集群的性能。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种数据分布存储方法、装置、设备及介质,能够提高磁盘利用率和负载均衡性能。其具体方案如下:
5.第一方面,本技术公开了一种数据分布存储方法,包括:
6.确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差;
7.利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点;
8.将一个归置组模拟存储至当前所述目标对象存储节点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差;
9.基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值;
10.当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,并重新跳转至所述利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群的步骤,直到所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布
式存储集群进行数据均衡处理。
11.可选的,所述利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,包括:
12.利用当前权重调整规则,从当前所述分布式存储集群中确定出待调整对象存储节点,并对所述待调整对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群。
13.可选的,所述从当前所述分布式存储集群中确定出待调整对象存储节点,包括:
14.基于crush算法从当前所述分布式存储集群中确定当前的第一对象存储节点;
15.基于预设节点筛选规则从所有未曾被确定为所述第一对象存储节点的对象存储节点中筛选出第二对象存储节点;
16.将当前的所述第一对象存储节点和/或所述第二对象存储节点确定为待调整对象存储节点。
17.可选的,所述基于预设节点筛选规则从所有未曾被确定为所述第一对象存储节点的对象存储节点中筛选出第二对象存储节点,包括:
18.从所有未曾被确定为所述第一对象存储节点的对象存储节点中,筛选出与当前的所述第一对象存储节点之间的相对位置信息满足预设条件的对象存储节点作为第二对象存储节点。
19.可选的,所述对所述待调整对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,包括:
20.确定所述第二标准差与所述第一标准差之间的差值的绝对值;
21.确定与所述绝对值对应的权重调整范围,并根据所述权重调整范围对所述待调整对象存储节点进行相应的权重调整以得到当前更新后的所述分布式存储集群。
22.可选的,所述基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值,包括:
23.基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的q学习函数数值。
24.可选的,所述基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值,包括:
25.确定所述第二标准差与所述第一标准差之间的差值;
26.基于所述差值构造强化学习函数中的回报值,并将所述回报值输入至所述强化学习函数,以得到所述强化学习函数输出的用于评价所述当前权重调整规则的强化学习函数数值。
27.第二方面,本技术公开了一种数据分布存储装置,包括:
28.第一标准差确定模块,用于确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差;
29.节点确定模块,用于利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点;
30.第二标准差确定模块,用于将一个归置组模拟存储至当前所述目标对象存储节
点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差;
31.数值确定模块,用于基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值;
32.权重调整模块,用于当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,并重新跳转至所述利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群的步骤,直到所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。
33.第三方面,本技术公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的数据分布存储方法。
34.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的数据分布存储方法。
35.本技术中,先确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差;利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点;将一个归置组模拟存储至当前所述目标对象存储节点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差;基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值;当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,并重新跳转至所述利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群的步骤,直到所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。可见,通过引入强化学习算法,利用当前分布式存储集群中各对象存储节点的归置组数量的第一标准差和模拟存储后的集群中各对象存储节点的归置组数量的第二标准差对权重调整规则进行优化,避免了归置组按照常规计算方法存储至相同的对象存储节点,使得归置组在各对象存储节点上均匀分布,并利用当前各对象存储节点的权重值对所述分布式存储集群进行数据均衡处理,提高了分布式集群的负载均衡性能,同时对象存储节点的磁盘利用率也得以提升。
附图说明
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
37.图1为本技术公开的一种数据分布存储方法流程图;
38.图2为本技术公开的一种具体的数据分布存储方法流程图;
39.图3为本技术公开的一种具体的数据分布存储方法流程图;
40.图4为本技术公开的一种数据分布存储装置结构示意图;
41.图5为本技术公开的一种电子设备结构图。
具体实施方式
42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.当前,在分布式存储系统中,数据一致性、可靠性和负载均衡是最重要的特性。然而,在实际应用中,存在存储数据分布不均衡,进而影响集群的性能的问题。
44.为此,本技术提供了一种数据分布存储方案,能够提高磁盘利用率和负载均衡性能。
45.本技术实施例公开了一种数据分布存储方法,参见图1所示,该方法包括:
46.步骤s11:确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差。
47.本技术实施例可以普遍地应用于ceph(分布式文件系统)中,当客户端访问ceph分布式存储时,会收到命令行设置的数据对象大小、集群规模和部署模式等具体策略模型设置的相关参数,该策略模型直接对接ceph底层接口,在收到相关参数后,对参数进行保存。
48.需要指出的是,本技术实施例主要针对crush算法存在归置组映射到对象存储节点分布不均匀的问题做了优化。在crush算法中,将归置组存储到一个对象存储节点上的过程主要取决于对象存储节点的权重值,利用哈希算法生成的伪随机数乘以各对象存储节点对应的权重,筛选出乘积最大值对应的对象存储节点,那么归置组则会存储到该对象存储节点。
49.本技术实施例中,由于crush算法会导致归置组一直存储至权重最大的对象存储节点上,导致分布式存储集群负载不均衡,当检测到当前分布式存储集群中存在负载不均衡的情况时,则说明需要对当前的分布式存储集群中的各对象存储节点的归置组数量进行调整。所以可以将当前分布式存储集群中归置组在对象存储节点上分布不均衡的问题转化为求较小标准差的问题,此时,需要确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差。
50.在一种具体实施方式中,可以先定义变量集合,定义分布式存储集群中存在m个对象存储节点集合为osd_number=(osd0,...,osd
m-1
),n个pg集合为pg_number=(pg0,...,pg
n-1
),pg
n-1
表示第n个归置组pg,m个osd的权重集合为weight=(w0,...,w
m-1
),w
m-1
表示第m个osd的权重,当前每个分布式存储集群中各对象存储节点的归置组数量集合为crush_pg_number=(t0,...,t
m-1
),t
m-1
表示第m个对象存储节点的归置组数量。
51.本实施例中,在计算某个归置组pgi的osd映射位置时,设当前每个对象存储节点中的归置组数量为crush_pg_numberi=(t
0i
,...,t
m-1i
),相应的,归置组总数为当前每个存储对象节点上的归置组数量的平均值为所以当前分布式存储集群中各对象存储节点的归置组数量的第一标准差为:
[0052][0053]
步骤s12:利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点。
[0054]
需要指出的是,本技术是用来解决归置组数量在分布式存储集群中的各对象存储节点上分布不均衡的问题,也就是说,若当前分布式存储集群中各对象存储节点的归置组数量出现负载不均衡,则利用本技术对所述分布式存储集群进行数据均衡处理。
[0055]
可以理解的是,归置组存储位置的选择与各对象存储节点所对应的伪随机数和各对象存储节点的权重有关,该对象存储节点的权重是指该节点的可存储剩余容量,因此随着归置组不断被存储至对象存储节点中,其节点所对应的权重是不断变化的。此外,由于crush算法是将归置组存储至权重与伪随机数乘积最大的对象存储节点,因此在当前分布式存储集群中各对象存储节点的归置组数量出现负载不均衡时就需要调整当前所述分布式存储集群的对象存储节点的权重。本实施例利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,然后基于crush算法从当前所述分布式存储集群中确定目标对象存储节点。
[0056]
本技术实施例中,基于crush算法从进行权重调整后的当前所述分布式存储集群中确定目标对象存储节点的过程如下所述,首先确定好一个归置组,利用哈希算法为所述归置组生成伪随机数,然后确定所述更新后的所述分布式存储集群中的各对象存储节点对应的权重,计算所述伪随机数与所述各对象存储节点对应的权重的乘积,并从所述乘积中筛选出最大乘积,将所述最大乘积对应的对象存储节点确定为目标对象存储节点。
[0057]
步骤s13:将一个归置组模拟存储至当前所述目标对象存储节点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差。
[0058]
在本技术实施例中,如果想要实现当前分布式存储系统的负载均衡,需要模拟将一个归置组存储至当前所述目标对象存储节点中,通过确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差,可以知道模拟将一个归置组存储至当前所述目标对象存储节点后归置组在当前分布式存储集群的分布均衡情况。
[0059]
在一种具体实施方式中,可以定义模拟将一个归置组存储至当前目标对象存储节点后各个对象存储节点上的归置组数量为:
[0060]
q_crush_pg
i 1
_number=(l
0i 1
,...,l
m-1i 1
);
[0061]
可以理解的是,归置组总数为其中,模拟将一个归置组存储至当前目标对象存储节点后各个对象存储节点后的归置组数量的平均值为所以当前分布式存储集群中各对象存储节点的归置组数量的第二标准差为
[0062]
步骤s14:基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值。
[0063]
需要指出的是,强化学习函数数值是用来表征对当下选择某种行为动作得到的回
馈。具体到本实施例中,则用来表征利用权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整后所得回馈。
[0064]
此外,由于第一标准差是进行权重调整之前由当前分布式存储集群中各对象存储节点的归置组数量计算得到的;第二标准差是在将一个归置组模拟存储至目标对象存储节点后,由当前各对象存储节点归置组数量计算得到的,并且目标对象存储节点是在利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整后基于crush算法所确定的,因此可以基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值。
[0065]
步骤s15:当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,重复步骤s12。
[0066]
可以理解的是,标准差越小,所述分布式存储集群中的均衡性越好。然而在当前分布式存储集群负载不均衡的情况下,如果所述第一标准差小于所述第二标准差,说明在进行强化学习之后得到了负反馈,即模拟将一个归置组存储至当前所述的目标对象存储节点后,当前的分布式存储集群反而更加不均衡,此时则需要根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,重新跳转至步骤s12,直到所述第一标准差大于或等于所述第二标准差。
[0067]
步骤s16:当所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。
[0068]
本技术实施例中,当所述第一标准差大于或等于所述第二标准差,说明在进行强化学习之后得到了正反馈,即模拟将一个归置组存储至当前所述的目标对象存储节点后,当前的分布式存储集群可以实现负载均衡,此时可以输出当前各所述对象存储节点的权重值,并利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。
[0069]
可见,本技术中,先确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差;利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点;将一个归置组模拟存储至当前所述目标对象存储节点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差;基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值;当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,并重新跳转至所述利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群的步骤,直到所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。可见,通过引入强化学习算法,利用当前分布式存储集群中各对象存储节点的归置组数量的第一标准差和模拟存储后的集群中各对象存储节点的归置组数量的第二标准差对权重调整规则进行优化,避免了归置组按照常规计算方法存储至相同的对象存储节点,使得归置组在各对象存储节点上均匀分布,并利用当前各对象存储节点的权重值对所述分布式存储集群进行数据均衡处理,提高了分布式集群的负载均衡性能,
同时对象存储节点的磁盘利用率也得以提升。
[0070]
参见图2所示,本技术实施例公开了一种具体的数据分布存储方法,该方法包括:
[0071]
步骤s21:确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差。
[0072]
步骤s22:利用当前权重调整规则,从当前所述分布式存储集群中确定出待调整对象存储节点,并对所述待调整对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点。
[0073]
本技术实施例中,当分布式存储集群中出现负载不均衡的情况时,为了使得归置组在存储节点上均匀分布,需要对分布式存储集群中的对象存储节点进行权重调整,这样可以使归置组不再全部存储到当前权重最大的对象存储节点中,从而实现负载均衡。
[0074]
具体的,利用当前权重调整规则,从当前所述分布式存储集群中确定出待调整对象存储节点,并对所述待调整对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群。可以理解的是,当前权重调整规则是用来确定出当前分布式存储集群中的需要调整权重的对象存储节点的,基于crush算法从当前所述分布式存储集群中确定当前的第一对象存储节点。因为crush算法选择的是权重最大的对象存储节点并将归置组存储至该节点,所以为了使当前分布式存储集群实现负载均衡,归置组将不再存储至该节点,此时,在利用当前权重调整规则时,需要基于预设节点筛选规则从所有未曾被确定为所述第一对象存储节点的对象存储节点中筛选出第二对象存储节点,并将当前的所述第一对象存储节点和/或所述第二对象存储节点确定为待调整对象存储节点。
[0075]
本实施例中,在确定出所述待调整对象存储节点后,要对所述待调整对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,具体做法为:确定所述第二标准差与所述第一标准差之间的差值的绝对值;确定与所述绝对值对应的权重调整范围,并根据所述权重调整范围对所述待调整对象存储节点进行相应的权重调整以得到当前更新后的所述分布式存储集群。
[0076]
步骤s23:将一个归置组模拟存储至当前所述目标对象存储节点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差。
[0077]
步骤s24:基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的q学习函数数值。
[0078]
本技术实施例中,利用强化学习对算法进行优化,通过让一个智能体agent与环境交互来训练模型,当智能体agent的行为产生期望的结果时,它得到正反馈。具体的,可以利用q学习来对算法进行优化,在此不做具体限定。
[0079]
可以理解的是,q学习算法中的q值函数是状态和行为的评价值,表示从长期角度来看行为动作的好坏,定义为q(s
t
,a
t
)=r(s
t
,a
t
) gmax{q(s
t 1
,a
t 1
)}。其中,s
t
和a
t
是t时刻的状态和行为,g是衰减因子(0《g《1),用于调节智能体agent对未来累计回报的关注程度,当选定一组行为动作并执行后,系统进入下一个状态s
t 1
,同时,智能体agent也得到相应的回报函数r(s
t
,a
t
),然后对q值函数进行迭代更新:q
t 1
(s
t
,a
t
)=(1-g)q(s
t
,a
t
) g[r(s
t
,a
t
) gmax{q(s
t 1
,a
t 1
)}];根据q值函数来选取能够获得最大收益的行为动作。
[0080]
进一步的,在进行强化学习的过程中,需要设计回报函数,具体可以包括:确定所述第二标准差与所述第一标准差之间的差值;基于所述差值构造强化学习函数中的回报
值,并将所述回报值输入至所述强化学习函数,以得到所述强化学习函数输出的用于评价所述当前权重调整规则的强化学习函数数值,即回报函数设置为q_crush_s减去crush_s。也就是说,基于crush算法进行q学习和crush算法选择出的对象存储节点的归置组数量标准差的对比,该值直接反应了归置组在各对象存储节点上分布的均衡性。
[0081]
步骤s25:当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,重复步骤s22。
[0082]
步骤s26:当所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。
[0083]
其中,关于上述步骤s21、步骤s23、步骤s25和步骤s26更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0084]
可见,本技术中,先确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差;利用当前权重调整规则,从当前所述分布式存储集群中确定出待调整对象存储节点,并对所述待调整对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点;将一个归置组模拟存储至当前所述目标对象存储节点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差;基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的q学习函数数值;当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,并重新跳转至所述利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群的步骤,直到所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。如此一来,将q学习函数数值确定为强化学习函数数值,利用当前分布式存储集群中各对象存储节点的归置组数量的第一标准差和模拟存储后的集群中各对象存储节点的归置组数量的第二标准差对权重调整规则进行优化,避免了归置组按照常规计算方法存储至相同的对象存储节点,使得归置组在各对象存储节点上均匀分布,并利用当前各对象存储节点的权重值对所述分布式存储集群进行数据均衡处理,提高了分布式集群的负载均衡性能,同时对象存储节点的磁盘利用率也得以提升。
[0085]
如图3所示,公开了一种具体的数据分布存储方法流程图,对前述步骤进行说明。具体的,当客户端收到命令行输入的设置参数时,对参数进行保存。首先调用agent函数,选择一组动作a1,a2。在选择动作前先进行状态设计s,即计算第i个归置组存储的对象存储节点位置,定义各对象存储节点的权重为pgi_weight={w
0i
,...,w
m-1i
},该权重集合确定了归置组将存储到哪个对象存储节点上,设计状态空间s为pgi_weight。然后进行行为设计a,用于调整各个对象存储节点的权重值,a1={l,r},a2={l_up,l_down,r_up,r_down},l和r表示状态s移动的方向,分别为向左和向右移动,l_up,l_down,r_up,r_down表示状态s向左或右移动后,按照步长调整选中的对象存储节点的权重值。其次,触发环境更新,执行crush算法获得哈希伪随机数,伪随机数乘以权重选择目标对象存储节点,得出crush_s。然后计算q_crush_s,更新回报函数r(s,a),更新q值函数q(s,a)。最后判断q_crush_s是否小于等于
crush_s,为否则进入下一状态,继续学习,为是则返回对象存储节点。持续进行q学习训练,直至基于crush算法q学习算法收敛,保存最佳的权重值,并根据最佳权重值,得到对象存储节点上归置组的均衡分布。
[0086]
相应的,本技术实施例还公开了一种数据分布存储装置,参见图4所示,该装置包括:
[0087]
第一标准差确定模块11,用于确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差;
[0088]
节点确定模块12,用于利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点;
[0089]
第二标准差确定模块13,用于将一个归置组模拟存储至当前所述目标对象存储节点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差;
[0090]
数值确定模块14,用于基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值;
[0091]
权重调整模块15,用于当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,并重新跳转至所述利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群的步骤,直到所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。
[0092]
可见,本技术实施例中,先确定当前分布式存储集群中各对象存储节点的归置组数量的第一标准差;利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群,并基于crush算法从当前所述分布式存储集群中确定目标对象存储节点;将一个归置组模拟存储至当前所述目标对象存储节点,并确定经过所述模拟存储后的集群中各对象存储节点的归置组数量的第二标准差;基于所述第一标准差和所述第二标准差确定出用于评价所述当前权重调整规则的强化学习函数数值;当所述第一标准差小于所述第二标准差,则根据所述强化学习函数数值对所述当前权重调整规则进行优化以更新所述当前权重调整规则,并重新跳转至所述利用当前权重调整规则对当前所述分布式存储集群的对象存储节点进行权重调整以得到当前更新后的所述分布式存储集群的步骤,直到所述第一标准差大于或等于所述第二标准差,然后输出当前各所述对象存储节点的权重值,以利用当前各所述对象存储节点的权重值对所述分布式存储集群进行数据均衡处理。可见,通过引入强化学习算法,利用当前分布式存储集群中各对象存储节点的归置组数量的第一标准差和模拟存储后的集群中各对象存储节点的归置组数量的第二标准差对权重调整规则进行优化,避免了归置组按照常规计算方法存储至相同的对象存储节点,使得归置组在各对象存储节点上均匀分布,并利用当前各对象存储节点的权重值对所述分布式存储集群进行数据均衡处理,提高了分布式集群的负载均衡性能,同时对象存储节点的磁盘利用率也得以提升。
[0093]
进一步的,本技术实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中内容不能认为是对本技术的使用范围的任何限制。
[0094]
图5为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的数据分布存储方法中的相关步骤。
[0095]
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0096]
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,数据223可以包括各种各样的数据。存储方式可以是短暂存储或者永久存储。
[0097]
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据分布存储方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
[0098]
进一步的,本技术还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据分布存储方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0099]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0100]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0101]
以上对本发明所提供的一种数据分布存储方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献