OpenNebula Supports the Amazon EC2 Query API on VMware-based Cloud Infrastructures

This is the first post I am writing to illustrate the main novelties of the new version of the OpenNebula Virtual Infrastructure Manager. OpenNebula is an open-source toolkit for building Public, Private and Hybrid Cloud infrastructures based on Xen, KVM and VMware virtualization platforms. OpenNebula v1.4 is available in beta release, incorporating bleeding edge technologies and innovations in many areas of virtual infrastructure management and Cloud Computing.

While previous versions concentrated on functionality for Private and Hybrid Cloud computing, this new version incorporates a new service to expose Cloud interfaces to Private or Hybrid Cloud deployments, so providing partners or external users with access to the private infrastructure, for example to sell  overcapacity. The new version brings a new framework to easily develop Cloud interfaces, and implements as example a subset of the Amazon EC2 Query API. The OpenNebula EC2 Query is a web service that enables users to launch and manage virtual machines in an OpenNebula installation through the Amazon EC2 Query Interface. In this way, besides the Openebula CLI or the new libvirt interface, users can use any EC2 Query tool or utility to access your Private Cloud.

The OpenNebula team is also developing the RESERVOIR Cloud interface and is planning to develop the OGF OCCI API. Moreover, as it is stated in its Ecosystem page, the team will also collaborate with IaaS Cloud providers interested in an open-source implementation of their Cloud interface to foster adoption of their Cloud services.

Other new interesting feature is the support for VMware. The VMware Infrastructure API provides a complete set of language-neutral interfaces to the VMware virtual infrastructure management framework. By targeting the VMware Infrastructure API, the OpenNebula VMware adaptors are able to manage various flavors of VMware hypervisors: ESXi, ESX and VMware Server.

The combination of both innovations allows the creation of a Cloud infrastructure based on VMware that can be interfaced using Amazon EC2 Query API. I will cover more unique features and capabilities in upcoming posts.

Ignacio Martín Llorente

OpenNebula 1.4 Beta 1 codename Hourglass out for testing!

The OpenNebula team is proud to announce the availability of OpenNebula 1.4 Beta1 Hourglass (1.3.80), this is the first preview of next stable release of the OpenNebula Virtual Infrastructure Manager.

OpenNebula focuses on incorporating bleeding edge technologies and innovations in many areas of virtual infrastructure management and Cloud Computing. OpenNebula 1.4 aims to be the swiss-army knife of Cloud Computing, letting you deploy any type of Cloud. The OpenNebula team has been set now to bug fixing mode to provide a robust and stable OpenNebula 1.4.0 to your data centers.

Please note that OpenNebula 1.4 Beta 1 is not suitable for production settings. Its sole purpose is gathering feedback and testing new exciting features…

Highlights of OpenNebula 1.4 are..

  • EC2 Query API interface on top of OpenNebula, so you can turn your OpenNebula installation in a Public Cloud
  • Support for the VMware Hypervisor family
  • Multiple user support and access-right control for Virtual Machines and Virtual Networks
  • Advance contextualization support to integrate VM packs and implement multi-component services
  • A new OpenNebula Cloud API (OCA) to easily develop any cloud interface or cloud application
  • Easy integration with your data-center services and procedures with a new hook system
  • Many bug fixes, and scalability and performance improvements in several components of the OpenNebula system
  • A whole new set of documentation pages, guides and examples

The OpenNebula Team!

REFERENCES:

Libvirt 0.6.5 released… including a OpenNebula driver

Libvirt version 0.6.5 was released last week with a number of bug fixes and new features. The complete list of changes can be viewed at the libvirt web site. This new release includes an OpenNebula driver that provides a libvirt interface to an OpenNebula cluster.

What is it? OpenNebula is a Virtual Infrastructure Manager that controls Virtual Machines (VM) in a pool of distributed resources by orchestrating network, storage and virtualization technologies. The OpenNebula driver lets you manage your private cloud using a standard libvirt interface, including the API as well as the related tools (e.g. virsh) and VM description files.

