一种面向Geo-distributed云存储的数据副本放置方法与流程

文档序号:15202486发布日期:2018-08-19 20:25阅读:243来源:国知局

本发明涉及一种面向geo-distributed云存储的数据副本放置方法,属于geo-distributed环境下云存储技术领域。



背景技术:

随着数据以爆炸方式的增长,人们对云计算越来越关注,作为云计算的基础,云存储成为一个研究的热点方向。大数据的处理对数据中心提出了更高的要求,面对这种情况,geo-distributed云存储系统是一个非常好的解决方法,在geo-distributed云存储中一个关键挑战是如何有效的保证系统性能,满足用户需求。在geo-distributed云存储系统中,多个数据中心子集集群之间的通信代价比单个数据子集集群中数据节点的通信代价要大很多,在数据中心子集集群之间大量的数据传输会大大增加系统任务的执行时间。



技术实现要素:

本发明所要解决的技术问题是提供一种面向geo-distributed云存储的数据副本放置方法,采用全新数据副本放置方法,保证数据的本地化,减少数据中心子集集群之间的网络负载。

本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种面向geo-distributed云存储的数据副本放置方法,包括如下步骤:

步骤a.分别获取各个数据中心的存储能力值,以及获取所有数据中心,两两之间的物理距离和网络传输带宽,然后进入步骤b;

步骤b.分别针对各个数据中心内的各个数据块,根据数据块的历史访问次数,获得该数据块本周期的预测访问次数,即分别获得各个数据中心内各个数据块本周期的预测访问次数,然后进入步骤c;

步骤c.根据各个数据中心内各个数据块本周期的预测访问次数,分别获得各个数据块本周期的预测热度,并根据热度值由大至小顺序,针对所有数据块进行排序,按排序将所有数据块划分至phot集合、pwarm集合、pcold集合,且phot集合、pwarm集合、pcold集合分别对应不同的副本系数,然后进入步骤d;

步骤d.根据本周期预测热度由大至小的排序,针对各个数据块排序,并初始化n=1,然后进入步骤e;

步骤e.以第n个数据块所在集合对应的副本系数,作为第n个数据块所对应数据副本的个数kn,并相应生成kn个数据副本,然后进入步骤f;

步骤f.针对按存储能力值由大至小顺序排序的各个数据中心,顺序选择2kn个数据中心,作为各个待放置数据中心,并获得各个待放置数据中心分别与第n个数据块所在数据中心之间、对应第n个数据的数据块副本通信代价,然后根据数据块副本通信代价由小至大的顺序,顺序选择kn个数据中心,作为第n个数据块所对应的各个副本放置数据中心,并进入步骤g;

步骤g.将第n个数据块所对应的kn个数据副本,分别放置于第n个数据块所对应的各个副本放置数据中心,然后分别更新获取各个数据中心的存储能力值,并进入步骤h;

步骤h.判断n是否等于n,是则完成数据副本的放置;否则针对n的值进行加1更新,并返回步骤e;其中,n表示所有数据中心内所有数据块的总数。

作为本发明的一种优选技术方案:所述步骤a中,分别针对各个数据中心,按如下公式:

hpi=α*ioi+β*bwi+γ*dpi

获取各个数据中心的存储能力值hpi,其中,i={1、…、i},i表示数据中心的总数,hpi表示第i个个数据中心的存储能力值,ioi表示第i个数据中心的磁盘i/o,α表示数据中心磁盘i/o的权重,bwi表示第i个数据中心的带宽,β表示数据中心带宽的权重,dpi表示第i个数据中心的磁盘剩余空间,γ表示数据中心磁盘剩余空间的权重,α+β+γ=1。

作为本发明的一种优选技术方案:所述步骤b中,分别针对各个数据中心内的各个数据块,根据数据块的历史访问次数,按如下公式:

获得该数据块本周期的预测访问次数,即分别获得各个数据中心内各个数据块本周期的预测访问次数其中,i={1、…、i},i表示数据中心的总数,ji={1、…、ji},ji表示第i个数据中心内数据块的总数,表示第i个数据中心内第ji个数据块本周期的预测访问次数,表示第i个数据中心内第ji个数据块前一个周期的访问次数,表示第i个数据中心内第ji个数据块前两个周期的访问次数,σ表示预设影响因子,且0.5<σ≤1。

作为本发明的一种优选技术方案:所述步骤c中,根据各个数据中心内各个数据块本周期的预测访问次数,按如下公式:

分别获得各个数据块本周期的预测热度其中,i'={1、…、i},i表示数据中心的总数,ji'={1、…、ji},ji表示第i个数据中心内数据块的总数,表示第i个数据中心内第ji个数据块本周期预测热度,表示第i个数据中心内第ji个数据块本周期的预测访问次数,表示第i'个数据中心内第ji'个数据块本周期的预测访问次数。

