CN104009904A - 面向云平台大数据处理的虚拟网络构建方法及系统 - Google Patents
面向云平台大数据处理的虚拟网络构建方法及系统 Download PDFInfo
- Publication number
- CN104009904A CN104009904A CN201410222239.3A CN201410222239A CN104009904A CN 104009904 A CN104009904 A CN 104009904A CN 201410222239 A CN201410222239 A CN 201410222239A CN 104009904 A CN104009904 A CN 104009904A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- communication agent
- server
- optimal
- sum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种面向云平台大数据处理的虚拟网络构建方法及系统,涉及云计算技术领域,所述包括以下步骤:S1:在作业过程中保证所有虚拟机的总耗时最少的情况下,计算通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和S2:根据所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和从云平台上的服务器中确定通信代理的位置;S3:将所述云平台上的服务器中未设置通信代理的虚拟机分配至所述通信代理,以实现所述未设置通信代理的虚拟机与所述通信代理之间的映射关系。本发明通过各步骤之间的配合,降低了作业执行的总时间。
Description
技术领域
本发明涉及云计算技术领域,特别涉及一种面向云平台大数据处理的虚拟网络构建方法及系统。
背景技术
随着云计算技术的广泛应用,越来越多的大数据处理服务被迁移部署到云计算平台当中,而云计算平台的特性会对传统的MapReduce分布式数据处理方法的性能带来很多新的挑战。目前对云计算平台上MapReduce的性能优化主要都集中在应用层面,如优化大数据作业调度方法等。而缺乏对云平台底层体系结构的研究。将MapReduce并行数据处理应用迁移到云平台之中,并行计算架构中master和slave节点之间的数据通信体现在云平台中虚拟机(VM)之间的通信,因此云平台的架构会进一步对大数据处理的性能产生影响:合理的VM分配方案以及虚拟网络构建方案,会优化大数据处理过程中VM之间的通信开销以及VM处理数据块的计算开销,提升大数据处理的整体性能。
OpenStack是一个开源的云管理平台项目,由于其多方面的优势,在推出的短短3年多时间里就得到了众多工业界和学术界同行的认可。迄今为止,OpenStack已经发布了8个版本。在其Folsom版中推出了Quantum组件,提出了“Network as a Service”的概念,该组件可提供基于云平台的虚拟网络拓扑构建的基本功能。它允许一个租户在虚拟机之间构建虚拟网络,但在一个云平台中只能单一节点部署通信代理。在随后的OpenStack Grizzly版中,为了改善虚拟网络的性能和可靠性,可以允许租户在多主机上部署代理节点。总的来说,目前的Quantum组件只实现了虚拟网络的通信功能,但并没有进一步关注虚拟网络通信性能的提升,具体来说,没有提供有效的通信代理部署分配方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何降低作业执行的总时间。
(二)技术方案
为解决上述技术问题,本发明提供了一种面向云平台大数据处理的虚拟网络构建方法,所述包括以下步骤:
S1:在作业过程中保证所有虚拟机的总耗时最少的情况下,计算通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和
S2:根据所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和从云平台上的服务器中确定通信代理的位置;
S3:将所述云平台上的服务器中未设置通信代理的虚拟机分配至所述通信代理,以实现所述未设置通信代理的虚拟机与所述通信代理之间的映射关系。
其中,步骤S1中通过下式计算通信代理的最优总数及设于所述通信代理的服务器上的虚拟机最优数量之和,
其中,为Map阶段第i号服务器上的第j台虚拟机经历的时间,为Reduce阶段第i号服务器上的第j台虚拟机经历的时间,m为数据中心中服务器的数量,ni为第i号服务器上可用虚拟机的数量。
其中,所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和的表达式如下,
其中,γ为服务器上部署了通信代理性能的变化率,μ0为该台虚拟机在所在服务器空载时的性能,nr为Reducer的数量,S为稳态时,固定时间段内输入数据包总大小的期望,N为在MapReduce进程中可用的虚拟机数量,且N=n1+n2+...+nm,B为任意两个服务器之间的数据传输率,Sr为每个Mapper上的Map阶段产生结果的数据大小,k为数据中心里通信代理的数目。
其中,步骤S2包括:
S201:通过背包算法在m个服务器中选出koptimal个,使得所选出的koptimal个服务器上可用虚拟机之和最接近于
S202:将所选出的koptimal个服务器作为通信代理。
其中,步骤S3包括:
S301:将所述云平台上的服务器中未设置通信代理的虚拟机的性能进行降序排列,以获得虚拟机序列;
S302:将所述虚拟机序列中性能最高的虚拟机作为当前虚拟机,并寻找出负载最轻的通信代理;
S303:将所述当前虚拟机分配给所述负载最轻的通信代理;
S304:判断所述虚拟机是否已经全部分配完,若是,则结束流程,否则将所述当前虚拟机从所述虚拟机序列中移除,并返回步骤S302。
本发明还公开了一种面向云平台大数据处理的虚拟网络构建系统,所述系统包括:
参数计算模块,用于在作业过程中保证所有虚拟机的总耗时最少的情况下,计算通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和
位置确定模块,用于根据所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和从云平台上的服务器中确定通信代理的位置;
虚拟机分配模块,用于将所述云平台上的服务器中未设置通信代理的虚拟机分配至所述通信代理,以实现所述未设置通信代理的虚拟机与所述通信代理之间的映射关系。
其中,所述参数计算模块中通过下式计算通信代理的最优总数及设于所述通信代理的服务器上的虚拟机最优数量之和,
其中,为Map阶段第i号服务器上的第j台虚拟机经历的时间,为Reduce阶段第i号服务器上的第j台虚拟机经历的时间,m为数据中心中服务器的数量,ni为第i号服务器上可用虚拟机的数量。
其中,所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和的表达式如下,
其中,γ为服务器上部署了通信代理性能的变化率,μ0为该台虚拟机在所在服务器空载时的性能,nr为Reducer的数量,S为稳态时,固定时间段内输入数据包总大小的期望,N为在MapReduce进程中可用的虚拟机数量,且N=n1+n2+...+nm,B为任意两个服务器之间的数据传输率,Sr为每个Mapper上的Map阶段产生结果的数据大小,k为数据中心里通信代理的数目。
其中,所述位置确定模块包括:
服务器选出子模块,用于通过背包算法在m个服务器中选出koptimal个,使得所选出的koptimal个服务器上可用虚拟机之和最接近于
代理设置子模块,用于将所选出的koptimal个服务器作为通信代理。
其中,所述虚拟机分配模块包括:
排序子模块,用于将所述云平台上的服务器中未设置通信代理的虚拟机的性能进行降序排列,以获得虚拟机序列;
寻找子模块,用于将所述虚拟机序列中性能最高的虚拟机作为当前虚拟机,并寻找出负载最轻的通信代理;
分配子模块,用于将所述当前虚拟机分配给所述负载最轻的通信代理;
移除子模块,用于判断所述虚拟机是否已经全部分配完,否则将所述当前虚拟机从所述虚拟机序列中移除。
(三)有益效果
本发明通过各步骤之间的配合,降低了作业执行的总时间。
附图说明
图1是本发明一种实施方式的面向云平台大数据处理的虚拟网络构建方法的流程图;
图2是云平台虚拟机之间数据传输的时延图;
图3是通信代理的部署和服务器的负载对虚拟机性能的影响图;
图4是Map阶段的场景图;
图5是Reduce阶段的场景图;
图6是背包算法的流程图;
图7是Modified-Load-Balancing算法的流程图;
图8是虚拟机分配通信代理策略的对比图;
图9是通信代理的部署策略的对比图;
图10是不同优化条件对实验结果影响的对比图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1是本发明一种实施方式的面向云平台大数据处理的虚拟网络构建方法的流程图;参照图1,所述包括以下步骤:
S1:在作业过程中保证所有虚拟机的总耗时最少的情况下,计算通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和
S2:根据所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和从云平台上的服务器中确定通信代理的位置;
S3:将所述云平台上的服务器中未设置通信代理的虚拟机分配至所述通信代理,以实现所述未设置通信代理的虚拟机与所述通信代理之间的映射关系。
为保证所有虚拟机的总耗时Ttotal最少,优选地,步骤S1中通过下式计算通信代理的最优总数及设于所述通信代理的服务器上的虚拟机最优数量之和,
其中,为Map阶段第i号服务器上的第j台虚拟机经历的时间,为Reduce阶段第i号服务器上的第j台虚拟机经历的时间,m为数据中心中服务器的数量,ni为第i号服务器上可用虚拟机的数量。
为了简化上述模型(即上述Ttotal的公式)求解,故而进行了一些合理的假设:
1)Reducer是在可用的虚拟机中随机选取:在Reduce阶段,所有Mapper处理好的数据都会汇集到nr台Reducer上。模型假设nr台Reducer是随机选取的,也就是有可能在有通信代理的服务器上,也有可能在没有通信代理的服务器上。
2)数据在同一台服务器的虚拟机上传输的时延可以被忽略:根据虚拟机的物理位置,MapReduce作业在执行过程中可能出现服务器内部与跨服务器两种不同的数据传输方式。通过对一些知名国际会议的论文调研和实际平台的测试,发现数据在同一台服务器虚拟机之间的速率要远远快于跨服务器虚拟机之间的传输。图2显示了云平台虚拟机之间数据传输的这种特性。
3)模型针对传输时延下界优化:由于虚拟化技术的限制,现有的虚拟化技术无法保证网络带宽资源对各虚拟机的公平分配,所以只能对传输时间的下界进行性能建模。
4)虚拟机的性能与服务器的负载率呈线性反比:通过实验发现,随着一台服务器上并发工作虚拟机数目的增加,虚拟机的平均性能会呈现线性下降趋势。而当这台服务器上部署有通信代理时,虚拟机的性能会进一步以比率下降。图3显示了一台8核,32GB内存,1TB硬盘的服务器分别在有通信代理和无通信代理的情况下测试,虚拟机的性能随服务器负载率变化的曲线。
下面,对云平台中,MapReduce作业各阶段(Map阶段和Reduce阶段)的工作流程进行建模和性能评估:图4显示了整个Map阶段的场景。Map阶段分为三个过程:第一步,将大数据切分成小型数据块,然后分发给平台中的通信代理,这个阶段的时间为:
其中,N为在MapReduce进程中可用的虚拟机数量;S为稳态时,固定时间段内输入数据包总大小的期望;B为任意两个服务器之间的数据传输率。
第二步,通信代理将第一阶段传输过来的数据分发给它负责的虚拟机。基于上文中的假设,模型忽略了数据在同一台服务器上的传输时间,只关注通信代理与其负责的跨服务器的虚拟机之间的通信。由于每台虚拟机要获取多少数据是由这台虚拟机的性能决定的,虚拟机的性能又与它当前所在服务器的负载和是否开有通信代理有关,具体的表达式为:
其中,μij为第i号服务器上的第j台虚拟机当前的处理能力,μ0为该台虚拟机在所在服务器空载时的性能,为所在服务器到满载时可并发工作的虚拟机数,ni为所在服务器当前所开的虚拟机数量,γ为服务器上部署了通信代理性能的变化率,xi为这台服务器上是否部署有通信代理,如果有,则xi=1;否则,xi=0。所以这个阶段通信代理转发的数据量正比于该代理所负责的跨服务器的虚拟机性能之和。由于本阶段k个通信代理并发工作,所以理想情况传输速率为单代理工作时的k倍。该阶段总耗时的表达式为:
第三步,虚拟机处理通信代理转发来的数据,每台虚拟机处理的数据量和这台虚拟机当前的性能成正比。所以每台虚拟机的处理时间都是一样的。总处理时间的表达式为:
其中,μtotal为当前云平台中所有虚拟机的性能总和。
最后Map阶段任务执行总耗时的表达式整理为:
参照图5,Reduce阶段的工作由三部分构成:第一部分,Mapper将处理完的结果提交给负责它的通信代理。第二部分,所有通信代理将汇聚过来的结果发送给Reducer的通信代理。第三部分,Reducer通信代理将结果转发给目的虚拟机。在整个数据由Mapper到Reducer传输过程中,由于Mapper和Reducer的位置变化,负责它们转发数据的通信代理的位置变化。数据的跨服务器传输次数分如下4种情况:
分别代表数据经过了0、1、2、3次跨服务器传输,其中,Aij为负责第i台服务器上的第j台虚拟机通信的通信代理,Auv为负责第u台服务器上的第v台虚拟机通信的通信代理,Aij=i为第i台服务器上有通信代理,Aij≠i为第i台服务器上没有通信代理,l(Aij)为通信代理Aij的位置,l(Auv)为通信代理Auv的位置,l(Aij)=l(Auv)为两台通信代理在同一位置,即是同一台通信代理,l(Aij)≠l(Auv)为两台通信代理不是同一台通信代理。
具体来说,如果Mapper和Reduce在同一台有通信代理的服务器上,它们之间的传输时间为0;如果Mapper或Reducer中有一台在没有通信代理的服务器上,并且它们由同一台通信代理负责数据的转发,那它们之间的传输时间为如果Mapper或Reducer中有一台在没有通信代理的服务器上,并且它们由不同的通信代理负责数据的转发,那它们之间的传输时间为如果Mapper或Reducer都在没用通信代理的服务器上,并且由不同的通信代理负责它们的数据转发,那它们之间的传输时间为
所以第一部分传输时间总和的表达式为:
第二部分计算通信代理之间数据传输的总开销,具体计算方法为所有数据汇集到目的通信代理的总传输时间,减去目的通信代理上已经存在的数据需要的传输时间。模型假设所有的Reducer是随机选取的,运用可重组合公式,所以一个通信代理有负责Reducer数据传输的概率表达式为:
Reduce阶段负责Reducer数据传输的通信代理个数的期望为:
最后可以得出和通信代理坐落在同一服务器上的Reducer总个数的期望为:
其中nli表示第i个通信代理所在的服务器上虚拟机的个数。所以这一部分传输时间总和的表达式为:
第三部分数据传输开销为通信代理和本服务器没有通信代理的Reducer之间的传输开销。由于每个通信代理都是随机分布的,所以一个Reducer所在的服务器上有通信代理的概率为:
没有通信代理的Reducer的数量的期望为:
第三部分总体传输开销的表达式为:
Reducer阶段最后的表达式整理为:
到这里为止,就得到了的优化模型
稳态时一个MapReduce作业过程耗时的表达式:
对该表达式的k求偏导,可以获得这个云平台最适合部署的通信代理数量。
同样的,对该表达式的Na求偏导,可以获得云平台中最适合的Na的表达式,即通信代理所在服务器上虚拟机的总数的最优取值。
优选地,所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和的表达式如下,
其中,γ为服务器上部署了通信代理性能的变化率,μ0为该台虚拟机在所在服务器空载时的性能,nr为Reducer的数量,S为稳态时,固定时间段内输入数据包总大小的期望,N为在MapReduce进程中可用的虚拟机数量,且N=n1+n2+...+nm,B为任意两个服务器之间的数据传输率,Sr为每个Mapper上的Map阶段产生结果的数据大小,k为数据中心里通信代理的数目。
步骤S1计算了通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和通过分析,可以把问题抽象简化为:如何在m个数当中,选出k个数,使这k个数的和最接近为了提高选择效率,优选地,步骤S2包括:
S201:通过背包算法在m个服务器中选出koptimal个,使得所选出的koptimal个服务器上可用虚拟机之和最接近于
S202:将所选出的koptimal个服务器作为通信代理,为便于表达下面将koptimal统一简化为k。
该背包算法分为两个部分,第一部分对m个数排序后利用动态规划中背包问题的思想分别求出1~m个数中所有组合。该动态规划问题的递归表达式为:
其中S(i,j)为前i个数中组成和为j的数有几个。该解可以由两个子结构递推而来。第i个数是否加入,依据是前i-1个数中能不能构成和为j-ni的组合。如果可以,则加入这个数;否者,保持上一个状态。而这个动态规划问题的初始化条件为:
利用该方法可以获得1~m个数的全部组合S(i,j)。进入算法的第二部分后,搜索S(i,j)的列,如果没发现S(i,j)=k,则搜索S(i,j)的和列,找到最接近的组合。背包算法成功地将一个O(2m)复杂度的问题降为了
在Map阶段的通信代理转发过程中,需要指定通信代理负责哪些虚拟机的数据转发工作。由于模型的第二个优化目标,即保证整个过程的时间跨度尽可能小,所以要将转发数据的总量尽可能平均分配给k个通信代理。而因为一个虚拟机分配到的数据是和它的性能成正比的。最终要完成的工作就是将总数据量根据每个通信代理负责的虚拟机的性能和进行加权分配,并交由k个通信代理负责数据转发工作。
通信代理的负载均衡问题可以抽象成这样一个算法问题,把n个数分成m组,使这m组数尽可能的平均。这是一个NP难问题。故而用Modified-Load-Balancing算法来求出它的近似解。Modified-Load-Balancing是先将n个数进行降序排列,然后利用贪心算法,顺序地将每个数分配给当前和最小的那组数。
根据上述思路,优选地,步骤S3包括:
S301:将所述云平台上的服务器中未设置通信代理的虚拟机的性能进行降序排列,以获得虚拟机序列;
S302:将所述虚拟机序列中性能最高的虚拟机作为当前虚拟机,并寻找出负载最轻的通信代理;
S303:将所述当前虚拟机分配给所述负载最轻的通信代理;
S304:判断所述虚拟机是否已经全部分配完,若是,则结束流程,否则将所述当前虚拟机从所述虚拟机序列中移除,并返回步骤S302。
由于每台通信代理数据传输能力相同,所以P1,P2,...,Pn与J1,J2,...,Jn同比例,Pi为第i号虚拟机数据被转发的时间,Ji为第i号虚拟机需要被转发的数据,与该虚拟机性能成正比。首先定义两个下界条件:第一,所有虚拟机任务的转发时间都一样这种理想情况是OPT的一个下界,表示为:
其中,OPT为最优分配方案下转发时间,n为虚拟机的总数。
第二,n个虚拟机中为性能最好的虚拟机任务的转发时间是OPT的下界,表示为:
假设k为通信代理的总数,M1,M2,...,Mk表示k个通信代理,且是负载最大的通信代理,Jk是最后一个虚拟机的任务,它被分配给了因为每次分配算法都会把任务分配给负载最轻的那台通信代理,所以在最后一个虚拟机的任务Jk来临时,有:
整理如下:
其中,L为实际转发时间
可以得出用Modified-Load-Balancing算法求出的近似值在理论最优解的2倍以内。由于J1,J2,...,Jn已经在算法的第一步降序排序处理,所以Pn为最小虚拟机任务转发的时间。由于n>m,所以Jm,Jm+1一定分配给同一台通信代理Mm上,所以得出另一个OPT的下界:
OPT≥Pm+Pm+1≥2×Pn
在一些同构性比较好的云平台中,每台虚拟机性能差异不大,它们通过通信代理转发获得的任务数量也相差不大,所以最后的一个虚拟机任务Pn也基本上是最后一个转发完成的。这样不等式依旧成立。
整理如下:
在这种情况下,Modified-Load-Balancing算法的近似度将进一步提高,保持在1.5倍的OPT之内。
实施例1
下面以一个具体的实施例来说明本发明,但不限定本发明的保护范围。本实施例包括以下步骤:
步骤一:k和Na的确定
对于稳态时每个提交给云计算系统的MapReduce作业S,执行以下步骤:
步骤(1).根据最优化模型中关于k的最优表达式,把作业大小S以及相关的参数带入表达式求解出koptimal,作为该云计算系统最优的通信代理数。
步骤(2).根据最优化模型中关于Na的最优化表达式,把作业大小S带入表达式解出该值为背包选出通信代理部署位置提供重要依据。
步骤二:参照图6,对于利用最优化模型求解出来的koptimal和执行以下步骤:
步骤(1).根据具体的系统规模,通信代理的数量,每台服务器上虚拟机的数量,该方法可能需要一次性的初始化如下参数:
k:通信代理的数量。
m:服务器的数量。
nm:每台服务器上的虚拟机数量。
Sij:前i个通信代理部署后所在服务器的虚拟机数量之和等于j的组合。
Mij:在和为j的组合里,第i个数是否加入。加入为1,否则为0。
C:最优组合的服务器编号。
步骤(2).求出m台服务器上虚拟机的数量和sum=n1+n2+...+nm。
步骤(3).初始化S0,0=0。
步骤(4).初始化数量计数i=1,每经过一个数,计数器增加i=i+1,在每个计数单位中依次执行以下步骤:
步骤(4.1).令S0,i=-∞。
步骤(4.2).若此时i=sum,结束步骤4。
步骤(5).初始化所有的Mij=0。
步骤(6).初始化数量计数器i=1,随着组合过程的推进,每经过一个数,计数器增加i=i+1,在每个记数单位中执行以下步骤:
步骤(6.1).初始化数量计数器为j=sum,随着组合过程的推进,每经过一个可能的和,计数器减少j=j–1,在每个计数单位中依次执行以下步骤:
步骤(6.1.1).判断此时如果是,则令当前Mi,j=1。否则,令Si,j=Si-1,j。
步骤(6.1.2).若此时j<ni,结束步骤6.1。
步骤(6.2).初始化数量计数器为j=ni-1,随着组合过程的推进,每经过一个可能的和,计数器减少j=j–1,在每个计数单位中依次执行以下步骤:
步骤(6.2.1).令Si,j=Si-1,j
步骤(6.2.2).若此时j<0,结束6.2。
步骤(7).由于l有时为负值,为排除该异常情况,如果 令
步骤(8).如果 令
步骤(9).初始化偏移量offset=0,left=0,right=1,position=0,随着寻找最优组合的推进,每经过一次搜索,偏移量增加offset=offset+1,在每个偏移单位中依次执行以下步骤:
步骤(9.1).初始化计数器i=m,随着寻找最优组合的推进,每经过一次搜索,偏移量增加i=i+1,在每个计数单位中依次执行以下步骤:
步骤(9.1.2).判断是否且则令right=1,position=i,结束9。判断是否且则令left=1,position=i,结束9。
步骤(10).判断是否left=1,如果是,则令如果不是,则令
步骤(11).初始化计数器i=position,在每个计数单位中依次执行以下步骤:
步骤(11.1).判断是否如果是,则将i加入到数组C中,并且令i=i–1。如果不是,令i=i–1。
步骤(11.2).若此时i=0,结束步骤11。
步骤三:参照图7,Modified-Load-Balancing算法
对于所在服务器上没有通信代理的虚拟机的性能,执行以下步骤:
步骤(1).根据具体的系统规模,通信代理的数量,所在服务器上没有通信代理的虚拟机数量,该方法可能需要一次性初始化如下参数:
n:所在服务器上没有通信代理的虚拟机总数。
k:云平台中通信代理的个数。
An:根据μij公式获得的所在服务器上没有通信代理的虚拟机的性能。
Lk:当前每个通信代理需要负责的数据转发量。
步骤(2).初始化Lk里的数据为0。
步骤(3).对An里的数据进行一个降序排列,使A1,A2,...An呈从大到小排列。
步骤(4).初始化当前负载最低的通信代理序号为min=0
步骤(5).初始化虚拟机计数器i=1,随着分配过程的推进,每经过一个数量单元,计数器增加i=i+1,在每个计数单位中依次执行以下步骤:
步骤(5.1).把当前虚拟机性能加入到目前负载最低的通信代理上Lmin=Lmin+Ai。
步骤(5.2).初始化当前负载最低的通信代理序号为min=0
步骤(5.3).初始化虚拟机性能索引index=1,每个经过一次通信代理的查询,索引增加index=index+1,在每次查询中依次执行以下步骤:
步骤(5.3.1).判断此时Lindex与min的大小关系,若二者大小关系满足min>Lindex,则令当前min=index;若不满足此关系,结束步骤5.3.1。
步骤(5.3.2).若此时index=k,结束步骤5.3。
步骤(5.4).若此时i=n,结束步骤5。
实施例2
本实施例中,基于OpenStack开源软件构建了一个包含21台服务器的云计算IaaS平台,其中包括1台控制节点,20台计算节点。具体服务器配置和每台服务器上的虚拟机如表1所示。该平台以虚拟资源的方式为用户提供虚拟资源的使用,提供的虚拟资源的模板种类如表2所示。选用统一的微型主机模板。然后在IaaS平台中分配了246台虚拟机,搭建了基于云计算的并行计算集群。其中配置一台虚拟机作为Hadoop的master节点,其他245台作为Hadoop的slave节点。为了对本发明进行评估,将本发明提出的调度算法以Python语言进行了实现,并整合到OpenStack平台中,在实际的IaaS应用场景中,对本发明提出的部署分配策略进行详细的评估。
表1云计算IaaS平台服务器配置
机器名称 | IP | CPU | Memory | Disk | 网卡 | 虚拟机数量 |
controller | 219.243.xx.xx | 10 | 10G | 100G | 2 | 1 |
compute01 | 219.243.xx.xx | 10 | 10G | 100G | 2 | 4 |
compute02 | 219.243.xx.xx | 10 | 10G | 100G | 4 | 4 |
compute03 | 219.243.xx.xx | 10 | 10G | 100G | 4 | 5 |
compute04 | 219.243.xx.xx | 10 | 10G | 100G | 4 | 5 |
compute05 | 219.243.xx.xx | 10 | 10G | 100G | 2 | 5 |
compute06 | 219.243.xx.xx | 10 | 10G | 100G | 4 | 5 |
compute07 | 219.243.xx.xx | 10 | 10G | 100G | 4 | 5 |
compute08 | 219.243.xx.xx | 10 | 10G | 100G | 4 | 5 |
compute09 | 219.243.xx.xx | 10 | 10G | 100G | 2 | 6 |
compute10 | 219.243.xx.xx | 10 | 10G | 100G | 2 | 6 |
compute11 | 219.243.xx.xx | 24 | 80G | 500G | 2 | 10 |
compute12 | 219.243.xx.xx | 24 | 80G | 500G | 4 | 10 |
compute13 | 219.243.xx.xx | 24 | 80G | 500G | 4 | 12 |
compute14 | 219.243.xx.xx | 24 | 80G | 500G | 4 | 12 |
compute15 | 219.243.xx.xx | 24 | 80G | 500G | 2 | 13 |
compute16 | 219.243.xx.xx | 24 | 80G | 500G | 4 | 13 |
compute17 | 219.243.xx.xx | 80 | 96G | 1T | 4 | 25 |
compute18 | 219.243.xx.xx | 80 | 96G | 1T | 4 | 30 |
compute19 | 219.243.xx.xx | 80 | 96G | 1T | 4 | 30 |
compute20 | 219.243.xx.xx | 80 | 96G | 1T | 4 | 40 |
注:表格中均隐去了以上IP地址的后缀信息。
表2云计算IaaS平台提供的虚拟资源种类
主机类型 | CPU | Memory | Disk | 带宽 |
超微主机 | 1 | 512M | 8G | 不限 |
微型主机 | 1 | 1G | 20G | 不限 |
小型主机 | 1 | 2G | 30G | 不限 |
标准主机 | 2 | 4G | 60G | 不限 |
大型主机 | 4 | 8G | 120G | 不限 |
超大型主机 | 8 | 16G | 240G | 不限 |
基于采集到的实际用户在利用Hadoop的MapReduce过程中稳定时达到的作业大小,对实际的云平台上的大数据处理场景进行了模拟。选用了最经典的MapReduce程序:WordCount,而测试数据是在通过网络爬虫在维基百科上爬到的43G的文本数据。在WordCount程序运行完之后,统计每个slave上的时间,进而得出整个MapReduce阶段的总时间。
图8显示Map阶段的虚拟机分配通信代理策略对最终实验结果造成的影响。带“○”的虚线是利用了Modified-Load-Balancing算法来分配虚拟机,带“△”的虚线则是随机的把虚拟机分配给通信代理。实验结果显示,利用了Modified-Load-Balancing算法的分配策略的实验结果明显优于随机的分配的结果。
图9显示Map阶段的通信代理的部署策略对最终实验结果造成的影响。带“○”的虚线是利用了背包算法对通信代理进行部署。带“*”的虚线是随机的方法对通信代理的位置进行选择。而带“△”的虚线和带“+”的虚线则是利用贪心算法的思想,分别选取虚拟机数最多和最少的服务器来部署通信代理。从图中显示的结果可以看到,利用了背包算法的部署策略的实验总时间一次是最优的;而利用随机的部署方法在平均情况下实验结果最差。
图10显示了优化不同的条件对最终实验结果的影响。带“+”的虚线表示没有利用的任何发明策略,实验的总时间随数据量增大的曲线。而带“*”的虚线是在带“+”的虚线的基础上优化了通信代理数量的实验结果。而带“△”的虚线则是在带“*”的虚线的基础上使用了背包通信代理部署方案后的实验结果。最后图中的带“○”的虚线则是在带“△”的虚线的基础上使用了Modified-Load-Balancing算法进一步优化通信代理与虚拟机映射关系之后的实验结果。可以看出,每当使用一个的优化策略之后,的实验结果都会得到一定的提升,而带“+”的虚线与带“*”的虚线之间的跨度是最大的,这表明了通信代理的数目对实验结果的优化效果是最好的。
通过和OpenStack原生方法的结果对比分析,可以发现,本方法优化了云计算系统的虚拟网络体系结构,不仅提高了虚拟网络数据转发的效率,还提高了虚拟网络结构的鲁棒性。综合考虑了通信代理资源负载情况,在保证服务器性能和执行效率的基础上尽量均衡了通信代理的资源负载,总体上提高了云平台上MapReduce作业的效率。由此可见,本发明达到了预期目的。
本发明的目的在于设计一种基于最优化原理的OpenStack多主机部署分配策略,综合考虑了MapReduce作业过程中的数据传输和数据处理流程,完整的分析且评估了整个过程的通信开销,处理耗时。为基于OpenStack Grizzly的虚拟网络优化部署提供解决方案。具体包括:优化物理数据中心中通信代理的数目、位置以及代理与VM之间的映射关系。同时将该方案整合到OpenStack的Quantum组件中,并在实际的云计算系统中对本发明提出的调度算法进行应用,优化了基于云平台的MapReduce并行计算架构的整体性能。该解决方案主要分为三个部分:第一部分是对云平台上的MapReduce过程进行建模分析,引入最优化原理,设定两个优化目标:优化MapReduce过程中所有任务完成的总时间以及优化MapReduce作业过程的执行时间长度。通过对模型的求解,最终确定云平台中最优的通信代理数量;第二部分是确定通信代理的最佳物理位置,利用背包算法从云平台所有服务器中选出最优的代理部署位置;第三部分是确定通信代理与虚拟机之间的最佳映射关系,具体来讲,确定每个代理负责虚拟网络中哪些虚拟机的通信,利用我们观察到的虚拟机的性能变化规律,将这些虚拟机根据其性能的权值,用Modified-Load-Balancing算法分配给每个通信代理,实现一个MapReduce作业过程时间跨度的最优化。本发明提出的调度策略和分配方法以Python脚本进行实现,并整合到OpenStack平台中,对实际的云计算平台的MapReduce作业进行了底层虚拟网络性能的优化。实验表明,使用了该方法后,相比OpenStack项目提供的默认方案,在作业执行总时间和整个作业过程的执行时间长度上有了明显的提高。
本发明还公开了一种面向云平台大数据处理的虚拟网络构建系统,所述系统包括:
参数计算模块,用于在作业过程中保证所有虚拟机的总耗时最少的情况下,计算通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和
位置确定模块,用于根据所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和从云平台上的服务器中确定通信代理的位置;
虚拟机分配模块,用于将所述云平台上的服务器中未设置通信代理的虚拟机分配至所述通信代理,以实现所述未设置通信代理的虚拟机与所述通信代理之间的映射关系。
优选地,所述参数计算模块中通过下式计算通信代理的最优总数及设于所述通信代理的服务器上的虚拟机最优数量之和,
其中,为Map阶段第i号服务器上的第j台虚拟机经历的时间,为Reduce阶段第i号服务器上的第j台虚拟机经历的时间,m为数据中心中服务器的数量,ni为第i号服务器上可用虚拟机的数量。
优选地,所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和的表达式如下,
其中,γ为服务器上部署了通信代理性能的变化率,μ0为该台虚拟机在所在服务器空载时的性能,nr为Reducer的数量,S为稳态时,固定时间段内输入数据包总大小的期望,N为在MapReduce进程中可用的虚拟机数量,且N=n1+n2+...+nm,B为任意两个服务器之间的数据传输率,Sr为每个Mapper上的Map阶段产生结果的数据大小,k为数据中心里通信代理的数目。
优选地,所述位置确定模块包括:
服务器选出子模块,用于通过背包算法在m个服务器中选出koptimal个,使得所选出的koptimal个服务器上可用虚拟机之和最接近于
代理设置子模块,用于将所选出的koptimal个服务器作为通信代理。
优选地,所述虚拟机分配模块包括:
排序子模块,用于将所述云平台上的服务器中未设置通信代理的虚拟机的性能进行降序排列,以获得虚拟机序列;
寻找子模块,用于将所述虚拟机序列中性能最高的虚拟机作为当前虚拟机,并寻找出负载最轻的通信代理;
分配子模块,用于将所述当前虚拟机分配给所述负载最轻的通信代理;
移除子模块,用于判断所述虚拟机是否已经全部分配完,否则将所述当前虚拟机从所述虚拟机序列中移除。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1.一种面向云平台大数据处理的虚拟网络构建方法,其特征在于,所述包括以下步骤:
S1:在作业过程中保证所有虚拟机的总耗时最少的情况下,计算通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和
S2:根据所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和从云平台上的服务器中确定通信代理的位置;
S3:将所述云平台上的服务器中未设置通信代理的虚拟机分配至所述通信代理,以实现所述未设置通信代理的虚拟机与所述通信代理之间的映射关系。
2.如权利要求1所述的方法,其特征在于,步骤S1中通过下式计算通信代理的最优总数及设于所述通信代理的服务器上的虚拟机最优数量之和,
其中,为Map阶段第i号服务器上的第j台虚拟机经历的时间,为Reduce阶段第i号服务器上的第j台虚拟机经历的时间,m为数据中心中服务器的数量,ni为第i号服务器上可用虚拟机的数量。
3.如权利要求2所述的方法,其特征在于,所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和的表达式如下,
其中,γ为服务器上部署了通信代理性能的变化率,μ0为该台虚拟机在所在服务器空载时的性能,nr为Reducer的数量,S为稳态时,固定时间段内输入数据包总大小的期望,N为在MapReduce进程中可用的虚拟机数量,且N=n1+n2+...+nm,B为任意两个服务器之间的数据传输率,Sr为每个Mapper上的Map阶段产生结果的数据大小,k为数据中心里通信代理的数目。
4.如权利要求1所述的方法,其特征在于,步骤S2包括:
S201:通过背包算法在m个服务器中选出koptimal个,使得所选出的koptimal个服务器上可用虚拟机之和最接近于
S202:将所选出的koptimal个服务器作为通信代理。
5.如权利要求1所述的方法,其特征在于,步骤S3包括:
S301:将所述云平台上的服务器中未设置通信代理的虚拟机的性能进行降序排列,以获得虚拟机序列;
S302:将所述虚拟机序列中性能最高的虚拟机作为当前虚拟机,并寻找出负载最轻的通信代理;
S303:将所述当前虚拟机分配给所述负载最轻的通信代理;
S304:判断所述虚拟机是否已经全部分配完,若是,则结束流程,否则将所述当前虚拟机从所述虚拟机序列中移除,并返回步骤S302。
6.一种面向云平台大数据处理的虚拟网络构建系统,其特征在于,所述系统包括:
参数计算模块,用于在作业过程中保证所有虚拟机的总耗时最少的情况下,计算通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和
位置确定模块,用于根据所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和从云平台上的服务器中确定通信代理的位置;
虚拟机分配模块,用于将所述云平台上的服务器中未设置通信代理的虚拟机分配至所述通信代理,以实现所述未设置通信代理的虚拟机与所述通信代理之间的映射关系。
7.如权利要求6所述的系统,其特征在于,所述参数计算模块中通过下式计算通信代理的最优总数及设于所述通信代理的服务器上的虚拟机最优数量之和,
其中,为Map阶段第i号服务器上的第j台虚拟机经历的时间,为Reduce阶段第i号服务器上的第j台虚拟机经历的时间,m为数据中心中服务器的数量,ni为第i号服务器上可用虚拟机的数量。
8.如权利要求7所述的系统,其特征在于,所述通信代理的最优总数koptimal及设于所述通信代理的服务器上的虚拟机最优数量之和的表达式如下,
其中,γ为服务器上部署了通信代理性能的变化率,μ0为该台虚拟机在所在服务器空载时的性能,nr为Reducer的数量,S为稳态时,固定时间段内输入数据包总大小的期望,N为在MapReduce进程中可用的虚拟机数量,且N=n1+n2+...+nm,B为任意两个服务器之间的数据传输率,Sr为每个Mapper上的Map阶段产生结果的数据大小,k为数据中心里通信代理的数目。
9.如权利要求6所述的系统,其特征在于,所述位置确定模块包括:
服务器选出子模块,用于通过背包算法在m个服务器中选出koptimal个,使得所选出的koptimal个服务器上可用虚拟机之和最接近于
代理设置子模块,用于将所选出的koptimal个服务器作为通信代理。
10.如权利要求6所述的系统,其特征在于,所述虚拟机分配模块包括:
排序子模块,用于将所述云平台上的服务器中未设置通信代理的虚拟机的性能进行降序排列,以获得虚拟机序列;
寻找子模块,用于将所述虚拟机序列中性能最高的虚拟机作为当前虚拟机,并寻找出负载最轻的通信代理;
分配子模块,用于将所述当前虚拟机分配给所述负载最轻的通信代理;
移除子模块,用于判断所述虚拟机是否已经全部分配完,否则将所述当前虚拟机从所述虚拟机序列中移除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410222239.3A CN104009904B (zh) | 2014-05-23 | 2014-05-23 | 面向云平台大数据处理的虚拟网络构建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410222239.3A CN104009904B (zh) | 2014-05-23 | 2014-05-23 | 面向云平台大数据处理的虚拟网络构建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104009904A true CN104009904A (zh) | 2014-08-27 |
CN104009904B CN104009904B (zh) | 2017-09-22 |
Family
ID=51370400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410222239.3A Active CN104009904B (zh) | 2014-05-23 | 2014-05-23 | 面向云平台大数据处理的虚拟网络构建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104009904B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577834A (zh) * | 2016-02-06 | 2016-05-11 | 清华大学 | 具有可预测性能的云数据中心两层带宽分配方法及系统 |
CN107566493A (zh) * | 2017-09-06 | 2018-01-09 | 中国科学院信息工程研究所 | 一种面向复杂用户需求的代理节点创建方法、代理服务方法和系统 |
TWI729613B (zh) * | 2019-12-09 | 2021-06-01 | 中華電信股份有限公司 | 服務功能鏈之虛擬網路功能部署決策方法 |
CN117492934A (zh) * | 2024-01-02 | 2024-02-02 | 深圳市伊登软件有限公司 | 一种基于云服务智能部署的数据处理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650331B1 (en) * | 2004-06-18 | 2010-01-19 | Google Inc. | System and method for efficient large-scale data processing |
WO2012068867A1 (zh) * | 2010-11-22 | 2012-05-31 | 刘建 | 虚拟机管理系统及其使用方法 |
CN102646062A (zh) * | 2012-03-20 | 2012-08-22 | 广东电子工业研究院有限公司 | 一种云计算平台应用集群弹性扩容方法 |
CN102904794A (zh) * | 2012-09-27 | 2013-01-30 | 北京邮电大学 | 一种虚拟网络映射方法和装置 |
CN103399496A (zh) * | 2013-08-20 | 2013-11-20 | 中国能源建设集团广东省电力设计研究院 | 智能电网海量实时数据负载仿真测试云平台及其测试方法 |
-
2014
- 2014-05-23 CN CN201410222239.3A patent/CN104009904B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650331B1 (en) * | 2004-06-18 | 2010-01-19 | Google Inc. | System and method for efficient large-scale data processing |
WO2012068867A1 (zh) * | 2010-11-22 | 2012-05-31 | 刘建 | 虚拟机管理系统及其使用方法 |
CN102646062A (zh) * | 2012-03-20 | 2012-08-22 | 广东电子工业研究院有限公司 | 一种云计算平台应用集群弹性扩容方法 |
CN102904794A (zh) * | 2012-09-27 | 2013-01-30 | 北京邮电大学 | 一种虚拟网络映射方法和装置 |
CN103399496A (zh) * | 2013-08-20 | 2013-11-20 | 中国能源建设集团广东省电力设计研究院 | 智能电网海量实时数据负载仿真测试云平台及其测试方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577834A (zh) * | 2016-02-06 | 2016-05-11 | 清华大学 | 具有可预测性能的云数据中心两层带宽分配方法及系统 |
CN105577834B (zh) * | 2016-02-06 | 2018-10-16 | 清华大学 | 具有可预测性能的云数据中心两层带宽分配方法及系统 |
CN107566493A (zh) * | 2017-09-06 | 2018-01-09 | 中国科学院信息工程研究所 | 一种面向复杂用户需求的代理节点创建方法、代理服务方法和系统 |
TWI729613B (zh) * | 2019-12-09 | 2021-06-01 | 中華電信股份有限公司 | 服務功能鏈之虛擬網路功能部署決策方法 |
CN117492934A (zh) * | 2024-01-02 | 2024-02-02 | 深圳市伊登软件有限公司 | 一种基于云服务智能部署的数据处理方法及系统 |
CN117492934B (zh) * | 2024-01-02 | 2024-04-16 | 深圳市伊登软件有限公司 | 一种基于云服务智能部署的数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104009904B (zh) | 2017-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rabbani et al. | On tackling virtual data center embedding problem | |
Lu et al. | Join-idle-queue: A novel load balancing algorithm for dynamically scalable web services | |
CN106656867B (zh) | 一种基于虚拟网络的应用感知的动态sdn配置方法 | |
Kuo et al. | Optimal approximation algorithm of virtual machine placement for data latency minimization in cloud systems | |
CN103336722B (zh) | 一种虚拟机cpu资源监控和动态分配方法 | |
CN104317749B (zh) | 信息写入方法和装置 | |
AU2013277589A1 (en) | Offloading virtual machine flows to physical queues | |
CN103401947A (zh) | 多个服务器的任务分配方法和装置 | |
CN107222531A (zh) | 一种容器云资源调度方法 | |
CN102541858A (zh) | 基于映射和规约的数据均衡性处理方法、装置及系统 | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
CN104009904A (zh) | 面向云平台大数据处理的虚拟网络构建方法及系统 | |
CN104391918A (zh) | 基于对等部署的分布式数据库查询优先级管理的实现方法 | |
CN106027323A (zh) | 用于gpu辅助网络话务监控和分析的技术 | |
CN109918201A (zh) | 任务卸载的控制方法和系统 | |
CN104536804A (zh) | 面向关联任务请求的虚拟资源调度系统及调度和分配方法 | |
CN108111335A (zh) | 一种调度和链接虚拟网络功能的方法及系统 | |
Hsu et al. | Virtual network mapping algorithm in the cloud infrastructure | |
CN115511086B (zh) | 一种针对超大模型的分布式推理部署系统 | |
CN105210324B (zh) | 策略与计费规则功能虚拟化方法、装置及系统 | |
CN106339802A (zh) | 任务分配的方法和装置、电子设备 | |
Wen et al. | Load balancing job assignment for cluster-based cloud computing | |
Kaur et al. | Latency and network aware placement for cloud-native 5G/6G services | |
Hsu et al. | Virtual network mapping through path splitting and migration | |
CN104301241A (zh) | 一种soa动态负载分发方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |