Continuing the journey of my private cloud project, I started integrating the OpenStack Cinder CSI plugin to improve storage capabilities. However, a space constraint led me to add an NVMe disk (Toshiba 256GB M.2 2242) to support Cinder.
Cinder
As described in the official documentation, Cinder is the OpenStack Block Storage service that provides volumes to Nova virtual machines, containers, and more.
Configuration of the new disk
Adding the new disk required a few steps. After powering down the host, I installed the disk and rebooted the system. Then I listed all the available disks.
sudo fdisk --list
In the output, I found my new disk ready to be used.
Disk /dev/nvme0n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: TOSHIBA
...
With the disk identified, I initialized the physical volume with pvcreate and
added the disk to the volume group cinder-volumes.
sudo pvcreate -f /dev/nvme0n1
sudo vgcreate -f cinder-volumes /dev/nvme0n1
Then I modified the /etc/kolla/globals.yml file with the following values.
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
cinder_volume_group: "cinder-volumes"
Finally, I re-ran the Ansible playbook to add the new configuration.
kolla-ansible -i all-in-one deploy
This enabled Cinder, which the plugin could then use.
⚙️ Config: The volume group name must match
cinder_volume_groupinglobals.yml.
Nova
As described in the official documentation, Nova is the OpenStack service that provides a way to provision compute instances.
Instances not turning up after restart
One of the first things I noticed was that after performing host restarts,
instances didn’t turn back on. After a bit of research, I discovered that a
value was missing in /etc/kolla/nova-compute/nova.conf.
[DEFAULT]
resume_guests_state_on_host_boot = True
Now, when I restart the main node, every machine starts.
Sadly, Kolla-Ansible currently doesn’t support adding extra values to its configuration files. So every time I run the playbooks, I have to add this line manually, or it gets replaced by the default values.
🔁 Reminder: Check this value after every Kolla-Ansible run.
Conclusion
Integrating Cinder had several benefits. It diversified storage options by moving virtual machine data to a separate storage unit, and it gave Kubernetes dynamic storage provisioning, which made my applications more flexible.