云数据中心允许虚拟机在不同服务器上进行动态迁移,且仅需很短的时间,而不用暂停服务器 。但是,动态迁移会影响运行在该虚拟机上的应用程序的性能。Voorsluys William等对虚拟机动态迁移进行了实验研究,并找出了一种建模方法[19]。他们发现动态迁移过程中的性能退化和停机时间取决于运行的应用程序的行为,也就是说,在该应用程序执行期间需要使用的存储器数量[19]。虚拟机的动态迁移时间取决于该虚拟机所使用的存储器总量可用的网络带宽。本文所考虑的总目标是系统使用的能耗,因此,我们仅考虑迁移所消耗的能量。由于理节点在休眠状态下的能耗远小于正常工作状态的能耗,本文仅对处于正常工作状态的物理节点上的虚拟机进行迁移,且迁移的目的节点仅选择那些处于休闲状态的物理节点。在本文,我们提出了能耗感知虚拟机迁移(EAVMM)算法来分配、迁移云数据中心的VM,如表1所示。
图3中所描述的虚拟机分配变迁的可实施谓词与随机开关描述如下:
(1)twj:描述服务器PMj在正常工作状态下的虚拟机分配,可实施谓词为:
M(qwmj) f(twj): nvj
M(qwmj)M(qwmi) i j, nvnvji (7)
其中, 表示物理节点的上限阈值。当一个物理节点的虚拟机比值达到上限阈值时,不能在该节点上再创建新的虚拟机。
节点PM序列, PM上可同时运行的最大虚拟机数序列nv,当前
可用的虚拟机序列VM,所有物理节点的工作状态序列S,物理节
点在不同工作状态下的能源消耗率序列ER(PM(w))和ER(PM(s)),
转换阈值 ,带宽B。
2. for j=1 to |PM| do
3. countj ←PMj上正在运行的虚拟机个数;
4. if ( j 1(nvj countj) 等待队列中的请求数)
5. 虚拟机暂时不进行迁移;
6. else
7. 计算在虚拟机VMl
j上的应用在物理节点PMj上所需的能
耗ECj;
8. for i=1 to |PM| do
9. if (i j)
10. if (countj 1)nvj
11. 计算在虚拟机VMl
j上的应用在物理节点PMi上所
需的能耗ECi;
12. if ((TECl
j ECi) ECj)
13. 将虚拟机VMl
j迁移到物理节点PMi上;
14. endif
15. endif
16. endif
17. endfor
18. endif |PM|
随机开关为:
WEA(M)|,j WEA(M)gwj(M) 0,otherwise
(8)