El servicio de almacenamiento en bloque Cinder AKA OpenStack agrega el almacenamiento persistente a una instancia, también proporciona una infraestructura para administrar volúmenes e interactúa con el servicio informático para proporcionar volumen, por ejemplo. La cantidad de almacenamiento que se aprovisiona y se consume se determina en los controladores de almacenamiento en bloque, hay una variedad de controladores disponibles:NAS/SAN, NFS, iSCSI, Ceph y más.
La API de almacenamiento en bloque y el servicio del programador normalmente se ejecutan en los nodos del controlador. Según los controladores utilizados, el servicio de volumen puede ejecutarse en controladores, nodos de cómputo o nodos de almacenamiento independientes.
Esta guía lo ayuda a instalar y configurar Cinder en el nodo del controlador. Este servicio requiere al menos un nodo de almacenamiento adicional que proporcione volúmenes a las instancias.
Instalar y configurar el nodo del controlador:
Inicie sesión en el servidor MySQL como usuario root.
# mysql -u root -p
Cree la base de datos nova.
CREATE DATABASE cinder;
Otorgue un permiso adecuado a la base de datos nova.
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'password';
Reemplace "contraseña" con una contraseña adecuada. Salga de MySQL.
Cargue su credencial de administrador desde la secuencia de comandos del entorno.
# source admin-openrc.sh
Cree el usuario de Cinder para crear credenciales de servicio.
# openstack user create --password-prompt cinder User Password: Repeat User Password: +----------+----------------------------------+ | Field | Value | +----------+----------------------------------+ | email | None | | enabled | True | | id | f02a9693b5dd4f328e8f1a292f372782 | | name | cinder | | username | cinder | +----------+----------------------------------+
Agregue el rol de administrador al usuario de Cinder.
# openstack role add --project service --user cinder admin +-------+----------------------------------+ | Field | Value | +-------+----------------------------------+ | id | 33af4f957aa34cc79451c23bf014af6f | | name | admin | +-------+----------------------------------+
Cree las entidades de servicio de cenizas.
# openstack service create --name cinder --description "OpenStack Block Storage" volume +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | cc16bd02429842d694ccd4a425513cfc | | name | cinder | | type | volume | +-------------+----------------------------------+
# openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | 926e5dcb46654d228987d61978903b27 | | name | cinderv2 | | type | volumev2 | +-------------+----------------------------------+
Cree los extremos de la API del servicio Block Storage.
# openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volume +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | adminurl | http://controller:8776/v2/%(tenant_id)s | | id | 4b38b10d227a48cfaf1d6356d23a6481 | | internalurl | http://controller:8776/v2/%(tenant_id)s | | publicurl | http://controller:8776/v2/%(tenant_id)s | | region | RegionOne | | service_id | cc16bd02429842d694ccd4a425513cfc | | service_name | cinder | | service_type | volume | +--------------+-----------------------------------------+
# openstack endpoint create --publicurl http://controller:8776/v2/%\(tenant_id\)s --internalurl http://controller:8776/v2/%\(tenant_id\)s --adminurl http://controller:8776/v2/%\(tenant_id\)s --region RegionOne volumev2 +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | adminurl | http://controller:8776/v2/%(tenant_id)s | | id | dcf45538165b40f2a6736bcf5276b319 | | internalurl | http://controller:8776/v2/%(tenant_id)s | | publicurl | http://controller:8776/v2/%(tenant_id)s | | region | RegionOne | | service_id | 926e5dcb46654d228987d61978903b27 | | service_name | cinderv2 | | service_type | volumev2 | +--------------+-----------------------------------------+
Instalar y configurar los componentes del controlador Cinder (Block Storage):
Instale los siguientes paquetes en el nodo del controlador.
# apt-get install cinder-api cinder-scheduler python-cinderclient
Edite el archivo /etc/cinder/cinder.conf.
# nano /etc/cinder/cinder.conf
Modifique la configuración a continuación y asegúrese de colocar las entradas en las secciones adecuadas. Es posible que en algún momento necesite agregar secciones si no existe y también necesita agregar algunas entradas que faltan en el archivo, no todas.
[database] connection = mysql://cinder:password@controller/cinder ## Replace "password" with the password you chose for cinder database [DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone verbose = True my_ip = 192.168.12.21 ## Management IP of Controller Node [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = password ## Replace "password" with the password you chose for cinder user in the identity service ## Comment out or remove any other options in the [keystone_authtoken] section [oslo_concurrency] lock_path = /var/lock/cinder ## Comment out the lock_path in (DEFAULT) section.
Rellene la base de datos de cenizas.
# su -s /bin/sh -c "cinder-manage db sync" cinder
Reinicie los servicios.
# service cinder-scheduler restart # service cinder-api restart
Elimina el archivo de la base de datos SQLite.
# rm -f /var/lib/cinder/cinder.sqlite
Enumere los servicios, puede ignorar las advertencias.
# cinder-manage service list Binary Host Zone Status State Updated At cinder-scheduler controller nova enabled :-) 2015-07-06 18:35:55
¡¡Eso es todo!!. Lo siguiente es configurar un nodo de almacenamiento.