作为本发明的一种优选技术方案:所述步骤c中,根据热度值由大至小顺序,针对所有数据块进行排序,将热度值大于或等于预设上热度阈值的数据块划分至phot集合,将热度值大于预设下热度阈值、且小于预设上热度阈值的数据块划分至pwarm集合,将热度值小于或等于预设下热度阈值的数据块划分至pcold集合,phot集合、pwarm集合、pcold集合分别对应不同的副本系数。

作为本发明的一种优选技术方案:所述步骤f中,分别针对各个待放置数据中心,按如下公式:

获得各个待放置数据中心分别与第n个数据块所在数据中心之间、对应第n个数据的数据块副本通信代价costnl,其中,l={1、…、l},l表示待放置数据中心的总数,bwnl表示第n个数据块所在数据中心与第l个待放置数据中心之间的带宽,blocknsize表示第n个数据块的大小,distnl表示第n个数据块所在数据中心与第l个待放置数据中心之间的物理距离,costnl表示第l个待放置数据中心与第n个数据块所在数据中心之间、对应第n个数据的数据块副本通信代价。

本发明所述一种面向geo-distributed云存储的数据副本放置方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明设计的面向geo-distributed云存储的数据副本放置方法,针对现有技术的不足,对其进行改进,在geo-distributed环境下云存储中数据中心分布在不同物理位置上,主要考虑各个数据中心之间的数据迁移代价,根据历史统计预测本周期内的数据副本的访问热度,进而计算出数据副本的系数,在放置数据副本时,综合考虑数据副本在各个数据中心的访问热度和各个数据中心本身的物理能力值,这样既可以最大化保证数据本地化,减少数据中心之间的数据块迁移,又保证系统性能提高任务执行效率。

附图说明

图1是本发明所设计面向geo-distributed云存储的数据副本放置方法的流程示意图。

具体实施方式

下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。

当需要处理存储在geo-distributed集群中的数据时,我们需要面对一个新的挑战,在geo-distributed环境中数据中心子集集群之间的网络负载会增大,在geo-distributed集群中数据中心之间大量的数据传输会对系统的性能有很大的降低。单个数据中心任务的执行时间优于在集群中需要在数据中心之间传输数据的任务。

通过移动数据中心输入数据可以减少数据中心之间的网络负载,进而减少任务的执行时间,启示我们通过改变数据副本的放置位置,保证数据的本地化,减少数据中心子集集群之间的网络负载。我们主要集中解决在geo-distributed环境下云存储数据副本放置的问题,保证数据本地化,减少geo-distributed系统任务的执行时间。首先是确定副本系数,根据数据块的访问热度确定副本系数,我们根据热度值划分三个集合:phot集合、pwarm集合、pcold集合,不同的集合代表着不同的数据副本系数;综合考虑各个数据中心的中数据块的热度值和各个数据中心的物理值hp确定数据副本的放置,根据系统中单个数据中心中的数据块热度,确定数据副本的放置位置;还有就是数据的预提取,为了最大化的实现数据本地化,我们提出数据预提取的算法,对将要在本地执行的任务而没有存储在本地的数据副本提前进行迁移,当任务执行时就能保证所需要的数据在本地。

如图1所示,本发明设计了一种面向geo-distributed云存储的数据副本放置方法,实际应用中,具体包括如下步骤:

步骤a.分别针对各个数据中心,按如下公式:

hpi=α*ioi+β*bwi+γ*dpi

获取各个数据中心的存储能力值hpi,即分别获取各个数据中心的存储能力值,以及获取所有数据中心,两两之间的物理距离和网络传输带宽,然后进入步骤b。其中,i={1、…、i},i表示数据中心的总数,hpi表示第i个个数据中心的存储能力值,ioi表示第i个数据中心的磁盘i/o,α表示数据中心磁盘i/o的权重,bwi表示第i个数据中心的带宽,β表示数据中心带宽的权重,dpi表示第i个数据中心的磁盘剩余空间,γ表示数据中心磁盘剩余空间的权重,α+β+γ=1。

步骤b.分别针对各个数据中心内的各个数据块,根据数据块的历史访问次数,按如下公式:

获得该数据块本周期的预测访问次数,即分别获得各个数据中心内各个数据块本周期的预测访问次数然后进入步骤c。其中,i={1、…、i},i表示数据中心的总数,ji={1、…、ji},ji表示第i个数据中心内数据块的总数,表示第i个数据中心内第ji个数据块本周期的预测访问次数,表示第i个数据中心内第ji个数据块前一个周期的访问次数,表示第i个数据中心内第ji个数据块前两个周期的访问次数,σ表示预设影响因子,且0.5<σ≤1。

