Article Preview
TopIntroduction
Cloud computing is extensively adopted through a wide range of users for providing a solution to massive length computational problems. Cloud environment includes heterogeneous computing resources along with processors, bandwidth, and memory. Cloud computing environment can create new application instances to provide distributed services within the form of infrastructure, platform, and software on demand basis with the help of virtualized resources. The VM migration is performed by moving the live VMs on execution from one physical machine to another machine to provide a better resources like large memory, high bandwidth, and computational power, (Jin et.al. 2011), (Mann et.al. 2015). The VM migration technique helps in remapping the digital machine and physical resources dynamically with flexible allocation and reallocation of the resources (Clark et.al. 2005), (Jun et.al. 2011).
The advantage of cloud computing includes location independence, availability, reliability, and optimized cost (Rimal et.al. 2009). To achieve the above benefits, the task needs to be properly scheduled among various resources. There are numerous issues in cloud computing system such as security, load balancing, performance monitoring, resource scheduling, scalability, identity management, optimal resource management, data transfer cost, and energy management. Among these issues, task scheduling is one of the promising issues in cloud computing environment. Load balancing ensures a better QOS by using optimizing the resource utilization and response time (Patel et.al. 2013). The request (task) generates from different users (user bases) and the amount of resource required for executing the tasks changes dynamically. Cloud data centers are highly dynamic to manage the unpredictable load behavior of the users (Randles et.al. 2010), (Kansal et.al. 2012).
Load balancing is achieved by proper task scheduling. Scheduling algorithms are implemented in task scheduler. The task scheduler may be centralized or distributed. The centralized scheduling algorithms in clouds are commonly supported by a common controller that balances VMs to the hosts which is shown in Figure 1. The central management algorithms for load balancing are simpler for implementation. In each execution process of the centralized algorithms, the statuses of all hosts are collected, analyzed, and reordered to provide information for VM allocation. The central algorithms achieve better management by obtaining the global information (utilization, load, connections information etc.) (Song et.al. 2015), (Xu et.al. 2012). The centralized load balancing algorithms rely on a single controller to monitor and balance loads for the whole system, which may create system bottleneck. But in other hand the distributed algorithm eliminates the bottleneck pressure posed by the central algorithm scheduler and improves the reliability and scalability of the network. The major drawback of distributed algorithm is the co-ordination among the distributed schedulers (Christodoulopoulos et.al. 2009).
Similarly according to the VM allocation strategies, the load balancing algorithms are classified as either static or dynamic. Static algorithms are also known as offline algorithms where the hosts are aware of the VMs information in advance. Static resource allocation algorithms are inefficient to meet the dynamic change in demands over the time. The resource would be wasted if VM with adequate capacity only is lighted utilized, and performance degradation happens if VM with limited capacity is allocated with more loads. Dynamic algorithms are online algorithms where the VMs are allocated dynamically according to the loads at each time interval. The load information of VM would not be obtained until it comes into the scheduling stage. These algorithms could dynamically configure the VM placement combining with VM migration technique (Saranya, 2015).