Open Nebula
Open Nebula
Open Nebula
The OpenNebula toolkit manages a data center's virtual infrastructure to build private, public and hybrid IaaS (Infrastructure as a Service) clouds. OpenNebula orchestrates storage, network, virtualization, monitoring, and security[1] technologies to deploy multi-tier services (e.g. compute clusters[2][3]) as virtual machines on distributed infrastructures, combining both data center resources and remote cloud resources, according to allocation policies. According to the European Commission's report about the future of cloud computing from a group of experts "... only few cloud dedicated research projects in the widest sense have been initiated most prominent amongst them probably OpenNebula ...".[4] The toolkit includes features for integration, management, scalability, security and accounting. It also emphasizes standardization,interoperability and portability, providing cloud users and administrators with a choice of several cloud interfaces (EC2 Query, OGFOCCI and vCloud) and hypervisors (Xen, KVM and VMware), and a flexible architecture that can accommodate multiple hardware and software combinations in a data center.[5] OpenNebula was a mentoring organization in Google Summer of Code 2010.[6] OpenNebula is sponsored by C12G.
OpenNebula
2.0 Architecture
The OpenNebula internal architecture can be divided into three layers: Tools, management tools developed using the interfaces provided by the OpenNebula Core. Core, the main virtual machine, storage, virtual network and host management components. Drivers, to plug-in different virtualization, storage and monitoring technologies and Cloud services into the core.
Tools
This layer contains tools distributed with OpenNebula, such as the CLI, the scheduler, the libvirt API implementation or the Cloud RESTful interfaces, and also 3rd party tools that can be easily created using the XML-RPC interface or the newOpenNebula Cloud API.
Scheduler
The Scheduler is an independent entity in the OpenNebula architecture, so it can be easily tailored or changed since it is decoupled from the rest of the components. It uses the XML-RPC interface provided by OpenNebula to invoke actions on virtual machines. The scheduler distributed with OpenNebula allows the definition of several resource and load aware policies. The Haizea lease manager can also be used as a scheduling module in OpenNebula. Haizea allows OpenNebula to support advance reservation of resources and queuing of best effort requests (more generally, it allows you to lease your resources as VMs, with a variety of lease terms). The Haizea documentation includes a guide on how to use OpenNebulaand Haizea to manage VMs on a cluster
OpenNebula Core
The core consists of a set of components to control and monitor virtual machines, virtual networks, storage and hosts. The core performs its actions (e.g. monitor a host, or cancel a VM) by invoking a suitable driver. The main functional components of OpenNebula core are: Request Manager, to handle client requests Virtual Machine Manager, to manage and monitor of VMs Transfer Manager, to manage VM images Virtual Network Manager, to manage virtual networks Host Manager, to manage and monitor physical resources Database, persistent storage for ONE data structures
Request Manager
The Request Manager exposes a XML-RPC Interface, and then depending on the invoked method a given component is called internally. The XML-RPC decouples most of the functionality in the OpenNebula core, from external components i.e. the Scheduler.
This component is responsible for the management and monitoring of VMs. The operations of the VM Manager are abstracted from the underlying hypervisor the use of plugable drivers.
Transfer Manager
The Transfer Manager (TM) is in charge of all the files transfers needed for the correct deployment of virtual machines. This includes the transfer of images to the cluster node selected for running the images' virtual machine, the transfer of the image from the cluster node to the image repository, the transfer of checkpoint files between cluster nodes for cold migrations or to the cluster front-end when the virtual machine is stopped, etc.
Host Manager
This component manages and monitors the physical hosts. Monitor and management actions are performed also through a suitable driver. The host monitoring infrastructure is flexible and can be extended to include any host attribute.
Database
A persistent generic pool based on a SQLite3 backend is the core component of the OpenNebula internal data structures. This component provides OpenNebula with the scalability and reliability (in case of failure the state ofOpenNebula is automatically recovered) needed in the management VMs. Note that this information can be accessed through the SQLite3 interface to develop custom accounting applications.
Drivers
OpenNebula has a set of pluggable modules to interact with specific middleware (e.g. virtualization hypervisor, cloud services, file transfer mechanisms or information services), these adaptors are called Drivers.
A couple of months have passed since the release of OpenNebula 2.2 (Cats Eye) and we have been quite active since then. The next release of OpenNebula is getting in shape fast and a significant amount of new features are already in the repository. Lets start reviewing the not-so-glamorous new features. One of the main themes for the next release is database refactoring. The new DB backend of OpenNebula features a schema free (document-oriented) implementation of the data model on top of a SQL DB. This will give us enough flexibility to easily extend the attributes and resources
managed by OpenNebula at no performance cost. Also, the next release includes DB versioning and a tool to upgrade from previous versions of OpenNebula. Another important area of work has been networking. We have evolved the network manager component to provide out-of-the-box integration with typical VLAN technologies. In particular, youll be able to choose from 802.1Q VLAN tagging, Open vSwitch and simple isolation based on ebtables filters. Youll also be able to set up simple firewalling rules for each VM specifying black/white TCP/UDP port settings. The next release will also feature important improvements in VM management. Virtual Machine templates can now be stored in OpenNebula so you can easily instantiate pre-defined configurations, and share them with other users. This new VM Template pool along with the existing Network and Image will give users and administrators a very flexible and simple way to define and instantiate virtual infrastructures. We have also re-factored the Image Repository to adopt a pluggable architecture that can integrate any storage backend, with a filesystem-based repository provided in the next release. The Image Repository can be now further integrated with external catalogs. The next release will also showcase a preview of this hybrid cloud storage, that integrates Amazon S3 and OpenNebula, to download, contextualize and integrate S3 images in your local Image Repository. Sunstone has also received some attention from the team, being extended to accommodate all the new features and some rough edges have been polished. We have also added support for plug-ins, enabling the easy customization of the control panel. There is also a couple of new specific features for the interface: VNC access to VM instances through the web browser using noVNC; and graphical information about the health of your cloud. And last but not least, the multi-tenancy support for OpenNebula has been considerably improved with the addition of groups and access control lists (ACLs). This will provide great flexibility to share resources among users and to define user roles. Grounded in this new functionality, youll be also able to experiment with the new Virtual Data Center (VDC) manager. Using a muti-tier architectureyoull be able to aggregate multiple OpenNebulas (zones) and define within them multiple, isolated VDCs. Finally as you my have noticed from the title, there are so many new features (as well as changes in the database and internal APIs) that we have decided to upgrade the major versioning number of OpenNebula to 3. The changes in the public APIs are minimal and we expect that current applications will run without modifications on top of OpenNebula 3.0. OpenNebula 3.0 also includes contributions from several members of our community, such as CERN, FermiLab, and Harvard Universitys SEAS. A beta version of OpenNebula 3.0 (codename Iris) will be ready for testing by the end of June and its stable release is scheduled on July 20th. As usual, OpenNebula releases are named after a Nebula. The Iris Nebula (NGC 7023, Caldwell 4) is a reflection nebula in the constellation of Cepheus. We will appreciate your feedback on these new features. Thanks!
the full functionality of OpenNebula and are mainly used to adapt and tune the behavior of OpenNebula to the target infrastructure.
1. Cloud Interfaces
Cloud interfaces enable you to manage virtual machines, networks and images through a simple and easy-to-use RESTAPI. The Cloud interfaces hide most of the complexity of a Cloud and are specially suited for end-users. OpenNebula implements two different interfaces, namely: EC2-Query API. OpenNebula implements the functionality offered by the Amazons EC2 API, mainly those related to virtual machine management. In this way, you can use any EC2 Query tool to access your OpenNebula Cloud. OCCI-OGF. This web service enables you to launch and manage virtual machines in your OpenNebula installation using the latest draft of the OGF OCCI API specification.
Use the cloud interface if you are developing portals, tools or specialized solutions for end-users. You can find more information at EC2-Query reference, and OCCI reference guides.
2. System Interfaces
Use the driver interfaces if you need OpenNebula to interface any specific storage, virtualization, monitoring or authorization system already deployed in your datacenter or to tune the behavior of the standard OpenNebula drivers. You can find more information at the storage system, the information system and the Authorization system guides.