Proj-2012-2013-OAR-Cloud

=OAR Cloud Project=

This project aims at creating a light cloud computing architecture on top of the batch scheduler OAR.

=Project Members= This project is proposed by:

Olivier Richard - Teacher and researcher in RICM's Polytech Grenoble training

Three students from RICM are working on it:


 * Jordan Calvi (RICM4)
 * Alexandre Maurice (RICM4)
 * Michael Mercier (RICM5)

=Conception=

Context
There is two kind of actors that are dealing with OAR cloud, users and administrators. The F.u* and the F.a* are the user and Administrator features describe below.



User
Main features:

F.u.0 Connect to an account

F.u.1 Launch and configure one or more instances

F.u.2 Deploy an image on one or more instances

F.u.3 Modify and save images

F.u.4 Setup alarms based on rules using metrics

F.u.5 Being inform by e-mail and/or notification for interesting events

Advanced features:

F.u.6 Automated resize of an instance (adapt the resources) using predefined rules and schedule

F.u.7 Load balancing between several instances

F.u.8 Advanced Network configuration for user: ACL, subnets, VPN...

Administrator
F.a.0 Create/delete user account

F.a.1 Add/remove and manage resources

F.a.2 Visualize resources and instances states

F.a.3 Install and update nodes operating systems

F.a.4 Handle users access rights

F.a.5 Setup alarms based on rules using metrics

F.a.6 Being inform by e-mail and/or notification for interesting events

Logical View
Here is the logical view of the OAR Cloud system. Every component on this diagram represents a software component type. The links between these components represent the communication between them.



Description of the main components:
 * AccountManager : Handle users and admins access rights
 * AccessPoint : The system access point reached by the different access tools
 * InstanceManager : Manage the creation, configuration and deletion of instances all over the severals nodes. It also handles the appliances persistence and deployment
 * UserCLI & AdminCLI : Command line access tools for users and admins

LXC
LXC is a lightweight hypervisor allowing to run isolated appliances. Indeed, it provides a virtual environment that has its own process and network space. It is similar to a chroot. As LXC is implemented on given linux kernel, only operating systems that are compatible with the hosting kernel will be able to run. It is based on cgroups (control groups), a Linux kernel feature to manage ressources like CPU, memory and disk I/O by limiting resources, prioritizing groups, accounting (measuring), isolating (separate namespaces for groups, it means processes, network connections and files are not visible by other groups) and controling groups.

Installation

aptitude install lxc bridge-utils debootstrap

Open vSwitch
=TODO list=


 * Explore Amazon Elastic Compute Cloud API


 * Understand technologies:
 * OAR
 * LXC
 * Libvirt
 * OpenVSwitch


 * find out how to handle dynamic jobs

=Journal=

04/02

 * We have specified the subject
 * Distribute the work between us.
 * Jordan: LXC and Libvirt
 * Alexandre: OpenVSwitch and Libvirt
 * Michael: OAR and global architecture