Why a libvirt interface for your private cloud? Libvirt is evolving into a very rich and widely used interface to manage the virtualization capabilities of a server, including virtual network, storage and domain management. So, libvirt can be a very effective administration interface for a private cloud exposing a complete set of VM and physical node operations. In this way, libvirt + OpenNebula provides a powerful abstraction for your private cloud. More on interfaces for Private Clouds in this post…

Ruben S. Montero

Interfaces for Private and Public Cloud Computing

An entire ecosystem is evolving around cloud computing. Interface standardization efforts, commercial products, cloud infrastructure and management services, virtual appliance providers and open-source solutions are filling niches in the cloud ecosystem. The role and position of a component or a service in the ecosystem are defined by its capabilities, the consumers of those capabilities and its relationship with other components and services.

This article presents public and private cloud computing from the perspective of their different application scope and interfaces.

Interfaces for Public Cloud Computing

Public or external clouds offer virtualized resources as a service, enabling the deployment of an entire IT infrastructure without the associated capital costs, paying only for the used capacity. Amazon EC2, ElasticHosts, GoGrid and FlexiScale are examples of commercial cloud providers of elastic capacity, offering a public interface for remote management of virtualized server instances within their proprietary infrastructure. With the growing popularity of these cloud offerings, an ecosystem of tools is emerging that can be used to transform an organization’s existing infrastructure into a public cloud. Technologies, such as Globus Nimbus or Eucalyptus, provide an open-source implementation of cloud-like public interfaces, and projects, such as RESERVOIR, are developing open-source toolkits for building any cloud architecture.

The standardization of a public cloud interface is the aim of the OGF Open Cloud Computing Interface Working Group. OCCI-WG is delivering an API specification for remote management of cloud computing infrastructure, allowing for the development of interoperable tools for common tasks on public clouds including deployment, autonomic scaling and monitoring. Main consumers of this API would be service management platforms, technologies for building hybrid clouds, or service providers. The working group keeps a complete list of existing cloud APIs and a list of references to studies comparing the APIs. The requirements for the new specification are being extracted from a collection of use cases contributed by the community. The working group is being supported by relevant companies and open-source initiatives in the cloud computing ecosytem.

Interoperability is not only about standardization of interfaces, but also about portability of virtual machines. The DMTF Open Virtualization Format (OVF) can be used as a means for customers of an IaaS provider to express their infrastructural needs. OVF was not designed with cloud computing in mind, so there are issues that need to be solved when applied to this environment, in particular, on automatic elasticity, self-configuration and deployment constraints. In any case, standards for cloud interoperability (OCCI) and virtual machine portability (OVF) are imminent and many providers are planning to adopt them.

Interfaces for Private Cloud Computing

On the other hand, there is a growing interest in tools for leasing compute capacity from the local infrastructure. The aim of these deployments is not to expose to the world a cloud interface to sell capacity over the Internet, but to provide local users with a flexible and agile private infrastructure to run service workloads within the administrative domain. This private or enterprise cloud model is not new, since datacenter management has been around for a while. In fact, I would venture that  future datacenters will look like private clouds.  Platform VM Orchestrator, VMware VSphere, Citrix Cloud Center, and Red Hat Enterprise Virtualization Manager are commercial tools for managament of virtualized services on the datacenter, so aimed at building private clouds. OpenNebula Virtual Infrastructure Engine (now part of Ubuntu) is an open-source alternative for private cloud computing, also supporting hybrid cloud deployments to supplement local infrastructure with computing capacity from an external cloud.

Private cloud interfaces should so allow the integration of the virtualized distributed infrastructure in the data-center management stack, including user and administration support. A private cloud interface should provide rich enough semantics, far beyond of that provided by public clouds, to ease this integration. Such interface should provide additional functionality for virtualization, networking, image and physical resource configuration, management, monitoring and accounting, not exposed by pubic cloud interfaces.

The standardization of a private cloud interface may be the aim of the new DMTF Cloud Computing Incubator, given that, according to its charter, one of its benefits is to enable the use of cloud computing within enterprises. The DMTF Open Cloud Standards Incubator Leadership Board currently includes most of main providers and integrators of private cloud solutions. On the other hand, although conceived as a library to interface with different virtualization technologies, the libvirt virtualization API could be also used as interface for private cloud computing. This is the approach represented by the libvirt implementation of OpenNebula. The implementation of libvirt on top of a virtual infrastructure manager provides an abstraction of a whole cluster of resources (each one with its hypervisor), so a whole cluster can be managed as any other libvirt node.

