Majid Al-RaimiPrivate cloud platforms: OpenStack and OpenNebula

COE 558Lecture 02Part 09

Private cloud platforms: OpenStack and OpenNebula

Introduces self-hosted private IaaS platforms, focusing on the open-source OpenStack and OpenNebula projects.

Concepts
4
Slides
57-62
Reading
24 min
Understood
0/4 concepts

Why this part matters

Public hyperscalers are not the only way to get a cloud. Data-sovereignty rules, edge sites, telco 5G cores and university research clusters often need infrastructure as a service on hardware the organization owns. OpenStack and OpenNebula are the two open-source platforms this course names. Knowing how each is built lets you argue where it fits, sketch how a virtual machine is actually provisioned, and answer the exam questions about their origins and components.

By the end you can

  1. Explain what a private IaaS platform adds on top of plain virtualization, using the NIST essential characteristics.
  2. Recall the origins and stewards of OpenStack (2010, Rackspace and NASA, foundation in 2012, now OpenInfra) and OpenNebula (2005, Complutense, first release in 2008, OpenNebula Systems).
  3. Name the core OpenStack services and map each one to its AWS equivalent.
  4. Trace the API calls OpenStack makes to boot one virtual machine.
  5. Contrast OpenNebula's front-end and drivers design with OpenStack's many services, and spot the outdated details on slide 62.

Picture a research computing group at KFUPM that owns 40 servers. Today a student who needs a GPU virtual machine emails an administrator and waits about a week while someone carves out the machine by hand. Now install a private cloud platform on those same 40 servers. The student logs into a web dashboard, picks an image and a size, and the machine is running in about a minute. Nothing about the hardware changed. What changed is that the servers became a shared pool that users draw from themselves, and every draw is counted.

That is exactly the list of NIST traits from earlier in this lecture: On-demand self-service, Resource pooling and Measured service. NIST defines a Private cloud as cloud infrastructure provisioned for the exclusive use of a single organization, whether it sits on or off the organization's premises. A private IaaS platform is the software that makes this real. It turns a pile of servers, disks and switches into on-demand compute, networking and storage, exposed through an API and a dashboard. The research literature calls OpenNebula a "virtual infrastructure manager" for exactly this reason: it takes infrastructure you already have and turns it into a private or hybrid IaaS cloud.

The market for this software is large. Products span the whole stack from IaaS up to SaaS, and they split into two families. Some are open source, such as OpenStack andOpenNebula, which the rest of this part studies. Others are licensed commercially and charge fees per socket, per core or per node. Choosing open source does not make the cloud free: you still pay the capital expense for hardware and the staff to run it, as the TCO case study showed. What it buys is control, and freedom from Vendor lock-in at the platform layer.

QuestionPlain hypervisorPrivate IaaS platformPublic IaaS
Who owns the hardwareYouYouThe provider
Self-service API for usersNo, an admin clicksYesYes
Multi-tenancy with quotasNoYes, per projectYes, per account
Billing modelBought up frontBought up front, usage metered internallyPay per use
ExampleESXi or KVM aloneOpenStack or OpenNebulaAWS EC2
Where a private IaaS platform sits between a bare hypervisor and a public cloud

Recall

Name three things a private IaaS platform adds on top of a plain hypervisor.

Any three of: a self-service API and dashboard, multi-tenancy with per-project isolation, quotas, metering of usage, and pooling of many servers so users never pick a physical host.

In 2010 two organizations each had half of a cloud. Rackspace, a hosting company, wanted its Cloud Files storage code to become an industry standard rather than a private product; that code became Swift. Anso Labs, contracting for NASA Ames, had published Nova, a Python "cloud computing fabric controller" for NASA's Nebula cloud. The two efforts merged. The first Design Summit met in Austin on 13 to 14 July 2010, the project was announced at OSCON on 21 July 2010, and the first release, named Austin, shipped on 21 October 2010.

The project's stated mission was a platform for both public and private clouds, and the official guide still calls OpenStack "an open source cloud computing platform for all types of clouds". What made it last is governance. In September 2012 the OpenStack Foundation took over stewardship, so no single vendor owns the code. In October 2020 it was renamed the Open Infrastructure Foundation (OpenInfra), and in 2025 it joined the Linux Foundation. The code is licensed under Apache 2.0 and ships on a fixed 6-month cycle with alphabetical names: 2025.1 Epoxy, 2025.2 Flamingo, 2026.1 Gazpacho, and 2026.2 Hibiscus, released on 30 September 2026.

