Ubuntu OpenStack reference Implementation

OpenStack is the leading open cloud platform. Ubuntu is the reference operating system for the OpenStack project, which is why deploying OpenStack with Ubuntu is the best way to ensure a straightforward implementation. Ubuntu Openstack contains all the current integrated OpenStack projects and some additional technologies beneficial to helping run an OpenStack cloud. The following is a high level overview of our reference implementation for production use.

Compute — Nova

Nova, the OpenStack Compute component enables you to provision and manage large networks of virtual machines, creating a redundant and scalable cloud-computing platform. It gives you everything you need to run instances, manage networks and control access through users and projects. Like the rest of the Ubuntu operating system, it supports most standard hardware configurations and well-known hypervisors.

Storage — Swift or Ceph

Swift, OpenStack Object Storage creates redundant, scalable object storage using clusters of standardised storage servers. Rather than a file system or real-time data storage system, it provides a long-term storage system for more permanent, static data. Examples include virtual machine images, photo storage, email storage and backup archiving. Ceph is used for block storage as part of OpenStack Cinder. Ceph provides a feature-rich experience and is also able to provide Object Storage via a gateway giving you the option to standardise on a single storage technology based on your storage requirements.

Image service — Glance

The OpenStack Image Service provides discovery, registration and delivery services for virtual disk images. It includes a standard REST interface for identifying them in back-end stores such as OpenStack Object Storage, with new virtual disk images being registered via the Image Service. Administrators can also access information on publicly available disk images and use the client library for streaming virtual disk images.

A multi-format registry, the OpenStack Image Service allows uploads of private and public images in the following formats:

  • Raw
  • VHD (Hyper-V)
  • VDI (VirtualBox)
  • qcow2 (Qemu/KVM)
  • Machine (kernel/ramdisk outside of image, also known as AMI)

Authentication — Keystone

Keystone, the OpenStack Authentication service provides identity, token, catalogue and policy services for use by OpenStack components. It provides a pluggable back-end that has been designed to support various protocols (e.g. Basic Auth, OAuth, OpenID, PKI) for authentication and authorisation, allowing clients to obtain security tokens to access different cloud services.

Management — Horizon

The OpenStack management service or dashboard provides OpenStack users with a web-based user interface with which to control OpenStack’s component services (Nova, Swift, Keystone, Glance) and a single API with which to access them.

There are three central dashboards, covering the core OpenStack applications:

  • A user dashboard
  • A system dashboard
  • A settings dashboard

The Horizon application also ships with a set of API abstractions for the core OpenStack projects, enabling developers to work on OpenStack without intimate knowledge of the APIs of every component.

Networking — Neutron

Neutron, the networking service provides an API that lets you define network connectivity and addressing in your OpenStack cloud. Neutron enables operators to leverage different networking technologies supported with Ubuntu OpenStack such as Juniper’s Contrail, Nuage Networks, MidoNet, VMware NSX, PlumGrid, CPlane Networks and Calico from Metaswitch. Standalone, Neutron provides an API to configure and manage a variety of network services ranging from L3 forwarding and NAT to load balancing, edge firewalls, and IPsec VPN.

Metrics — Telemetry

Previously known as Ceilometer, the Telemetry module collects measurements about the OpenStack system and stores it in the form of samples in order to provide data about anything that can be billed. In addition to system measurements, Telemetry also captures event notifications triggered when various actions are executed in the OpenStack system. This data is captured as Events and stored alongside metering data.

Juju and MAAS

Juju and MAAS are the fastest and most integrated way to deploy OpenStack on Ubuntu. Using libraries of ‘charms’ developed from experiences at customer sites, make it simple to deploy, configure and scale out cloud services with only a few simple commands. MAAS is the bare-metal provisioning tool that turns your hardware environment into a cloud in minutes. It takes the pain out of detection and configuration and gets your servers ready for Juju.

Virtualisation — LXD/LXC, KVM, etc

Ubuntu Server includes open-source hypervisors LXD/LXC alongside its default option, KVM. All are supported as virtualisation options for Ubuntu OpenStack deployments.

Alternative hypervisors are compatible with OpenStack, however, allowing Ubuntu OpenStack to be deployed in custom configurations with almost any virtualisation technology. Supported options include:

  • KVM (Kernel-based Virtual Machine)
  • LXD/LXC (Linux Containers)
  • VMWare ESXi

* Requires the nova-compute service to be installed on DomU

A complete list of the features that can be controlled through OpenStack, by hypervisor, is available on the OpenStack Wiki

Documentation and help

The fastest and most accurate source of assistance on Ubuntu Cloud is the developer community responsible for the software. You can get help from the Ubuntu community here.

For technical documentation and further information on OpenStack, please visit the OpenStack documentation pages.

For a detailed listing and build status of all the OpenStack Kilo components, including projects that are not currently part of the Ubuntu reference implementation like Heat, Trove, Sahara and Ironic as well as other useful technologies, visit the cloud archive which is updated nightly.