Research Article

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

Algorithm 1

Selecting a VM to migrate on PN which is overloaded.
(1) double util=this.utilization; //get the current utilization of PN
(2) VirtualMachine vmToMig=null;
(3) while (util > UT)
(4) {
(5)  vmToMig=null;
(6)  for each (vm in this.VMlist)
(7)   {
(8)   if  (vm.toBeMigrated) continue; //skip the VMs that have been marked
(9)   double vmutil=calcutilz(vm); //get the CPU utilization of vm
(10)   if  (vmutil > util-UT && vmutil <util-LT)
(11)   { //case (a)
(12)    util = util – vmutil;
(13)    vmToMig=vm;
(14)    break; //find a VM to migrate
(15)   }
(16)  }
(17)  if  (vmToMig==null)
(18)  {
(19)   for each(vm in this.VMlist)
(20)   {
(21)    if  (vm.toBeMigrated) continue;
(22)    double vmutil=calcutilz(vm);
(23)    if  (vmutil <util-LT)
(24)    { //case (b)
(25)     util = util – vmutil;
(26)     vmToMig=vm;
(27)     break; //find a VM to migrate
(28)    }
(29)     }
(30)  if  (vmToMig==null) break; //case (c)
(31)  findDest(vmToMig); //find a destination for the current VM to migrate to
(32) }