OpenStack timeline

July 2010
Rackspace (storage) and NASA (compute) merge efforts; first Design Summit in Austin
October 2010
First release, Austin
September 2012
OpenStack Foundation formed as neutral steward
October 2020
Renamed Open Infrastructure Foundation (OpenInfra)
2025
OpenInfra joins the Linux Foundation
Every 6 months
A new named release, for example 2025.1 Epoxy and 2026.1 Gazpacho

Recall

What did each founder contribute to OpenStack in 2010?

NASA contributed the Nova compute controller. Rackspace contributed its Cloud Files storage code, which became Swift.

Quick check

Who stewards the OpenStack code today?

The fastest way to understand OpenStack is to follow one command. A user types the command below to start a small Ubuntu machine on a private network. That single line touches six separate services before a Virtual machine (VM) exists.

openstack server create --image ubuntu-24.04 --boot-from-volume 20 --flavor m1.small --network private demo-vm
One CLI call that fans out across six OpenStack services

Worked example

Booting one VM

  1. Authenticate with Keystone

    The CLI sends the user's credentials to Keystone and gets back a token plus a catalog of service endpoints. Every later call carries that token.
  2. Call the Nova API

    The CLI sends the create request to Nova, the compute service, which checks the token with Keystone.
  3. Ask Placement for a host

    Nova asks Placement which compute hosts have enough free vCPU and RAM for the m1.small flavor, then its scheduler picks one.
  4. Look up the image in Glance

    Nova asks Glance, the image service, for the ubuntu-24.04 image record: its format, size and where its bytes live. With --boot-from-volume, the host itself never downloads the image; Cinder copies it into the boot volume in the next steps.
  5. Get a port from Neutron

    Nova asks Neutron for a port on the private virtual network, with an IP address and security rules.
  6. Attach a Cinder volume

    Because of --boot-from-volume, Nova asks Cinder to create a 20 GB volume from the image and attaches it as the boot disk. Without that flag, Nova boots from an ephemeral disk and never calls Cinder.
  7. Start the guest

    The hypervisor on the host, libvirt with KVM in most deployments, boots the machine. The application inside it can later store files in Swift.
  8. Result

    Six services (Keystone, Nova, Placement, Glance, Neutron, Cinder) cooperate through their APIs to create one VM, plus the hypervisor that runs it.
A Keystone token flows from the CLI to Nova, which fans out to Placement, Glance, Neutron and Cinder before a VM lights up on a KVM host

The architecture rule behind the trace

The trace shows the design rule. OpenStack is a set of independent services, and each one owns one kind of resource and exposes it through a REST API. Every service authenticates callers through Keystone, and services talk to each other only through those public APIs. Inside a single service, its worker processes coordinate through an AMQP message broker such as RabbitMQ, and each service keeps its state in its own SQL database. Horizon, the web dashboard, has no special powers: like the CLI, the SDKs or a plain curl, it is simply another REST client.

This design is why OpenStack scales to large operators and why it is heavy to run. Each service can be scaled, upgraded and replaced on its own, but a production cloud means operating many daemons, a message broker and several databases. Its feature list mirrors a Hyperscaler almost one for one, which makes the AWS comparison the easiest way to remember it.

OpenStack serviceResource it managesAWS equivalent
NovaCompute instances (VMs, bare metal)EC2
SwiftObjects over HTTPS3
CinderBlock volumesEBS
NeutronVirtual networks, ports, routersVPC
KeystoneIdentity, tokens, service catalogIAM
GlanceBoot imagesAMI catalog
HorizonWeb dashboardManagement Console
PlacementInventory and usage of hostsNo direct equivalent
Core OpenStack services and their AWS equivalents
Six core OpenStack services draw a line to their AWS twin. Placement has no partner and pulses on its own

Recall

Which services does Nova require before it can boot an instance?

Keystone for authentication, Glance for the boot image, Neutron for the network port, and Placement to find a host with enough capacity.

Recall

How do OpenStack services communicate with each other, and inside themselves?

Between services, through public REST APIs authenticated by Keystone. Inside a service, through an AMQP broker such as RabbitMQ. Each service keeps its state in a SQL database.

Quick check

