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