An OpenStack Compute cloud is not very useful unless you have virtual machine images (which some people call “virtual appliances”). This guide describes how to obtain, create, and modify virtual machine images that are compatible with OpenStack.
To keep things brief, we will sometimes use the term image
instead of virtual machine image.
What is a virtual machine image?
A virtual machine image is a single file which contains a virtual disk that has a bootable operating system installed on it.
Virtual machine images come in different formats, some of which are described below.
The AKI/AMI/ARI format was the initial image format supported by Amazon EC2. The image consists of three files:
vmlinuz
file.initrd
file.OVF
(Open Virtualization Format) is a packaging format for virtual machines,
defined by the Distributed Management Task Force (DMTF) standards group.
An OVF package contains one or more image files, a .ovf
XML metadata file
that contains information about the virtual machine, and possibly other
files as well.
An OVF package can be distributed in different ways. For example,
it could be distributed as a set of discrete files, or as a tar archive
file with an .ova
(open virtual appliance/application) extension.
OpenStack Compute does not currently have support for OVF packages, so you will need to extract the image file(s) from an OVF package if you wish to use it with OpenStack.
The QCOW2 (QEMU copy-on-write version 2) format is commonly used with the KVM hypervisor. It has some additional features over the raw format, such as:
Because qcow2 is sparse, qcow2 images are typically smaller than raw images. Smaller images mean faster uploads, so it is often faster to convert a raw image to qcow2 for uploading instead of uploading the raw file directly.
Note
Because raw images do not support snapshots, OpenStack Compute will automatically convert raw image files to qcow2 as needed.
The raw
image format is the simplest one, and is natively
supported by both KVM and Xen hypervisors.
You can think of a raw image as being the bit-equivalent of
a block device file, created as if somebody had copied, say,
/dev/sda
to a file using the dd command.
Note
We do not recommend creating raw images by dd’ing block device files, we discuss how to create raw images later.
A UEC (Ubuntu Enterprise Cloud) tarball is a gzipped tarfile that contains an AMI file, AKI file, and ARI file.
Note
Ubuntu Enterprise Cloud refers to a discontinued Eucalyptus-based Ubuntu cloud solution that has been replaced by the OpenStack-based Ubuntu Cloud Infrastructure.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.