A tenant uploads an Ubuntu disk image that new instances will boot from. Which OpenStack service registers and serves it?

Quick check

A database needs a disk that survives VM deletion and attaches like a hard drive. Which service provides it?

Now take a mid-size company leaving VMware. It installs one OpenNebula front-end on a single VM, adds ten KVM hosts and a Ceph datastore, and gives its staff the Sunstone web interface. That is a working private cloud, with far fewer moving parts than the OpenStack service list in the previous concept.

The difference is architectural. OpenNebula is centralized. The front-end holds the whole control plane: the oned daemon, the scheduler and an XML-RPC API, with Sunstone and the CLI sitting on top as clients. Hosts are hypervisor nodes, usually running a type 1 hypervisor such as KVM, grouped into clusters. Everything else plugs in through drivers. Storage drivers cover NFS, Ceph, local disks and others; network drivers cover Linux bridges, 802.1Q VLANs, VXLAN and Open vSwitch. Slide 62's "customized cluster" is this picture: the same front-end can drive hosts on your own physical servers, in an on-premises data center, or on bare metal rented from a public cloud, which is how OpenNebula supports hybrid and edge deployments.

The layer cake from slide 62 assembles from the infrastructure up. KVM glows, LXC arrives in teal, and the retired Firecracker, LXD, VMware ESX and NSX drivers fade out

Slide 62's layers, read from the bottom

Infrastructure
Physical servers, on-premises data centers, or public-cloud bare metal
Operating system
A Linux distribution on every host (the slide lists CentOS, RHEL, Ubuntu, Fedora)
Hypervisor
Today KVM for VMs and LXC for system containers
Networking
Linux bridges, 802.1Q VLANs, VXLAN, Open vSwitch
Storage
Ceph, local LVM, NAS, StorPool, LINSTOR and others

Where it came from

OpenNebula is older than OpenStack. Ignacio M. Llorente and Rubén S. Montero started it in 2005 as a research project in the Distributed Systems Architecture group at Complutense University of Madrid, with the goal of managing virtual machines on distributed infrastructure. The first public release came in March 2008, under the Apache license. In 2010 the founders created a company, C12G Labs, to offer enterprise support; it was later renamed OpenNebula Systems.

Two lanes from 2005 to 2026: OpenNebula starts five years earlier, OpenStack gains its foundation, rename and Linux Foundation home
AspectOpenStackOpenNebula
OriginRackspace and NASAComplutense University of Madrid
First release20102008
StewardOpenInfra, under the Linux FoundationOpenNebula Systems
ArchitectureMany REST services plus AMQP and SQLSingle front-end plus drivers
Control-plane footprintLargeSmall
Main APIRESTXML-RPC
Hypervisors todayMostly KVMKVM and LXC
Typical userTelcos and large operatorsEnterprises leaving VMware, edge sites
OpenStack versus OpenNebula

Recall

Where does OpenNebula's control plane live, and which API does it expose?

On the front-end, in the oned daemon, which exposes an XML-RPC API. Sunstone and the CLI are clients on top of it.

Quick check

Which virtualization drivers does a current OpenNebula 7.x release still support?

Quick check

A university team with three admins and twelve KVM hosts wants the fewest control-plane daemons. Which choice fits?

Recap

If you remember nothing else

  • A private IaaS platform turns servers an organization owns into self-service, pooled, metered compute, network and storage for that one organization.
  • OpenStack: started in 2010 by Rackspace (Swift) and NASA (Nova). Foundation since 2012, renamed OpenInfra in 2020, part of the Linux Foundation since 2025. Apache 2.0, a release every 6 months.
  • Core OpenStack services and AWS equivalents: Nova (EC2), Swift (S3), Cinder (EBS), Neutron (VPC), Keystone (IAM), Glance (machine images), Horizon (console), Placement (no direct twin).
  • OpenStack services talk to each other through REST APIs authenticated by Keystone, use an AMQP broker inside each service, and keep state in a SQL database.
  • OpenNebula: a research project from 2005 at Complutense University of Madrid, first released in 2008. C12G Labs (2010) became OpenNebula Systems. Apache 2.0.
  • OpenNebula runs one front-end (oned, XML-RPC API, Sunstone) that manages hypervisor clusters through storage and network drivers. Today it supports KVM and LXC.
  • Slides 60 and 62 say "Public" in the title but belong to the private section.

Sources