About Using Public Interfaces for Private Cloud Deployments

The usage of public cloud interfaces to access the local infrastructure would reduce the cost of learning a new interface when moving from a private to a public; but at the expense of providing local users with limited functionality, losing the comfort and control of data center operations, and using, within the administration domain, communication protocols and security mechanisms originally created for remote management. Moreover, several local cloud technologies support cloudbursting to build hybrid clouds, so combining local infrastructure with public cloud-based infrastructure and enabling highly scalable hosting environments.

That does not mean, of course, that you can not expose a public interface on top of your private cloud solution. For example if you want to provide partners or external users with access to your infrastructure, or to sell your overcapacity. Obviously, a local cloud solution is the natural back-end for any public cloud.

Ignacio M. Llorente

Building Private and Hybrid Clouds with Ubuntu 9.04

Ubuntu 9.04 (Jaunty Jackalope) has been released today bringing highly interesting new features, specially in the Cloud Computing and Virtualization area. The new Ubuntu server distribution includes two complementary cloud tools, OpenNebula and Eucalyptus, so providing the technology required to build the three types of Cloud architectures, namely private, hybrid and public clouds.

Eucalyptus can be used to transform an existing infrastructure into an IaaS public cloud, being compatible with Amazon’s EC2 interface. Eucalyptus is fully functional with respect to providing cloud-like interfaces and higher-level cloud functionality for security, contextualization and image management. OpenNebula, on the other hand, is a virtual infrastructure engine that enables the dynamic and scalable deployment and re-placement of groups of interconnected virtual machines within and across sites. OpenNebula can be primarily used as a virtualization tool to manage a distributed virtual infrastructure in the datacenter or cluster. This application is usually referred as private cloud, and  OpenNebula can also dynamically scale the local infrastructure using external clouds, so building hybrid clouds. OpenNebula provides dynamic “cloudbursting” to any cloud with Amazon EC2 interfaces, including Eucalyptus-based clouds.

OpenNebula is building an ecosytem with tools extending its functionality, such as the Haizea lease management system, a libvirt implementation on top of OpenNebula or a VM consolidation scheduler fro GreenIT. The project provides support to host the development of the new ecosystem projects.

Moreover, because OpenNebula is one of the technologies being enhanced in RESERVOIR, flagship European research initiative in virtualized infrastructures and cloud computing, in few months there will be available several new components complementing its functionality for service elasticity management, VM placement to meet SLA commitments, supporting public cloud interfaces…

Ignacio M. Llorente

OpenNebula Wins the Best Demo Award at OGF25/4th EGEE-UF

We are happy to announce that our demo “Scaling out EGEE sites on Amazon EC2 with OpenNebula” has won the best demo award in the 4th EGEE User Forum/OGF 25 and OGF Europe’s 2nd International Event. The demos were evaluated by the EGEE External Advisory Committee.

The demonstration showed how virtualization can be used to transform a physical cluster into a flexible and elastic virtual infrastructure, separating resource provisioning from job execution management, and supporting the dynamic adaptation of a virtual EGEE site to the users’ computational demands. The virtual infrastructure, managed by the OpenNebula Virtual Infrastructure Engine, ran on local and Cloud resources, so automatically scaling out the local infrastructure in order to meet peak demands. This demo shows how Grid and Cloud are complementary technologies that will coexist and cooperate at different levels of abstraction in future e-infrastructures. In this particular use case, clouds help to overcome many of the barriers to grid adoption. GridCast recorded a video with the demo.

The OpenNebula Team

Haizea and Private Clouds

The latest version of the Haizea Lease Manager (Technology Preview 1.3) was released a few days ago, so this seems like a good opportunity to talk about why Haizea exists and what it means to OpenNebula users.

As most readers of this blog know, OpenNebula allows you to manage the dynamic deployment of virtual machines (VMs) on a pool of physical resources. There are many reasons why you would want to virtualize your infrastructure (see the OpenNebula use cases at the bottom of this page), and the one I will focus on here is creating a “private cloud” (a subject that has been discussed previously on this blog).

