The work a computer performs between two or more computers and the process of dividing the work performed at the same time and in the same amount is referred to as load balancing. In cloud computing load balancing is a critical issue that uses multiple nodes and distributed dynamic workload to avoid overloading. Increasing the performance of the system and minimize the resource consumption by optimal utilization of resources is the main goal of load balancing. Load balancing performs provisioning and de-provisioning of instances in an application when one or more components in a service face a failure. In a whole cloud the dynamic work load is evenly distributed to all of the other nodes. Load balancing achieves high user satisfaction by increasing the overall performance and resource utilization capacity. It also maximizes throughput and minimize overall response time. It avoids too much overload on the resources. Cloud computing faces a crucial issue, when it is necessary to divide the workloads dynamically. By using load balancing property it improves the performance by shifting workload among the processors. Enhancing overall performance will finally leads to achieving maximum client satisfaction.
Some of the advantages of choosing load balancing in cloud computing are avoiding bottlenecks, over provisioning, enabling scalability, green computing in clouds etc. Limited energy consumption and reducing carbon emission are some of the factors responsible for this. Load balancing has some objectives that include increasing the performance significantly, keeping the system stable, providing future enhancements, providing backup plans etc. Based on the process initiation load balancing can be divided in to three they are- Sender initiated, Receiver initiated and Symmetric. In sender initiated the client send request to the receiver. In Receiver initiated first the receiver sends an acknowledgement to the sender and in Symmetric both the receiver and sender performs load balancing algorithm. Based on the state of the system the load balancing is again categorized in to two they are Static load balancing and Dynamic load balancing. Static load balancing include processing power, memory, performance etc. Dynamic load balancing is based on the current state of the system. It can be defined based on the transfer policy, selection policy, location policy, information policy, load estimation policy and process transfer policy.
In cloud computing there are some existing load balancing techniques such as round Robin load balancing, Shortest job scheduling algorithm, Min Min load balancing and Max Min load balancing.
Virtualization in cloud computing is the process of creating an illusion of something like operating system, computer hardware, storage device or computer network resources. The concept of virtualization is Multi Programming. Here each process thinks it has complete control on all of the resources including virtual memory and CPU sharing. During virtualization the CPU is shared among operating system.
In virtualization the virtual server is tough to conceptualize. Email server and database server can also be referred to as virtual servers. These virtual servers can be scaled out easily. By using the concept of virtualization live migration can be made possible in cloud computing. Load balancing and consolidation, security and fault isolation can also made possible.
Virtualization has some importance in cloud computing they are – It will be difficult and in efficient if the cloud exist without virtualization. There will be infinite availability and you can use as much you want. Flexibility and efficiency in backend is readily available in virtualized environments and machines.
The virtualization hides the physical characteristics of the computing resources from the users by dividing the resources of a computer into multiple execution environments. Virtualization also consolidates the work loads of underutilized servers. In virtualization the VM’s can be used to run multiple operating systems simultaneously. They can also isolate what they run and provide fault and error containment. The type platform virtualization in cloud computing is divided in to five they are Full and Para virtualization, hardware virtualization, Partial and OS level virtualization. Other types of virtualization include Memory, Desktop, Application and Network virtualization.