An Evolutionary Approach for Load Balancing in Cloud Computing

An Evolutionary Approach for Load Balancing in Cloud Computing

Subashis Mohapatra (National Institute of Technology – Rourkela, India) and Banshidhar Majhi (National Institute of Technology – Rourkela, India)
DOI: 10.4018/978-1-4666-6559-0.ch020


Cloud computing has many issues related to privacy, security, scalability, elasticity, and efficiency. Load balancing is one of the vexing issues in cloud computing. Load balancing ensures that all processors in the system have approximately an equal amount of work at any instance of time. In this chapter, the authors analyze some load-balancing algorithms and compare their performances using cloud analyst. Lots of references are added for the benefit of readers.
Chapter Preview

2. Literature Review

Load balancing algorithms are basically classified into two different categories: Static algorithms and dynamic algorithms. Static load balancing algorithm assigns the task to node based on prior knowledge of the properties and capabilities such as Memory, Storage capacity and node’s processing power. These algorithms are not fit for dynamic behavior of the nodes attribute. The common static algorithms are Round Robin Scheduling Algorithm, Weighted Round Robin Scheduling Algorithm, and Least Connection Scheduling Algorithm etc. Of all, Round Robin Scheduling Algorithm is the simplest one which could be carried out most easily. However, it is only applicable to the circumstances in which all the nodes in cluster have the same processing ability. These algorithms can’t adopt load changes during run time (Nuaimi, Mohamed, Nuaimi, Jaroodi, 2012). In other hand dynamic load balancing algorithms like first come first serve is self-adaptive algorithm, which is better than static algorithm and suitable for a great deal of requests which procreate different workloads, which would be unable to be forecasted (Li, Shi, 2009). These algorithms assign the task and dynamically reassign those task to the nodes based on the attributes gathered and calculated. Such algorithms require constant monitoring the node and task status. These algorithms are harder to implement but are more accurate and resulting efficient load balancing. Following load balancing techniques are currently prevalent in clouds.

Key Terms in this Chapter

Virtualization: Virtualization is a term that refers to the abstraction of computer resources. It is commonly defined as a technology that introduces a software abstraction layer between the hardware, operating system and applications running on top of it. More recently, virtualization at all levels (system, storage, and network) became important again as a way to improve system security, reliability and availability, reduce costs, and provide greater flexibility. Virtualization was first developed in 1960’s by IBM Corporation, which partition large mainframe computer into several logical instances and to run on single physical mainframe hardware as the host. Two primary benefits offered by any virtualization technology are ( Sahoo, J., Mohapatra, S., & Lath, R. 2010 ). (i)Resource sharing - Unlike in non-virtualized environment where all the resources are dedicated to the running programs, in virtualized environment the VMs shares the physical resources such as memory, disk and network devices of the underlying host. (ii)Isolation - One of the key issues in virtualization provides isolation between virtual machines that are running on the same physical hardware. Programs running in one virtual machine cannot see programs running in another virtual machine.

Virtual Machine Migration: The crucial feature for advanced elastic infrastructure capabilities in the fly of virtual machines is called Virtual machine migration. It enables a virtual machine running on one physical machine to be suspended and transported to or accessed from another physical machine where it resumes execution from exactly the same state. Migrating a virtual machine involves capturing and copying the entire state of the machine at a snapshot in time including processor and memory state as well as virtual hardware resources such as BIOS, devices networks and MAC address. It also includes the entire disk space, including system and used directories as well as swap space used for virtual memory operating system scheduling. Different type of Virtual Machine Migration includes memory migration, file system migration, network migration, device migration and security in migration ( Sharath, 2009 ).