Since we’re entering the perilous terrain of buzzwordiness, let me stop for a second to clarify that whenever I use the term “cloud” in this post, I specifically mean an “Infrastructure-as-a-Service (IaaS) cloud”, such as Amazon’s EC2, where computational infrastructure is provisioned on-demand as virtual machines on a large data center. Yes, I realize “cloud” can and does mean many other things (although we’re still far from agreeing on what it means) but, for now, let’s stick to the IaaS aspect of clouds.

One of the the characteristics that is frequently attributed to clouds is that of “infinite capacity”. Thus, large cloud providers like Amazon EC2, Flexiscale, and ElasticHosts have evolved towards an immediate provisioning model: when users asks for additional capacity, they get it, subject to some reasonable limitations (there may be a delay in setting up the extra VMs, providers may have limits on how much capacity one single user can request, etc.) If you assume infinite capacity, this provisioning model is pretty reasonable. There is no need to, for example, allow users to make reservations in advance: if you need resources from 2pm to 4pm, why would you need to reserve them? Just show up at 2pm and they will be there for you, because capacity is “infinite”.

Of course, there is no such thing as “infinite capacity”, but large cloud providers can at least provide the illusion of infinite capacity. However, if you have a relatively small number of resources (compared to Amazon or Google) and want to build a “private cloud” with OpenNebula on top them, you’re probably in no position to assume you’ve got infinite capacity.

But why would you want to create a “private cloud”? Isn’t outsourcing your infrastructure to large external providers (instead of keeping them in-house), thus reducing your IT expenses, one of the biggest selling points of cloud computing? Sure, but some of us will still have our own IT infrastructure to manage and, although datacenter virtualization has been around since before “clouds” became “the next big thing”, there are certain benefits to managing your infrastructure like a “private cloud”:

  1. You can provide your in-house users with all the benefits of deploying their machines on EC2, without actually paying EC2 to do it. My intuition is that, if you already have an IT infrastructure that is mostly amortized, this will make sense financially (unlike a business with no IT infrastructure, where relying on a large cloud provider makes more sense than making a huge initial investment on new infrastructure). That said, I will be more than happy to be corrected on this point, as it is simply an intuition.
  2. You can become a cloud provider. Having a “private cloud” doesn’t preclude the possibility of adding a public interface, using tools like Nimbus or Eucalyptus, and turning all or part of your private cloud into a public cloud that can be accessed by external users via the Internet.
  3. All of the above. If you’re servicing in-house users, it’s almost certain that your infrastructure will be underutilized some of the time. This unused capacity could be sold to external users.

This is all nice and dandy but, as I said earlier, a private cloud can’t assume it has “infinite capacity”. Thus, relying on an immediate provisioning model just doesn’t hold water. Requests for resources are going to have to be prioritized, queued, pre-reserved, and even rejected. Tools for building private clouds will need to support more sophisticated resource scheduling than just immediate provisioning, and this is where Haizea comes in.

Haizea is a lease manager that can be used as a drop-in replacement for OpenNebula’s scheduler, providing scheduling features not found in other cloud and virtualization solutions, such as efficient support for advance reservations, queuing of best-effort requests and, coming soon, pluggable scheduling policies. While still supporting an immediate provisioning model, Haizea also allows OpenNebula users to pre-reserve resources (in anticipation of capacity peaks) or queue requests that can afford to wait a while (another feature that will be added to Haizea in the future is best-effort scheduling with deadlines, so there will be a finite bound on the waiting time). Again, if you have a datacenter of Amazonic proportions, Haizea probably makes no sense. But if you have a more modest datacenter, and want to build a private cloud on it, you will need to be more judicious about how you slice up your resources amongst users (and I suspect that most of us fall into the non-Amazonic category).

To wrap this up, I’d like to refer to a technical report that has been getting quite a bit of press lately, “Above the Clouds: A Berkeley View of Cloud Computing“. This report has been getting mixed reviews and, personally, I can’t say I agree with many of the things they say, particularly the way they dismiss private clouds right from the outset. However, I think they raised a good point in “Number 5 Obstacle [for Cloud Computing]: Performance Unpredictability”, where they stated:

The obstacle to attracting HPC is not the use of clusters; most parallel computing today is done in large clusters using the message-passing interface MPI. The problem is that many HPC applications need to ensure that all the threads of a program are running simultaneously, and today’s virtual machines and operating systems do not provide a programmer-visible way to ensure this. Thus, the opportunity to overcome this obstacle is to offer something like “gang scheduling” for Cloud Computing.

Haizea, in fact, has supported VM gang scheduling from day one. The lease abstraction used in Haizea allows users to request not just individual VMs, but groups of VMs that must be treated atomically. In other words, VM that must either all be running simultaneously or not at all (which involves gang-scheduling those VMs)

So, if you’re interested in virtual machine scheduling that goes beyond immediate provisioning, I invite you to check out Haizea. It’s still a technology preview, but it’s being actively developed and a 1.0 release shouldn’t be too far off.

Borja Sotomayor

Interoperation between Cloud Infrastructures

A Distributed Virtual Infrastructure (VI) Manager is responsible for the efficient management of the virtual infrastructure as a whole, by providing functionality for deployment, control and monitoring of groups of interconnected Virtual Machines (VMs) across a pool of resources. An added functionality of these management tools is the dynamic scaling of the virtual infrastructure with resources from remote providers, so seamless integrating remote Cloud resources with in-house infrastructures. This novel functionality allows to add and remove capacity in order to meet peak or fluctuating service demands, so providing the foundation for interoperation between Cloud infrastructures. The distributed virtual infrastructure would run on top of a geographically distributed physical infrastructure consisting of resources from the private cloud and several external cloud providers.

Following the terminology defined by the Grid community for getting Grids to work together, we use the term interoperation for the set of techniques to get production Cloud infrastructures to work together using adapters and gateways. While interoperability would refer to the ability of Cloud infrastructures to interact directly via common open standards.

Since release 1.0, OpenNebula distribution includes the plugins required to supplement local resources with Amazon EC2 resources to satisfy peak or fluctuating demands. This novel feature has been illustrated in several use cases for computing clusters and web servers. The open and flexible architecture of OpenNebula makes quite simple to create new plugins to access other cloud providers. In order to illustrate this and to provide KVM users with an utility access to remote resources, the OpenNebula team has just released the plugins required to dynamically grow the infrastructure using ElasticHosts resources. ElasticHosts is the world’s first public cloud based upon KVM, providing scalable and flexible virtual server capacity for cloud hosting. An interesting result is that a private infrastructure could dynamically grow using resources from different Cloud providers according to provisioning policies based on resource availability, performance, costs, availability…

The release of these new plugins represents a new step towards an open-source framework for cloud infrastructure federation, which is one of the main goasl of the Reservoir project, European research initiative in virtualized infrastructures and cloud computing.

Ignacio Martín Llorente

Release of OpenNebula Cloud Plug-in for ElasticHosts

The OpenNebula Team is releasing a new plug-in to interface the ElasticHosts cloud provider, so it can be used to dynamically increase capacity of your virtualized infrastructure to meet fluctuating or peak demands. This can happen when the local fabric runs out of capacity to spawn a new virtual machine, therefore it may be interesting to add capacity using cloud providers.

Cloud bursting with OpenNebula and ElasticHosts

ElasticHosts offers KVM based virtualized hosts in a cloud like fashion, i.e., à la Amazon EC2, using a very neat RESTful API. Uploading images (drives, in ElasticHosts speak) previously configured with the service that needs to meet a increased demand would allow the cloudbursting described above through OpenNebula.

Information on how to download and install the ElasticHosts plug-in can be found in the OpenNebula Trac.

Tino Vazquez

Haizea Technology Preview 1.3 Released

Borja Sotomayor has just announced the release of a new version of the Haizea Lease Manager. Technology Preview 1.3 now includes support for OpenNebula 1.2 (released one week ago), and enhanced stability and robustness. This is a new step towards TP2.0, which will include a policy engine and several novel scheduling features. The detailed list of changes is available in the project changelog.

Ignacio Martín Llorente