← Writing

July 1, 2016

OpenStack All-in-One Host (AIO)

Installing OpenStack entirely on a single KVM host using Fuel on Ubuntu 16.04 — a virtualized all-in-one reference configuration for first-time installers.

Virtualized OpenStack single-node installation with Fuel on Ubuntu KVM.

This document covers a complete install of OpenStack on one physical host. The result is a KVM host running Fuel, Controller, and Compute all virtualized. The host configuration is designed to let Fuel run with all defaults — which makes this the lowest-friction path for a first-time installer.

Host OS: Ubuntu 16.04 Desktop

Fuel version: 9.x

RAM required: 96 GB minimum on the physical host


Why AIO

A multi-node GhettoStack deployment requires at least three physical machines, a managed switch, and careful VLAN configuration. The AIO approach collapses all of that onto one host. It is the right starting point before committing to hardware.

The tradeoff: the AIO install is not suitable for production. Fuel, the controller, and compute nodes all compete for resources on the same physical host. Under any meaningful load, you will hit memory pressure. Use AIO to learn the Fuel workflow and the OpenStack topology, then graduate to physical nodes.


Host Network Setup

The physical host needs two things: internet access and enough virtual interfaces for Fuel to discover its nodes. KVM bridges handle the latter.

Create the following bridges in /etc/network/interfaces:

# Fuel admin network
auto br-fuel
iface br-fuel inet static
  address 10.20.0.1
  netmask 255.255.255.0
  bridge_ports none
  bridge_stp off

# Public network
auto br-public
iface br-public inet static
  address 172.16.0.1
  netmask 255.255.255.0
  bridge_ports none
  bridge_stp off

Enable IP forwarding and NAT to give the Fuel network internet access:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -j MASQUERADE

Fuel VM

Download the Fuel 9.x ISO. Create a KVM VM with:

Fuel installs its own OS (CentOS-based). After install, the Fuel UI is available at http://10.20.0.2:8000.


OpenStack Nodes

Create KVM VMs for the combined controller/compute node:

Power on the node VMs. Fuel discovers them via PXE on the admin network and they appear in the Fuel UI as unallocated nodes. Assign roles (combined controller+compute for AIO), verify network configuration, and deploy.


Fuel Defaults That Matter

Fuel makes enough choices by default to produce a working OpenStack. The ones to understand:

Enable nested KVM on the host:

echo 'options kvm_intel nested=1' > /etc/modprobe.d/kvm-nested.conf
modprobe -r kvm_intel && modprobe kvm_intel

After a successful deploy, the Horizon dashboard is available on the public network. The AIO gives you a fully functional OpenStack environment — Nova, Neutron, Glance, Keystone, Cinder — on one host.