本发明涉及边缘存储技术领域,具体涉及一种基于ceph纠删码的异构混合负载均衡存储方法。
背景技术:
为了弥补云计算的不足,解决技术发展带来的新需求,边缘计算的概念应运而生。边缘计算的概念受启发于云计算,它是指在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台,就近提供边缘智能服务。边缘计算多用于工业控制、无人驾驶、智慧家居等应用场景下,具有实时性高,移动性强,资源开销较小等特点。边缘计算提供的服务主要分为计算和存储两类,由边缘存储为边缘计算的发展提供可靠的支撑。
目前针对边缘存储的研究应用大部分集中在边缘存储架构,任务节点选择策略,高效的存储方式上,仍存在以下问题:
1)使用中心化分布式存储构建边缘存储架构作为底层存储支撑,但是如何保证系统的高可用性和提升系统整体吞吐能力是该方案被质疑的地方;以中心化分布式存储的代表技术hdfs为例,集群除需要维护工作节点之外,还需要维护元数据节点,并且每次读写任务都需要先向元数据节点请求获取响应数据之后,才能继续读写任务,这无疑影响了系统的工作效率;
2)目前大部分针对边缘存储的研究依然选择多副本策略作为保证数据可用性的方式,该方式可以提供更快的数据恢复效率,于此同时也造成了存储效率低,不能有效利用节点计算资源的弊端;
3)ceph集群在使用纠删码作为数据存储方式时,通过主节点协调数据的编解码和数据的分发工作,没有考虑到主节点的任务负载、i/o负载和网络负载情况,这极大地制约了系统的吞吐能力。
技术实现要素:
为了解决上述几种边缘存储研究应用领域的缺陷,本发明提出一种基于ceph纠删码的异构混合负载均衡存储方法,包括以下步骤:
s1、异构osd集群节点定时上报包括磁盘i/o能力,纠删码平均计算时间在内的各类资源信息,构建osd权重因子决策矩阵,并进行归一化处理得到规范化决策矩阵;
s2、使用topsis法计算每个osd到正负理想解的距离,并计算得到一组相对贴近度集合;
s3、根据osd节点贴进度选择可用osd节点集合,并采用哈希算法选择出主osd节点作为目标节点,主osd节点进行存储操作
进一步的,所述资源信息至少包括cpu负载、i/o负载、剩余带宽、磁盘i/o能力、内存利用率、纠删码平均计算时间。
进一步的,构建osd权重因子决策矩阵,并进行归一化处理包括:
s11、构造osd权重因子决策矩阵,该决策矩阵表示为:
s12、使用min-max归一化方法,利用权重因子决策矩阵m进行归一化处理,得到规范化决策矩阵m′,规范化决策矩阵m′中第i行、j列的元素表示为:
其中,mij为权重因子决策矩阵m中第i行、j列的元素;tcn表示第n个osd节点的纠删码平均计算时间;enetn表示第n个osd节点的剩余网络带宽;ecn表示第n个osd节点的当前cpu负载;eion表示第n个osd节点的i/o负载信息;cion表示第n个osd节点的磁盘i/o能力;ern表示第n个osd节点的内存利用率。
进一步的,加权决策矩阵的正理想解s 表示为:
加权决策矩阵的负理想解s-表示为:
其中,
进一步的,一组相对贴近度集合的计算过程包括以下步骤:
s21、根据资源信息对osd节点性能的影响比重的不同得到合适的加权系数矩阵,构造规范化加权决策矩阵;
s22、求解加权决策矩阵的正负理想解s 、s--,并计算各osd节点到正负理想解之间的距离d 和d-;
s23、根据各osd节点到正负理想解之间的距离计算各个osd到正负理想解的相对贴进度,得到一组相对贴进度集合。
进一步的,各osd节点到正理想解之间的距离d 表示为:
各osd节点到负理想解之间的距离d-表示为:
其中,m′ij为规范化决策矩阵中的第i行、j列的元素;s 为加权决策矩阵的正理想解;s-为加权决策矩阵的负理想解。
进一步的,osd节点到正负理想解的相对贴近度
其中,
进一步的,步骤s3具体包括:
将得到的相对贴近度集合进行降序排序,得到一组有序的osd相对贴近度集合;
从有序的osd相对贴近度集合集合中选择k个相对贴近度集合最大的作为主osd节点的候选;
从主osd节点的候选中通过哈希计算选择出主osd节点作为目标节点以达到负载均衡的目的。
本发明在ceph集群使用纠删码方式提升存储效率的同时,考虑了底层设备的异构性和系统的负载均衡,提升了ceph集群的吞吐能力。
附图说明
图1为本发明一种基于ceph纠删码的异构混合负载均衡存储方法流程图;
图2为本发明一次成功ceph纠删码写任务的实施例。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种基于ceph纠删码的异构混合负载均衡存储方法,具体包括以下步骤:
s1、异构osd集群节点定时上报包括磁盘i/o能力,纠删码平均计算时间在内的各类资源信息,构建osd权重因子决策矩阵,并进行归一化处理得到规范化决策矩阵;
s2、使用topsis法计算每个osd到正负理想解的距离,并计算得到一组相对贴近度集合;
s3、根据osd节点贴进度选择可用osd节点集合,并采用哈希算法选择出主osd节点作为目标节点,主osd节点进行存储操作。
ceph的存储过程是先将数据写入主osd节点,然后由主osd节点负责后续的编解码工作和数据分发工作。在写入时,主osd节点将编码过后的数据发给目标的从osd节点进行存储;在读取时也是由主osd读取从osd节点上存储的数据,进行解码工作并返回给客户端。
本发明的优选实施例在ceph集群之外,通过采集osd节点所在的主机信息,构建决策矩阵,求解各个osd到正负理想解的相对贴近度,最终得到一组可用osd集合并通过hash算法选择主osd节点作为目标节点。
构建osd权重因子决策矩阵时,具体包括以下步骤:
1)收集osd节点定时上报的cpu负载、i/o负载、剩余带宽、磁盘i/o能力、内存利用率、纠删码平均计算时间等信息;
2)从缓存中读取该osd节点最近有效的上报数据进行计算,若性能指标的数据变化率超出阈值或该性能指标的数值大于阈值,则进行数据更新;
3)将各osd上报的数据进行归一化处理,得到可用于后续计算的有效数据。
构建osd权重因子决策矩阵并使用topsis法求解各个osd到正负理想解的距离的过程如下:
1)根据步骤1构建的数据采集模型,构造osd权重因子决策矩阵m,并使用min-max法进行归一化处理。权重因子决策矩阵m,归一化处理表达式mi′j表示如下:
其中,m表示该权重因子决策矩阵,tc表示纠删码平均计算时间,enet表示剩余网络带宽,ec表示当前cpu负载,eio表示i/o负载信息,cio表示磁盘i/o能力,er表示内存利用率,下标1~n分别表示1~n个osd节点。
2)根据各指标对osd节点性能的影响比重的不同得到合适的加权系数矩阵mweight,构造规范化加权决策矩阵nweightmatrix。加权系数矩阵mweight,规范化加权决策矩阵nweightmatrix表示如下:
mweight[wtcwenetwecweiowcioer];
其中,wtc表示纠删码平均计算时间的加权系数,wenet表示剩余带宽的加权系数,wec表示cpu负载的加权系数,weio表示i/o负载的加权系数,wcio表示磁盘i/o能力的加权系数,er表示内存利用率的加权系数。
nweightmatrix=mweight×m′;
其中,mweight为加权系数矩阵,m′为规范化决策矩阵。
3)求解加权决策矩阵的正负理想解s ,s-,并计算各osd节点到正负理想解之间的距离d ,d-。正负理想解s ,s-,各osd节点到正负理想解之间的距离d 和d-表示如下:
其中,
本发明在构建加权决策矩阵时,首先根据相关参考文献中不同性能指标对纠删码类型读写任务性能的影响设置加权矩阵的初始值,该值表示为:
[0.05,0.1,0.4,0.2,0.2,0.05];
通过读写实验观察ceph对象存储系统的读写吞吐量、读写实验、读写请求的成功率、读写带宽四个性能指标的变化,在初始值的基础上变化,在上述性能指标综合达到最优时确定加权矩阵的值。
由此可得该规范化加权决策矩阵的正负理想解,表示为:
其中,
根据各个osd到正负理想解之间的距离
其中,
计算各个osd到正负理想解的相对贴进度,得到一组相对贴进度集合。该相对贴近度集合的表达式如下:
其中,clist表示该相对贴近度集合,
对可用osd集合进行hash计算得到主osd节点的过程如下:
1)将得到的相对贴近度集合进行降序排序,得到一组可用的osd候选节点集合,选择可用osd候选节点集合的过程如下:
上式公式表示从m个节点中选出n个相对贴合度较大的节点,n<m。
2)将得到的可用候选osd节点集合作为hash算法的输入,输出结果为主节点作为目标节点。主节点的选取过程如下:
primary_osd=hash(task(osd1,osd2,…,osdm));
其中primary_osd为本次读写任务的主osd节点,hash(task(osd1,osd2,…,osdm))体现了将任务处理集合作为输入进行hash计算选取主osd的过程,即通过hash值选择m个osd的过程。
作为可实现的通过hash值选择m个osd的方式,包括但不限于将任务处理节点集合与读写对象的oid进行取模运算。本实施例将任务处理节点集合与读写对象的oid进行取模运算具体的计算过程如下:
primary_osd=task.get((task.size-1)%oid);
其中,task.get表示从可用osd候选节点集合中选取目标osd节点的动作;task.size为可用osd候选节点集合的大小;oid为读写对象的oid;在通过hash值选择m个osd时,选择取模运算的值最大的m个osd。
图2给出了一种具体的实施方式,从图中可以本发明过程主要包括3个步骤,具体为:
1.获取集群信息
异构osd集群节点定时上报包括磁盘i/o能力、纠删码平均计算时间在内的各类资源信息并进行归一化处理。根据这些资源信息构建osd权重因子决策矩阵。若计算相对贴近度的单元连续三次通信未能收到某osd节点上报的资源信息,则主动向该osd节点发送查询节点信息的请求,osd节点回复并上报节点信息,之后对osd节点上报的信息进行归一化处理并构建osd权重因子决策矩阵。
2.获取osd节点贴近度信息
通过上一步构建的osd权重因子决策矩阵和通过实验最终确定的加权系数矩阵,得到规范化加权决策矩阵。确定规范化加权决策矩阵的正负理想解,并计算各个osd节点到正负理想解之间的距离,之后计算各个osd节点到正负理想解的相对贴近度。并将该相对贴近度发送给mon节点进行维护。
3.计算得到候选osd节点集合
ceph客户端在向ceph集群中写入数据时,首先需要从mon节点中获取集群的映射关系,结合crush算法计算得到一组osd任务处理节点集合。同时,客户端请求计算相对贴近度的单元,获取各个osd节点的贴近度信息,将osd任务处理节点集合按照相对贴近度逆序排序,得到可用osd候选节点集合;并将该集合作为hash算法的输入,与写入对象的oid进行取模运算,最终得到主osd节点作为目标任务节点。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
1.一种基于ceph纠删码的异构混合负载均衡存储方法,其特征在于,包括以下步骤:
s1、异构osd集群节点定时上报包括磁盘i/o能力,纠删码平均计算时间在内的各类资源信息,构建osd权重因子决策矩阵,并进行归一化处理得到规范化决策矩阵;
s2、使用topsis法计算每个osd到正负理想解的距离,并计算得到一组相对贴近度集合;
s3、根据osd节点贴进度选择可用osd节点集合,并采用哈希算法选择出主osd节点作为目标节点,主osd节点进行存储操作。
2.根据权利要求1所述的一种基于ceph纠删码的异构混合负载均衡存储方法,其特征在于,所述资源信息至少包括cpu负载、i/o负载、剩余带宽、磁盘i/o能力、内存利用率、纠删码平均计算时间。
3.根据权利要求1所述的一种基于ceph纠删码的异构混合负载均衡存储方法,其特征在于,构建osd权重因子决策矩阵,并进行归一化处理包括:
s11、构造osd权重因子决策矩阵,该决策矩阵表示为:
s12、使用min-max归一化方法,利用权重因子决策矩阵m进行归一化处理,得到规范化决策矩阵m′,规范化决策矩阵m′中第i行、j列的元素表示为:
其中,mij为权重因子决策矩阵m中第i行、j列的元素;tcn表示第n个osd节点的纠删码平均计算时间;enetn表示第n个osd节点的剩余网络带宽;ecn表示第n个osd节点的当前cpu负载;eion表示第n个osd节点的i/o负载信息;cion表示第n个osd节点的磁盘i/o能力;ern表示第n个osd节点的内存利用率。
4.根据权利要求3所述的一种基于ceph纠删码的异构混合负载均衡存储方法,其特征在于,加权决策矩阵的正理想解s 表示为:
加权决策矩阵的负理想解s-表示为:
其中,
5.根据权利要求1所述的一种基于ceph纠删码的异构混合负载均衡存储方法,其特征在于,一组相对贴近度集合的计算过程包括以下步骤:
s21、根据资源信息对osd节点性能的影响比重的不同得到合适的加权系数矩阵,构造规范化加权决策矩阵;
s22、求解加权决策矩阵的正负理想解s 、s--,并计算各osd节点到正负理想解之间的距离d 和d-;
s23、根据各osd节点到正负理想解之间的距离计算各个osd到正负理想解的相对贴进度,得到一组相对贴进度集合。
6.根据权利要求5所述的一种基于ceph纠删码的异构混合负载均衡存储方法,其特征在于,各osd节点到正理想解之间的距离d 表示为:
各osd节点到负理想解之间的距离d-表示为:
其中,m′ij为规范化决策矩阵中的第i行、j列的元素;s 为加权决策矩阵的正理想解;s-为加权决策矩阵的负理想解。
7.根据权利要求3所述的一种基于ceph纠删码的异构混合负载均衡存储方法,其特征在于,osd节点到正负理想解的相对贴近度
其中,
8.根据权利要求1所述的一种基于ceph纠删码的异构混合负载均衡存储方法,其特征在于,步骤s3具体包括:
将得到的相对贴近度集合进行降序排序,得到一组有序的osd相对贴近度集合;
从有序的osd相对贴近度集合集合中选择k个相对贴近度集合最大的作为主osd节点的候选;
从主osd节点的候选中通过哈希计算选择出主osd节点作为目标节点以达到负载均衡的目的。
技术总结