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 |
|