You are on page 1of 13

1

SEMINAR REPORT
on
LOAD BALANCING IN CLOUD COMPUTING
Course Title – Seminar

BACHELOR OF ENGINEERING
Submitted by-
Name: Simran Tikoo
Roll No.: 181203074
Branch: Computer Science
Semester: 7th (A2)
2

ACKNOWLEDGEMENT

Through this section of my report, I want to present my gratitude towards MIET


Jammu, from where I am pursuing my degree and gaining lot of experience
worth to enhance my credibility for my career. I have been given the
opportunity to present my knowledge and research on the selected seminar topic
of my choice under the guidance of my department and college.

First of all, I am grateful to Dr. Ankur Gupta Director MIET and faculty of
MIET, Jammu for giving me this wonderful opportunity to present my views
and research on the selected topic for Seminar (Load Balancing in Cloud
Computing).

It is a great experience to do research and present views in this Seminar course.


It would have been difficult without the constant guidance and support of my
committee members HOD Mr. Dr. Anand Kumar Gupta, Asst. Prof. Vahiny
Sharma, Asst. Prof. Mekhla Sharma and Asst. Prof. Vani Malangar, Asst.
Prof. Meenu Lochan. I would also like to thank all my CSE Department to
encourage and inspire me for learning new skills.

At last, I want to thank my parents and friends who have been a support system
throughout my life and helped me lessen my burden and stress of work.

Yours sincerely,
Name: Simran Tikoo
3

ABSTRACT

“Cloud computing” is a term, which involves virtualization, distributed


computing, networking, software and web services. A cloud consists of several
elements such as clients, datacenter and distributed servers. It includes fault
tolerance, high availability, scalability, flexibility, reduced overhead for users,
reduced cost of ownership, on demand services etc.

Central to these issues lies the establishment of an effective load balancing


algorithm. The load can be CPU load, memory capacity, delay or network load.
Load balancing is the process of distributing the load among various nodes of a
distributed system to improve both resource utilization and job response time
while also avoiding a situation where some of the nodes are heavily loaded
while other nodes are idle or doing very little work. Load balancing ensures that
all the processor in the system or every node in the network does approximately
the equal amount of work at any instant of time. This technique can be sender
initiated, receiver initiated or symmetric type (combination of sender initiated
and receiver initiated types).

Our objective is to develop an effective load balancing algorithm using


Divisible load scheduling theorm to maximize or minimize different
performance parameters (throughput, latency for example) for the clouds of
different sizes (virtual topology depending on the application requirement).
4

CONTENTS

• Introduction . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 05

• Challenges of Load Balancing……………………07

• Goals of Load balancing …………………………08

• Load balancing algorithms………………………08

• Dynamic Load balancing ……………………….10

• Policies or Strategies in dynamic load


balancing…………………………………………11

• Conclusion…………………………………….18

• References……………………………………
5

INTRODUCTION
In the field of network technology, the cloud computing technology is showing
phenomenal growth due to the advancement of communication technology,
explosive use of Internet and solve large-scale problems. It allows both
hardware, and software applications as resources over the Internet for the cloud
user. The cloud computing is an Internet-based computing model that share
resources (e.g., networks, servers, storage, applications, and services), software,
and information to various devices of the user on demand (Bohn et al., 2011).
The Cloud computing is a path to utility computing embraced by some major IT
companies such as Amazon, Apple, Google, HP, IBM, Microsoft, Oracle, and
others. The Cloud Computing model has three service models, namely,
Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a
Service (IaaS) and four deployment models, namely, private, public, hybrid and
community.
The efficient and scalable features of cloud computing can achieve by
maintaining proper management of cloud resources. These cloud resources are
in the virtual form which is the most important characteristics of the cloud
system. The Cloud Service Provider (CSP) provides services to the users in
rented basis. The role of CSP to provide the services to the user is a very
complex one with the available virtual cloud resources. Therefore, researchers
have been given more attention towards the balancing of the load. This load
balancing has a sound impact on the system performance. The CSP design a
trade-off between the financial benefits and user satisfactory through load
balancing. The load balancing procedure also taking care of the Service Level
Agreements (SLAs), the agreement between the CSP and the cloud users.
6

