虚拟机的在线迁移技术是虚拟化技术中的关键技术,也是虚拟机调度中使用最频繁的手段。虚拟机在线迁移技术是指保证虚拟机能够在正常运行的前提下,将其从一台物理机迁移到另一台物理机上,并在目的物理机上恢复迁移之前的运行状态。
在数据中心,有无数的大规模应用和服务部署在虚拟化集群上。对虚拟机的管理和调度一向是虚拟机技术的研究重点。
在大规模应用和服务之上的虚拟机管理是比较复杂的,因为运行的负载具有实时动态性,如果没有良好的资源分配和虚拟机调度策略,首先会使得应用计算和存储效率低下,同时多余的虚拟机资源分配,会使得计算和存储资源严重浪费。不均衡的能效分配和使用情况,也将直接导致能源的浪费。而人工的调整和管理,需要手动的预估和分配,具有滞后性和不稳定性。所以需要设计和使用一套完善的动态虚拟机调度算法,调度算法需要解决以下几个问题。在单节点上,该创建多少虚拟机,每个虚拟机分配怎样规模的任务,才能达到最好的资源利用效果和能源节约效果。在集群虚拟机上,该启用多少节点数目,每个节点开启多少虚拟机,每个虚拟机分配怎样的规模任务,是调度算法需要动态决策。同时,如果在运行过程中,出现了资源不均的情况,如何动态迁移虚拟机,保持最好的资源利用效果和能源节约效果。
如图7-8,在典型的异构节点服务器集群虚拟机环境中,若干个计算节点共享存储节点的物理存储空间,彼此异构的计算节点都采用了虚拟化,运行着不同的虚拟机监控器,负载管理本节点上的若干个虚拟机,每个虚拟机上运行着不同类型的负载任务。控制或者管理节点负责为所有计算节点分配资源,并根据各个计算节点的实时功耗情况,CPU、内存、I/O等运行状态,监听整个服务器集群,当监听到某个计算节点上的某个虚拟机触发迁移条件时,就为之选择合适的目标节点,并给原计算节点发出迁移指令,虚拟机迁移到目标节点,完成整个调度过程。
(www.xing528.com)
图7-8 虚拟机环境示意图
在实际控制节点内部,整个调度过程由以下几个模块实现。首先是监听模块,负责收集整个集群各节点的实时功耗,CPU和内存利用率以及I/O和存储设备的信息。然后是计算分析模块,利用监听模块收集到的数据信息,计算各节点以及其内部虚拟机的运行状态,分析是否有节点超负荷运行(这里通常会设置一个上限阈值),是否有虚拟机触发迁移条件,如果有则进入调度模块。调度模块首先为待迁移虚拟机寻找合适的目标宿主机,然后向待迁移虚拟机的原宿主机发出迁移指令,由虚拟机监控器完成虚拟机迁移。
本小节的调度算法主要涉及两个问题:在集群所有节点运行着的众多虚拟机中,选出需要被迁移的虚拟机;对于一个具体的待迁移虚拟机,根据负载特征,为其选择能效比最高的目标宿主机,以便完成调度。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。