Two Level Hierarchical Model of Load Balancing in Cloud Geetha C. Megharaj 1, Dr. Mohan K.G. 2 1 Associate Professor, Sri Krishna Institute of Technology, Bangalore 2 Professor & Dean(R&D) CSE, Acharya Institute of Technology, Bangalore Abstract A cloud computing is conceptually a distributed system where resources will be computing resources distributed through the network (Cloud) and services pooled together and is provided to the users on pay-as-needed basis. Load balancing is one of the main challenges in cloud computing which is required to distribute the dynamic workload across multiple nodes to ensure that no single node is overloaded. Existing Load Balancing techniques mainly focus on reducing overhead, service response time and improving performance etc., but none of the techniques has considered the energy consumption and carbon emission factors. A Kind of two-level centralized scheduling model is proposed with the Global Centralized Scheduler (GCS) at higher level and the Local Centralized Scheduler (LCS) at next level to overcome high communication cost of distributed algorithms and single point of failure problem of centralized algorithms. An energy-efficient load balancing technique can be used to improve the performance of cloud computing by balancing the workload across all the nodes in the cloud with maximum resource utilization, in turn reducing energy consumption and carbon emission to an extent which will help to achieve Green computing. Platform As A Service It is a delivery of a computing platform over the web where user can create and install their own application as their need. Configuration of computing platform and server is managed by vendor or cloud provider. Example of PAAS is Google App Engine. Infrastructure As A Service Infrastructure of servers, software, and network equipment is provided as an on-demand service by the cloud provider. A. Cloud architecture The difference between traditional system and cloud system is represented in the Fig. 1.1 [19]. Cloud uses hypervisor [2] also called virtual machine manager (VMM), is one of many hardware virtualization techniques allowing multiple operating systems, to run concurrently on a host computer. Keywords cloud computing, Distributed computing, Green Computing, Load balancing. I. INTRODUCTION A cloud computing is conceptually a distributed system where resources are distributed through the network (Cloud) and services pooled together and is provided to the users on pay-as-needed basis. It has moved computing and data away from desktop to portable PCs into large data centres [1]. There are three cloud delivery models, Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS) deployed as public, private, community, and hybrid clouds. Software As A Service Cloud computing deliver a SAAS service where user do not need to manage installation and configuration of any hardware or software. All the installation and configuration of services are managed by vendor or cloud provider. Examples are Google Online office, Google Docs, Email cloud etc. Fig. 1.1 Compare b/w traditional system and cloud system The hypervisor [3] presents to the guest operating systems as a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources. Hypervisors are very commonly installed on server hardware, with the function of running guest operating systems, that themselves act as servers. 307
II. CLASSIFICATION OF LOAD BALANCING ALGORITHMS Balancing the load of virtual machines uniformly means that anyone of the available machine is not idle or partially loaded while others are heavily loaded. One of the crucial issue of cloud computing is to divide the workload dynamically. The benefits of distributing the workload includes increased resource utilization ratio which further leads to enhancing the overall performance thereby achieving maximum client satisfaction [4]. The goal of load balancing is improving the performance by balancing the load among the various resources (network links, central processing units, disk drives ) to achieve optimal resource utilization, maximum throughput, maximum response time, and avoiding overload. Based on process origination, load balancing algorithms can be classified as [5], [6], [7] : a) Sender Initiated: In this type of load balancing algorithm the client sends request until a receiver is assigned to him to receive his workload i.e. the sender initiates the process. b) Receiver Initiated: In this type of load balancing algorithm the receiver sends a request to acknowledge a sender who is ready to share the workload i.e. the receiver initiates the process. c) Symmetric: It is a combination of both sender and receiver initiated type of load balancing algorithm. Load balancing algorithms can be categorized into two groups. Depending on the current state of the system, load balancing algorithms can be divided into two Categories as given in [8]: Static: It doesn t depend on the current state of the system. Prior knowledge of the system is needed. Dynamic: decisions on load balancing are based on current state of the system. No prior knowledge is needed. So it is better than static approach. Dynamic load balancing algorithms can be further classified into a centralized approach and a decentralized approach. In the decentralized approach all nodes in the system are involved in making the load balancing decision. The decentralized algorithms are scalable and have better fault tolerance. The decentralized approach is preferred because elements of the network may vary in capacity or number during run time. Although the decentralized approach is suitable for dynamic heterogeneous resources it increases the communication overhead to a large extent. In the centralized approach only one node acts as the central controller. It allocates jobs to each of the slave nodes. The slave nodes execute the jobs assigned by the controller. The centralized approach is a simple approach and is beneficial when the communication cost is less significant. III. METRICS FOR LOAD BALANCING The existing load balancing techniques in clouds, consider various parameters like performance, response time, scalability, throughput, resource utilization, fault tolerance, migration time and associated overhead. But, for an energy-efficient load balancing, metrics like energy consumption and carbon emission should also be considered. Performance is used to check the efficiency of the system. It has to be improved at a reasonable cost e.g. reduce response time while keeping acceptable delays. Resource Utilization - is used to check the utilization of resources. It should be optimized for an efficient load balancing. Scalability - is the ability of an algorithm to perform load balancing for a system with any finite number of nodes. This metric should be improved. Response Time - is the amount of time taken to respond by a particular load balancing algorithm in a distributed system. This parameter should be minimized. Fault Tolerance - is the ability of an algorithm to perform uniform load balancing in spite of arbitrary node or link failure. The load balancing should be a good fault-tolerant technique. Migration time - is the time to migrate the jobs or resources from one node to other. It should be minimized in order to enhance the performance of the system. Carbon Emission (CE) - calculates the carbon emission of all the resources in the system. As energy consumption and carbon emission go hand in hand, the more the energy consumed, higher is the carbon footprint. So, for an energyefficient load balancing solution, it should be reduced. IV. EXISTING LOAD BALANCING TECHNIQUES Following load balancing techniques are currently prevalent in clouds. 1 CARTON: R. Stanojevic[9] proposed a mechanism CARTON for cloud control the unifies the use of load balancing(lb) and distributed rate limiting(drl). LB is used to equally distribute the jobs to different servers so that the associated costs can be minimized and DRL is used to make sure that the resources are distributed in a way to keep a fair resource allocation. With very low computation and communication overhead, this algorithm is simple and easy to implement. 308
2 Compare and Balance: [10] This method addressed the problem of intra-cloud load balancing amongst physical hosts by adaptive live migration of virtual machines. A load balancing model is designed and implemented to reduce virtual machines migration time by shared storage to balance load amongst servers according to their processor or IO usage and to keep virtual machines zerodowntime in the process. 3 Event-driven: V. Nae[11] presented an event-driven load balancing algorithm for real time massively multiplayer online games (MMOG). This algorithm after receiving capacity events as input, analyzes its components in context of the resources and the global state of the game session, there by generating the game session load balancing actions. It is capable of scaling up and down a game session on multiple resources according to the variable user load but has occasional QoS breaches. 4 Scheduling strategies on LB of VM resources: A scheduling strategy on load balancing of VM resources that uses historical data and current state of the system. This strategy achieves the best load balancing and reduced dynamic migration by using a genetic algorithm. It helps in resolving the issue of load imbalance and high cost of migration thus achieving better resource utilization [12]. 5 Honeybee Foraging Behavior: Randles investigated a decentralized honey-bee based load balancing technique that is a nature- inspired algorithm for self- organization. It achieves global load balancing through local server actions. Performance of the system is enhanced with increased system diversity but throughput is not increased with an increase in system size. It is best suited for the conditions where the diverse population of service types is required [4]. 6. Central load balancing policy for virtual machines - A. Bhadani et al. [13] proposed a Central Load Balancing Policy for Virtual Machines (CLBVM) that balances the load evenly in a distributed virtual machine/cloud computing environment. This policy improves the overall performance of the system but does not consider the systems that are fault-tolerant. 7. Self-organized load balancing: Giuseppe has presented a new method for load balancing in which a node with highest capacity serves as super peers. At first level, algorithm find out the capacity of every peer, i.e., the amount of service requests that peer is able to fulfil in a client time unit. This, in turn, is reflected in the Myconetoverlay as the target Bs of peers maintained by a super peer. This way, super peers are well positioned to effectively balance their neighbours request queues [14]. 9. Ant Colony Optimization[15]: Ratan Mishra has proposed a model in which Individual ants are behaviourally much unsophisticated insects. They have a very limited memory and exhibit individual behaviour that appears to have a large random component. Acting as a collective however, ants manage to perform a variety of complicated tasks with great reliability and consistency 10. LBVS- [16] load balancing virtual storage strategy (LBVS) provides a large scale net data storage model and Storage as a Service model based on Cloud Storage. Storage virtualization is achieved using an architecture that is three-layered and load balancing is achieved using two load balancing modules. It helps in improving the efficiency of concurrent access by using replica balancing further reducing the response time and enhancing the capacity of disaster recovery. 11. Join-Idle-Queue- [17] Join-Idle-Queue is load balancing algorithm for dynamically scalable web services. This algorithm provides large-scale load balancing with distributed dispatchers by, first load balancing idle processors across dispatchers for the availability of idle processors at each dispatcher and then, assigning jobs to processors to reduce average queue length at each processor. By removing the load balancing work from the critical path of request processing, it effectively reduces the system load, incurs no communication overhead at job arrivals and does not increase actual response time. V. PROPOSED WORK Resource allocation and efficient scheduling is characteristic of cloud computing based on which the performance of the system is evaluated. Resource request in cloud is served in three phases. In the first phase virtual machines are formed and they will be waiting for the scheduler to schedule the jobs. In the second phase once the jobs are allocated to virtual machines they start processing the jobs and in the third phase the virtual machines are destructed. A scheduling model similar dynamic load balance for grid in [18] is proposed for cloud. A. Two-level Hierarchical scheduling model A kind of two-level hierarchical scheduling model is proposed with the Global Centralized Scheduling Center (GCSC) at higher level and the Local Centralized Scheduling Center (LCSC) at next level. When the datacenter receives a new request for service it queries global centralized scheduler for allocation of virtual machine. 309
The global centralized scheduler collects the load information from every local centralized scheduler and the load will be transferred to the appropriate local centralized schedulers. The global centralized scheduler also takes over the tasks which offered by the user and return the results of the scheduling to the user. The local centralized scheduler collects the load information from the computing nodes in that area and balances the load in that local area. Different tasks are assigned to different computing nodes when the local centralized schedulers received request from the global centralized scheduler. The local centralized schedulers also collect the results from every computing node and then send to the global centralized scheduler. Fig. 5.1 Structure of two level Hierarchical scheduler. The global centralized scheduler balances the load for every local centralized scheduler. The local centralized scheduler balances the load for the computing nodes. VI. CONCLUSION GCS Load balancing is also required to achieve Green computing in clouds which can be done with the help of the following two factors: Reducing Energy Consumption - Load balancing helps in avoiding overheating by balancing the workload across all the nodes of a cloud, hence reducing the amount of energy consumed. LCS Computing node Reducing Carbon Emission - The more the energy consumed, higher is the carbon footprint. As the energy consumption is reduced with the help of Load balancing, so is the carbon emission helping in achieving Green computing. A two level hierarchical load balancing model for cloud is proposed. Suitable energy efficient load balancing algorithms for cloud may be designed to demonstrate load balancing to achieve green computing. REFERENCES [1] Nidhi Jain Kansal, Inderveer Chana, Cloud Load balancing techniques:a step towards green computing, IJCSI International Journal of Computer Science Issues, Vol. 9,Issue 1, No 1, January 2012. [2] VMware, Cloud computing Virtual infrastructure and virtual machine manager, accessed (25/01/2013), from http://www.vmware.com/virtualization/virtualinfrastructure.html. [3] Xen,virtual machine manager in Cloud computing, accessed 11/01/2013, from http://www.xen.org. [4] Randles, M., D. Lamb and A. Taleb-Bendiab, A Comparative Study into Distributed Load Balancing Algorithms for Cloud Computing, in Proc. IEEE 24th International Conference on Advanced Information Networking and Applications Workshops (WAINA), Perth, Australia, April 2010. [5] Ali M Alakeel, A Guide To Dynamic Load Balancing In Distributed Computer Systems, International Journal of Computer Science and Network Security, Vol. 10 No. 6, June 2010. [6] Ram Prasad Padhey, P. Goutam Prasad Rao, Load Balancing in Cloud Computing Systems, Department of Computer Science and Engineering, National Institute of Technology, May 2011. [7] Abhijit A Rajguru, S.S. Apte, A Comparative Performance Analysis of Load Balancing Algorithms In Distributed Systems Using Qualitative Parameters, International Journal of Recent Technology and Engineering, Vol. 1, Issue 3, August 2012. [8] David Escalante and Andrew J. Korty, Cloud Services: Policyand Assessment, EDUCASE Review, Vol. 46, No.4(July/August 2011). [9] R. Stanojevic, and R. Shorten, Load balancing vs.distributed rate limiting: a unifying framework for cloud control, Proceedings of IEEE ICC, Dresden, Germany, August 2009, pages 1-6. [10] Y. Zhao, and W. Huang, Adaptive Distributed Load Balancing Algorithm based on Live Migration of Virtual Machines in Cloud, Proceedings of 5th IEEE International Joint Conference on INC, IMS and IDC, Seoul, Republic of Korea, August 2009, pages 170-175. 310
[11] V. Nae, R. Prodan, and T. Fahringer, Cost-Efficient Hosting and Load Balancing of Massively Multiplayer Online Games, Proceedings of the 11th IEEE/ACM International Conference on Grid Computing (Grid), IEEE Computer Society, October 2010, pages 9-17. [12] J. Hu, J. Gu, G. Sun, and T. Zhao, A Scheduling Strategy on Load Balancing of Virtual Machine Resources in Cloud Computing Environment, Third International Symposium on Parallel Architectures, Algorithms and Programming (PAAP), 2010, pages 89-96. [13] A. Bhadani, and S. Chaudhary, Performance evaluation of web servers using central load balancing policy over virtual machines on cloud, Proceedings of the Third Annual ACM Bangalore Conference (COMPUTE), January 2010. [14] Giuseppe Valetto, Paul Snyder, Daniel J. Dubois, Elisabetta DiNitto and Nicolo M. Calcavecchia, A self-organized load balancing algorithm for overlay based decentralized service networks. [15] Ratan Mishra, Anantjaiswal, Ant colony optimization: ASolution of load balancing in cloud, International Journal ofweb & Semantic Technology (IJWesT) Vol.3, No.2, April2012. [16] H. Liu, S. Liu, X. Meng, C. Yang, and Y. Zhang, LBVS: A Load Balancing Strategy for Virtual Storage, International Conference on Service Sciences (ICSS), IEEE, 2010, pages 257-262. [17] Y. Lua, Q. Xiea, G. Kliotb, A. Gellerb, J. R. Larusb, and A. Greenber, Join-Idle-Queue: A novel load balancing algorithm for dynamically scalable web services, An international Journal on Performance evaluation, In Press, Accepted Manuscript, Available online 3 August 2011. [18] Han Xiangchun, Chen Duanjun, Chen Jing, one centralized scheduling pattern for dynamic load balance in Grid, 2009 international forum on Information Technology and Applications. [19] Cloud Computing Architecture, accessed from http://communication.howstuffworks.com/cloud-computingl.htm 311