3.2.3目的主机的选择
目的主机较多采用原主机最佳匹配优先算法,即从原主机中选择出迁移后能够令主机的利用率低于阈值,并且迁移后主机的资源利用率最为接近阈值,即迁移最为接近实际利用率和阈值差值的虚拟机,然后将选择好的虚拟机与数据中心的各个主机进行匹配,找出剩余的空闲资源可利用率最为接近的主机作为目的主机进行迁移。这样就可以保证所选定需要迁移的虚拟机其资源占用不是很大,因此迁移所需的时间和迁移能耗都不会很大。再者,该算法还使资源获得了高效利用。
4.对虚拟机迁移策略的选择
通常情况下,一个虚拟机迁移算法如果能最大限度的节约能源,那么这就称得上是一个比较完美的算法了。但从云计算运营商的角度来看,考虑的并不仅仅是能耗这一个问题,包括计算效率、客户体验感、迁移成本、过多虚拟机同时迁移是不是会造成网络拥塞等等,这些都是虚拟机迁移中可能会造成的问题。故此,我对上述虚拟机的动态迁移进行了改进。
4.1源主机选择算法
在对主机的热点计算式不变的情况下对主机选择算法进行改进。
主机的热点值计算式不变如式(5)
其中,r表示当前主机的资源利用率,heat表示当前主机使用情况。同时定义一个heat 表示当前的主机使用率不得超过某值,否则主机被标识为热点主机,即当heat>heat 时需要对该主机上的虚拟机进行动态迁移。定义一个heat 表示当前主机使用率不得小于某值,即当heat<heat 时,该主将被标识为冷点主机,以防主机资源利用率过低。
无论主机是热点还是冷点都是要迁移的对象。冷点要全部迁移,然后关掉这个主机以达到节能的目的。而热点,则要从中选择出迁移后可以使这个主机利用率位于阈值以下的虚拟机进行迁移。选出需要迁移的主机之后,对这些主机的heat求绝对值然后排序,取最大的前几个依次进行迁移,以防止过多虚拟机同时迁移引起网络拥塞。
4.2虚拟机的选择
对于热点虚拟机的选择我认为最高潜能迁移算法比较可行,同时为了使虚拟机迁移后使主机利用率尽可能高而又不超出阈值,减少迁移次数,我对它进行了一些优化。图2给出了被迁移虚拟机的选择流程。
在图一中,r表示当前主机的资源利用率,p表示阈值,r[i]表示排序后的虚拟机的资源占用量。在本地管理首先将该节点上所有的虚拟机按当前资源使用率从大到小排序,对排序过的虚拟机从大到小进行比较,选择移出后刚好可以使主机利用率位于阈值以下(r-r[i]<p)的虚拟机进行迁移。如果,经过排序后的虚拟机都不能是主机资源利用率位于阈值以下,那就选择资源利用率最小的虚拟机进行迁移。迁移后,再重复以上过程直至主机资源利用率位于阈值以下。
4.3目的主机的选择
对于目的主机的选择,原主机最佳匹配优先算法是相对比较完善的算法,对此我对此做了少许改动。在原算法的基础上,在虚拟机迁移前,先对作为迁移目
图2 被迁移虚拟机的选择流程
标的主机以资源可使用率进行从小到大的排序,然后计算将虚拟机迁移后是否会使此主机超出阈值,如不会则将被迁移虚拟机迁入此主机,否则继续比较下一个资源可利用率更高的主机,直到比较到资源可利用率最大的主机。如资源可利用率最大的主机还不能满足被迁移虚拟机的需求,这时需要开启新的主机将此虚拟机迁入。下图3是此算法的流程图描述。
4.4对虚拟机迁移策略的思考
但有时候我们也要考虑对于一个虚拟机是否进行迁移,以及迁移是否划算的问题。如一个对资源要求很少虚拟机,根据虚拟机迁移算法来说将它迁移出去可以达到负载均衡,它是必然需要迁移的。但是,如果将这个虚拟机运算完毕所花费的能量也不及一次迁移所花费的能耗,又或是这个虚拟机或许马上就要运行完毕,那么我们是要把它迁移出去立即降低主机至闸限值以下,又或是等待它运算完毕,释放主机资源。很明显,这种情况下将虚拟机迁移出去只能增加服务器的能耗量和迁移成本,反而起不到节约能耗的作用,这时进行虚拟机的迁移是不明智的,所以我们应该考虑从策略和算法上解决这一问题。 云计算中基于能耗约束的虚拟机迁移策略研究(6):http://www.youerw.com/jisuanji/lunwen_1824.html