Virtualization has open a wide new range of opportunities for managing computer resources since it allows isolating different tasks in a single node without any interference with others. Moreover, a virtual machine is easier to monitor and offers a powerful but simple interface for managing its allocated resources which brings new chances for resource management. In addition to this, machine maintenance acquires a new level thanks to virtualization since it allows managing machines as software making it a perfect environment for executing tasks and complex services.

Nevertheless, dealing with some virtualization capabilities, such as the creation, implies an effort for the user in order to take benefit from them. In order to avoid this problem, we are contributing the research community with the EMOTIVE (Elastic Management of Tasks in Virtualized Environments) middleware, which allows executing tasks and providing virtualized environments to the users without any extra effort in an efficient way. This is a virtualized environment manager which aims to provide virtual machines that fulfills with the user requirements in terms of software and system capabilities.

Figure 1 represents the EMOTIVE Cloud which is mainly composed by three different layers: the data infrastucture, the node management (VRMM), and the global Scheduler. The data infrastructure offers a distributed storage for supporting virtualization capabilities such as migration and checkpoint support. VRMM is in charge of creating and maintaining the whole virtual machine lifecycle. Finally, the scheduling layer is in charge of distributing tasks and VMs among the physical nodes.

diagrama2Figure 1

Data infrastructure

The data infrastructure makes EMOTIVE able to efficiently support different virtualization features such as migration and checkpointing. It distributes the data among the cluster nodes. It uses NFS in order to make the data of every node available from the other nodes. Thanks to this technique, Virtual Machines can be moved between nodes without losing connection. This capability allows new approaches such as consolidating the global system or giving more resources to a given application if the node is not able to do this locally.

In addition, this data infrastructure allows each VM accessing data required by the user by using a shared repository also distributed among the nodes. It also allows storing data in the system in order to be reused later from other VMs.

Virtualized resource management

The first capability of the Virtualized Resource Management and Monitoring (VRMM) is the task of creating and maintaining virtual machine, which is done by the Virtualization Manager (VtM). This component is in charge of making this task as fast as possible in order to reduce the needed time to make the environment accessible to be used by the suer. In addition to the virtual machine life-cycle management, this layer takes proffit of the resource management capabilities that are offered by the virtualization. This allows the system managing the resources of each task in a dynamic way. VRMM also provides an interface for monitoring the resource usage of each VM called Resource Monitor (RM). This components allow and efficient usage of the providers usages as well as supporting different quality of service levels according to the agreement reached with the user (SLA).

With regard to the resource management infrastructure, this includes virtual machine migration in an efficient well and a checkpoint management system. On the one hand, migration allows moving a VM between different nodes in order to offer it more resources or to consolidate the overall system. On the other hand, checkpoint mechanisms makes the system able to be fail tolerant since it allows the system recovering tasks that where running in a broken machine. These can be recovered from other nodes that have enough resources.

Another feature of this layer is the task execution support. This mechanism makes the data required by a task to be executed available inside the VM in the moment the virtualized environment is up and running. This allows the execution of tasks at the very beginning of the VM life and it finally allows the recovering of the output data generated by the applications. This user data management also includes the capability of storing user data and the whole virtual machine configuration between different user sessions. For instance, the user can work with a virtual machine and when his work has finished this VM data can be stored in the system. The execution of a a VM with all the stored data and with the same state of the previous could be retaken in the future by a different node of the provider.


A key issue of EMOTIVE is the global resource management, in other words, the global management of the different nodes of the system. For instance, choosing which node will execute each task or deciding the moment to migrate a VM in order to optimize the whole resources of the system. This is done by the scheduling layer which takes into account the overheads added in order to maintain and manage the virtualized environment. EMOTIVE has different scheduler implementations with different capabilities such as SERA, which supports semantic descriptions, or EERM, which takes into account economical parameters. Currently, an effort is being done in order to develop new schedulers that supports different features sucg as machine learning and a distributed decission system based on agents.