The load balancing in clouds may be among physical hosts or VMs. This
balancing mechanism distributes the dynamic workload evenly among all the
nodes (hosts or VMs). The load balancing in the cloud is also referred as load
balancing as a service (LBaaS). There are two versions of load balancing
algorithms: static and dynamic. The static-based balancing algorithms are
mostly fit for stable environments with homogeneous system. Dynamic-based
balancing algorithms are more adaptable and effective in both homogeneous
and heterogeneous environment. However, the application of static load
balancing procedures has less system overhead as compared to the dynamic
load balancing procedures. A large number of heuristics has been proposed in
the literature to this problem. Also, some metaheuristics techniques are applied
to this, and here, we explained those technologies (Tsai and Rodrigues, 2014).
In cloud computing environment, the allocation of different tasks to VMs is
known as the load. We can define the load balancing problem in various ways
as follows. (1) Task allocation- The random distribution of a finite number of
tasks into different Physical Machines (PMs) which again allocated to different
VMs of respective PM. The efficiency of task allocation to the cloud determines
the effectiveness of the load balancing algorithm (Mishra et al., 2017, Ibrahim
et al., 2016, Jebalia et al., 2015). (2) VM/Task Migration Management- In
Cloud Computing Environment, VM Migration is nothing but the movement of
a VM from one PM to another PM to improving the resource utilization of the
data center for which the PM is overloaded. Similarly, the migration of the
current state of a task from one VM to another VM or VM of one host to VM of
another host is referred to as task migration. This is the reason; the VM or task
migration plays a major role in load balancing of cloud computing.
In this paper, we present a review based on the modern load balancing
algorithms evolved specially to suit the cloud environments. We have presented
a cloud system architecture to explain the cloud system. A taxonomy is
presented and elaborated for the classification of load balancing algorithms in
7

the cloud. Various performance parameters are explained as well as compared


those among different research on load balancing in a cloud.

CHALLENGES OF LOAD BALANCING

Overhead Associated: Determines the amount of overhead involved while


implementing a load balancing system. It is composed of overhead due to
movement of tasks, inter-process communication. Overhead should be reduced
so that a load balancing algorithm performs well.
Throughput: It is the number of task executed in the fixed interval of time. To
improve the performance of the system, throughput should be high.
Performance: It can be defined as the efficiency of the system. It must be
improved.
Resource Utilization: Is used test the utilization of resources. It should be
maximum for an efficient load balancing system.
Scalability: The quality of service should be same if the number of users
increases. The more number of nodes can be added without affecting the
service.
8

Response Time: Can be defined as the amount of time taken to react by a load
balancing algorithm in a distributed system. For better performance, this
parameter should be reduced.
Fault Tolerance: In spite of the node failure, the ability of an system to perform
uniform load balancing. The load balancing is the best fault-tolerant technique.
Point of Failure: Designed the system in such a way that the single point failure
does not affect the provisioning of services. Like in centralized system, if one
central node is fail, then the whole system would fail, so load balancing system
must be designed in order to overcome this problem.

GOALS OF LOAD BALANCING

The goals of load balancing are :


• To improve the performance substantially
• To have a backup plan in case the system fails even partially
• To maintain the system stability
• To accommodate future modification in the system

LOAD BALANCING ALGORITMS

The two most frequently used scheduling principles in a non-pre-emptive


system are round Robin and weighted round robin policies. Improved weighted
round robin is the proposed algorithm. Existing algorithms are implemented for
comparative analysis.
Round Robin Algorithm: The round robin algorithm allocates task to the next
VM in the queue irrespective of the load on that VM. The Round Robin policy
9

does not consider the resource capabilities, priority, and the length of the tasks.
So, the higher priority and the lengthy tasks end up with the higher response
times.
Weighted Round Robin Algorithm: The weighted round robin considers the
resource capabilities of the VMs and assigns higher number of tasks to the
higher capacity VMs based on the weightage given to each of the VMs. But it
failed to consider the length of the tasks to select the appropriate VM. Improved
Weighted Round Robin Algorithm The proposed improved weighted round
robin algorithm is the most optimal algorithm and it allocates the jobs to the
most suitable VMs based on the VM’s information like its processing capacity,
load on the VMs, and length of the arrived tasks with its priority.
The static scheduling of this algorithm uses the processing capacity of the VMs,
the number of incoming tasks, and the length of each task to decide the
allocation on the appropriate VM. The dynamic scheduling (at run time) of this
algorithm additionally uses the load on each of the VMs along with the
information mentioned above to decide the allocation of the task to the
appropriate VM. There is a probability at run time that, in some of the cases, the
task may take longer execution time than the initial calculation due to the
execution of more number of cycles (like a loop) on the same instructions based
on the complicated run time data. In such situations, the load balancer rescues
the scheduling controller and rearranges the jobs according to the idle slot
available in the other unutilized/underutilized VMs by moving a waiting job
from the heavily loaded VMs. The load balancer identifies the
unutilized/underutilized VMs through resource prober whenever a task is
completed in any of the VMs. If there is no unutilized VM, then the load
balancer will not take up any task migration among the VMs. If it finds any
unutilized/underutilized VM, then it will migrate the task from the overloaded
VM to the unutilized/underutilized VM. The load balancer analyses the
resource’s (VM) load only on the completion of any of the tasks on any of the
10

