OpenNebula Service Management Tool

Clustered services are multi-tier services composed of several components/tiers. They can be hosted as a group of interconnected virtual machines in a cloud with specific deployment requirements. The OpenNebula Service Manager is a component that enables end users to deploy and manage the life cycle of their clustered applications. It provides several atomic operations to all components in the application to support the full life cycle management of the application.

The OpenNebula Service Manager adds the following features to the OpenNebula experience:

  • Management of multi-tier services with atomic operations (submit, shutdown, cancel, stop, suspend, resume, delete, list and show)
  • Description of service components (VM) interdependencies through a Service Description Language (SDL)
  • Non-intrusive install (no OpenNebula modification required)
  • Graphical representation of services
  • Multiple options for traversing the dependencies graph
  • New command line interface (oneservice)

Additional information:

This component was developed as a student project by Waheed Iqbal as part of Google Summer of Code 2010. The OpenNebula team will continue to develop this component, building on Waheed’s excellent work over the summer.

Ruby OCCI Client Bindings

Hi everyone!  Welcome to my first post of hopefully many.  My name is John Dewey.  I am a Lead Software Engineer in AT&T’s Cloud Team, and currently maintain releases of the OCA RubyGem along with other gems.  I wanted to announce the availability of the OCCI Client RubyGem.  This gem was built against version 5 of the OGF OCCI API Specification.

For information on how to use the gem, please reference the documentation.

I would also like to thank Josh and Javier for their peer-review and assistance.

OpenNebula 2.0.1 now available in Ubuntu

We are happy to announce that OpenNebula 2.0.1 will be included in the upcoming release of Ubuntu 11.04 (Natty Narwhal)! In fact, if you are using the Natty repositories, the OpenNebula 2.0.1 packages are already available there.

Although OpenNebula 1.2 has been available in Ubuntu since Jaunty, it hasn’t been updated to newer versions. The Ubuntu package has now been updated to OpenNebula 2.0.1 thanks to Damien Raude-Morvan, who is managing an Alioth project that resulted in an OpenNebula Debian package, which was then merged into Ubuntu.

We would like to thank Damien again for his efforts and also the Ubuntu MOTU’s who have helped us with the merge!

Cfengine’s Orion Cloud Pack to Work on OpenNebula Clouds

A couple of months ago our friends at Cfengine presented a brief overview of the possibilities of a Cfengine-managed OpenNebula setup at the Large Installation System Administration (LISA) conference in San Jose. The Cfengine team presented how Cfengine may be used on both the physical and virtual sides of an OpenNebula-based cloud. More specifically, they presented how Cfengine can be used to install and configure the physical infrastructure in an OpenNebula cloud, followed by the launch and configuration of generic virtual machine images that will run on top of that OpenNebula infrastructure.

In a recent news article, Cfengine has announced that its Orion Cloud Pack, which was originally conceived to make the use of the Amazon EC2 Cloud simple for users of Cfengine, is also working on OpenNebula cloud instances.

OpenNebula is the Most Popular Cloud Toolkit for Cluster Computing

In July 2010 the StratusLab project conducted two surveys to collect requirements for the StratusLab cloud distribution and to understand the existing experience with virtualization/cloud technologies in Europe. Funded through the European Union Seventh Framework Programme (FP7), StratusLab is a two year project aimed to successfully integrate ‘cloud computing’ technologies into ‘grid’ infrastructures.
The survey results are presented in project deliverable D2.1 Review of the Use of Cloud and Virtualization Technologies in Grid Infrastructures. The project conducted two online surveys, one aimed at system administrators and the other at users.  Over two-thirds of sysadmins, and over three-quarters of users surveyed intend to use cloud.  Perhaps more surprisingly, over one third of both groups are already using cloud technologies right now. The most popular public clouds are Amazon Web Services and Google App Engine, while OpenNebula is the most popular open source tool for cloud computing management.
The StratusLab surveys have identified certain trends and requirements for cloud technologies among the Grid community that will be addressed to provide the first full cloud solution for grid and cluster computing.  The StratusLab project aims to produce a toolkit to cloud-enable Grid infrastructures based on OpenNebula. The first version of its cloud computing distribution was released few weeks ago.

Python OCA bindings

I am happy to announce first release of the Python OCA bindings. These bindings wrap OpenNebula’s XML-RPC methods in the Python objects, which allows developers to interact with OpenNebula in a more pythonic way.

