Storage service on Controller node

The block storage service in Openstack is called Cinder

https://docs.openstack.org/cinder/2025.1/install/index-ubuntu.html

Install and configure Cinder on the controller node

Prepare DB

sudo mysql
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
  IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
  IDENTIFIED BY 'CINDER_DBPASS';

Create service credentials

openstack user create --domain default --password-prompt cinder
openstack role add --project service --user cinder admin
openstack service create --name cinderv3   --description "OpenStack Block Storage" volumev3

Create endpoints

openstack endpoint create --region <REGION> volumev3 public http://<FQDN>:8776/v3/%\(project_id\)s
openstack endpoint create --region <REGION> volumev3 admin http://<FQDN>:8776/v3/%\(project_id\)s
openstack endpoint create --region <REGION> volumev3 internal http://<FQDN>:8776/v3/%\(project_id\)s

Install and configure packages

sudo apt install cinder-api cinder-scheduler

Config file /etc/cinder/cinder.conf

[DEFAULT]
transport_url = rabbit://openstack:Passw0rd!@os-control
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_confg = /etc/cinder/api-paste.ini
iscsi_helper = lioadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
state_path = /var/lib/cinder
lock_path = /var/lock/cinder
volumes_dir = /var/lib/cinder/volumes
enabled_backends = lvm
auth_strategy = keystone
my_ip = 192.168.120.201

[database]
#connection = sqlite:////var/lib/cinder/cinder.sqlite
connection = mysql+pymysql://cinder:Passw0rd@os-control/cinder

[keystone_authtoken]
www_authenticate_uri = http://os-control:5000
auth_url = http://os-control:5000
memcached_servers = os-control:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = Passw0rd

[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
sudo cinder-manage db sync
sudo service cinder-scheduler restart

Add cinder to nova config

/etc/nova/nova.config

[cinder]
os_region_name = <REGION>

Restart services

sudo service nova-api restart
sudo service cinder-scheduler restart
sudo service apache2 restart

Verify service

At this point no storage backend has been configured with the cinder-volume service so we will only have the cinder-scheduler available

openstack volume service list

Verify Cinder scheduler service