虚拟化集群负载在多台物理机中均衡分配的方法

文档序号:6428701阅读:348来源:国知局
专利名称:虚拟化集群负载在多台物理机中均衡分配的方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种虚拟化集群负载在多台物理机中均衡分配的方法。
背景技术
1、计算系统虚拟化计算系统虚拟化是指将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统,每个虚拟机都拥有自己的虚拟硬件(如CPU,内存,设备等),来提供一个独立的虚拟机执行环境。虚拟机中的操作系统认为自己仍然是独占一个系统在运行。虚拟化技术具有一系列特有的自身优势1)封装性虚拟机快照是将运行中的一个虚拟机的某个时间点的状态抓取下来,就像抓拍一张相片一样。虚拟机克隆就是从一个虚拟机的执行环境复制出一个或多个相同的虚拟机。 虚拟机的挂起,暂停一个运行中虚拟机,将其运行环境保存在磁盘上。2)多实例在一个计算机上运行多个虚拟机使得资源的调度更加优化。不同的虚拟机有不同的繁忙和空闲时段,忙闲交错使得单个计算机的系统资源利用率大大提高。产业界大力推广的服务器整合(server consolidate),将多个物理服务器合并到少数几个计算机上,作为虚拟机来运行。这样可以用更少的服务器获得同样的整体性能,并大大提高计算机性能的利用率。3)隔离性如果一个虚拟机的操作系统由于故障或受到恶意破坏崩溃了,其他虚拟机中应用程序仍然可以继续正常运行,故障或破坏被天然地隔离在一个虚拟机内。这种隔离性支持多个用户在同一台物理服务器上对不同的应用程序进行独立的操作。4)硬件无关性虚拟化是资源的逻辑表示而不受物理限制的约束。由于虚拟化层的抽象,虚拟机与底层的硬件没有直接的绑定关系。虚拟化技术实现了资源的逻辑抽象和统一表示,在服务器,网络及存储管理方面都有着突出的优势,大大降低了管理复杂度,提高了资源利用率和运营效率,有效地控制了成本,有利于节能环保,对大规模数据中心的管理有重要意义,同时也是实现云计算、绿色计算的支撑技术。虚拟环境下的时间虚拟化,尤其是对完全虚拟化下的客户机时间虚拟化本身就存在种种挑战。利用Benchmark进行性能评测时,必须注意到有客户机的时间虚拟化不准确而造成的误差。另外由于虚拟环境下的客户机处理器事实上靠分时共享物理处理器资源实现,因此对于评测工具中甚短的(例如几个或几十个毫秒)任务所花费时间的测量具有很大的颠簸性,如果在这段甚短任务的执行中客户机处理器被调度出去,它被测量到的延迟就会很大,反之可能很小。如果一个评测工具主要依靠测量甚短任务的吞吐量或者延迟来衡量,这个评测工具对虚拟环境的性能评测具有很大的随机性,因而也是不可靠的。2、虚拟机迁移技术虚拟机迁移技术一般包括静态迁移和动态在线迁移。静态迁移即存储还原迁移法,首先将一个运行中的虚拟机实例暂停,以文件的形式并保存在外存上,然后在另外一台物理机使用此文件恢复虚拟机,实现虚拟机存储还原迁移。动态在线迁移是指在保证虚拟机上服务正常运行的同时,让虚拟机在不同物理主机之间进行迁移,虚拟机内存状态迁移的实现,XEN和KVM都采用了主流的预拷贝策略,在源VM继续运行的同时,通过循环过程,将源VM的内存数据拷贝至目的VM,首先第一轮发送所有的内存页数据,然后每一轮循环都发送上一轮拷贝中被写过的脏页数据,如此迭代,直到时机成熟,停止预拷贝阶段,源VM被挂起,暂停执行,此时内存不会再被更新。最后的脏页数据被传送至目的VM。预拷贝机制极大地减少了停机拷贝阶段需要传输的内存数据量, 从而将停机时间大幅减少。因此,尽管目前的计算机体系结构呈现很大的异构性,但是只要另一台物理机上提供相同的虚拟硬件抽象层,一个虚拟机就能无缝地迁移过去。有了虚拟机的迁移技术,计算机需要硬件维护时,可以将其上运行中虚拟机暂时迁出,等维护结束后再迁回。3、虚拟化集群的负载均衡负载均衡技术在并行和分布式计算领域已经有了广泛的运用,它能够确保计算负载可以在集群中公平有效的分配,从而提高集群的服务质量,这种传统领域的均衡一般是通过分配计算任务、调度进程或者转发访问请求实现的。虚拟机的迁移技术让虚拟化集群的负载均衡成为了可能,当某些物理机上的计算负载增大到超过承受阈值时,可以通过迁移技术将虚拟机整体从该物理机迁出至相对较为空闲的物理机之上,从而实现整个集群的负载均衡。和常规分布式领域的负载均衡方法不同,虚拟化场景下进行迁移的是虚拟机实例,而这种迁移是通过内存拷贝来实现的,这必然带来一定的性能开销。对采集的集群负载数据,并不适合直接使用,依据实时数据做决策,具有一定的滞后性,无法避免负载峰值到来造成损失。虚拟化场景下,一个显著的特征是各个虚拟机之间可能存在数据共享、资源竞争关系或者安全因素,此时需要确认任意两台虚拟机迁移后安置在同一物理机上、避免安置在同一物理机上或任意安置。

