一种在多个数据中心之间迁移多个关联虚拟机的方法_2

文档序号:9219815阅读:来源:国知局
明提供的具体迀移过程:
[0028] 步骤A所需输入内容:
[0029] 1、底层网络构成的无向权重图Gs=(Ns,Rs,Es,CE,CN,CK),其中,Ns、Rs、Es、Ce、Cn、Ck 分别代表底层网络的服务器集合、底层网络路由器和交换机的集合、底层网络链路的集合、 底层网络的所有链路资源集合、底层网络的所有服务器资源集合以及底层网络的所以路由 器和交换机资源集合;
[0030]2、一个达到的VDC请求队列ArrivedVDC;
[0031] 步骤A输出内容:重新映射代价和一个被阻塞的VDCs迀移请求集合VDCbl。;
[0032]步骤A-1:初始化:=0,= 0 ?,
[0033] 步骤A-2:根据输入内容进行判定:若,则执行步骤A-3;否则,执行 步骤A-11;
[0034] 步骤A-3:若0,则释放ExpiredVDC集合中所有请求占用的节点资源 及链路资源,使= 0 ;否则,转步骤A-4 ;
[0035] 步骤A-4:从请求队列ArrivedVDC中取出第一个VDC迀移请求;
[0036] 步骤A-5:调用步骤B重新映射当前VDC迀移请求;
[0037] 步骤A-6:若步骤A-5能够找到一个该VDC迀移请求的重新映射方案M,则执行步 骤A-7;否则,转步骤A-9;
[0038] 步骤A-7:调用步骤D迀移当前VDC迀移请求;
[0039] 步骤A-8:若该VDC迀移请求迀移成功,则将映射代价更新为 O,并更新底层网络资源,其中M。为当前VDC请求重新映射的代价,转步骤A-10;否则,转步骤A-9;
[0040] 步骤A-9:更新迀移请求集合VDCbl。为VDCblQ=VDCbl。U{VDCJ,其中VDCi指当前 VDC迀移请求;
[0041]步骤A-10:更新到达队列ArrivedVDC为ArrivedVDC=ArrivedVDC-VDC,执行步 骤A-11
[0042] 步骤A-l1:对到达队列ArrivedVDC中剩余未处理的VDC迀移请求依次按照步骤 A-2至步骤A-11所述方法实现迀移;
[0043] 步骤A-12返回并输出和VDCbl。;
[0044] 步骤B.重新映射VDC迀移请求的第一个虚拟机VM1;
[0045] 本步骤是一个重新映射单个VDC迀移请求的过程;定义Conf^VMi) =|Adj(VMD|为 当前VDC中第i个虚拟机VMi的度数;从本步骤可以看出,当第一个虚拟机每次映射到一个 不同的底层服务器,就会延伸出一种重新映射方案;所以在最理想的情况下,底层网络有多 少台服务器,就会有多少种重新映射方案Mp,其中-%, = ,M〗是本次重新映射 方案Mp的映射代价,指当前VDC中所有虚拟机的重新映射记录集合,指当前VDC所 有链路的重新映射集合;然后,在这些映射方案中找出映射成本最小的重新映射方案作为 最终的映射方案M,这样能够降低映射成本和阻塞率,与此同时,算法的复杂度也会随着底 层网络服务器数量的增加而增加;本步骤具体包括以下过程:
[0046] 步骤B所需输入内容:
[0047] 1、底层网络构成的无向权重图Gs= (Ns,Rs,Es,CE,CN,CK);
[0048] 2、一个VDC迀移请求构建的无向权重图Gv= (Nv,Ev,CN,CE,CD,VN,BN,,其 中,Nv、Ev、CN、CE、CD、VN、BN、Mg、分别代表VDC迀移请求中的虚拟机集合、VDC迀移请 求中的虚拟链路集合、所有虚拟机的资源约束集合、所有链路资源约束集合、所有虚拟链路 的最大时延约束集合、所有虚拟机的原始脏数据的数量集合、所有虚拟机的迀移带宽需求 集合、所有虚拟机的原始映射记录集合、所有虚拟链路的原始映射记录;
[0049] 步骤B输出内容:重新映射方案M ;
[0050] 步骤B-1:将当前VDC的虚拟机集合Nv中的虚拟机按照各自的度数Con(VM)由高 至低排序并储存在集合MVMv*,其中VMi为集合Nv中第i个虚拟机,将此时的链路资源CE 备份并记为Backup1 ;
[0051] 步骤B-2:初始化集合-Mg,Us=UMNS,Mcost=°°,M=0,其中Mcost 为当前VDC迀移请求的重新映射代价;
[0052] 步骤B-3:集合MVMv中取出第一个虚拟机VM1;依次将该虚拟机映射到底层网络的 第一个服务器至最后一个服务器,每一次映射对应一个映射方案,每一次映射依次重复执 行步骤B-4至步骤B-9所述方法,剔除不可用的映射方案;
[0053] 步骤B-4:初始化集合Us =UMNs,N=MVMv,E=E#P=0,其中Nmapped指当 前VDC迀移请求中已映射成功的虚拟机集合,将链路资源CE根据恢复成Backupl所记录的 状态;将虚拟机VMi映射到底层网络的第一个服务器;
[0054] 步骤B-5:根据方程Cost(VMi-ns) =p(ns) *e(VMJ计算和记录Cost(VMi-ns), 其中P(ns)指服务器资源的单位成本,e(VMJ指虚拟机VMi的资源约束;
[0055] 步骤B-6:若CosUVMi-ns)超过了当前映射的底层网络的服务器的资源总量, 则剔除将虚拟机VMi映射到当前映射的底层网络的服务器的映射方案,按照步骤B-4的 操作依次将虚拟机映射到底层网络的下一个服务器及剩余服务器直至映射时当前 Cost(VMi-ns)不超过当前服务器的资源总量时止,记此时虚拟机VMi映射到底层网络的服 务器为该虚拟机的映射目标服务器,执行步骤B-7 ;
[0056] 步骤B-7:更新参量:Nmapped=N-ed+VMi,N=N-VM"CVDC=Cost(VM丨一ns),Us = Us-ns^PME (VMi) =ns;
[0057] 步骤B-8:基于虚拟机当前映射目标,调用步骤C为剩余虚拟机寻找映射目 标进而寻找完整的映射方案;
[0058] 步骤B-9:若步骤B-8无法获得可用的映射方案,则剔除将虚拟机VMi映射到当前 指定的底层网络的服务器产生的映射方案M p,否则,更新= C;TC 和;
[0059] 步骤B-10:若底层网络中的服务器均已遍历完依然未找到可用的映射方案,则直 接退出步骤B并返回信息"无法提供当前VDC迀移请求的重新映射方案";
[0060] 步骤B-l 1:按步骤B-4至步骤B-9所述方法,依次将虚拟机¥1^映射到底层网络 的第一个服务器至最后一个服务器,并剔除不可用的映射方案后,从可用的方案中选取 最小的映射方案M p,令M = Mp,输出M ;
[0061] 步骤C.重新映射VDC迀移请求的全部虚拟机;
[0062] 本步骤是重新映射单个VDC迀移请求的一个子过程,其中,Mp是第一个虚拟机每次 映射到一个不同的底层节点,就会延伸出来的一个完整的映射方案;只要映射不失败,每调 用一次步骤C,就会产生一个映射方案;在^中,包括本方案的映射代价,本步骤的节点 映射集合和本步骤的链路映射集合三部分;Nmapped,N,Us都是从步骤B中的步骤B-7 传进来的参数;
[0063] 步骤C所需输入内容:1、底层网络Gs= (Ns,Rs,Es,CE,CN,C K);
[0064] 2、从步骤B的步骤B-7传进来的参数Nmapped,N,MYVMi) = nJP Us;
[0065] 3、一个VDC迀移请求Gv =(Nv,Ev,CN,CE,CD,VN,BN,);
[0066] 步骤C输出内容:重新映射方案;
[0067] 步骤C-l:初始A
[0068] 步骤C-2:如果|N| ! = 0,即若集合N为非空,执行步骤C-3;否则,转步骤C-13;
[0069] 步骤C-3:初始化= 〇〇和勤^_W2=0,将此时的链路资源CE备份并记为 Backup2,从集合N中选择一个与集合N_ped中的虚拟机邻接的虚拟机VM k;
[0070] 步骤C-4:将虚拟机VMk映射到底层网络的第一个服务器n ke Us,执行步骤C-5;
[0071]步骤 C-5:更新 =0,计算 COST (nk) = e (VMk) *p (nk),其中 p (nk)指 服务器资源的单位成本,e (VMk)指虚拟机VMi的资源约束;
[0072]步骤C-6:选取与虚拟机VMk相连接的一条链路1 (VMk,VM」)GEv,VM」GNmapped,[0073]步骤C-7:用Dijkstra算法为链路1 (VMk,VMp寻找一条可行路径,若没有得到可 行路径,就令C0ST(nk)=<-并转步骤C-10 ;若找到一条可用路径paWMbVMj)),执行步骤 C-8 ;
[0074] 步骤C-8:根据找到的路径p(l(VMt,VM,_))和资源需求,计算:
[0075]
[0076] 其中,P(es)指底层网络链路es的单位资源成本;从底层链路资源C E中扣除路径 p(1 (VMk, VMj))对应的链路资源,更新RouteRecordl=RouteRecordl+p(1 (VMk, VMj)),转步 骤C-6 ;
[0077]步骤C-9:依次选取与虚拟机VMk相连接的每一条链路1 (VMk,VMj) GEv, VMjE Nmappral,并依次对每一条链路重复按步骤C-7至步骤C-8操作寻找相应的可行路径,当 所有链路l(VMk,VMp都找到了相应的可行路径就直接执行步骤C-10 ;只要其中有一条链路 1 (VMk,VMp没有得到可行路径,就令COST (nk) = 并转步骤C-10 ;
[0078] 步骤C-10 :将底层链路资源CE恢复成Backup2所记录的状态;如果 CttSTh) < C^n,更新 )、ID = nk和 RouteRecord2 = RouteRecordl 执行步 骤C-ll ;否则,直接执行步骤C-ll ;
[0079] 步骤C-ll:依次将将虚拟机VMk映射到U s中的第二个服务器至最后一个服务器, 每个映射过程都对应一个CO
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1