一种多虚拟机迁移调度的方法

文档序号:6382304阅读:127来源:国知局
专利名称:一种多虚拟机迁移调度的方法
技术领域
本发明涉及一种多虚拟机迁移的调度方法,主要涉及到在多虚拟机迁移过程中,对虚拟机迁移的目标宿主机进行选择的策略,以及对多虚拟机的迁移顺序进行规划的策略,属于虚拟化及云计算技术领域。
背景技术
目前,随着虚拟化技术在云计算等领域的广泛应用,虚拟机在服务器、数据中心上大量运行,对虚拟机的管理需求逐渐凸显出来。当前虚拟机的管理需求包含多个方面。比如,优化虚拟机部署以降低服务器的功耗;优化虚拟机部署以提高物理CPU的利用率;将内存相似度大的虚拟机迁移到同一宿主机,利用基于内容的页面共享技术(CBPS),使多个虚 拟机共享宿主机物理内存,以节省宿主机内存资源,提高宿主机内存使用效率,等。以上几种虚拟机管理需求,都涉及到多虚拟机迁移。多虚拟机的迁移过程,具有一定开销,因此针对不同情况下的多虚拟机迁移,各种调度算法的研究成为当前虚拟化和云计算领域的研究执占。目前的虚拟机调度算法,有针对宿主机的负载均衡进行调度的,也有针对宿主机的资源利用率情况进行调度的,还有些调度算法,将内存相似的虚拟机通过迁移放置在同一台宿主机上,以共享宿主机内存。这些调度算法,不管是采用静态的算法还是动态的算法,都主要集中于解决“如何完成调度目标”,并没有注重如何降低多虚拟机在迁移过程中的开销。随着云计算的大规模应用,在集群服务器或者数据中心,虚拟机的数量越来越多,涉及多虚拟机的迁移的开销越来越大。如果多虚拟机的调度方法能有效降低多虚拟机迁移的总的迁移次数,并在迁移次数相同的情况下,进而降低总的迁移时间,将直接降低整个系统中虚拟机总的停机次数和停机时间,对于提高系统的整体服务质量有重要意义。本发明就是针对多虚拟机迁移,提出一种调度方法以降低系统的总的迁移次数和迁移时间。

发明内容
本发明的目的是提出一种多虚拟机迁移的调度方法,该方法的输入是虚拟机的聚类,聚类的划分方式根据特定的迁移目标决定(比如根据内存相似度计算而决定通过迁移将内存相似度大虚拟机迁移到一台宿主机),方法的功能是为每个虚拟机聚类选择合适的宿主机,并为全部需要迁移的虚拟机设计合适的迁移顺序。该调度方法使多虚拟机的迁移总次数尽可能小,在相同迁移次数条件下,使迁移总时间尽可能小,从而是迁移过程,系统的总开销降低,提高系统的服务质量。根据本发明的一个方面,提供了一种多虚拟机迁移的调度方法,其特征在于包括步骤一.用户在主控节点机器上,输入多虚拟机的目标聚类。目标聚类的划分,由用户根据多虚拟机迁移的目标进行决定。同一聚类的虚拟机,最终将迁移到同一台目标宿主机上。步骤二 .主控节点通过向宿主机节点发出请求,通过宿主机节点反馈,获取到系统里全部宿主机节点的信息,以及宿主机上运行的全部虚拟机的信息。步骤三.根据步骤一和步骤二所取得的信息,主控节点调用“目标宿主机选择算法“,为虚拟机聚类选择合适的目标宿主机,形成虚拟机到目标宿主机的迁移映射。步骤四.主控节点向宿主机节点发出请求,收集各宿主机节点的负载情况。步骤五.主控节点,依据步骤三确定的迁移映射和步骤四收集到的宿主机负载信息,依据“迁移顺序决定算法“,为多虚拟机安排迁移顺序,并发出指令,控制各相关宿主机节点按照顺序执行迁移。


