14 - Configurar Cinder en el nodo controlador
Este post detalla los pasos para instalar y configurar Cinder, el servicio de almacenamiento en bloque de OpenStack, en el nodo controlador (controller01). Incluimos los comandos necesarios para crear la base de datos, configurar los servicios y endpoints, y realizar la integración con Nova.
Crear la base de datos de Cinder
Nos conectaremos a MySQL para crear la base de datos y el usuario correspondiente:
vagrant@controller01:~$ sudo mysql
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DB_PASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DB_PASS';
EXIT;
Crear el usuario de Cinder y asignar el rol admin
Cargaremos las credenciales de administrador y crearemos el usuario cinder dentro del proyecto service:
. admin-openrc
openstack user create --domain default --password CINDER_SVC_PASS cinder
openstack role add --project service --user cinder admin
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 97735ce5873c42ac850e63f536a0eec9 |
| name | cinder |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
Crear los servicios y endpoints de Cinder
Registraremos los servicios cinderv2 y cinderv3, así como sus endpoints para la región RegionOne:
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | c5c0d788373e4d88ae8526a95269f4c4 |
| name | cinderv2 |
| type | volumev2 |
+-------------+----------------------------------+
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Block Storage |
| enabled | True |
| id | 27fbad310c2d4f2e823898751c3cd4f5 |
| name | cinderv3 |
| type | volumev3 |
+-------------+----------------------------------+
# Cinder v2
openstack endpoint create --region RegionOne volumev2 public http://controller01:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://controller01:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://controller01:8776/v2/%\(project_id\)s
# Cinder v3
openstack endpoint create --region RegionOne volumev3 public http://controller01:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://controller01:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://controller01:8776/v3/%\(project_id\)s
Instalar los paquetes de Cinder
sudo apt install -y cinder-api cinder-scheduler
Configurar la base de datos y RabbitMQ
Editaremos el archivo /etc/cinder/cinder.conf para incluir los siguientes parámetros:
[database]
connection = mysql+pymysql://cinder:CINDER_DB_PASS@controller01/cinder
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller01
Configurar acceso al servicio de identidad (Keystone)
Añadiremos los parámetros de conexión con Keystone en el mismo archivo:
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller01:5000
auth_url = http://controller01:5000
memcached_servers = controller01:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = KEYSTONE_SVC_PASS
Configurar IP del nodo y lock_path
[DEFAULT]
my_ip = 10.0.0.11
oslo_concurrency.lock_path = /var/lib/cinder/tmp
Sincronizar la base de datos de Cinder
vagrant@controller01:~$ sudo su -s /bin/sh -c "cinder-manage db sync" cinder
Configurar Nova para usar Cinder
Añadiremos la región de Cinder al archivo de configuración de Nova /etc/nova/nova.conf:
[cinder]
os_region_name = RegionOne
Reiniciaremos los servicios:
sudo service nova-api restart
sudo service cinder-scheduler restart
sudo service apache2 restart
Verificación del funcionamiento de Cinder
. admin-openrc
vagrant@controller01:~$ openstack volume service list
+------------------+--------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+--------------+------+---------+-------+----------------------------+
| cinder-scheduler | controller01 | nova | enabled | up | 2025-11-23T02:21:13.000000 |
+------------------+--------------+------+---------+-------+----------------------------+
Nota: si algún servicio aparece con State distinto de up o enabled, revisa los logs en /var/log/cinder/.
