We have identifier a number of tasks which could be implemented in order to improve the software. Please let us know in case you work/plan to work on some of those or inform us about your own propositions.
Graphical user interface (GUI)
The goal of this task is to design and implement a graphical user interface (GUI) for the framework. The GUI will utilize the Snooze RESTful interface to ease VM management and provide system tree and VM monitoring data visualization. It will act complementary to the existing RESTful command line interface (CLI) which already integrates a system tree visualization feature. This feature must be moved to a dedicated GUI and extended with additional properties such as VM monitoring data visualization.
Standardized client interface (EC2, OCCI)
As of time being Snooze ships with its own VM management API (e.g. deployment) and tools. In order to enable more flexibility the objective is to provide support for alternative APIs such as EC2 (http://aws.amazon.com/fr/ec2//175-6370969-8577018/) and OCCI (http://occi-wg.org/). EC2 interface is the Amazon EC2 IaaS cloud and has become a de facto standard implemented in several open source IaaS cloud software. OCCI interface is been defined in the framework of OGF (http://www.gridforum.org/). Providing these standard interfaces will allow the users to utilize many of the existing VM management tools and thus transparently use our system.
Persistent database
Storage is an important aspect in the framework and is currently supported through a in-memory database. The goal of this task is to integrate a persistent database (e.g. MongoDB (http://www.mongodb.org/), Apache Cassandra (http://cassandra.apache.org/)) in Snooze.
Experimenting with alternative virtualization technologies
Snooze integrates the libvirt virtualization library and thus theoretically supports any virtualization technology (e.g. Xen, OpenVZ, VMware, and VirtualBox). However, until now it has been only verified to work with the KVM hypervisor. The target of this task is to enable the framework deployment on any virtualization technology using libvirt. This will involve testing the framework on different platforms and if necessary developing additional system components to support them.
Support for the integration of VM consolidation algorithms
Consolidation is a resource management technique which aims at moving VMs away from underloaded nodes in order to create idle-times necessary for energy-saving actions (e.g. suspend) to take place. It has been extensively studied in the past and those works have generated a lot of output in terms of algorithms (i.e. heuristics and exact algorithms) which were mostly evaluated by means of simulations. Snooze is among the first IaaS cloud management frameworks which ships with a plugin-based dynamic consolidation manager which currently integrates a greedy VM consolidation algorithm. The objective of is to support researchers in the integration of alternative algorithms (e.g. nature-inspired, mathematical programming).
Placement constraints aware VM management
Currently the Snooze VM management algorithms are not placement constraints (e.g. colocation/anti-colocation of VMs) aware. The target of this task is to define a format for placement constraints specification and implement algorithms beeing able to enforce it.