发明内容
本发明提供了一种虚拟化集群负载在多台物理机中均衡分配的方法,该方法能够准确预测虚拟机负载的变化趋势,可以避免负载峰值到来对系统的影响。一种虚拟化集群负载在多台物理机中均衡分配的方法,所述物理机的数量为至少三台,每台物理机中包含若干台虚拟机,所述方法包括(1)周期性采集每台虚拟机当前的负载信息,通过公式(1)预测其下一周期的负载信息;E(t) = λ XE(t-l) + (l-A ) X0(t) (1)其中,E(t)为第t个周期预测的虚拟机的负载信息,E(t-l)为第t-1个周期预测的虚拟机的负载信息,0(t)为第t个周期采集的虚拟机的负载信息,0(t-l)为第 t_l个周期采集的虚拟机的负载信息;λ为系数,当0(t)彡0(t-l),则1> λ >0,当 0(t) Z o(t-l),则-1 Z λ ζ 0 ;所述负载信息包括三个指标CPU使用率、内存使用率和网络响应时间;(2)选取负载信息中的任一指标作为迁移指标,将每台物理机中所有虚拟机的迁移指标相加,得到每台物理机迁移指标的估计值;(3)查看每台物理机迁移指标的估计值是否落入各自预设的阈值范围,并制定迁移决策;当所述估计值大于阈值范围的最大值,所对应的物理机称为过载物理机,当所述估计值小于阈值范围的最小值,所对应的物理机称为空闲物理机;制定迁移决策的规则如下a、如无过载物理机,则不迁移虚拟机;b、如存在过载物理机,则查看是否存在空闲物理机,如存在,则将过载物理机中部分虚拟机迁移至空闲物理机,迁移后,过载物理机迁移指标的估计值落入各自预设的阈值范围,同时空闲物理机均不会变成过载物理机;如不存在空闲物理机或者迁移后始终有至少一个空闲物理机会变成过载物理机, 则开启新的物理机,重新制定迁移决策;C、迁移后,存在共享关系的虚拟机安置在同一物理机上,存在互斥关系的虚拟机安置在不同的物理机上;(4)按照已经制定的迁移决策,迁移虚拟机,实现负载均衡。所有过载物理机上待迁移的虚拟机在迁移前按迁移指标估计值大小降序排列,如此可以实现最优迁移。本发明方法结合虚拟化集群的特殊性,综合考虑了虚拟机负载变化的特点,虚拟机之间可能存在的互斥和共享关系,以及虚拟机迁移动作造成的开销,能够准确的预测集群负载变化趋势,使用较小可以接受的性能损耗完成物理机间的虚拟机迁移,且不破坏其固有的关系,从而达到整个集群系统的动态负载均衡。


