Research Article

A Decentralized Virtual Machine Migration Approach of Data Centers for Cloud Computing

Algorithm 2

Function findDest(vmToMig).
(1) calculate the utilization of vmToMig as vmutil
(2) double minUtil=1.0;
(3) int bestTarget=−1;
(4) for each (li in LoadVector)
(5) { if  (vmutil + li.util >=LT
(6)       && vmutil + li.util <= UT)
(7)   { if  (li.util < minUtil)
(8)     {
(9)    minUtil=li.util;
(10)       bestTarget=li.PNid;
(11)    }
(12)  }
(13) }
(14) if  (bestTarget >0) //find target successfully
(15) { vmToMig.dest=bestTarget;
(16)    return 0;
(17) }
(18) for each (li in LoadVector)
(19) {
(20)  if  (vmutil + li.util <=LT)
(21)  { vmToMig.dest=bestTarget;
(22)     return 0;
(23)  }
(24) }
(25) int getSleepNodeID=requireSleepNode();
(26) if (getSleepNodeID < 0) return −1;
(27) else
(28) { vmToMig.dest=getSleepNodeID;
(29)    return 0;
(30) }
(31) return −1;