Revista Tecnología

Cómo usar Cinder y Nexenta en un entorno OpenStack

Publicado el 01 junio 2015 por Dbigcloud @dbigcloud

Con la aparición de OpenStack Kilo, han sido más los fabricantes de soluciones de almacenamiento, que han liberado drivers para su uso a través de Cinder, tal y como podemos comprobar en la matriz de compatibilidad. Uno de los fabricantes que ha estado trabajando desde versiones tempranas de OpenStack, ha sido Nexenta, en concreto desde Essex. Hoy vamos a ver NexentaStoruna plataforma de Software definido como almacenamiento, la cual voy a usar para simular almacenamiento por bloque para mi entorno de OpenStack.

 

nexenta openstack por DBigCloud

NexentaStor tiene dos versiones, una Enterprise y otra Community, siendo esta última más que suficiente para usarla en un laboratorio de VMware, OpenStack, etc. Hoy os voy a explicar cómo usar el driver de Nexenta con Cinder, el servicio de almacenamiento por bloques de OpenStack permitiendome hacer uso de Storage as a service.

Lo primero de todo, va a ser necesario crear un volumen en la interfaz de administración de Nexenta, si observáis la siguiente imagen, el que he creado se llama StackVol01 y tiene 200gb.

nexenta crear volumen por DBigCloud

Cómo configurar Nexenta driver con Cinder

Para configurar el driver, es necesario localizar el nodo en el que tenemos instalado Cinder y acceder por SSH, en mi caso tengo un entorno multi nodo creado con la distribución Mirantis, por lo que tengo que acceder a una consula SSHH de Fuel y saltar al nodo de almacenamiento, una vez dentro tenemos que editar el fichero /etc/cinder/cinder.conf para configurar y habilitar el driver:

[Default]
...
enabled_backends=nexentaiscsi-1
[nexentaiscsi-1] volume_driver=cinder.volume.drivers.nexenta.iscsi.NexentaISCSIDriver volume_backend_name=NEXENTA01 nexenta_rest_port=8457 nexenta_host=192.168.1.75 nexenta_user=admin nexenta_password=TU_PASSWORD nexenta_volume=StackVol01

Los datos que tenemos que aportar a la configuración nosotros son:

  • volume_backend_name -> Es el nombre con el que vamos a identificar la creación de volúmenes desde Horizon.
  • nexenta_rest_port -> Puerto por el que accedemos a la interfaz de Nexenta, por defecto 8457.
  • nexenta_host -> Ip o URL de acceso a Nexenta.
  • nexenta_user -> Usuario con permisos para crear, eliminar y modificar zvols.
  • nexenta_volume -> El nombre del volumen que hemos creado anteriormente.

Ahora una vez configurado el driver, debemos reiniciar Cinder, para ello ejecutaremos lo siguiente:

service cinder restart

En el log de Cinder podemos comprobar que se iniciado el driver, para ello ejecutamos:

tail -f /var/log/cinder-all-log

May 29 18:50:59 node-5 cinder-volume Child caught SIGTERM, exiting
May 29 18:50:59 node-5 cinder-volume Caught SIGTERM, stopping children
May 29 18:50:59 node-5 cinder-volume Waiting on 1 children to exit
May 29 18:50:59 node-5 cinder-volume Child 19177 exited with status 1
May 29 18:50:59 node-5 cinder-volume Starting 1 workers
May 29 18:50:59 node-5 cinder-volume Started child 19343
May 29 18:50:59 node-5 cinder-volume Starting cinder-volume node (version 2014.2)
May 29 18:50:59 node-5 cinder-volume Starting volume driver NexentaISCSIDriver (1.2.1)
May 29 18:51:00 node-5 cinder-volume Updating volume status

Con esto ya tenemos configurado el driver de Nexenta y podemos hacer uso de Storage as a Service desde nuestra nube de OpenStack

Cómo crear volúmenes en OpenStack desde Horizon

Desde Horizon, el panel de administración web de OpenStack, vamos a ver cómo crear volúmenes y que estos se generen directamente en nuestro entorno de Nexenta, para comprobar que el driver esta inicializado correctamente, debemos irnos a Admin -> System -> System Information -> Block Storage Service y en el listado nos debe aparecer el nombre del nodo y el backend configurado, sería algo así: nodo@nombre_backend_configurado.

 horizon block storage by DBigCloud

Ahora que hemos comprobado que nuestro entorno detecta la configuración de Nexenta, lo primero que tenemos que realizar es crear un volume type para indicarle a OpenStack cuando creemos un volumen donde ha de crearlo, para ello nos vamos a Admin -> System -> Volumes -> Volume types  y pulsamos en Create Volume Type, el nombre que debemos usar es el que añadimos anteriormente en la cinfiguración de cinder como volume_backend_name, en mi caso NEXENTA01.

horizon volume types por DBigCloud

Con esto ya podemos crear volúmenes en nuestro proyecto e indicar el backend configurado, en nuestro caso con Nexenta, para ello nos dirigimos a Project -> Volumes -> Create Volumes y rellenamos los datos deseados para crear el volumen, eligiendo en type NEXENTA01 de esta forma le estamos indicando a OpenStack que el volumen debe crearo en el entorno que hemos montado con Nexenta.

Horizon create volume por DBigCloud

Si tenemos abierta aun la consola, en el log de Cinder podemos ver como se crea el volumen.

 tail -f /var/log/cinder-all.log

May 29 20:44:44 node-5 cinder-volume Updating volume status
May 29 20:45:30 node-5 cinder-volume Updating volume status
May 29 20:45:30 node-5 cinder-volume Updating volume replication status.
May 29 20:46:01 node-5 cinder-volume Volume 5dbb7347-b944-4463-ac0c-5614b2900783: being created as raw with specification: {'status': u'creating', 'volume_size': 150, 'volume_name': u'volume-5dbb7347-b944-4463-ac0c-5614b2900783'}
May 29 20:46:03 node-5 cinder-volume Volume volume-5dbb7347-b944-4463-ac0c-5614b2900783 (5dbb7347-b944-4463-ac0c-5614b2900783): created successfully

Ahora si accedemos al portal de aminitración web de nuestro entorno de Nexenta, podemos observar como el volumen ha sido creado, para ello debemos dirigirnos a SCSI Target -> Zvols -> View y nos aparecerá el listado de volumenes que vayamos creando, en la siguiente imagen podemos observar el volumen creado anteriormente de 150GB.

Nexenta zvols cinde por DBigCloud

Cómo habéis visto configurar el driver de un sistema de almacenamiento con Cinder es bastante sencillo, de esta forma podemos configurar las cabinas de almacenamiento que usemos en nuestro entorno de OpenStack, revisando la matriz de compatibilidad que nombramos anteriormente, espero que os haya sido de utilidad.



Volver a la Portada de Logo Paperblog