Int. J. Communications, Network and System Sciences, 2011, 4, 790-802
doi:10.4236/ijcns.2011.432097 Published Online December 2011 (
Copyright © 2011 SciRes. IJCNS
Towards Cloud Management by Autonomic Manager
Omid Mola, Michael A. Bauer
Department of C om put er Science, University of Western Ontario, London, Canada
Received September 29, 2011; revised November 8, 2011; accepte d November 24, 2011
The management of clouds comprised of hundreds of hosts and virtual machines present challenging prob-
lems to administrators in ensuring that performance agreements are met and that resources are efficiently
utilized. Automated approaches can help in managing such environments. Autonomic managers using pol-
icy-based management can provide a useful approach to such automation. We outline how collections of
collaborating autonomic managers in cloud can be a step towards better management of clouds. We describe
how a hierarchy of policy-based autonomic managers can collaborate using messages. The messages and
when to communicate is inferred automatically from the policies given to the managers. We evaluate the ap-
proach via a prototype inspired by a cloud virtualized infrastructure and show how collaboration between
managers in a hierarchy can improve the response time of a web server and avoid service level agreement
violations. Results of three different scenarios shows the importance of collaboration between managers at
different authority levels and how this collaboration can help to increase efficiency of current infrastructures.
Keywords: Autonomic Management, Collaboration, Policy-Based Management, Cloud Management
1. Introduction
Cloud computing environments often depend on virtual-
ization technology where client applications can run on
separate operating virtual machines (VMs), particularly
for providers of Infrastructure as a Service (IaaS). Such
environments can consist of many different host com-
puters each of which might run multiple VMs. As the
number of hosts, virtual machines and client applications
grow, management of the environment becomes much
more complicated. The cloud provider must worry about
ensuring that client service level agreements (SLA) are
met, must be concerned about minimizing the hosts in-
volved, and minimizing power consumption. Our focus
is on how to better manage the virtual machine and sys-
tem infrastructure of the cloud provider.
In recent years there has been a lot of research into
“Autonomic Computing” [1], especially about how to
build autonomic elements and managers [2]. Autonomic
managers try to monitor and manage resources in real
time by building systems that are self-configuring, self-
optimizing, self-healing and self-pro tecting . In the broad-
er vision of autonomic computing, large complex sys-
tems will consist of numerous autonomic managers han-
dling systems, applications and collections of services
[3]. Some of the systems and applications will come
bundled with their own autonomic mangers, designed to
ensure the self-properties of particular components. Other
mangers will be part of the general management of the
computing environment. The complexity of managing a
large system will entail a number of different autonomic
managers which must cooperate in order to achieve the
overall objectives set for the computing environment and
its constituents. However, the relationships between
these managers and how they cooperate introduce new
challenges that need to be addressed.
We consider the use of policy-based managers in ad-
dressing this problem and with an initial focu s on a hier-
archy of autonomic managers where policies are used at
each level to help managers decide when and how to
communicate with each other as well as using polices to
provide operational requirements. The ultimate goal is to
automatically monitor and manage a larger system by a
collective of collaborating local autonomic managers
(AMs). In such an environment we assume that each
local AM has its own set of policies and is trying to op-
timize the behavior of its lo cal elements by respond ing to
the changes in the behavior of those elements. We as-
sume some managers will also be expected to monitor
multiple systems and directly or indirectly to monitor
other local AMs. We also assume that one of the roles of
a “higher level” manager is to aid other AMs when their
own actions are not satisfactory.
The focus of this paper is on collaboration and com-
munication between different managers at different lev-
els of the hierarchy based on the active policies. The core
issue addressed is how these local managers should
communicate with each other and what information they
have to exchange to achieve global performance goals.
Finally, we will show how to automate the collaboration
process itself.
2. Related Work
Some researchers have already begun to study how the
collaboration or cooperation among local autonomic
managers can be done in order to achieve a global goal.
This work has looked at hierarchical organization of
managers for cooperation, agent-based approaches and
registry-based techniques [4-7].
A hierarchical communication model for autonomic
managers has be en used by some researche rs. Famaey an d
Latre [4] used a policy based hierarchical model to show
how it can be mapped to the physical infrastructure of an
organization and how this hierarchy can dynamically
change by splitting and/or combining nodes to preserve
scalability. They also introduced the notion of context that
needs to be accessible in the hierarchy, but do not describe
in detail what this con text should be and how it should be
communicated. In this paper, we focus on what this con-
text should be, how it can be transferred from one man-
ager to the other and when this should happen.
Aldinucci, et al. [8] described a hierarchy of managers
dealing with a single concern (QoS). They introduce three
types of relationship between components but do not
explore the details of how and when such components
should interact in actual systems. They used a simulator to
evaluate the framework and their main focus was on the
concept of a “behavioral skeleton” where they used
autonomic management for skeleton-based parallel pro-
Mukherjee, et al. [9] used a flat coordination of three
managers working on three different parts of a system
(Power Management, Job Management, Cooling Man-
agement) to prevent a data center from going to the
critical state. They showed how the three managers can
cooperate with each other to keep the data center tem-
perature within a certain limit that is suitable for serving
the current workload and at the same time not using more
power than required. They showed how these three man-
agers should cooperate based on different business poli-
cies. However, these three managers are fixed and adding
new managers to this system will be challenging both in
terms of collaboration and scalability.
The same approach as in [9] is used in [10,11] to show
the collaboration between a power and a performance
manager (only two managers) to minimize the power us-
age as well as maximizing the performance. This method
however does not seem to be generalizable to a larger en-
vironment with more autonomic managers involved be-
cause of the complexity introduced in terms of interact-
tions betwee n managers.
Salehi and Tahvildari [12] proposed a policy-based or-
chestration approach for resource allocation to different
autonomic elements. They proposed that the orchestrator
get the re quests from autonomi c element s and coordi nates
elements using some global policies. The same kind of
approach is used in [13] by having a coordinating agent
that tries to coordinate power and performance agents.
This approac h could be use d as part of t he hierarchi cal ap-
proach that will be presen ted in this paper but it does no t
seem to be applicable to a larger system just by itself,
because of scalability issues. This is actually a special
case of the hierarchical approach discussed in this paper,
but with only one level of hierarchy.
Schaeffer-Filho, et al. [14,15] have introduced the in-
teraction between Self-Managed Cells (SMCs) that was
used in building pervasive health care systems. They
proposed “Role” based interactions with a “Mission” that
needs to be accomplished during an interaction based on
predefined customized interfaces for each role. This ap-
proach is very general and does not address the details of
the interactions. In the work presented in this paper, we
will address what the po licies lo ok lik e and what specific
information needs to be exchanged.
3. Cloud Management
3.1. Architecture & Virtual Machines
The infrast ructure of Iaa S providers, such a s Amazon EC2,
is typically composed of data centers with thousands of
physical machines organized in multiple groups or clus-
ters. Each physical machine runs seve ral virt ual m achines
and the resources of that server are shared among the
hosted virtual machines. Therefore, there are a large
number of virtual machines that are executing the appli-
cations and services of different customers with different
service level requirements (via Service Level Agreement
(SLA) parameters).
It is also possible for a customer and the service pro-
vider to mutually agree upon a set of SLAs with d ifferent
performance and cost structure rather than a single SLA.
The customer has the flexibility to choose any of the
Copyright © 2011 SciRes. IJCNS
Copyright © 2011 SciRes. IJCNS
agreed SLA s from t he availabl e of ferings . At runtim e, the
customer can s wi tch between t he different SLAs.
Depending on th e load and resource usage of a virtual
machine, the cloud provider should allocate enough re-
sources to ensure that the service level requirements are
met. On t he ot her han d, if t here is a loa d dro p and no nee d
for allocated resources, it is advantageous for the service
provider to remove some of the extra resources and to
reallocate them to other virtual machines in need.
To have a better understanding of cloud provider en-
vironment and architecture, we take a closer look at
Eucalypstus [16] (an open-source infrastructure for the
implem entation of cl oud computin g on compute r clusters) .
In Eucalyptus, there are five elements that form the cloud
infrastructure (see Figure 1):
Cloud Controller (CLC)
Walrus Storage Controller (WS3)
Elastic Block Storage Controller (EBS)
Cluster Controller (CC)
Node Controller (NC)
These elements can physically locate on one single
machine to form a sm all cloud but each one has a different
role in forming the cloud infrastructure.
The CLC is the top level component for interacting
with users and getting the requests. The CLC then talks
with the Cluster Controllers (CC) and makes the top level
choices for allocating new instances of virtual machines.
The Cluster Controller receives requests from t he Cl oud
Controller and in turn decides which Node Controller will
run the VM instance. This decision is based upon status
reports which the Cluster Controller receives from each of
the Node Controllers. ESB and WS3 are used for storage
control of the images inside cloud.
A Node Controller (NC) runs on the physical machine
responsible for running VMs and the main role of the NC
is to interact with the OS and hypervisor running on the
node to start, stop, deploy and destroy the VM instances.
3.2. Challenges
All of the specified elements in the cloud architecture are
needed for instantiation of new images or destroying
currently deployed VMs and they have some minimal
management capabilities. However, the main challenges
in managing the cloud environment occur after the VMs
start working and receiving loads:
How should the system respond to the load changes
inside one or more virtual m ac hi nes?
What should happen to maximize the performance of a
specific vi rtual m achine (or a n application inside it) ac-
cording to the agreed SLA?
How can we scale the system up and down on the fly
(change VM par ameters)?
How can one enforce specific operational policies for
the entire system?
How can one make sure that minimum resources are
used to perform a task (e.g. minimizing the power us-
Figure 1. Eucalyptus cloud architecture (from [17]). It shows the hierarchy of cloud architecture and how controllers are
intracting with each other in this hierarchy. e
A deeper look at the cloud architecture and the man-
agement needs suggest that providing all these capabili-
ties through a single centralized manager is almost im-
possible, because the cloud is composed of hierarchical
layered elements with different responsibilities at each
layer. Any management system needs to deal with all
these layers to be able to provide the management capa-
bilities. Therefore, a hierarch ical approach towards clou d
managem ent woul d be a more efficient way t o achie ve all
of the goals. At the same time, each element in the man-
agement hierarchy should act autonomously and manage
part of the hierarchy on its own.
4. Approach
Based on the previous discussions, we propose to use a
number of different autonomic managers. We need one
AM for each VM and its applications, though we could
also consider AMs for applications in the VM as well. We
will also assume AMs at each layer in the cloud archi-
tecture. By using this approach, the problem of managing
a large system entails a number of autonomic managers
where each one is dealing with smaller or more localized
components, and then each manager’s job is to focus on
managing that component (or small set of components)
For example, an AM for an Apache web server should
only focus on the behavior of the web server and not the
relationship that it might have with a database server and
the Node Controller (NC) AM should only focus on the
behavior of the VMs inside that node and the general
performance of that node.
The hierarchy of autonomic managers might appear as
in Figure 2. In the lowest level the AMs are managing
the applications inside the VMs. The AMs at the node
controller (NC) level monitor and manage the VMs.
Then the AMs at cluster controller (CC) level are re-
sponsible for all physical nodes inside that cluster. Simi-
larly the AM at cloud controller (CLC) level monitors
and manages all of the clusters.
Note that this is a logical organization of autonomic
managers and does not necessarily reflect the physical
allocation of the AMs, i.e., they do not need to be located
on different physical machines. In a large cloud co mput-
ing provider they could be located on separate machines
or some may be located on the same machines. These
AMs should then collectively work tog eth er to preserv e a
set of policies for optimizing performance, minimizing
resource usage, avoiding SLA violations, etc.
The hierarchy of managers can be expanded dynami-
cally into more levels as required. A good example of
splitting and combining elements in the hierarchy is il-
lustrated in the work of Famaey, et al. [4] to improve the
scalability of the hierarchical approach; we have not
considered this in this paper.
For management to happen, the big or more complex
tasks should be divided into smaller tasks and delivered to
different responsible managers at lower levels. For ex-
ample, the AM at the Cloud Controller (CLC) level
should take care of the balancing the load between dif-
ferent clusters and the AM at the Cluster Controller (CC)
level should look after balancing the load between dif-
ferent nodes inside that cluster. Similarly, the AM at the
node level should optimize the resource usage of that
physical machine among different VMs and while the AM
inside a VM should work on optimizing the applications’
Assuming that the management “tasks” are specified
in terms of policies, this means that we need policies
with different granularity deployed at different levels of
the infrastructure and we need to ensure that AMs can
communicate properly with each other to enforce those
4.1. AM Requirements
In this section we explain the assumptions we have for a
general autonomic manag e r to work in collaboration with
other managers. Although AMs are heterogeneous and
can belong to different vendors, they should all follow
some specifications to make the collaboration possible.
We assume that inside each AM there is an event han-
dling mechanism for processing, generating events and
notifying the interested parties inside the AM. Fo r exam-
ple, there could be an event bus and different subscribers
Figure 2. Hierarchy of autonomic managers based on the
cloud architecture.
Copyright © 2011 SciRes. IJCNS
794 O. MOLA ET AL.
to certain events ( within the AM) and upon raisin g those
events any subscribers will get notified. This event han-
dling mechanism is useful for handling event, condition,
action policies (explained in the next section) and also for
communication between managers (explained below).
Each manger should also provide an interface for re-
ceiving messages from other managers. This interface
should be able to re ceive di fferent message types (e.g. M1,
M2, M3 explained below), parse them and do the proper
actions according to the specification of that message. It is
important, therefore, that there be a small number of dif-
ferent types of messages; this is presented in this paper
(Section 4.3).
We also assume that managers can interact with the
applications, VMs, etc. (i.e., “objects”) in their managed
environment through some interfaces called “Manage-
dObjects”. For example, if a manager is responsible for
managing some VM, then properties and metrics of the
VM is encapsulated in the VMManagedObject. Other
possible managed objects are: ApacheManagedObject,
VMManagedObject, NodeManagedObject, ClusterMan-
Each managed object has a set of properties, metrics
and actions associated with it. Properties of a managed
object are defined in the definition of the managed object
and are set upon instantiating a new managed object. The
metrics associated with a managed object are those prop-
erties that change more often and therefore must include
actions specifying how it is to be defined and how they
can be updated (refreshed). Actions are operations that
can be done on that managed object. For example, all
VMManagedObjects have a common set of properties:
VM name, VM allocated memory and VM operating
system type. They would likely have metrics like CPU
utilization and memory utilization and therefore would
also include an action to get the new values for each of
these m etrics (e.g. by conn ecting to the AM i nside the VM
and sending a message to get the updated values). Other
actions for a VMManagedObject could be StartVM,
StopVM, GetVMIP, etc. These would be defined by the
system administrator/designer inside these managed ob-
The actions, metrics and properties defined inside
managed objects can later be used in policies to evaluate a
specific condition or to perform an action on that managed
4.2. Policy-Based Management
We assume each AM operates based on a set of policies
provided to it. An overview of policy-based management
along with relevant standards and implementation tech-
niques can be found in Boutaba, et al. [ 18].
An AM can have different types of policies which can
be useful for certain purposes. For example, an AM
might rely on configuration policies for self-configure-
tion of managed elements, or might utilize expectation
policies for optimization of the system or for ensuring
that service level agreements (SLAs) are met.
In this work, we use expectation policies expressed as
event, condition , action (ECA) policies. In general, all of
our policies are of the form:
On event: E
if (Set of Conditions) then
{Set of Actions}
Upon raising an event inside the autonomic manager,
then any policy which matches the event will get evalu-
ated. If the conditions in the policy are met, then the pol-
icy actions get triggered. We provide examples of poli-
cies in the following sections.
At AM startup there are configuration policies th at set
up the AM environment, identify the appropriate man-
aged objects and configure them. A sample configuration
policy would look like:
On event: St artupEvent
if (true) then {
setFatherIP: “”
VMManagedObject create: vm1.
vm1 setIP: “”.
This policy happens on AM startup and configures the
parent’s IP of this AM in the hierarchy and also adds one
ManagedObject for managing vm1. This AM will be
responsible for managing vm1 and will communicate
with the manager inside vm1 if necessary. The AM hier-
archy can be built this way upon system startup but it can
change dynamically throughout their lifetime (e.g. by
migration of a VM to an other machine). We will show an
example of this dynamic change in Section 5.1.3.
4.3. Communication Model
In previous work [19], we suggested the use a message-
based type of communication between AMs. Several dif-
ferent types of messages were proposed as sufficient for
communi cation between managers:
Msg = <Type, Info>
Info = Metrics|Details
Metrics = {<m,v>|m is the metric name, v is the metric
Details = <T, Metrics>
T = <HelpReq, SLAViolation, ...>
By using a message “Type”, we introduce the possi-
bility of different types of relationships between manag-
ers (e.g. request, response) and based on the type of
Copyright © 2011 SciRes. IJCNS
message, one manager can expect the kind of informa-
tion that would be available in the Info section of the
message. The Info can be the latest metrics of elements
managed by a particular local manager or could be de-
tails on some event that has happened. Having a small set
of different types of messages also makes it easy to de-
fine the operation of each AM.
Since we are dealing with a hierarchy of managers
then each manager needs to communicate with either its
father or its children. However, it is also possible for an
AM to send NOTIFY messages to another AM in some
other part of the hierarchy based on a request (we will
provide an example of this in Scenario 3 of the experi-
ments). So, each AM knows the address of its father and
children for a point to point communication (e.g. sending
messages) at the time of startup but it will get the address
of other AMs as part of NOTIFY messages, if there is a
need for it.
The form of each of these types of messages is as fol-
M1 = <NOTIFY, Details>: When one manager wants
to raise an event in another manager it can be encapsu-
lated inside a notify message. The type and content
(Metrics) of the event is very system specific and can
both be defined in the Details portion of the message.
Possible events would be a “help request event”, “pol-
icy violation event”, “system restart event”, “value
update event”, etc. We illustrate this type of message
in the next section. When a manager receives a notify
message from another manager, it will raise an event
inside the event bus and deliver it to interested sub-
scribers (e. g. e val uat e proper poli cies).
M2 = <UPDATE_REQ, Metrics>: This is a message
asking for the status of the metrics declared in Metrics.
Another manger can respond to this message by send-
ing an I NFO mess age ba ck. The se Metrics can be spe-
cifically declared in policies that used for a communi-
cation or it can be inferred automatically from policies.
The Metrics are very dependent on the nature of the
system and can be different from one system or appli-
cation to another. Examples of such information in-
clude CPU utilization, memory utilization, number of
requests/second, number of transactions, available buf-
fer space, packets per second, etc.
M3 = <INFO, Metrics>: This is a message that pro-
vides information about metric values, which can help
the process of decision making in the higher level
manager. This message is usually sent in response to
the UPDATE_REQ message from a higher level man-
ager (e.g. M2 explained before).
The UPDATE_REQ message is sent from higher level
managers to lower level ones. INFO messages are sent in
response to the UPDATE_REQ message and NOTIFY
messages are sent from one manager to another based on
the need. We will explain in more details how we can use
policies to generate these messages for communication
among AMs based on demand.
4.4. Inferring Messages from Policies
In order to better illustrate the problem and approach, we
will show several examples of policies that can be used
at different levels of a hierarchy and how these policies
can influence the relationship between managers.
Assume that on each VM there is a LAMP (Linux-
Apache-Mysql-PHP) stack that hosts the web application
and that one AM is managing the applications inside that
VM. We use event, condition, action (ECA) policies to
specify operational requirements, including requirements
from SLAs, and we also use policies to identify and react
to important events.
Assume that the following policy is being utilized by
AMvm1 and is a policy specifying the requirements needed
to meet an SLA. The policy indicates that the Apache
response time should not go above 500 ms. This policy
gets evaluated once a “ManagementIntervalEvent” event
happens and there is a configurable timer that triggers this
event at certain intervals (e.g. every 1500 ms).
On event: ManagementIntervalEvent
if (apache::responseTime > 500)
apache::increaseMaxClients: +25 max: 200
This policy specifies that if the response time of the
Apache server goes beyond 500 ms, then the manager
should increase the MaxClients configuration parameter
by 25. The poli cy also in dicates, howe ver, that this cannot
be done indefinitely, but that the limit for MaxClients is
200, which means that the manager should not increase it
to more than 200.
Another sample policy for an AM at the node controller
level (e.g. AMnc1) is:
On Event: HelpRequestEvent
if (vm1:: memoryUtil > 85 & vm1::cpuUtil > 95)
vm1:: increaseMem: +50 max: 500
Upon receipt of a “HelpReq” notify message from an-
other AM (e.g. AMvm1), a HelpRequestEvent gets trig-
gered inside the receiving manager and those policies
that match that event evaluated by the manager.
This policy specifies that when a HelpRequestEvent
happens, if the memory utilization of the VM in need is
more than 85% and its CPU utilization is more than 95%,
then the manager should increase its memory by 50 MB.
Again, this can only be done to some limit. In this case,
the maximum limit is 500 MB.
One of the challenges in collaboration between man-
agers is to determine when they need to send/receive a
message from another AM in the hierarchy. Since we are
Copyright © 2011 SciRes. IJCNS
796 O. MOLA ET AL.
using a pol icy-based a pproach, o ne way t o specify w hen a
message should be sent is to have a specific policy that
determines when an AM is to communicate. For exam ple,
one could include a policy explicitly identifying a com-
munication action to send a help request event from a
lower level to a higher level manag er; such as:
On event: ManagementIntervalEvent
if (apache:: responseTime > 1000)
This approach requires a substantial work by the ad-
ministrators in order to define all the policies needed.
An alternative would be to automatically infer from
policies the right time for sending a message and the
content of the message; this is th e focus of this paper. In
the remainder of this section, we explain how autonomic
managers can infer the right message type and the right
time for sending a message to another AM. Based on the
Message Types proposed, if a manager has detected a
policy violation and has tried to take an action, but has
reached some limit in changing a parameter and can no
longer do a local adjustment, then it will create a help
request message and send it to the higher level manager.
That is, as long as there is something that can be done
locally there is no need for further communication unless
it is an UPDATE_REQ message.
Therefore, by defining a “maximum” limit in a policy,
an AM can determine exactly when it has reached the
local limits and create the right message to be sent to the
higher level manager. Thus, the AM can infer automati-
cally from the policy when to send this type of message
at run time. This can happen when the manager has
reached the limit specified in trying to take actions speci-
fied in a policy.
For example, if AMvm1 increased MaxClients to 200, it
has reached the local limit and can no longer increase it
more. Then, upon detecting a policy violation for the
Apache res ponse time, AMvm1 cannot increas e MaxClients
further, and so will create a HelpReq message and send it
to the higher level manager. A general form of this mes-
sage is like this:
M1 = <NOTIFY, Details>
Details = < HelpReq, {<m1, v1>, <m2, v2>, . ..} >
Based on this technique we can build a system with
different AMs working autonomously at different levels
and interacting with each other based on demand but the
important point is that all these AMs are collectively
trying to adhere to a set of policies that minimize the
number of SLA violations (or maximize performance
based on SLA parameters), and minimize resource usage
at the same time. In this work, we assume that these
policies are defined by system administrators and are
given to different AMs for enforcement. This happens
while each manager has a local view of th e system and is
trying to solve problems locally but when no further local
adjustment is possible i t asks t he hig her level manager for
An UPDATE_REQ message is of the general form:
M2 = <UPDATE_REQ, Metrics>
Metrics = {<m1, null>, <m2, null>, ...}
This type of message can also automatically be infer-
red from policies and sent to the lower level manager to
get the updated results. For example, a policy at AMnc1
for refreshing the metrics related to VMs could be:
On Event: RefreshIntervalEvent
if (true)
managedSystem:: refresh.
The AM automatically contacts all of its children via
the UPDATE_REQ message to get the latest metrics
related to each managed object under its control (e.g.
At AM startup, each managed object will get config-
ured with pr oper values for prope rties and then at r un time
the AM can automatically figure out metrics that need to
be refreshed an d generate the pro per message for updating
them. This message will look like:
Msg = <UPDATE_REQ, {<cpuUtilization , null>,
<memoryUtilization, null>}>
Then, upon receipt of this message by the AMvm1 and
AMvm2, a reply INFO message is automatically generated
to be sent back. If for any reason, these AMs cannot cal-
culate these values then they can send an INFO message
back with null values which shows that there was a
problem in getting values for the requested metrics. The
general form of the INFO message is:
M3 = <INFO, Metrics>
Metrics = {<m1, v1>, <m2, v2>, ... }
and an example of the message to be returned would
look like:
Msg = <INFO, {<cpuUtilization, 60>, <memoryUtili-
zation, 75>}>
There can be separate policies that specify the need for
sending these messages but the important point is that it is
not necessary. Rather, these messages can be automati-
cally inferred from what is defined in the policies.
4.5. Management Policies
One more aspect that needs to be considered in the man-
agement of this cloud environment is that AMs can dy-
namically join or leave the hierarchy and that at each
level of the hierarchy we need to enforce some similar
policies. How we can make sure that right policies get
created and put in place automatically on the fly? The
answer to this question is through a set of defined gen-
eral management policies that are responsible for creat-
ing and/or removing other concrete policies.
Copyright © 2011 SciRes. IJCNS
For example, if the manager at the node controller (e.g.
AMnc1) is responsible for helping the VMs in need, then a
policy can be created on the fly for each VM that joins
the hierarchy and also gets removed once a VM has been
removed or migrated from this node to another. A exam-
ple of this kind of policy is:
On event: NewManagedObjectEvent
if (newManagedObject is a VM) {
create a new policy {
On Event: HelpRequestEvent
If (vmName == &&
vmName::memoryUtil > 85)
vmName:: increaseMem: +50 max: 500.
This policy says that upon detecting a new managed
object event (which might happen at AM startup for con-
figuring the system or after one VM is migrated to an-
other machine), if that managed object is a VM then our
manager should create another policy and activate it. We
will explain an example of VM migration and how this
event can be triggered in the scenario 3 of experiments.
This new policy says that upon receiving a HelpRe-
questEvent, if the name in the ev ent matches the name of
this VM (the event is coming from the manager inside
this VM) and this VM’s memory utilization is above
85% then increase its memory by 50 MB up to maximum
of 500 MB.
In fact, this is a policy for creating policies and sh ould
be defined by administrators at each level of the hierar-
chy. This form of a policy is very useful for creating and
applying general rules to every in stance at a certain level
of hierarchy. It will help administrators define what is
expect to happen in a dynamic environment and the right
policies will be created based on demand for each in-
stance. The use of these management policies also sim-
plifies the work of the administrator in that for specific
policies may not h ave to be created, e.g. for a certain type
of VM.
A similar approach can be used for deactivating or
removing other policies related to a VM instance that has
been migrated to another host in the hierarchy and the
current manager does not need to take care of that par-
ticular VM any longer.
5. Prototype
In order to evaluate our approach, we used two VMs
running on a single server with LAMP installed on them
and a two tier web application based on an online store
was configured to run on the VMs. There was also a
privileged autonomic manager running in the physical
server and its job is to manage (optimize based on policies)
the behavior of that server by collaborating with the
managers running inside VMs.
We used KVM virtualization [20] with an Ubuntu dis-
tribution to build the guest VMs. “Domain 0” is the first
guest operating system that boots automatically and has
special management privileges with direct access to all
physical har dware by defaul t. The manager running inside
Domain 0 has the authority to change the configuration of
other VMs such as allocated memory, allocated CPU
cores, etc. Figure 3 shows the physical structure of the
We implemented the aut onomi c m anager using t he Pon-
der2 [21] system and used Ponder Talk for communica-
tion between managers.
Each of the AMs has its own set of policies and tries to
optimize the performance of the local system. Manager
AM2 (see Figure 3) manages physical server “1”, trying
to optimize its performance and behavior based on the
policies given to it. This includes monitoring the other
VMs (VM1 and VM2) in order to help them when they are
in need. Because AM2 is running in domain0, which is a
privileged domain, it can change/resize VMs.
Although we have implemented this system for only
two levels of hierarchy, the architecture a nd concepts used
are generalizable to the larger systems such as an entire
organization, a data center, etc. Figure 4 shows the h ier-
archy and relationship between AMs in our system.
Figure 3. Physical layout of the experiments which consist
of three physical servers. Two of them are using KVM vir-
tualization for running VMs; server1 hosts two VMs each
running a web app that receive loads.
Copyright © 2011 SciRes. IJCNS
Copyright © 2011 SciRes. IJCNS
server in this case.
In this case, when the load increases the local manager
tries to adjust the web server by allocating more resources.
For example at points A, B, C and D in Figure 5 an SLA
violation was detected by the manager. In response to the
SLA violation at points A, B and C and based on the
policies explained before, the autonomic manager (AM1)
increased the MaxClients property of the Apache server
that it was managing by 25. At point D it also detects an
SLA violation, but cannot increase MaxClients since it
has already reached the maximum value for the MaxCli-
ents propert y (i.e., 200).
As a result, the system will face more SLA violations
and the response will get worse, as can be seen by the
graph of the response time in Figure 5. Thu s, the lo ad is
more than what this system can handle alone. This also
causes a long te rm violation of t he SLA which coul d mean
more penalties for the service provider.
Figure 4. Hierarchy of managers based on physical layout.
5.1. Experiments and Results
We used an open sour ce online store called “Virtuemart”
[22] to measure the response time of Apache web server
running on VM1. We used JMeter [23] to generate loads
to this virtual store and measured the response time of
Apache in three scenarios. The ultimate goal of the whole
system is to keep the response time under a certain
threshold (e.g. 500 ms) that we ass umed was defi ned in an
We calculate two measures of the performance of the
system and managers in this case: the total time that the
system could not meet the SLA (T) and the percentage of
time that the system spent in a “violation” (V). For these
experiments each time interval was 1 second. Therefore,
the results for Scenario 1 are:
T1 = 18 seconds
5.1.1. Scenari o 1: No Col laborati o n S1 = Total time = 25 seconds
V1 = T1/S1 = 0.72 = 72%
In the first scenario we disabled all communications be-
tween managers. In this case, only the local managers
tried to optimize the system based on policies that they
had. Figure 5 shows t he respon se time of the Apac he web
5.1.2. Scenario 2: One Level Collaboration
In the second scenario, we consider the situation when the
Figure 5. Apache response time with no manager collaborations.
Copyright © 2011 SciRes. IJCNS
local manager can request help. When the local manager
can no longer make adjustments to the system, it requests
help from the higher level manager. This is specified in
the policies of AM1 and AM2, as mentioned in the pre-
vious section with the exception that in th is case memory
limits can change. For example, a policy of AM2 would
limit = 500.
On Event: HelpRequestEvent
if (vm1::memoryUtil > 85 & vm1::cpuUtil > 95)
vm1:: increaseMem:+50 max: limit
The current limit for increasing memory is set to a de-
fault value (e.g. 500MB) but it can change over time
based on the changes in the system. We will see an ex-
ample of this in Scenario 3. Figure 6 shows the Apache
response time in this Scenario.
As in the previous scenario, the local manager (AM1)
tries to adjust the web server to handle the increasing load
at points A, B, C and D. Eventually, there are no more
local adjustments possible (after D) and so the local
manager does nothing. In this case, however, when the
next SLA violation happens (point E), AM1 generates a
“help-requ est” message and se nds it to AM 2. In resp onse,
AM2 allocates more memory to VM1 (according to the
“VM-Mem” policy). At this point, the response time starts
decreasing, but since the load is still high, AM1 detects
another SLA violation at point F and asks for help again,
and AM2 allocates 50 more megabytes of memory to
After the adjustment of memory at point F, there is a
sharp spike in the response time as the VM is adjusted to
accommodate the increase in memory allocated to it.
Once this is completed, the response time decreases.
There are still subsequent instances where there are oc-
currences of heavy load and occasional SLA violations
still happen. In these cases, AM1 still sends the help re-
quest to AM2, but since AM2 has allocated all available
memory to VM1 (as per its policy), it cannot do more and
simply ignores these requests. To solve this problem, we
add another level of management to the system.
Based on the output for this scenario, we cal culated the
same measures of performance:
T2 = 10.5 seconds
S2 = 25 seconds
V2 = T2/S2 = 0.42 = 42%
As is evident is the gr aph (Figure 6), the time that the
system spends in “violation” of the SLA is much less.
5.1.3. Scenario 3: Two Level Collaboration
In the third and final scenario, we use another level of
management to help reduce the occasional SLA violations
happened in Scenario 2. Figure 7 shows the Apache re-
sponse time in this case.
Like the previous scenarios, the local manager (AM1)
tries to adjust the web server at points A, B, C and D. At
points E and F, AM2 assigns 50 more megabytes to VM1
to solve the stress. At point G there is another SLA vio-
lation. At this point, AM1 asks for help from AM2 but
since AM2 already assigned all the available memory as
per its policy, it cannot provide more help and automati-
cally creates a help request which it sends to its parent
(AM4; see Figures 3 and 4).
AM4, running at the cluster control level, has a global
view of all physical servers and finds the least busy server.
It then tells the AM2 to migrate one of the VMs to that
server. This happens according to the following policy in
Figure 6. Apache response time with one level of collaboration.
800 O. MOLA ET AL.
Figure 7. Apache response time with two levels of collaboration.
On event: HelpRequestEvent
if (server::memUtil > 50){
Node = findTheBestNode();
SendMigrationNotifyMsg withNode:Node;
This policy says that upon receipt of a HelpRequest
message by AM4, if the server asking for help has a
memory utilization of more than 50% then find the best
node (e.g. the least busy) and generate a migration event
message to be sent to the needy AM (in this AM2).
AM2, in turn, has the following policy:
On event: MigrationEvent
if (server::memUtil > 50){
vm = findBestVM().
vmIP = vm getIP.
managedSystem:: Migrate:vm To:Node.
sendNewManagedObjectEvent To:Node.
destVMObj setIP: vmIP.
IncreaseMemLimit: vm.memory
When AM2 receives the notify message on migration,
it chooses a VM to be migrated to the new server. In our
implementation, we adopted a greedy approach in both
finding the best physical no de and finding t he best VM for
migration. We choose the least busy VM to be migrated.
After this VM is migrated, then there will be more mem-
ory available for the busiest VMs. In this case, AM2 mi-
grates VM2 (it had lower memory utilization) to Server2
and removes it from its own hierarchy.
This policy says that upon receipt of a MigrationEvent
at AM2 (Node Controller Level), then find the best VM,
store its IP in vmIP and migrate it to the node specified in
the message. It also indicates that AM2 should tell the
manager of that node to take care of this VM; it does this
by sending a “NewManagedObjectEvent” message to the
AM responsible for that node. After that, it sets the IP of
the new m ana ged ob ject t o v m IP and removes the old one
from the list of its own children and increase the available
free memory limit by the size of VM memory that has
just been freed.
Figure 8 shows the hierarchy of AMs after this dy-
namic change in the VMs structure.
In this case, after migration, there is more memory
available at the AM2 level and the memory limit is in-
creased. Therefore, at point H (Figure 7) when t he load is
getting higher and another SLA violation happens, AM1
asks for help and AM2 responds by adding 50 more
megabytes to VM1. The same process happens at point I
where AM2 a dds anot her 50MB to VM1 and afte r that the
response time stays below the SLA threshold although the
load is still very high.
The calculation of our measures for this scenario is as
T3 = 10.5 seconds
S3 = 43 seconds
V3 = T3/S3 = 0.24 = 24%
In this case, even with the m igration of one of the VM s,
the percentage of time in a “violated” state is much less
than in Scenario 2.
5.2. Discussion
Table 1 summarizes the time and percentage in a “vio-
lated” state for the three scenarios. Not surprisingly,
having more AMs making changes to the system and
components decreased the impact of violations. Most
Copyright © 2011 SciRes. IJCNS
Figure 8. Managers hierarchy after migration of VM2 to
Server 2.
Table 1. Time and SLA violation rate in three scenarios.
T (seconds) V (%)
Scenario 1 18 72
Scenario 2 10.5 42
Scenario 3 10.5 24
importantly, this happened automatically without admin-
istrator intervention and without adding any new hard-
ware which means improvement in the current system
The results show that there is definitely an advantage
when AMs can collaborate. A single autonomic manager
cannot solve all performance problems just by itself be-
cause it has only a local view of the system with some
limited authority to change things. Thus, the current in-
frastructure can be used more efficiently and provide
better services with less chance of violating SLAs without
adding new computational resources.
6. Conclusions
In this paper we described some details towards the use
of collaborating autonomic managers for the manage-
ment of cloud environments. We showed how policies
can be used at different levels of the hierarchy to facili-
tate the collaboration among autonomic managers. We
also showed how the communication messages can be
inferred automatically from policies and get generated on
the fly.
In this work we assumed that policies are defined and
delivered to managers by system administrators, but as a
future work we are planning to make this process more
We then implemented these ideas in a prototype and
showed how this collaboration can be useful to preserve
the response time of a web server under a certain thresh-
old (defined in SLA ).
Further work on this approach can lead to more auto-
mated management of cloud environments enabling more
efficient use of the cloud infrastructure and as well as
meeting SLA requirements while using fewer resources.
7. References
[1] M. C. Huebscher and J. A. Mc Cann, “A Survey of Auto-
nomic Computing—Degrees, Models, and Applications,”
ACM Computing Surveys, Vol. 40, No. 3, 2008, pp. 1-28.
[2] J. O. Kephart, “Research Challenges of Autonomic Com-
puting,” Proceedings of 27th International Conference on
Software Engineering, St. Louis, 15-21 May 2005, pp.
[3] J. Kephart and D. M. Chess, “The Vision of Autonomic
Computing,” Computer, Vol. 36, No. 1, 2003, pp. 41-50.
[4] J. Famaey, S. Latrea, J. Strassner and F. De Turck, “A
Hierarchical Approach to Autonomic Network Manage-
ment,” IEEE/IFIP Network Operations and Management
Symposium Worksho ps, Osaka, 19-23 April 2010, pp. 225-
232. doi:10.1109/NOMSW.2010.5486571
[5] G. Tesauro, D. M. Chess, W. E. Walsh, R. Das, A. Segal,
I. Whalley, J. O. Kephart and S. R. White, “A Multi-Agent
Systems Approach to Autonomic Computing,” Proceed-
ings of the 3rd International Joint Conference on Auto-
nomous Agents and Multiagent Systems, New York, 23
July 2004, pp. 464-471.
[6] W. Chainbi, H. Mezni and K. Ghedira, “An Autonomic
Computing Architecture for Self-*Web Services,” Auto-
nomic Computing and Communications Systems, Vol. 23,
2010, pp. 252-267.
[7] M. Jarrett and R. Seviora, “Constructing an Autonomic
Computing Infrastructure Using Cougaar,” Proceedings
of the 3rd IEEE International Workshop on Engineering
of Autonomic & Autonomous Systems, Potsdam, 27-30
March 2006, pp. 119-128.
[8] M. Aldinucci, M. Danelutto and P. Kilpatrick, “Towards
Hierarchical Management of Autonomic Components: A
Case Study,” 17th Euromicro International Conference
on Parallel, Distributed and Network-Based Processing,
Weimar, 18-20 February 2009, pp. 3-10.
[9] T. Mukherjee, A. Banerjee, G. Varsamopoul os and S. K. S.
Gupta, “Model-Driven Coordinated Management of Data
Centers,” Computer Networks, Vol. 54, No. 16, 2010, pp.
2869-2886. doi:10.1016/j.comnet.2010.08.011
[10] J. O. Kephart, H. Chan, R. Das, D. W. Levine, G. Tesau-
ro and F. R. A. C. Lefurgy, “Coordinating Multiple Auto-
nomic Managers to Achie ve Specified Power-Performance
Tradeoffs,” Proceeding of the 4th International Confer-
ence on Autonomic Computing, Dublin, 13-16 June 2006,
pp. 145-154.
[11] M. Steinder, I. Whalley, J. E. Hanson and J. O. Kephart,
“Coordinated Management of Power Usage and Runtime
Performance,” IEEE Network Operations and Manage-
ment Symposium, Salvador, 7-11 April 2008, pp. 387-394.
Copyright © 2011 SciRes. IJCNS
Copyright © 2011 SciRes. IJCNS
[12] M. Salehie and L. Tahvildari, “A Policy-Based Decision
Making Approach for Orchestrating Autonomic Elements,”
13th IEEE International Workshop on Software Tech-
nology and Engineering Practice, Budapest, 2005, pp.
[13] R. Das, J. O. Kephart, C. Lefurgy, G. Tesauro, D. W. Le-
vine and H. Chan, “Autonomic Multi-Agent Management
of Power and Performance in Data Centers,” Proceedings
of the 7th International Joint Conference on Autonomous
Agents and Multiagent Systems: Industrial Track, Estoril,
12-14 May 2008, pp. 107-114.
[14] A. Schaeffer-Filho, et al., “Towards Supporting Interac-
tions between Self-Managed Cells,” 1st International Con-
ference on Self-Adaptive and Self-Organizing Systems,
Cambridge, 9-11 July 2007, pp. 224-236.
[15] A. Schaeff er- Filho, E. Lu pu an d M. Sloma n, “Real ising Ma-
nagement and Composition of Self-Managed Cells in Per-
vasive Healthcare,” Proceedings of 3rd International Con-
ference on Pervasive Computing Technologies for Health-
care, London, 1-3 April 2009, pp. 1-8.
[16] D. Nurmi, R. Wolski, C. Grzegorczyk, G. Obertelli, S. So-
man, L. Youseff and D. Zagorodnov, “The Eucalyptus
Open-Source Cloud-Computing System,” Proceedings of
9th IEEE/ACM International Symposium on Cluster Com-
puting and the Grid, Shanghai, May 2009, pp. 124-131.
[17] S. Wardley, E. Goyer and N. Barcet, “Ubuntu Enterprise
Cloud Architecture,” Technical White Paper, UEC, Au-
gust 2009.
[18] R. Boutaba and I. Aib, “Policy-Based Management : A His-
torical Perspective,” Journal of Network and Systems Ma-
nagement, Vol. 15, No. 4, 2007, pp. 447-480.
[19] O. Mola and M. Bauer, “Collaborative Policy-Based Au-
tonomic Management in a Hierarchical Model,” accepted
in 7th International Conference on Network and System
Management, Paris, 24-28 October 2011.
[20] A. Kivity, Y. Kamay, D. Laor, U. Lublin and A. Liguori,
“kvm: The Linux Virtual Machine Monitor,” Proceedings
of the Linux Symposium, Ottawa, 27-30 June 2007, pp.
[21] K. Twidle, N. Dulay, E. Lupu and M. Sloman, “Ponder2:
A Policy System for Autonomous Pervasive Environ-
ments,” Proceedings of 5th International Conference on
Autonomic and Autonomous Systems, Valencia, 20-25 Ap-
ril 2009, pp. 330-335.
[22] Virtuemart, 2011.
[23] JMeter Load Generator, 2011.