本发明涉及计算机云存储技术领域,特别涉及一种混合云中基于ngsa多目标的副本放置方法。
背景技术:
云存储有以下几个特点:成本低、易于管理、高可用性、高扩展、数据容灾能力强、降低中断升级的影响。如何优化现有的云使用策略(节约云使用成本)、用云计算缓解工作负载、扩展公有云是云存储研究的关键点。目前云计算模式主要有三类:私有云、公有云和混合云。私有云是针对持定的组织或企业内部提供云计算服务的一种云计算模式,能够根据资源节点数量、性能等不同的建设需求而定制,具有数据安全性好、服务质量高、单次计算成本较低的特点;公有云是在公共网络环境(internet)上,以第三方服务供应商的方式,为用户提供可租用服务及基础设施,具有节点数量大、可用资源多、按计算使用情况计费、对通信质量较为敏感等持点;混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。混云环境下的多副本管理技术主要是依托于现在新型的云存储技术,要在混合云环境下如何优化多副本管理技术就要综合云平台特性及客户需求,有不同的策略,在这种复杂情况下的数据副本管理不仅要依赖于传统多副本管理方法,还要针对混合云环境下不同应用优化服务策略,因为优秀的副本管理策略直接影响用户体验,必须考虑以下情形:运行系统负载、存储终端效率、网络状况、数据副本个数、放置位置、创建最佳时机、创建副本数量等。虽然混合云环境下副本的引入很好地解决了公有云对用户的响应时间问题,但在混合云中,网络的延迟可能导致从副本接收到的更新消息顺序与主副本发送的顺序不同,网络的拥塞或断开可能会使主副本发送的更新消息丢失,这都会导致从副本与主副本的不一致。保证混合云运行环境负载均衡,合理放置副本数目才能够保证资源部署成本,降低用户使用成本,提高系统性能,避免系统负载不均衡。
迄今为止,学者们提出了很多有关副本放置的算法。但是这些算法并能不较好地适用于混合云环境下大数据的副本放置。
技术实现要素:
本发明的目的是针对现有技术的不足,提出一种混合云中基于ngsa多目标的副本放置方法,通过充分利用系统资源,能提高任务执行效率的同时减少任务执行能耗。
为实现上述目的,本发明所设计的混合云中基于ngsa多目标的副本放置方法,其特殊之处在于,包括如下步骤:
1)初始化集群节点信息;
2)获得创建副本数k,建立数据块ngsa-ii副本放置优化模型,设定子目标优化函数个数,确定变量定义域范围,配置交叉算子、变异算子、选择算子、子目标优化函数,设置群体大小m,终止条件t,所述子目标优化函数包括文件可用率函数、节点性能函数、节点相对负载函数、网络距离函数和集群负载函数;
3)求解数据块ngsa-ii副本放置优化模型,在终止条件t内,种群内的每个个体按照设定概率进行选择、杂交、变异生成子代个体,将子代和父代合并生成新的种群pt;
4)对种群pt进行快速非支配排序及拥挤度计算;
5)引入ngsa精英保留策略,筛选保留满足拥挤度要求的个体放入种群pt。
6)通过快速非支配排序,获得第一、第二级非支配解集构成最佳解集z;
7)计算最佳解集z中每个个体的拥挤度,并选择最小值,即为子目标优化函数的最优解;
8)根据子目标优化函数最优解,放置数据块副本到子目标优化函数最优解对应的个体编码位的指定节点,并记录放置信息。
优选地,所述步骤2)中数据块ngsa-ii副本放置优化模型为
其中,
优选地,所述步骤4)和步骤7)中拥挤度的计算公式为
其中,
优选地,所述步骤8)中放置数据块副本时,满足如下规则:不同数据块的副本放置于同一个datanode节点上时,令nblock表示数据块的个数,则
其中,fj表示在新增数据块副本放置过程中节点nj拥有的新增的数据块个数,
优选地,所述步骤8)中放置数据块副本时,满足如下规则:同一个数据块的不同副本放置在不同的datanode节点上时,有
desti={ni1,ni2,…,nir}
其中,nir表示数据块bi第
优选地,所述步骤2)中文件可用率函数为:
其中,nnode表示datanode节点的个数,f1是多目标函数的第一个目标函数。
优选地,所述步骤2)中节点性能子目标优化函数为:
其中,nnode表示datanode节点的个数,f2是多目标函数的第二个目标函数,d(nj)表示数据节点磁盘性能的量化值,d(nj)=(size×r×cache×vdata)/t′,size表示磁盘容量,r表示磁盘转速,cache表示缓存大小,vdata表示磁盘传输速率,t′表示平均寻道时间;c(nj)表示节点cpu的量化值,c(nj)=f×cache×num×vbus,f表示cpu的主频,cache表示缓存大小,num表示cpu的核心数量,vbus表示cpu的总线数度;m(nj)表示节点内存的量化,m(nj)=(v×size×bandwidth)/cas,v表示网络传输速度,size表示内存的大小,bandwidth表示内存的带宽,cas表示响应时间,整体性能越高越好。
优选地,所述步骤2)中节点相对负载子目标优化函数为:
其中,nnode表示datanode节点的个数,f3是多目标函数的第三个目标函数,节点j上已经放置的数据块个数为
优选地,所述步骤2)中网络距离子目标优化函数为:
其中,f4是多目标函数的第四个目标函数,
优选地,所述步骤2)中集群负载子目标优化函数为:
其中,f5是多目标函数的第五个目标函数,
传统的副本放置算法鲜有考虑文件可用率和数据的可靠性的,并且多目标优化算法需要大量的训练作业集。本发明提出基于ngsa多目标的副本放置算法,该方法无需大量的数据集训练,能够快速的选择最优解,满足多个子目标要求,使得混合云整体利用率提高。
本发明结合副本放置算法和混合云资源放置规则提出来基于ngsa多目标的任务调度方法。本调度方法适用于混合云环境下大数据副本放置,它综合考虑了副本放置规则和混合云环境的特点以及系统性能的相关影响因素,提出基于多个子目标函数。这一优化副本放置减少了负载均衡的过程,保证了数据可靠性的同时提高了混合云存储的利用率,提高了qos满意率,达到了合理放置数据块副本目的。
附图说明
图1为本发明混合云中基于ngsa多目标的副本放置算法流程图。
图2为混合云环境下基于ngsa多目标的副本放置模型。
具体实施方式
以下结合附图和具体实施例对本发明作进一步的详细描述。
在混合云中进行副本放置之前,需要获取数据块副本放置个数,从而合理资源分配,降低作业的执行时间,提高系统服务性能。对于副本放置问题已有学者研究,但在混合云环境下的副本放置问题去少有研究。有的人考虑通过qos感知贪婪副本放置算法算法的gs_qos和gs_qos_c1,同过此方法在副本放置阶段循环调用可以实现数据副本的均匀分布来保证用户qos满意度,这种方法感知时间长,模型复杂不易实现。有的方法使用一些由基础设施、网络和应用程序能力与服务质量(qos)需求相结合的约束,提出一组可互操作的副本复制放置算法,保证了副本放置过程中的可靠性和有效性,但是此算法中服务质量设置有很多人为约束,无法量化,无法保证运行环境的改变算法依旧适用新的环境。还有人提出了基于云模糊评估的数据副本放置策略,采用层次分析法建立一种新型的服务质量模型,对不同用户的数据中心进行模糊评估,选择副本放置的最佳地点,虽然提高了存储服务质量,但该策略适用于各种iqs用户,且有人为参与设置权重。本发明采用的ngsa-ii算法无需样本训练,无需对数据进行训练也无需设定权重,算法结构简单,只是在每一代,首先对种群p进行多次遗传进化,反复进行直到结束。应用ngsa-ii算法求解多个子目标优化函数,根据所得到的解集通过空间密集度计算得到次优解,通过次优解决定数据块副本放置位置,最后将数据块副本合理放置到指定的节点上。该方法能提高作业的qos满意率,同时保证了系统的高性能。
本发明提出的混合云环境下基于ngsa多目标的副本放置方法模型由3部分组成:(1)数据块副本创建模块,根据数据块访问历史频次,通过根据分布式文件管理的放置规则,建立合理的副本放置模块。(2)在放置的过程中,根据文件可用性、网络距离、集群相对负载、节点相对负载、存储空间利用率设计子目标优化函数,设置ngsa-ii相关算子配置。(3)通过空间密集度选择排序算法,获得次优解,对数据块副本进行复制放置,并通过数据块记录数据块放置地址与数据块源地址的路径。其放置模型如图2所示。
副本放置是否合理,直接影响着mapreduce任务执行时间,同时考虑到私有云资源的异构性以及公有云资源存在较大的差异性,所以考虑副本放置的情况,包括节点性能、节点相对负载、带宽、网络距离、集群相对负载和集群存储空间利用率等也是副本放置的主要影响因素。由于副本放置需要求解一种多目标的问题,本发明的是基于ngsa多目标的副本放置方法,关于ngsa遗传基因编码相关参数设计如表1所示。
表1主要参数配置
首先,初始化集群性息,设计ngsa相关算子,将副本放置影响因素进行量化为相对应的子目标优化函数,主要影响因素如表2所示。
表2副本放置的影响因素
本发明中,hadoop副本放置模型设计如下:数据块副本放置的过程中必须要考虑其放置情况,数据块副本放置模型为:
其中,当ki≠0时,
hdfs集群环境下,节点的集合可以表示为:
node={nj|j=1,2,…,nnode}(2)
其中nj表示第j个数据节点。
其中hadoop默认副本放置的一些规则需要遵守:
①不同数据块的副本可以放置于同一个datanode节点上,令nblock表示数据块的个数,则
其中,fj表示在新增数据块副本放置过程中节点nj拥有的新增的数据块个数。
②同一个数据块的不同副本放置在不同的datanode节点上,
desti={ni1,ni1,…,nir}(5)
其中,nir表示数据块bi第i个副本;desti表示当前数据块bi已经放置的副本所在节点的集合|desti|=rexit,即rexit表示数据块副本个数。
假设数据块新增副本已经放置了
则当数据块放置第k+1个副本时可放置的节点表示为:
子目标函数的相关设计如下:
1:文件可用率函数
2:节点性能函数
d(nj)表示数据节点磁盘性能的量化值,d(nj)=(size×r×cache×vdata)/t′,size表示磁盘容量,r表示磁盘转速,cache表示缓存大小,vdata表示磁盘传输速率,t′表示平均寻道时间;c(nj)表示节点cpu的量化值,c(nj)=f×cache×num×vbus,f表示cpu的主频,cache表示缓存大小,num表示cpu的核心数量,vbus表示cpu的总线数度;m(nj)表示节点内存的量化,m(nj)=(v×size×bandwidth)/cas,v表示网络传输速度,size表示内存的大小,bandwidth表示内存的带宽,cas表示响应时间,整体性能越高越好。
3:节点相对负载函数
节点j上已经放置的数据块个数为
4:网络距离函数
网络距离子目标优化函数为:
其中,
5:集群负载函数
其中,
pareto解集次优解选择,制定拥挤度公式如下:
其中,
本发明提出的混合云环境下基于ngsa多目标的数据块放置方法,是结合分布式文件系统放置规则和混合云特点而提出来的。本方法首先根据副本放置规则,从而确定副本放置的数学模型,模型构建规则见公式(3)到(5)。根据影响系统服务性能量化5个子目标优化函数,具体量化函数见公式(8)到(12)。通过ngsa算法获得parto解集,通过公式(13)求得次优解几位目标函数的最优解,最后进行副本放置操作。本方法的流程图如图1所示,具体过程描述如下:
(1)初始化集群节点信息。
(2)获得创建副本数,建立数据块ngsa-ii副本放置优化模型。
(3)输入决策变量个数和优化目标函数个数,确定变量定义域范围。
(4)配置交叉算子、变异算子、选择算子、子目标优化函数
(5)设置群体大小为m,终止条件t。
(6)令t=0,初始化种群为p0,对个体进行个体编码。
(7)根据终止条件t判断是否生成新的父种群pt,当t≤t时转(8),当t>t时转步骤(12)。
(8)当t≤t时,父代个体按照设定概率进行选择、杂交、变异生成新的,令t=t+1,子代和父代合并生成新的种群pt。
(9)对种群pt快速非支配排序。
(10)拥挤度计算。
(11)引入精英保留策略,选中合适的个体放入pt,转(7)。
(12)快速非支配排序获得第一,第二级非支配解集集合z。
(13)计算集合z中每个个体的dis(i),并选择最小值,即为最优解。
(14)根据子目标优化函数最优解,放置数据块副本到子目标优化函数最优解对应的个体编码位的指定节点,并记录放置信息。
副本放置的伪代码描述如下
由算法的伪代码描述可以得到,第1行,副本放置相关模型的构建;第2行,运行平台相关信息的采集获取,包括节点信息、集群信息、分布式系统相关日志;第3到4行,对遗传算法ngsa算法的相关配置;第5到6行,量化混合云环境下相关子目标优化函数,文件可用率、网络距离、节点相对负载、集群相对负载、集群存储使用率;第9到18行,使用遗传算法ngsa对目标函数求解过程;第22行,遗传筛选获得的pareto解集;第23行,计算所有解集的空间密集度,进行排序,获得次优解;第24行,对数据块副本进行放置操作,并用数据块记录相应的副本放置信息。按照数据块副本放置规则将副本放置问题转换为特定的模型。定义五个影响系统服务性能的子目标函数,使用ngsa-ii算法寻找满足系统服务性能的最优解,并通过数据库记录数据块副本放置相关信息,从而保证系统服务性能的情况下,提高用户的qos满意度。
本领域的技术人员应当理解,此处所述的具体实施方案仅用解释本发明专利,并不用于限制本发明专利。在本发明专利的精神和原则之内作出的任何修改、等同替换和改进等,均应包含在本发明专利的保护范围之中。