步骤c.根据各个数据中心内各个数据块本周期的预测访问次数,按如下公式:

分别获得各个数据块本周期的预测热度其中,i'={1、…、i},i表示数据中心的总数,ji'={1、…、ji},ji表示第i个数据中心内数据块的总数,表示第i个数据中心内第ji个数据块本周期预测热度,表示第i个数据中心内第ji个数据块本周期的预测访问次数,表示第i'个数据中心内第ji'个数据块本周期的预测访问次数。

并根据热度值由大至小顺序,针对所有数据块进行排序,将热度值大于或等于预设上热度阈值的数据块划分至phot集合,将热度值大于预设下热度阈值、且小于预设上热度阈值的数据块划分至pwarm集合,将热度值小于或等于预设下热度阈值的数据块划分至pcold集合,phot集合、pwarm集合、pcold集合分别对应不同的副本系数,然后进入步骤d。

步骤d.根据本周期预测热度由大至小的排序,针对各个数据块排序,并初始化n=1,然后进入步骤e。

步骤e.以第n个数据块所在集合对应的副本系数,作为第n个数据块所对应数据副本的个数kn,并相应生成kn个数据副本,然后进入步骤f。

步骤f.针对按存储能力值由大至小顺序排序的各个数据中心,顺序选择2kn个数据中心,作为各个待放置数据中心,分别针对各个待放置数据中心,按如下公式:

获得各个待放置数据中心分别与第n个数据块所在数据中心之间、对应第n个数据的数据块副本通信代价costnl,然后根据数据块副本通信代价由小至大的顺序,顺序选择kn个数据中心,作为第n个数据块所对应的各个副本放置数据中心,并进入步骤g。其中,l={1、…、l},l表示待放置数据中心的总数,bwnl表示第n个数据块所在数据中心与第l个待放置数据中心之间的带宽,blocknsize表示第n个数据块的大小,distnl表示第n个数据块所在数据中心与第l个待放置数据中心之间的物理距离,costnl表示第l个待放置数据中心与第n个数据块所在数据中心之间、对应第n个数据的数据块副本通信代价。

步骤g.将第n个数据块所对应的kn个数据副本,分别放置于第n个数据块所对应的各个副本放置数据中心,然后分别更新获取各个数据中心的存储能力值,并进入步骤h。

步骤h.判断n是否等于n,是则完成数据副本的放置;否则针对n的值进行加1更新,并返回步骤e;其中,n表示所有数据中心内所有数据块的总数。

hadoop是成功实现mapreduce模型的开源软件,hadoop框架中最核心设计就是:hdfs和mapreduce。hdfs提供了海量数据的存储,mapreduce提供了对数据的计算,实现在大量计算机组成的集群中对海量数据进行分布式计算。mapreduce是一种编程模型,mapreduce是一个最先由google提出的分布式计算软件构架,它可以支持大数据量的分布式处理,用于大规模数据集的并行运算。与传统数据仓库和分析技术相比,mapreduce适合处理各种类型的数据,包括结构化、半结构化和非结构化数据。mapreduce的核心又在于map和reduce函数。mapreduce采用分而治之思想,先把任务分发到集群多个节点上,并行计算,然后再把计算结果合并,从而得到最终计算结果。

基于上述所设计面向geo-distributed云存储的数据副本放置方法技术方案的基础上,进一步之如下应用。

步骤(1)执行map任务,提交任务时,假如任务所需全部数据在本地数据中心内则不需要数据中心之间的数据块迁移,可以转步骤(3);否则转步骤(2)。

步骤(2)根据各个数据中心的之间的物理距离和网络带宽,选择传输代价最小的数据副本进行传输。并计算获得副本迁移代价,

步骤(3)执行reduce任务,因为map端的输出结果存放是随机的,在执行reduce任务时需要提取map端的输出,可以将reduce任务划分为两个集合,在本地数据中心为近端reduce任务,不在本地数据中心的为远端reduce任务,并且规定近端reduce任务执行优先级级高于远端的reduce任务。

步骤(4)数据预提取,步骤(3)中规定近端reduce任务有较高优先级,先进行近端reduce任务,在进行近端reduce任务的时候同时进行远端reduce数据的预提取,这样就可以保证执行任务时所需要的数据就都在本地数据中心。

步骤(5)存储任务结果,在reduce任务执行完,将结果输出到数据中心,并采用hdfs系统存储重新计算各个数据中心的存储能力值,选取能力值最大的数据中心存储结果。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

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