The package is available on pypi so if you want to try it just run:

$ easy_install oca

Or download the code from github and install it by running:

$ python setup.py install

Here is an example that shows how you can add new host using Python bindings:

[python]
#!/usr/bin/env python

client = oca.Client(‘user:password’, ‘http:12.12.12.12:2633/RPC2’)
new_host_id = oca.Host.allocate(client, ‘host_name’, ‘im_xen’, ‘vmm_xen’, ‘tm_nfs’)
hostpool = oca.HostPool(client)
hostpool.info()
for i in hostpool:
if i.id == new_host_id:
host = i
break
print host.name, host.str_state
[/python]

For more details how to use Python OCA read the documentation

Try it and share your thoughts, any feedback is welcome.

Using qcow Images with OpenNebula

C12G has created a new howto to explain the way to use OpenNebula with qcow images. Using them has the benefit of occupying less space, faster cloning time and solving problems related with sparse images. It is also a nice example on how OpenNebula behavior can be changed to suit the system administrator or infrastructure needs, in these case the storage model. There are still unexplored qcow feature besides the ones described in the text but it serves as the basis to implement them.

White Paper about OpenNebula APIs

OpenNebula has been designed to be easily adapted to any infrastructure and easily extended with new components.  The result is a modular system that can implement a variety of Cloud architectures and can interface with multiple datacenter services. In the new white paper OpenNebula APIs, C12G reviews the main interfaces of OpenNebula, their use and gives pointers to additional documentation for each one. Interfaces are classified in two categories: end-user cloud and system interfaces. Cloud interfaces are primary used to develop tools targeted to the end-user, and they provide a high level abstraction of the functionality provided by the Cloud. On the other hand, the system interfaces expose the full functionality of OpenNebula and are mainly used to adapt and tune the behavior of OpenNebula to the target infrastructure.

OpenNebula package in Debian

Here at OpenNebula we’re really happy with the efforts of our community contributor Damien Raude-Morvan, who is responsible for the new ‘opennebula’ package in the Debian Sid release. This package features the recent OpenNebula 2.0.1 plus some cool features contributed by Damien:

  • OpenNebula Java API package.
  • A modified oned.conf to work out of the box with Debian.
  • A tuned up onehost command which displays useful information for new OpenNebula users.
  • A README file with an example session with OpenNebula, very useful for new users.
  • Tested following the Debian policy. Thanks to Łukasz Oleś for testing it under Xen!

We have a strong commitment with this initiative and we plan to offer our support to keep this package up to date, especially with the upcoming OpenNebula releases.

You can follow this packaging effort at the Alioth OpenNebula Project’s page, you can also clone the git repo or subscribe to the mailing list.

So go ahead and try OpenNebula on Debian Sid! It’s now as easy as running:

apt-get install opennebula

New OCA rubygem Available

An OpenNebula user, John Dewey, has just contributed a new oca rubygem that allows developers to make calls to OpenNebula’s Cloud API (OCA) from their Ruby projects without having to install OpenNebula. The Ruby OCA API has been designed as a wrapper for the XML-RPC methods to interact with the OpenNebula Core, with some basic helpers. This gem was built against OpenNebula 2.0 and will be updated in each release.

If you want to use it in your Ruby projects, you can install it by running the following:

$ sudo gem install oca

Here is a short example that shows how you can use this new oca gem from Ruby. More specifically, this program queries all the running VMs and shuts them down.

[ruby]
#!/usr/bin/env ruby

###################################################################
# Required libraries
###################################################################
require ‘rubygems’
require ‘oca’

include OpenNebula

# OpenNebula credentials
CREDENTIALS = "oneuser:onepass"
# XML_RPC endpoint where OpenNebula is listening
ENDPOINT = "http://localhost:2633/RPC2"

client = Client.new(CREDENTIALS, ENDPOINT)

vm_pool = VirtualMachinePool.new(client, -1)

rc = vm_pool.info
if OpenNebula.is_error?(rc)
puts rc.message
exit -1
end

vm_pool.each do |vm|
rc = vm.shutdown
if OpenNebula.is_error?(rc)
puts "Virtual Machine #{vm.id}: #{rc.message}"
else
puts "Virtual Machine #{vm.id}: Shutting down"
end
end

exit 0
[/ruby]

We would like to thank John Dewey for this very useful contribution!