Research Article

Virtual Machine Consolidation with Minimization of Migration Thrashing for Cloud Data Centers

Algorithm 1

Selection of VMs which should be migrated.
(1)Input: serversList Output: migrationList
(2)FOR s IN serverList
(3) vmList ⟵ s.getVmList()
(4)FOR v IN vmList
(5)  v.canMigrated = 1
(6) descVms ⟵ sortDecreasing(vmList)
(7) sUtil ⟵ s.getUtil()
(8) bestDiff ⟵ MAX
(9)WHILE sUtil > UpperThreshold
(10)  FOR vm IN descVms
(11)   IF vm.getUtil() > sUtil–UpperThreshold
(12)    t ⟵ vm.getUtil()–(sUtil–UpperThreshold)
(13)    IF t < bestDiff
(14)     bestDiff ⟵ t
(15)     bestFitVm ⟵ vm
(16)    END
(17)   ELSE IF bestDiff = = MAX
(18)       bestFitVm ⟵ vm
(19)      END
(20)      break
(21)   END
  END
(22)  reset bestFitVm.canMigrated according to equation (6)
(23)  IF bestFitVm.canMigrated
(24)   sUtil ⟵ sUtil–bestFitVm.getUtil()
(25)   migrationList.add(bestFitVm)
(26)   descVms.remove(bestFitVm)
(27)  ELSE
(28)   //mark bestFitVm being not migrated, and remove it from descVms
(29)   bestFitVm.canMigrated = 0
(30)   descVms.remove(bestFitVm)
(31)  END
(32)END
(33)IF sUtil < LowerThreshold
(34)  migrationList.add(s.getVmList())
(35)  descVms.remove(s.getVmList())
(36)  serversList.remove(s)
(37)END
(38)END
(39)return migrationList