图1为本发明负载均衡系统功能模块示意图;图2为本发明负载均衡方法工作流程图。
具体实施例方式如图1所示,一种虚拟化集群负载在多台物理机中均衡分配系统,包括分布式的物理机控制代理模块以及中央均衡器,控制代理模块主要用于监控物理机,周期性采集其中各虚拟机的负载信息并将它们传输至中央均衡器,中央均衡器由负载预测模块、阈值计算模块、迁移决策模块和迁移实施模块组成。如图2所示为上述系统工作流程图,负载预测模块根据各控制代理模块采集的虚拟机实际负载信息,预测其下一周期的负载信息,负载信息可以是CPU使用率、内存使用率和网络相应时间等。预测公式如下E(t) = λ XE(t-l) + (l-A ) X0(t)
其中,E(t)为第t个周期预测的虚拟机的负载信息,E (t-Ι)为第t-Ι个周期预测的虚拟机的负载信息,0(t)为第t个周期采集的虚拟机的负载信息,o(t-i)为第t-i个周期采集的虚拟机的负载信息;λ为系数,当0(t) ^ o(t-l),即负载信息处于上升沿时,则1 > λ >0,当o(t) zo(t-i),即负载信息处于下降沿时,则-1 ζ λ Z0。该公式当中的λ可以根据虚拟机不同而变化,也可以根据需要修改,进一步提高预测准确性。在获取每个虚拟机下一周期的负载信息预测值后,通过求和预测每台物理机的负载信息。本发明在均衡分配虚拟机时只选定其中一个负载信息指标作为迁移指标,即 CPU使用率、内存使用率或网络相应时间。阈值计算模块会根据每台物理机迁移指标的估计值不同,判断物理机是过载物理机,还是空闲物理机,也可以计算得到过载量和空闲量,如存在过载物理机,则迁移决策模块开始制定虚拟机迁移决策。迁移决策模块根据相应过载物理机的过载量选定相应的虚拟机,迁出这些虚拟机后,它们的迁移指标的估计值正好能落入各自预设的阈值范围,也就是说这些迁出的虚拟机的负载量是所有方案中最小的。当选定出所有的待迁出的虚拟机后,还需考虑待迁出的虚拟机的相互关系,如虚拟机之间存在共享关系,则必须安置在同一物理机上,如存在互斥关系,则必须安置在不同的物理机上,因此在考虑了虚拟机相互关系之后,待迁出的虚拟机可能会有所变化。待迁移的虚拟机最终确定后,可以先根据负载量的大小降序排列,然后查看是否有足够的空闲物理机,如没有,则开启新的物理机,重新制定迁移决策,迁移后,同样需要考虑虚拟机之间的相互关系,同时需要考虑迁入虚拟机后,空闲物理机不能变成过载物理机。因此决策建立有可能是需多次重复的过程,也有可能存在多种符合要求的决策方案。建立决策方案后,迁移实施模块工作,将虚拟机按照既定方案迁移,实现负载均衡。根据上述方法进行举例说明,具体如下实验环境4台同样配置的服务器Intel Q66004核处理器,主频为2. 4GHz,2级 Cache为4MB,内存4G,网络环境为IGbps带宽。物理机上均安装Xen 3. 3. 1和Linux内核2. 6. 27,集群中所有的虚拟机镜像均存储在2TB的NFS (网络共享文件系统)上,虚拟机内存最大值固定,使用过程中不做调整, DomainO绑定只使用一个物理核。此外,使用一台外部的服务器作为均衡器,其上部署中央均衡器,中央均衡器具体由负载预测模块、阈值计算模块、迁移决策模块、迁移实施模块构成,其中涉及到大量计算的负载预测、迁移决策模块使用C语言编写,整个均衡器由python脚本程序实现,调用各个子功能模块、并将其串联。部署均衡器的物理机原则上不做配置限制。集群初始状态,开启3台物理机分别为Pl,P2,P3,其中物理机Pl上运行虚拟机 VMl, VM2, VM3 ;物理机P2上运行虚拟机VM4 ;物理机P3上运行虚拟机VM5、VM6。建立虚拟机之间关系表VM-rel如下
权利要求
1.一种虚拟化集群负载在多台物理机中均衡分配的方法,所述物理机的数量为至少三台,每台物理机中包含若干台虚拟机,所述方法包括(1)周期性采集每台虚拟机当前的负载信息,通过公式(1)预测其下一周期的负载信息;E(t) = λ XE(t-l) + (l-A ) X0(t)(1)其中,E(t)为第t个周期预测的虚拟机的负载信息,E(t-1)为第t-Ι个周期预测的虚拟机的负载信息,0(t)为第t个周期采集的虚拟机的负载信息,0(t-l)为第t-Ι个周期采集的虚拟机的负载信息;λ为系数,当0(t)彡0(t-l),则1> λ >0,当0(t) ZO(t-l), 贝丨J -1 Z λ Z 0 ;所述负载信息包括三个指标CPU使用率、内存使用率和网络响应时间;(2)选取负载信息中的任一指标作为迁移指标,将每台物理机中所有虚拟机的迁移指标相加,得到每台物理机迁移指标的估计值;(3)查看每台物理机迁移指标的估计值是否落入各自预设的阈值范围,并制定迁移决策;当所述估计值大于阈值范围的最大值,所对应的物理机称为过载物理机,当所述估计值小于阈值范围的最小值,所对应的物理机称为空闲物理机;制定迁移决策的规则如下a、如无过载物理机,则不迁移虚拟机;b、如存在过载物理机,则查看是否存在空闲物理机,如存在,则将过载物理机中部分虚拟机迁移至空闲物理机,迁移后,过载物理机迁移指标的估计值落入各自预设的阈值范围, 同时空闲物理机均不会变成过载物理机;如不存在空闲物理机或者迁移后始终有至少一个空闲物理机会变成过载物理机,则开启新的物理机,重新制定迁移决策;c、迁移后,存在共享关系的虚拟机安置在同一物理机上,存在互斥关系的虚拟机安置在不同的物理机上;(4)按照已经制定的迁移决策,迁移虚拟机,实现负载均衡。
2.根据权利要求1所述的方法,其特征在于,所有过载物理机上待迁移的虚拟机在迁移前按迁移指标估计值大小降序排列。
全文摘要
本发明公开了一种虚拟化集群负载在多台物理机中均衡分配方法,包括(1)周期性采集每台虚拟机当前的负载信息,通过公式(1)预测其下一周期的负载信息;(2)选取负载信息中的任一指标作为迁移指标,将每台物理机中所有虚拟机的迁移指标相加,得到每台物理机迁移指标的估计值;(3)查看每台物理机迁移指标的估计值是否落入各自预设的阈值范围,并制定迁移决策;(4)按照已经制定的迁移决策,迁移虚拟机,实现负载均衡。本发明方法能够准确的预测集群负载变化趋势,使用较小可以接受的性能损耗完成物理机间的虚拟机迁移,且不破坏其固有的关系,从而达到整个集群系统的动态负载均衡。
文档编号G06F9/50GK102236582SQ20111019982
公开日2011年11月9日 申请日期2011年7月15日 优先权日2011年7月15日
发明者何钦铭, 李星, 殷婷, 陈建海 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1