VMs. It never examines the resource’s (VM) load independently at any time to
circumvent the overhead on the VMs. This will help in reducing the number of
task migrations between the VMs and the number of resource probe executions
in the VMs.

DYNAMIC LOAD BALANCING

In a distributed system, dynamic load balancing can be done in two different


ways: distributed and non-distributed. In the distributed one, the dynamic load
balancing algorithm is executed by all nodes present in the system and the task
of load balancing is shared among them. The interaction among nodes to
achieve load balancing can take two forms: cooperative and non-cooperative
[4]. In the first one, the nodes work side-by-side to achieve a common objective,
for example, to improve the overall response time, etc. In the second form, each
node works independently toward a goal local to it, for example, to improve the
response time of a local task. Dynamic load balancing algorithms of distributed
nature, usually generate more messages than the non-distributed ones because,
each of the nodes in the system needs to interact with every other node. A
benefit, of this is that even if one or more nodes in the system fail, it will not
cause the total load balancing process to halt, it instead would effect the system
11

performance to some extent. Distributed dynamic load balancing can introduce


immense stress on a system in which each node needs to interchange status
information with every other node in the system. It is more advantageous when
most of the nodes act individually with very few interactions with others.

In non-distributed type, either one node or a group of nodes do the task of load
balancing. Non-distributed dynamic load balancing algorithms can take two
forms: centralized and semi-distributed. In the first form, the load balancing
algorithm is executed only by a single node in the whole system: the central
node. This node is solely responsible for load balancing of the whole system.
The other nodes interact only with the central node. In semi-distributed form,
nodes of the system are partitioned into clusters, where the load balancing in
each cluster is of centralized form. A central node is elected in each cluster by
appropriate election technique which takes care of load balancing within that
cluster. Hence, the load balancing of the whole system is done via the central
nodes of each cluster.
Centralized dynamic load balancing takes fewer messages to reach a decision,
as the number of overall interactions in the system decreases drastically as
compared to the semi distributed case. However, centralized algorithms can
cause a bottleneck in the system at the central node and also the load balancing
process is rendered useless once the central node crashes. Therefore, this
algorithm is most suited for networks with small size.
12

POLICIES OR STRATGES IN DYNAMIC LOAD BALANCING

There are 4 policies :


• Transfer Policy: The part of the dynamic load balancing algorithm which
selects a job for transferring from a local node to a remote node is referred to as
Transfer policy or Transfer strategy.
• Selection Policy: It specifies the processors involved in the load exchange
(processor matching)
• Location Policy: The part of the load balancing algorithm which selects a
destination node for a transferred task is referred to as location policy or
Location strategy.
• Information Policy: The part of the dynamic load balancing algorithm
responsible for collecting information about the nodes in the system is referred
to as Information policy or Information strategy.

CONCLUSION

You should now have the information you need to design a resilient load
balancing solution for your cloud application. The approaches, patterns, and
examples described in this book will help guide you whether you plan to use
NGINX and AWS or another load balancer and cloud provider combination.

As you go forth to build your cloud load balancing solution, keep in mind the
importance of automatic registration, deregistration, health checking, and the
ability to scale your load balancer horizontally. Think about the likelihood of
your solution needing to exist outside of your cloud vendor, and determine the
value of your solution being portable to other providers. Consider your
13

application needs for session persistence and examine if now is the right time to
centralize session state to alleviate this need.

If you have not already, try out the Amazon Quick Start for NGINX Plus to get
a feel for the AWS environment and see if NGINX or NGINX Plus is a good fit
for your solution. Take note of the value provided by CloudFormation and
Configuration Management that enables you to build up the Quick Start without
any manual configuration. Remind yourself that Infrastructure and
Configuration management not only provides you a repeatable deployment but
also the ability to reliably test and build quality gates for your systems and
security.

REFERENCES
▪ http://www.haproxy.org
▪ http://kb.limuxvirtualserver.org/wiki/Main_Page
▪ http://www.linuxvirtualserver.org/

You might also like