图I是本发明的多虚拟机迁移调度方法的系统总体框架图。图2是本发明的多虚拟机迁移调度方法的具体流程图。图3是本发明的一种实施实例的具体流程图。
具体实施例方式为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。本发明的主要思想是,在给定迁移目标的条件下,为系统内多虚拟机的迁移,选择合适的目标宿主机并安排合适的迁移顺序,优先降低系统总的迁移次数,其次降低总的迁移时间,以提高系统的整体服务质量。这在当前云计算时代,虚拟机被普遍采用的情况下,具有很广泛的应用价值。本发明的技术方案如下一种多虚拟机迁移的调度方法,其系统的总体的框架如图I所示。其中宿主机节点作为虚拟机运行的机器载体,通过虚拟机监控器运行了多个虚拟机,是多虚拟机迁移的主要场所。主控节点作为调度方法的运行载体,读取用户输入的虚拟机目标聚类信息,并获取各宿主机节点的信息(包括宿主机的配置信息和其上面所运行的虚拟机的信息等)。根据这些已知情况,调用目标宿主机选择算法,输出合适的多虚拟机的迁移策略,由控制模块按照该策略,发送虚拟机迁移指令给各宿主机节点,控制各节点机间的多虚拟机迁移。多虚拟机迁移的调度方法,主要体现在主控节点上,调度方法的具体流程如图2所示。该方法包含以下步骤步骤201.用户在主控节点机器上,输入多虚拟机的目标聚类。目标聚类的划分,由用户根据多虚拟机迁移的目标进行决定。同一聚类的虚拟机,最终将迁移到同一台目标宿主机上。步骤202.主控节点通过向宿主机节点发出请求,通过主机节点反馈,获取到系统里全部宿主机节点的信息,以及宿主机上运行的全部虚拟机的信息。步骤203.根据步骤201和步骤202所取得的信息,主控节点调用“目标宿主机选择算法“,为虚拟机聚类选择合适的目标宿主机,形成虚拟机到目标宿主机的迁移映射。步骤204.主控节点向宿主机节点发出请求,收集各宿主机节点的负载情况。
步骤205.主控节点,依据步骤203确定的迁移映射和步骤204收集到的宿主机负载信息,依据“迁移顺序决定算法“,为多虚拟机安排迁移顺序,并发出指令,控制各相关宿主机节点按照顺序执行迁移。其中,步骤201中输入的虚拟机的目标聚类,由用户提供。用户根据虚拟机迁移的目标,设定虚拟机的聚类,同一聚类的虚拟机,最终将被迁移到同一台宿主机。这种方式,保证了本发明的调度方法的广泛适用性。用户可以根据不同的应用场景,来划分虚拟机的聚类,比如根据虚拟机间的内存相似性,根据虚拟机的资源使用特性,根据负载均衡的要求,
坐寸o其中,步骤202中,主控节点向宿主机节点收集的信息,具体包括宿主机的各种硬件配置信息,宿主机能承载的最大虚拟机数量,宿主机当前运行的全部虚拟机的系统版本、CPU配置、内存大小、虚拟机编号。在主控节点端,给每个虚拟机数据表项,填写以上信 息,并将宿主机编号也记录在表项中,此时收集的宿主机编号,即是虚拟机的源宿主机编号。在主控节点中,同时会为每个宿主机维护一个记录。其中,步骤203中,“目标宿主机选择算法“,为虚拟机目标聚类选择合适的目标宿主机,形成虚拟机到目标宿主机的迁移映射,此过程分为2步走。首先,采用遍历方式,从虚拟机聚类到宿主机的映射解空间中,选择使系统总的迁移次数最少的映射的集合(因为可能存在多个虚拟机聚类到宿主机的映射方式,具有相同的迁移总次数)。其次,在这些总迁移次数最少的映射集合中,选择迁移总流量最小的映射。这是因为,即使是相同的迁移次数,由于迁移的虚拟机不同,流量也会不同。本步骤形成的虚拟机聚类到宿主机的映射,直接决定了每个聚类中的虚拟机应该迁移到的目标宿主机,也就是决定了全部虚拟机的迁移路径,不过并没有决定多虚拟机迁移的先后顺序。其中,步骤204中,收集宿主机的负载情况,由主控节点完成。主控节点向各宿主机节点发出请求,各宿主机节点反馈各自的cpu、内存、虚拟机数量等使用数据后,被主控节点记录在相应的表项中。其中,步骤205中,根据步骤204收集到的负载信息,对步骤203计算出的迁移映射进行进一步处理。依据一定的原则,安排多虚拟机迁移的先后顺序,并据此发出指令,控制各宿主机节点按照顺序执行迁移。依据的原则,可以多样,比如依据最小负载宿主机优先迁入,或者最大负载宿主机优先迁出等。同时,还可以兼顾到网络和并行处理的要求。3、优点及功效本发明是一种多虚拟机迁移调度的方法,它与现有技术相比,具有以下主要的优点和功效(1)从系统宏观的角度,控制了多虚拟机迁移的总次数和总时间,使迁移的效率更高,填补了相关领域的空白。(2)由于本发明的算法思想具有一定的普适性,同时调度方法将虚拟机聚类作为输入,与算法的计算过程剥离,不同的迁移目的,只需要修改输入的虚拟机聚类即可,使本方法的调度方法具有比较广泛的适用性。比如可以用于基于内存相似性的虚拟机迁移,也可以用于基于负载均衡的虚拟机迁移,算法的思想甚至还可以用于路径选择等超越了虚拟机迁移的领域。本发明所需要的硬件设备如图I所示,要求宿主机能支持虚拟化技术,并要求宿主机之间是通过网络互连的,能直接通信,不需要经过中间节点。虚拟机监控器无要求,目前流行的主流产品均可,差别只在于修改个别函数接口。为简化迁移过程,最好要求宿主机及其虚拟机监控器都是同构的。当然异构的也可以,差别在于迁移过程会稍复杂,这并不涉及到本发明的核心部分。下面以一实例进行详细说明。本实例所用到本发明的调度方法,具体步骤分为5步,如图3所示。步骤301.用户在主控节点机器上,输入多虚拟机的目标聚类。目标聚类的划分,由用户根据多虚拟机迁移的目标进行决定。同一聚类的虚拟机,最终将迁移到同一台目标宿主机上。本实例中依据内存相似性,将内存相似性较大的虚拟机划分为一个聚类,以将它们迁移到同一个宿主机上,便于宿主机内存共享。
步骤302.主控节点通过向宿主机节点发出请求,通过宿主机节点反馈,获取到系统里全部宿主机节点的信息,以及宿主机上运行的全部虚拟机的信息,记录在主控节点中。步骤303.根据步骤301和步骤302所取得的信息,主控节点调用“目标宿主机选择算法“,为虚拟机聚类选择合适的目标宿主机,形成虚拟机到目标宿主机的迁移映射。“目标宿主机选择算法“,为虚拟机聚类选择合适的目标宿主机,形成虚拟机到目标宿主机的迁移映射。“目标宿主机选择算法“的思想是在虚拟机聚类到目标宿主机的所有映射中(称之为”迁移映射“),利用堆栈,采用遍历的方式,选择总的迁移次数最少的映射,形成一个集合,然后从这个集合中,选择一个使总的迁移时间最下的映射,即作为最终的目标宿主机选择策略。虚拟机聚类到目标宿主机的一种映射,其思路是优先将虚拟机聚类映射到本聚类虚拟机的源宿主机上(对于一种映射f,选择其中一台宿主机即可),如果对应宿主机已经被之前的聚类全部占用,则在剩下还未被映射到的宿主机中挑选X台(X可以设置),然后一一尝试。对于最后一个处理的聚类,可以将剩余的空闲宿主机全部尝试映射一次。X的值可设置,增加了算法的灵活性。X值越大,映射集合F越大,最终的解最优的可能性越大,同时算法的遍历次数越多,复杂度更大。步骤304.主控节点向宿主机节点发出请求,收集各宿主机节点的当前负载情况。步骤305.主控节点,依据步骤303确定的迁移映射和步骤304收集到的宿主机负载信息,依据“迁移顺序决定算法“,为多虚拟机安排迁移顺序,并发出指令,控制各相关宿主机节点按照顺序执行迁移。本实例中步骤305,首先根据步骤303选择的迁移映射生成所有虚拟机的迁移路径,每个迁移路径表示为一个〈虚拟机编号,源宿主机号,目标宿主机号〉的三元组,然后依据最小负载宿主机优先迁入的原则,进行排序。迁移路径的排序方法是,按照当前负载由小到大的顺序,以“目标宿主机”为关键字对三元组排序。最后,依据排序后的结果,执行三元组所代表的排序任务。为保证系统的实时性,可以设置在每台宿主机都迁入过一次后,更新一次当前负载情况,依据更新后的宿主机负载,再次排序,然后继续执行剩下的迁移。最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种多虚拟机迁移的调度方法,其特征在于包括 步骤一.用户在主控节点机器上,输入多虚拟机的目标聚类。目标聚类的划分,由用户根据多虚拟机迁移的目标进行决定。同一聚类的虚拟机,最终将迁移到同一台目标宿主机上。
步骤二.主控节点通过向宿主机节点发出请求,通过宿主机节点反馈,获取到系统里全部宿主机节点的信息,以及宿主机上运行的全部虚拟机的信息。
步骤三.根据步骤一和步骤二所取得的信息,主控节点调用“目标宿主机选择算法“,为虚拟机聚类选择合适的目标宿主机,形成虚拟机到目标宿主机的迁移映射。
步骤四.主控节点向宿主机节点发出请求,收集各宿主机节点的负载情况。
步骤五.主控节点,依据步骤三确定的迁移映射和步骤四收集到的宿主机负载信息,依据“迁移顺序决定算法“,为多虚拟机安排迁移顺序,并发出指令,控制各相关宿主机节点按照顺序执行迁移。
2.根据权利要求I所述的一种一种多虚拟机迁移的调度方法,其特征在于步骤一中所述的“用户在主控节点机器上,输入多虚拟机的目标聚类”是指输入的虚拟机的目标聚类,由用户提供。用户根据虚拟机迁移的目标,设定虚拟机的聚类,同一聚类的虚拟机,最终将被迁移到同一台宿主机。这种方式,保证了本发明的调度方法的广泛适用性。用户可以根据不同的应用场景,来划分虚拟机的聚类,比如根据虚拟机间的内存相似性,根据虚拟机的资源使用特性,根据负载均衡的要求,等。
3.根据权利要求I所述的一种一种多虚拟机迁移的调度方法,其特征在于步骤二中所述的“主控节点通过向宿主机节点发出请求,通过宿主机节点反馈,获取到系统里全部宿主机节点的信息,以及宿主机上运行的全部虚拟机的信息“是指主控节点向宿主机节点收集的信息,具体包括宿主机的各种硬件配置信息,宿主机能承载的最大虚拟机数量,宿主机当前运行的全部虚拟机的系统版本、CPU配置、内存大小、虚拟机编号。在主控节点端,给每个虚拟机数据表项,填写以上信息,并将宿主机编号也记录在表项中,此时收集的宿主机编号,即是虚拟机的源宿主机编号。在主控节点中,同时会为每个宿主机维护一个记录。
4.根据权利要求I所述的一种一种多虚拟机迁移的调度方法,其特征在于步骤三中所述的“根据步骤一和步骤二所取得的信息,主控节点调用‘目标宿主机选择算法’,为虚拟机聚类选择合适的目标宿主机,形成虚拟机到目标宿主机的迁移映射“是指“目标宿主机选择算法“,为虚拟机目标聚类选择合适的目标宿主机,形成虚拟机到目标宿主机的迁移映射,此过程分为2步走。首先,采用遍历方式,从虚拟机聚类到宿主机的映射解空间中,选择使系统总的迁移次数最少的映射的集合(因为可能存在多个虚拟机聚类到宿主机的映射方式,具有相同的迁移总次数)。其次,在这些总迁移次数最少的映射集合中,选择迁移总流量最小的映射。这是因为,即使是相同的迁移次数,由于迁移的虚拟机不同,流量也会不同。本步骤形成的虚拟机聚类到宿主机的映射,直接决定了每个聚类中的虚拟机应该迁移到的目标宿主机,也就是决定了全部虚拟机的迁移路径,不过并没有决定多虚拟机迁移的先后顺序。
5.根据权利要求I所述的一种一种多虚拟机迁移的调度方法,其特征在于步骤四中所述的“主控节点向宿主机节点发出请求,收集各宿主机节点的负载情况“是指收集宿主机的负载情况,由主控节点完成。主控节点向各宿主机节点发出请求,各宿主机节点反馈各自的CPU、内存、虚拟机数量等使用数据后,被主控节点记录在相应的表项中。
6.根据权利要求I所述的一种一种多虚拟机迁移的调度方法,其特征在于步骤五中所述的“主控节点,依据步骤三确定的迁移映射和步骤四收集到的宿主机负载信息,用“迁移顺序决定算法“,为多虚拟机安排迁移顺序,并发出指令,控制各相关宿主机节点按照顺序执行迁移”是指根据步骤四收集到的负载信息,对步骤三计算出的迁移映射进一步处理。依据一定原则,安排多虚拟机迁移的顺序,并据此发出指令,控制各宿主机节点按顺序执行迁移。依据的原则可以多样,比如依据最小负载宿主机优先迁入,或者最大负载宿主机优先迁出等。同时,还可以兼顾到网络和并行处理的要求。
全文摘要
本发明涉及一种多虚拟机迁移的调度方法,在多虚拟机迁移过程中,对虚拟机迁移的目标宿主机进行选择的策略,并对多虚拟机的迁移顺序进行规划的策略,包括读取虚拟机划分的目标聚类信息;获取系统内宿主机信息及其上运行的全部虚拟机的信息计算虚拟机聚类到目标宿主机的合适的映射,以为虚拟机选择合适的目标宿主机;收集宿主机的负载情况;根据负载和迁移映射,安排多虚拟机的迁移顺序,并控制执行。本发明从系统宏观的角度,控制了多虚拟机迁移的总次数和总时间,使迁移效率更高。由于本发明的算法思想具有一定的普适性,同时由于将虚拟机聚类作为输入,与算法的计算过程相剥离,具有比较广泛的适用性。
文档编号G06F9/48GK102968344SQ201210488210
公开日2013年3月13日 申请日期2012年11月26日 优先权日2012年11月26日
发明者肖利民, 程贤初, 张振中, 蔺波, 秦静超, 刘宇航 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1