一种基于虚拟机热迁移的物理机与虚拟机映射转换方法与流程

文档序号:12733267阅读:163来源:国知局
本发明属于互联网
技术领域
,涉及一种基于虚拟机热迁移的物理机与虚拟机映射转换方法,在云数据中心下进行物理机与虚拟机的映射转换时,能够避免物理机资源约束以及进行虚拟机并行迁移。
背景技术
:在云数据中心,由于虚拟机动态的产生和销毁,以及服务热点的存在经常会导致物理机负载不均衡。同时,为减少同一个租户下各个虚拟机的通信时延,要求虚拟机放置在相互靠近的位置,比如同一个机架下。为此,云数据中心经常进行虚拟机的动态部署调整,即数据中心管理员通过监控系统实时监控物理机的资源利用情况,在合适的时机进行虚拟机重新部署,将当前的物理机与虚拟机映射关系,通过虚拟机热迁移,转换为另一种物理机与虚拟机的映射关系,以此来实现负载均衡或者减少通信时延的目的。虚拟机热迁移通常会消耗额外物理机资源,并带来应用性能损失,并行迁移能实现快速迁移,减少潜在风险。在选择虚拟机进行并行迁移时需要满足一些资源约束,比如目的物理机可能不能容纳待迁移虚拟机的虚拟机,直到其迁移出部分需要迁移的虚拟机之后。这就表明虚拟机迁移之间存在一定的依赖关系,有些迁移任务需要在另一些迁移任务完成之前完成。另外虚拟机迁移可能形成环路,比如多个不同租户的虚拟机进行聚集操作以减小通信时延时,可能发生物理机交换虚拟机的情况,当虚拟机迁移形成环路时,形成环路有可能形成迁移死锁,需要将部分虚拟机迁移到临时物理机节点,以打破环路。现有的虚拟机并行迁移方法没有考虑迁移任务相互依赖以及迁移死锁的问题。本发明采用类似于拓扑排序的方法,在解决上述两个问题的同时,虚拟机热迁移是不断在两台物理机之间迭代复制内存的过程,可用带宽与迁移时间是指数关系,为保证虚拟机快速迁移,本发明规定在同一台物理机上,一次用最大带宽只迁移一台虚拟机,以降低资源竞争,缩短迁移时间。技术实现要素:发明目的:为了解决现有技术未考虑迁移任务相互依赖以及迁移死锁的问题,本发明提出一种基于虚拟机热迁移的物理机与虚拟机映射转换方法,能有效地实现虚拟机并行迁移,减少迁移时间。技术方案:为解决上述技术问题,本发明中的基于虚拟机热迁移的物理机与虚拟机映射转换方法,包括以下步骤:(1)确定数据中心中每台物理机的待迁出虚拟机集合和待迁入虚拟机集合;(2)依次遍历数据中心中的物理机,根据每台物理机的待迁出虚拟机集合和待迁入虚拟机集合以及虚拟机并行迁移原则选择待迁移的虚拟机;(3)将待迁移的虚拟机迁移至相应的目的物理机,并更新相应物理机的待迁出虚拟机集合和待迁入虚拟机集合;(4)步骤(2)和步骤(3)作为一次迭代过程,一次迭代结束后,判断所有虚拟机是否都迁移完毕,否则重复执行步骤(2)和步骤(3)的迭代过程,直到虚拟机迁移完毕。其中,步骤(2)中根据每台物理机的待迁出虚拟机集合和待迁入虚拟机集合以及虚拟机并行迁移原则选择待迁移的虚拟机,具体为:若该物理机的待迁出虚拟机集合为空集,待迁入虚拟机集合不为空集,则选择该物理机的待迁入虚拟机集合中任意一台虚拟机作为待迁移的虚拟机;若该物理机的待迁出虚拟机集合和待迁入虚拟机集合都不为空集,且该物理机能同时容纳待迁出集合中的所有虚拟机以及待迁入集合中的部分虚拟机,则选择待迁入虚拟机集合中能被该物理机容纳的任意一台虚拟机作为待迁移的虚拟机;同时,对于某一物理机中待迁入虚拟机集合里的虚拟机,只有满足所述虚拟机并行迁移原则才能作为待迁移的虚拟机,具体为:1)若该虚拟机所要迁入的物理机在本次迭代中具有足够资源容纳该虚拟机;2)在本次迭代过程中,除了迁移该虚拟机,该虚拟机所要迁出的物理机不具有其他迁移任务。进一步地,步骤(2)还包括:若在本次迭代中没有选择出待迁移的虚拟机,则随机一台虚拟机作为临时迁移虚拟机。针对上述情况,相应地,步骤(3)还包括:对于临时迁移虚拟机,将该虚拟机先迁往预设的临时物理机,对于其他虚拟机,则继续执行步骤(4),待其他虚拟机迁移完毕后,再将该临时虚拟机迁移至其目的物理机。有益效果:本发明中基于虚拟机热迁移的物理机与虚拟机映射转换方法,首先根据数据中心每台物理机的待迁入和待迁出虚拟机集合逐次选择一组符合并行条件的虚拟机,然后并行地迁移所选择的虚拟机,进一步,若在一次迭代过程中没有符合并行条件的虚拟机,则迁移执行模块随机选择一台待迁移虚拟机并迁移至临时物理机节点。本发明方法能够减少迁移时间,相对于依次顺序迁移,并行迁移能有效减少虚拟机迁移时间,提高虚拟机整合效率;能够解决虚拟机迁移之间任务依赖以及迁移环路问题,使并行迁移顺利进行;方便简单,仅需要知道当前映射信息和目标映射信息就能实现转换,不需要监控额外的资源利用信息,程序设计简单有效,便于实施。附图说明图1是本发明中基于虚拟机热迁移的物理机与虚拟机映射转换方法的应用场景图。具体实施方式下面结合实施例对本发明做进一步的详细说明,本实施列对本发明不构成限定。如图1所示的场景中,云数据中心中,一台物理机包含多个虚拟机,物理机与虚拟机之间存在映射关系,如虚拟机迁移之前,原物理机a与虚拟机A、B之间存在映射关系,原物理机b与虚拟机C、D之间存在映射关系,虚拟机迁移之后,原物理机a与虚拟机A、C之间存在映射关系,原物理机b与虚拟机B、D之间存在映射关系。本发明中基于虚拟机热迁移的物理机与虚拟机映射转换方法,应用于该场景,用于完成虚拟机的动态部署,主要包括并行虚拟机的选择和迁移执行两部分,具体包括以下步骤:(1)确定数据中心中每台物理机的待迁出虚拟机集合和待迁入虚拟机集合;(2)依次遍历数据中心中的物理机,根据每台物理机的待迁出虚拟机集合和待迁入虚拟机集合以及虚拟机并行迁移原则选择待迁移的虚拟机;(3)将待迁移的虚拟机迁移至相应的目的物理机,并更新相应物理机的待迁出虚拟机集合和待迁入虚拟机集合;(4)步骤(2)和步骤(3)作为一次迭代过程,一次迭代结束后,判断所有虚拟机是否都迁移完毕,否则重复执行步骤(2)和步骤(3)的迭代过程,直到虚拟机迁移完毕。对于某一台物理机,步骤(2)中选择待迁移的虚拟机,具体为:若该物理机的待迁出虚拟机集合为空集,待迁入虚拟机集合不为空集,则选择该物理机的待迁入虚拟机集合中任意一台虚拟机作为待迁移的虚拟机;若该物理机的待迁出虚拟机集合和待迁入虚拟机集合都不为空集,且该物理机能同时容纳待迁出集合的所有虚拟机,以及待迁入集合中的部分虚拟机,则选择待迁入虚拟机集合中能被该(目的)物理机容纳的任意一台虚拟机作为待迁移的虚拟机。选择虚拟机时要保证目的物理机此时能容纳此物理机,同时要避免迁移引起资源竞争,降低迁移效率。因此,在每次迭代中选择待迁移的虚拟机时,需要考虑并行迁移,虚拟机需要满足的并行迁移条件为:1)在本次迭代中,待迁移的虚拟机所要迁入的目的物理机有足够资源容纳此虚拟机;2)在本次迭代过程中,除了迁移该待迁移的虚拟机,该待迁移的虚拟机所要迁出的物理机不具有其他迁移任务。即:在一次迭代过程中,一台物理机至多有一台虚拟机在执行迁入或者迁出操作,若此虚拟机所在的物理机已经有迁移任务,则不能选择此虚拟机。如果没有满足上述条件的待迁移的虚拟机,则发生了死锁,即由于物理机资源限制,虚拟机不能相互迁移(并行迁移),物理机需要迁移出部分虚拟机才能容纳待迁入的虚拟机,此时可以任意选择一台虚拟机作为临时迁移虚拟机,准备将其迁入临时物理机,对其他虚拟机先按照迭代步骤,选择出每次迭代中待迁移的虚拟机,并进行并行迁移,等这些其他虚拟机迁移完毕后,再将临时迁移虚拟机迁移到其目的物理机。比如物理机PM1想要虚拟机VM1到PM2,PM2想要迁移VM2到PM1,但是PM1和PM2均不能同时容纳VM1和VM2,这时候就需要将VM1或者VM2迁移到临时节点。若将VM1迁移至临时物理机节点,可以通过先将VM2从PM2迁移至PM1,然后将VM1从临时物理机节点迁移到PM2的方式来完成迁移工作。下面通过一个例子来说明选择并行虚拟机的过程,假设数据中心每台物理机的待迁入虚拟机和待迁出虚拟机如下表1所示,并且假设由于资源限制物理机PM1至PM5最多同时容纳VM1至VM6中的两台虚拟机,遍历顺序为从PM1到PM5。表1数据中心每台物理机的待迁入虚拟机集合和待迁出虚拟机集合物理机待迁出虚拟机待迁入虚拟机PM1VM1VM2VM3PM2VM3VM1PM3VM4VM6VM2PM4VM5VM4PM5VM5VM6第一次迭代:依次遍历物理机PM1至物理机PM5,根据表1中各物理机中待迁出虚拟机集合和待迁入虚拟机集合,获取此次迭代可以迁移的虚拟机。物理机PM1中待迁出虚拟机集合和待迁入虚拟机集合均不为空集,但物理机PM1可以同时容纳迁出集合的所有虚拟机,但不能再容纳迁入集合中的任意一台虚拟机(PM1上以及有两台虚拟机),对于虚拟机VM3,所要迁入的物理机PM1中没有足够的空间容纳虚拟机VM3,则虚拟机VM3不能被作为待迁移的虚拟机;物理机PM2待迁出虚拟机集合和待迁入虚拟机集合均不为空集,且可以同时容纳虚拟机VM3和VM1,则可以选择虚拟机VM1作为待迁移的虚拟机;物理机PM3中待迁出虚拟机集合和待迁入虚拟机集合均不为空集,但物理机PM3不能同时容纳迁出集合的所有虚拟机,以及迁入集合中的任意一台虚拟机,物理机PM3中没有足够的空间容纳虚拟机VM2,则虚拟机VM2不能被作为待迁移的虚拟机;物理机PM4待迁出虚拟机集合和待迁入虚拟机集合均不为空集,且可以同时容纳虚拟机VM5和VM4,则可以选择虚拟机VM4作为待迁移的虚拟机;对于虚拟机VM5和VM6,所要迁入的物理机PM5中待迁出虚拟机集合为空集,待迁入虚拟机集合均不为空集,则可以选择VM5或VM6作为待迁移的虚拟机,但是虚拟机VM5所在的物理机PM4已经有其他迁移任务(迁入虚拟机VM4),以及虚拟机VM6所在的物理机PM3已经有迁移任务(迁出虚拟机VM4),则不能选择虚拟机VM5和VM6。因此,在遍历完数据中心中的所有物理机后,可以确定本次迭代中作为并行迁移的虚拟机为VM1和VM4,完成迁移后,更新待迁出虚拟机集合和待迁入虚拟机集合,如表2所示。表2第一次迁移后待迁出虚拟机集合和待迁入虚拟机集合物理机待迁出虚拟机待迁入虚拟机PM1VM2VM3PM2VM3PM3VM6VM2PM4VM5PM5VM5VM6第二次迭代:依次遍历物理机PM1至物理机PM5,根据表2所示的各物理机中待迁出虚拟机集合和待迁入虚拟机集合,获取此次迭代可以迁移的虚拟机。物理机PM1中待迁出虚拟机集合和待迁入虚拟机集合均不为空集,且物理机PM1可以同时容纳迁入集合和迁出集合中的所有虚拟机,则可以选择虚拟机VM3作为待迁移的虚拟机;物理机PM2没有迁入的虚拟机;物理机PM3待迁出虚拟机集合和待迁入虚拟机集合均不为空集,且可以同时容纳虚拟机VM6和VM2,但由于遍历物理机PM1时已经选择VM3作为待迁移虚拟机,因此虚拟机VM2在物理机PM1已经存在迁移任务,物理机PM1在一次迭代过程中最多只能进行一项迁移任务,所以此时放弃选择VM2为待迁移虚拟机;物理机PM4没有迁入的虚拟机;物理机PM5中待迁出虚拟机集合为空集,待迁入虚拟机集合均不为空集,则可以选择VM5或VM6作为并行迁移的虚拟机。因此,可以并行迁移的组合有:VM3和VM5,VM3和VM6。在遍历完数据中心中的所有物理机后,假设本次迭代中作为并行迁移的虚拟机为VM3和VM5,完成迁移后,更新待迁出虚拟机集合和待迁入虚拟机集合,如表3所示。表3第二次迁移后待迁出虚拟机集合和待迁入虚拟机集合物理机待迁出虚拟机待迁入虚拟机PM1VM2PM2PM3VM6VM2PM4PM5VM6第三次迭代:依次遍历物理机PM1至物理机PM5,根据表3所示的各物理机中待迁出虚拟机集合和待迁入虚拟机集合,物理机PM1、PM2不存在待迁入虚拟机;物理机PM3待迁出虚拟机集合和待迁入虚拟机集合均不为空集,且可以同时容纳虚拟机VM6和VM2,则可以选择虚拟机VM2作为待迁移的虚拟机;物理机PM4不存在待迁入虚拟机;物理机PM5中待迁出虚拟机集合为空集,待迁入虚拟机集合均不为空集,但是由于在遍历PM3时将VM2作为待迁移虚拟机,物理机PM3在一次迭代过程中只能有一项迁移任务,因此放弃选择VM6。因此,本次迭代中选择VM2作为待迁移的虚拟机,完成迁移后,更新待迁出虚拟机集合和待迁入虚拟机集合,如表4所示。表4第三次迁移后待迁出虚拟机集合和待迁入虚拟机集合物理机待迁出虚拟机待迁入虚拟机PM1PM2PM3VM6PM4PM5VM6第四次迭代:依次遍历物理机PM1至物理机PM5,选择虚拟机VM6作为待迁移虚拟机。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1