是将库所或弧映射到类型的函数,E是指定类型对应值得函数,f和g分别为变迁的可实施谓词函数与随机开关函数,M0为库所P的初始标识。
EAC中各集合定义如下:
(1)库所集为:P = {pwq} { pmj, swmj, ssmj, qwmj, qsmj, serrj, sresj j∈{1, 2, …, tnp}}。
i, j∈{1,2,…,tnp},且i j }。 (2)即时变迁集为:TI = {twj, tsj, twtsj, tstwj, tij, terrj, terrj
(3)时间变迁集为:TT = {tc, s1j, s2j, trepj, tresj j∈{1, 2, …, tnp }}。
(4)弧集F以及与弧相关的G与E,见图3和图4上所示的有向弧及标注。
(5)K、 、G、E、f、g与M0的详细描述见下文。
(6)类型集为:TS={ Rk, PMj, < Rk,PMj> k∈N+, j∈{1, 2, …, tnp}}。
EAC中所包含的库所与变迁描述如下:
(1)tc:服从指数分布的时间变迁,表示用户提交的一个虚拟机分配请求,它的发生速率为 ,即任务的平均到达速率。当变迁tc发生时,有一个任务到达等待队列库所pw中。它的可实施谓词为f (tc):
f(tc):M(pwq) C (5)
(2)pwq:等待队列库所,用来缓存用户提交的任务/虚拟机分配请求,容量为C,即K(pwq) = C。例如,库所中的每个标记的类型为G(pi) = Rk(表示该标记所代表的请求的类型),该类型值为E(pwq)∈N+(表示该请求需处理任务的大小,单位为MB)。也就是说,库所中的标记属性是一个二元组<Rk, E(pwq)>。其中,k∈N+,j∈{1, 2, …, tnp}。
(3)pmi,pmj:对应服务器PMi和PMj的库所,库所中的标记数表示当前该服务器上可用的虚拟机个数,初始标识为M0(pmi) = nvi,M0(pmj) = nvj。K(pmi) = nvi,G(pmi) = PMk,E(pmi) ∈[1, nvi]。 pmj与pmi的定义类似,这里就不再复述。。
(4)twi,twj:即时变迁,与库所pmi,pmj,pwq,结合在一起为等待队列中的请求分配虚拟机,i j。通过设臵可实施谓词与随机开关来表示调度策略,具体描述见下文。
(5)qwmi,qwmj::库所中的标志表示服务器PMi和PMj在不同工作状态(正常工作状态或休闲工作状态)下运行的虚拟机个数。
(6)si,sj:时间变迁,表示服务器PMi和PMj在不同的工作状态以不同的服务速率为应用/任务提供服务,对应的服务速率分别为 i = j或 i = si,且服从指数分布。其中, i表示PMi在正常状态下的服务速率,而 si表示PMi在休闲状态下的服务速率。 j与 i的定义类似,这里就不再复述。
(7)serri,serrj:表示由于故障而需要修复的虚拟机与重新提交的任务,且K(serri) = ni,ni∈[1, M0(Pmi)]。serrj与serri的定义类似,这里就不再复述。
(8)terri,terrj:即时变迁,表示运行任务的虚拟机是否发生故障。失效率为γ,随机开关gerri为:
,if(M(serri) K(serri))gerri 0,otherwise (6)
terrj与terri的定义相同,这里就不再复述。
(9)trepi,trepj:时间变迁,表示故障的修复过程,修复率为 repi = repj = ,且服从指数分布。
(10)tij,tji:即时变迁,表示虚拟机的迁移过程,可实施谓词与随机开关描述见下文。
4.2 虚拟机动态迁移算法