Cloud computing technology uses the pay-as-go model to share resources such as Virtual Machine (VM), applications, and storage. This computing also provides various benefits such as Self-service provisioning, Scalability, measured service, rapid elasticity, flexibility. The growth rate of Cloud computing technology increases, and the demand for Cloud resources are also increasing. Therefore, it is necessary to improve the utilization of resources. However, improper scheduling of the resources leads to resource imbalance, either over-utilization or under-utilization. In order to balance the load of the resources, Virtual Machine (VM) migration is performed, that is, the process of moving the VM from one resource to another. In addition, it helps to run the task in the VM even in the failure of its corresponding resources. There are several types of migration. They are cold migration, warm migration, and live migration.
Cold migration
The cold migration closes the VM on the source resource and begins to execute on the target resource.
Warm migration
This migration holds the VM on the source resource for a few seconds, then begins to execute the VM on the target resource without closing the source VM.
Live migration
During the execution, the Live migration moves the VM from the source to the target resource within a second without closing the source VM.
The service providers face difficulties such as SLA violation energy consumption while providing the service to the users. These difficulties occur due to the resource imbalance, which is achieved using the VM migration. However, some of the algorithms try to minimize the migration rate because VM migration can increase energy consumption and makespan. Also, VM migration is an expensive procedure since it requires the system resources for managing the abundant VMs, uncertain nature of the workload, and SLA violation. Sometimes, improper VM migration scheduling can affect the performance of nearby applications. Hence, it is necessary to suggest an algorithm to reduce the migration time, downtime, and SLA violation; and improve the energy efficiency, resource utilization, VM selection, and target resource selection.