Learn OpenStack · core/storage/image

Image — Glance

Glance is the OpenStack Image service. It provides a registry and delivery mechanism for virtual machine disk images, kernel images, ramdisks, and ISO files. It does not store images itself by default — it delegates persistence to a pluggable store backend (local filesystem, Swift, Ceph/RBD, S3, Cinder, or HTTP). Nova, Ironic, and other services retrieve images from Glance when provisioning compute resources.

Glance has been a core OpenStack service since the Bexar release (2011). The registry service (glance-registry) was deprecated in the Rocky release (2018) and removed in Train (2019). All metadata is now handled directly by the glance-api process.

When to Read This Skill

  • Deploying Glance for the first time or adding a new store backend
  • Uploading, importing, or managing VM images
  • Configuring image visibility (public, private, shared, community)
  • Understanding the interoperable image import workflow
  • Using image properties to control Nova scheduling or hardware configuration
  • Managing image metadata namespaces and property definitions
  • Setting up image caching on compute or API nodes
  • Troubleshooting stuck images (queued, saving, killed states)
  • Performing image conversion or decompression at import time
  • Managing image sharing between projects

Sub-Files

File What It Covers
architecture.md glance-api, store backends, image properties, visibility model, status lifecycle, metadef namespaces, protected images
operations.md CLI and API: image upload, import, list, show, delete, set, save, sharing, property management, full config reference
internals.md glance_store library, image caching, task API, import plugins, location strategy, delayed delete and scrubber, image conversion, image decompression

Quick Reference

# Upload a local image
openstack image create \
  --disk-format qcow2 \
  --container-format bare \
  --file ubuntu-24.04.qcow2 \
  --public \
  ubuntu-24.04

# List all images visible to your project
openstack image list

# Show image details
openstack image show ubuntu-24.04

# Import an image from a URL (web-download)
openstack image create \
  --disk-format qcow2 \
  --container-format bare \
  --uri https://cloud.example.com/ubuntu-24.04.qcow2 \
  --import \
  ubuntu-24.04

# Set image properties for hardware configuration
openstack image set --property hw_disk_bus=virtio --property hw_vif_model=virtio ubuntu-24.04

# Share an image with another project
openstack image add project ubuntu-24.04 <target-project-id>
openstack image member set --status accepted ubuntu-24.04 <target-project-id>

# Save (download) an image locally
openstack image save --file downloaded.qcow2 ubuntu-24.04

# Delete an image
openstack image delete ubuntu-24.04

Dependencies

Dependency Purpose Notes
Keystone Authentication and service catalog All Glance API calls validated against Keystone
MariaDB 10.6+ or PostgreSQL 14+ Image metadata database Image data is stored in the configured backend, not the DB
Store backend (file / Swift / Ceph / S3 / Cinder) Image data persistence File store is default; Ceph RBD recommended for production HA
Apache httpd or Nginx WSGI front-end for glance-api mod_wsgi or uwsgi; direct eventlet server supported but not recommended
oslo.messaging / RabbitMQ Task notifications and inter-service events Required for task API and import workflow notifications
python-glanceclient Python bindings Used internally by Nova and other services
python-openstackclient Unified CLI Wraps the Glance v2 REST API

Releases Covered

This skill covers OpenStack 2025.1 (Epoxy), 2025.2, and 2026.1.

Glance release notes: https://docs.openstack.org/releasenotes/glance/