Load Balancing: Load balancing is an approach which tries to balance the total system load by transparently transferring the workload from highly loaded nodes to lightly loaded nodes in an attempt to ensure good overall performance of the system. Basic goal of load balancing is to maximize system throughput. Load balancing helps to achieve a high user satisfaction and resource utilization ratio by ensuring an efficient and fair allocation of every computing resource. Proper load balancing helps in minimizing resource consumption, enabling scalability, avoid over provisioning etc. Load balancing algorithms are basically classified into two categories such as static and dynamic algorithms where dynamic algorithms are again subdivided into centralized and distributed algorithm.

Virtual Machine: One computer containing multiple operating (heterogeneous or homogeneous) systems loaded on a single PC. Each of which functions as a separate OS on a separate physical machine. Virtualization software does just that by creating and managing one or more virtual machines on a single, physical host PC. It can run its own operating systems and applications as if it were a physical computer. A virtual machine behaves exactly like a physical computer and contains it own virtualized CPU, RAM hard disk and network interface card (NIC) (Agarwal, A., and Raina, S. (2012) AU31: The in-text citation "Raina, S. (2012)" is not in the reference list. Please correct the citation, add the reference to the list, or delete the citation. . Virtual machine provides a complete system platform which supports the execution of a complete operating system (OS). It delivers on demand scalable computing infrastructure when you need to quickly provision resources to meet your growing need. Example of virtual machine is java applet which runs on java virtual machine that has no access to host operating system. It has two major advantages (i)System Independence- A java application will run the same in any java Virtual machine regardless of hardware, software underlying the system. (ii)Security- Virtual machine has no contact with operating System. There is little probability of demanding other application.

Particle Swarm Optimization: Kennedy et al originally proposed the PSO algorithm for optimization. It is a population based search algorithm based on simulation behavior of birds. PSO soon become very popular for global optimizer. In PSO particles are flown through hyper dimension search space. Changes to the position of particle within the search space are based on the social psychological tendency of individuals to emulate the success of other individuals. The position of particles change according to their own experience.

Advantages of Virtual Machine Migration: (i) Workloads of server changes dynamically. Sometimes user request is low and some cases user demand is very high (for example during the end of the month). It is practically not possible to provision additional servers manually. So, Virtual Machine Migration accommodates for the changing workloads automatically (It can adapt to both additional workloads and reduced workloads). (ii) A scheduled maintenance normally results in some downtime for the users of the server. But with Virtual Machine Migration, the VM can be migrated to some other server (for that period of scheduled maintenance) and brought back to the host server after the maintenance is completed. Virtual Machine Migration can also migrate Virtual Machines in case of unscheduled server downtime (due to some fault in server), so that user’s experience high availability of applications at all times (Rajesh, K. (2014) AU30: The in-text citation "Rajesh, K. (2014)" is not in the reference list. Please correct the citation, add the reference to the list, or delete the citation. . (iii) Virtual Machine Migration can also be used for Disaster Recovery (DR). This process involves setting up of similar resources in a DR site with high speed WAN links and specialized network connectivity equipment. The Virtual Machines and their memory states are frequently synchronized (replicated) between the primary servers and the servers in the DR site, so that migration can happen quickly in case of a disaster. (iv) It’s easier to migrate a Virtual Machine from one server to another, than migrating the operating system and application(s) individually without disrupting the services.

Disadvantages of Virtual Machine Migration: (i)Cloud environment operate on new public and private IP which create complexity for new services. It is very difficult for migration tools to capture the configurations for Apache, tomcat etc. (ii) Domain name system (DNS) services are outside the scope of migration. Even if the DNS name changes identified tools may not allow flipping the switch to new location. (iii) Migrating tools basically capture, translate and migrate security policy. It is very complex and even incompatible with cloud providers due to the dynamism in changing security policies with respect to time and cloud providers. (iv) Complex load balancing policies may be problematic when migrating services to cloud. (v) Data transportation and synchronization create big problem when the data change continuously. So design of robust synchronization process is highly essential. (vi) Frequently the configuration needs to be manually modified in order to meet the advanced version of tools ( Puglisi, B. 2013 ).

Complete Chapter List

Search this Book: