In a previous blog post, we discussed why storing OpenStack Glance images on a Lightbits software-defined storage cluster makes sense, especially for environments that require scalable, high-performance, and resilient storage for VM image management. Read the previous blog here.
Now let’s look at how.
By default, OpenStack Glance stores images on a filesystem backend. In this blog, we’ll configure Glance to store images directly on a Lightbits-backed Cinder volume and then boot a VM from that image.
The goal is simple:
Store the image on Lightbits LightOS®→ Create a boot volume → Launch a VM from that volume.
Prerequisites
- A working OpenStack deployment (Kolla-Ansible in this example)
- Lightbits configured as a Cinder backend
- An existing Lightbits volume type
Verify the volume type:
openstack volume type list
Example output:
lightbits
Step 1 – Configure Glance to Use Cinder
Update /etc/kolla/globals.yaml
Add:
enable_cinder_backend_iscsi: yes
enable_iscsid: yes
glance_api_extra_volumes:
– “/etc/nvme:/etc/nvme”
– “/etc/discovery-client/discovery.d:/etc/discovery-client/discovery.d”
This allows the glance container to perform NVMe/TCP attachments via os-brick.
Create /etc/kolla/config/glance/glance-api.conf
[privsep_osbrick]
helper_command = sudo -E glance-rootwrap /etc/glance/rootwrap.conf
privsep-helper –config-file /etc/glance/glance-api.conf
[glance_store]
default_backend = cinder
[cinder]
rootwrap_config = /etc/glance/rootwrap.conf
cinder_store_auth_address = http://<AUTH_URL>:5000/v3
cinder_store_user_name = glance
cinder_store_password = <GLANCE_PASSWORD>
cinder_store_project_name = service
cinder_store_user_domain_name = Default
cinder_store_project_domain_name = Default
cinder_catalog_info = volumev3::publicURL
os_region_name = RegionOne
cinder_volume_type = lightbits
Make sure:
- cinder_store_auth_address contains the correct Keystone auth URL
- cinder_store_password contains the correct Glance service password that matches Keystone
- cinder_volume_type matches your Lightbits volume type
Step 2 – Reconfigure Kolla
Apply the updated Kolla configuration:
kolla-ansible reconfigure -i ./multinode -vvv
After the reconfigure completes, Glance is configured to use Cinder as its image store instead of the default file-based backend.
Step 3 – Upload an Image
Upload a qcow2 cloud image to Glance as usual. Because Glance is configured to use a Cinder-backed image store, OpenStack will create a corresponding Cinder volume on the Lightbits cluster to store the image data. Below is an example:
openstack image create “Glance Image Alma Linux 9.6” \
–file /path/to/AlmaLinux-9-GenericCloud.qcow2 \
–disk-format qcow2 \
–container-format bare \
–public
Verify that the image was created:
openstack image list
openstack volume list –all-projects –long
You should see a new read-only volume:
image-<IMAGE_ID>
Type: lightbits
readonly = True
On the Lightbits cluster, you can also confirm that the corresponding volume was created:
lbcli list volume
At this point, the Glance image is no longer stored on the local filesystem. It is stored on a Cinder volume backed by the Lightbits cluster.
Step 4 – Create a Boot Volume from the Image
The image stored by Glance is backed by a read-only Cinder volume. To boot a VM from this image, create a new writable boot volume from it.
openstack volume create \
–image <IMAGE_ID> \
–size 20 \
–type lightbits \
–description “vm1-boot-vol” \
vm1-boot-vol
Verify the new boot volume:
openstack volume show vm1-boot-vol
Confirm that the volume is bootable, available, and using the Lightbits volume type:
bootable = true
status = available
type = lightbits
Step 5 – Launch the VM
Now launch the VM using the boot volume created in the previous step:
openstack server create \
–flavor <FLAVOR_ID> \
–volume <VOLUME_ID> \
–network private \
–key-name <KEY_PAIR> \
vm1
Notice that we are using –volume instead of –image. At this point, the VM is booting from the writable Cinder volume rather than directly from the original Glance image.
Because the volume type is lightbits, Nova attaches the Lightbits-backed Cinder volume to the compute node over NVMe/TCP and uses it as the VM’s boot disk.
Summary
With this configuration:
- Glance stores image data on Lightbits-backed Cinder volumes
- Glance images are represented as read-only Cinder volumes
- Writable boot volumes are created from those images
- VMs boot directly from Lightbits-backed Cinder volumes over NVMe/TCP
This provides a clean workflow for deploying VMs from Glance images stored on a Lightbits cluster, while continuing to use standard OpenStack commands.
See how easy storage management can be using Lightbits with OpenStack. Request a Free Trial now.