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
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
- Explain what a private IaaS platform adds on top of plain virtualization, using the NIST essential characteristics.
- 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).
- Name the core OpenStack services and map each one to its AWS equivalent.
- Trace the API calls OpenStack makes to boot one virtual machine.
- 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.
| Question | Plain hypervisor | Private IaaS platform | Public IaaS |
|---|---|---|---|
| Who owns the hardware | You | You | The provider |
| Self-service API for users | No, an admin clicks | Yes | Yes |
| Multi-tenancy with quotas | No | Yes, per project | Yes, per account |
| Billing model | Bought up front | Bought up front, usage metered internally | Pay per use |
| Example | ESXi or KVM alone | OpenStack or OpenNebula | AWS EC2 |
Recall
Name three things a private IaaS platform adds on top of a plain hypervisor.
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?
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-vmWorked example
Booting one VM
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.Call the Nova API
The CLI sends the create request to Nova, the compute service, which checks the token with Keystone.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.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.Get a port from Neutron
Nova asks Neutron for a port on the private virtual network, with an IP address and security rules.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.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.Result
Six services (Keystone, Nova, Placement, Glance, Neutron, Cinder) cooperate through their APIs to create one VM, plus the hypervisor that runs it.
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 service | Resource it manages | AWS equivalent |
|---|---|---|
| Nova | Compute instances (VMs, bare metal) | EC2 |
| Swift | Objects over HTTP | S3 |
| Cinder | Block volumes | EBS |
| Neutron | Virtual networks, ports, routers | VPC |
| Keystone | Identity, tokens, service catalog | IAM |
| Glance | Boot images | AMI catalog |
| Horizon | Web dashboard | Management Console |
| Placement | Inventory and usage of hosts | No direct equivalent |
Recall
Which services does Nova require before it can boot an instance?
Recall
How do OpenStack services communicate with each other, and inside themselves?
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.
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.
| Aspect | OpenStack | OpenNebula |
|---|---|---|
| Origin | Rackspace and NASA | Complutense University of Madrid |
| First release | 2010 | 2008 |
| Steward | OpenInfra, under the Linux Foundation | OpenNebula Systems |
| Architecture | Many REST services plus AMQP and SQL | Single front-end plus drivers |
| Control-plane footprint | Large | Small |
| Main API | REST | XML-RPC |
| Hypervisors today | Mostly KVM | KVM and LXC |
| Typical user | Telcos and large operators | Enterprises leaving VMware, edge sites |
Recall
Where does OpenNebula's control plane live, and which API does it expose?
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
- SP 800-145: The NIST Definition of Cloud ComputingBookNIST (Mell and Grance, 2011)(opens in a new tab)
- A Bit of OpenStack HistoryDocsOpenStack Project Team Guide(opens in a new tab)
- Logical architectureDocsOpenStack Install Guide(opens in a new tab)
- Get started with OpenStackDocsOpenStack Install Guide(opens in a new tab)
- Nova documentationDocsOpenStack(opens in a new tab)
- Swift documentationDocsOpenStack(opens in a new tab)
- Cinder documentationDocsOpenStack(opens in a new tab)
- Neutron documentationDocsOpenStack(opens in a new tab)
- Keystone documentationDocsOpenStack(opens in a new tab)
- Glance documentationDocsOpenStack(opens in a new tab)
- Placement documentationDocsOpenStack(opens in a new tab)
- Horizon documentationDocsOpenStack(opens in a new tab)
- OpenStack releasesDocsOpenStack(opens in a new tab)
- OpenStack software overviewDocsOpenInfra Foundation(opens in a new tab)
- The OpenStack mapDocsOpenInfra Foundation(opens in a new tab)
- The OpenStack Foundation becomes the Open Infrastructure FoundationArticleTechCrunch, 19 October 2020(opens in a new tab)
- OpenInfra joins the Linux FoundationArticleOpenInfra blog, 2025(opens in a new tab)
- OpenNebula overviewDocsOpenNebula 7.4 documentation(opens in a new tab)
- What's new in 6.10 (LXD and Firecracker drivers removed)DocsOpenNebula documentation(opens in a new tab)
- 7.0 compatibility guide (vCenter discontinued)DocsOpenNebula documentation(opens in a new tab)
- Networking overview (supported network drivers)DocsOpenNebula 7.0 documentation(opens in a new tab)
- OpenNebula: leading innovation in cloud computing managementArticleERCIM News 83(opens in a new tab)
- Virtual Infrastructure Management in Private and Hybrid CloudsPaperSotomayor, Montero, Llorente, Foster, IEEE Internet Computing, 2009(opens in a new tab)
- OpenNebula: A Cloud Management ToolPaperMilojicic, Llorente, Montero, IEEE Internet Computing, 2011(opens in a new tab)